🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #861

Re: Templates in g++?

#861
From: Enno Sandner
Date: Thu, 23 Nov 1995 19:55
34 lines
1683 bytes
thomas@wmaz1.uni-wuppertal.de (Thomas Fritzsche):
>wie kann ich bei einer Template-Klasse abfragen, welcher "Typ fuer des
>Template" verwendet wurde? Ist das ueberhaupt moeglich?

Ich verstehe die Frage evtl. falsch, aber ich nehme mal an Du willst 
fuer unterschiedliche Typen unterschiedliche Implementierung haben,
um zB. Builtin-Typen optimiert zu behandeln. Das laesst sich mittels 
Template-Spezialisierung erreichen. Bsp:

---
#include <iostream.h>

template<class T> struct A { void Do(); };
void A<int> :: Do() { cout << "int-impl\n"; }
void A<char> :: Do() { cout << "char-impl\n"; }
template<class T> void A<T> :: Do() { cout << "gen-impl\n"; }

int main()
{
  A<int>().Do(); A<char>().Do(); A<float>().Do();
  return 0;
}
---
Bei neueren Compilern die RTTI unterstuetzen kann man auch den 'typeid' 
Ausdruck verwenden. Bsp:

	if (typeid(T)==typeid(int)) DoThis(); else DoThat();
		
Template-Spezialisierung ist aber IMHO der bessere Weg um typspezifisches
Verhalten bei Templates zu realisieren, da die einzelnen Implementierung
sauber voneinander getrennt sind.

	Gruss
		Enno
Technical Details
Message-ID: <ENNO.95Nov23205507@kitz.inferenzsysteme.informatik.th-darmstadt.de>
Path: arc1-ca.pugleaf.net!news.th-darmstadt.de!news!enno
References: <491sa6$gb@wmwap1.math.Uni-Wuppertal.DE>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news.th-darmstadt.de!news!enno
From: enno@inferenzsysteme.informatik.th-darmstadt.de (Enno Sandner)
Newsgroups: de.comp.lang.c++
Subject: Re: Templates in g++?
Date: 23 Nov 1995 19:55:07 GMT
Organization: Fachbereich Informatik, TH Darmstadt
Distribution: world
Message-ID: <ENNO.95Nov23205507@kitz.inferenzsysteme.informatik.th-darmstadt.de>
References: <491sa6$gb@wmwap1.math.Uni-Wuppertal.DE>
NNTP-Posting-Host: kitz.intellektik.informatik.th-darmstadt.de
In-reply-to: thomas@wmaz1.uni-wuppertal.de's message of 23 Nov 1995 13:17:58 GMT