Templates mit Default-Werten - wie?
-
Ich möchte ein Template erstellen, in dem der 2. Parameter einen Default-Wert hat, also so etwa
template <class T, class U = <int> > ...
So gehts aber nicht. Wie schreibe ich das richtig?
-
Default Wert oder Default Typ?
Wert:
struct foo { }; template<class T,class B=foo> class x { };
Typ:
template<class T,int B> class x { };
-
@kingruedi
Du bringst hier was durcheinander.
Es gibt zwei verschiedene Sorten von Templateparametern.
1. type-Parameter:template <class T> class Foo {};
2. non-type-Parameter:
template <int T> class Foo {};
(Default)-Argumente für 1. sind *Typen*.
template <class T = int> class Foo {};
(Default)-Argumente für 2. sind konstante integrale *Werte*:
template <int T = 4> class Foo {};
In deinem ersten Beispiel gibt es also keinen Default-Wert und in deinem zweiten keinen Default-Typ. Die Überschriften sind deshalb sehr verwirrend. Zumindest verwirren sie mich