Template-Dummy Parameter (MSVC)
-
Hi! Bei welcher Art von Template-Funktionen/Methoden brauch ich diesen Template-Dummy Parameter bei Visual C++ ?
Trifft das auf alles zu was mit Templates zu tun hat oder nur auf spezielle Template Techniken? Bitte nicht ins Visual C++ Forum verschieben, da haben die nämlich nicht soviel Ahnung von C++.
-
diesen Template-Dummy Parameter
Welchen?
Dummy-Parameter braucht man beim MSVC 6.0 z.B. überall da, wo explicit template argument specification eingesetzt werden soll.
Aber was genau willst du eigentlich wissen?
-
ja, ich weiß jetzt nicht mehr genau aber ich hatte mal so ein beispiel gesehen
template<class T> void test(T t, T* = NULL) {
}weiß nicht ob das so richtig ist. auf jedenfall mußte so ein dummy dareingebraucht werden, damit das template richtig instanziiert wird.
weiß du was ich meine?
-
weiß du was ich meine?
Denke schon.
ja, ich weiß jetzt nicht mehr genau aber ich hatte mal so ein beispiel gesehen
template<class T> void test(T t, T* = NULL) {
}weiß nicht ob das so richtig ist
Kaum. Hier ist der Dummy-Parameter überflüssig, da T in der Parameterliste von test auftaucht und der Typ somit bei einem Aufruf implizit hergeleitet werden kann.
Dummy-Parameter brauchst du nur für Typen, die nicht in der Parameterliste auftauchen:
template <class T> void Func() { cout << typeid(T).name() << endl; } int main() { Func<int>(); Func<double>(); Func<char>(); }
Hier wird beim MSVC 6.0 fälschlicherweise dreimal "char" ausgegeben.
Ein Dummy-Parameter hilft:
template <class T> void Func(T* = 0) { cout << typeid(T).name() << endl; } int main() { Func<int>(); Func<double>(); Func<char>(); }