template template parameter
-
ist das hier illegal oder kann das nur der visual nicht?
template<class TC, typename TE> ostream&operator<<(ostream&os, const TC<TE>&v){ copy(v.begin(), v.end(), ostream_iterator<TE>(os)); return os; }
-
illegal. TC ist als class deklariert, nicht als template. Versuchs mal so:
template <template <class> class TC, typename TE> ...
Kann übrigens sein, dass ich gerade riesigen Mist geschrieben habe, ich hab den Alexandrescu nur überflogen. Aber gefühlsmäßig hab ich recht
-
template template parameter haben ne kranke syntax, deine version ist zwar logischer, aber falsch:
http://www.comeaucomputing.com/techtalk/templates/#ttp
-
ah ja. gute idee. das kann aber der visual nicht.
-
das war grad aber nicht auf mich bezogen oder? gcc kann das, und dein Link bestätigt mich.
-
nein, meine version ist nicht logischer.
es kommt eben nicht etwas der form "class" dort hinein, sondern etwas der form
"template<class>class", das macht schon sinn.
das erste waere nur logischer, wenn es sich bei templates um einen reinen textersetzungsmechanismus handeln wuerde (was ich uebrigens super finden wuerde, warum ist das nicht so?).
-
dafür gibts doch schon cpp-Makros
-
meinst du damit normale makros?
die sind nicht clever genug.
die evaluierung muesste schon durch den compiler erfolgen.
-
Der Unterschied wäre, dass templates bei Bedarf instanziiert werden, während man das bei Makros händisch machen muß (wie in Ada.)
-
Original erstellt von Bashar:
das war grad aber nicht auf mich bezogen oder? gcc kann das, und dein Link bestätigt mich.ne, das war auf Peter bezogen.
hab nur 'kurz' den link zu comeau gesucht, und schon warst du vor mir da