Ich muss die Vorlagenelementfunktion für einen Typ spezialisieren (sagen wir doppelt ). Es funktioniert gut, während die Klasse Xselbst keine Vorlagenklasse ist, aber wenn ich sie als Vorlage erstelle, gibt GCC Fehler bei der Kompilierung aus.
#include <iostream>
#include <cmath>
template <class C> class X
{
public:
template <class T> void get_as();
};
template <class C>
void X<C>::get_as<double>()
{
}
int main()
{
X<int> x;
x.get_as();
}
Hier ist die Fehlermeldung
source.cpp:11:27: error: template-id
'get_as<double>' in declaration of primary template
source.cpp:11:6: error: prototype for
'void X<C>::get_as()' does not match any in class 'X<C>'
source.cpp:7:35: error: candidate is:
template<class C> template<class T> void X::get_as()
Wie kann ich das beheben und was ist das Problem hier?
Danke im Voraus.