Spezialisierung als friend?
-
Hallo
template<class A,class B> void f(A a,B b) { } template<class foo>class C { template<class B>friend void f<foo,B>(foo,B); //Fehler hier: invalid use of template-id 'f<foo, B>' in declaration of primary template };Compiler ist gcc 4.3.3
Was ist falsch?
Danke
-
Wenn ich mich richtig erinnere geht das einfach nicht.
Entweder alles template (A und B), oder garnix template.
Lies im Standard nach.
-
hustbaer schrieb:
Wenn ich mich richtig erinnere geht das einfach nicht.
Entweder alles template (A und B), oder garnix template.
Lies im Standard nach.Richtig. Ein Funktionstemplates können nicht partiell spezialisiert werden. Im Standard nachlesen wird aber schwierig, da es nicht explizit steht, da nichts davon drinsteht. Somit ist es nicht erlaubt..