Muszę wyspecjalizować funkcję elementu członkowskiego szablonu dla pewnego typu (powiedzmy podwójnie ). Działa dobrze, podczas gdy Xsama klasa nie jest klasą szablonu, ale kiedy ją robię, szablon GCC zaczyna generować błędy w czasie kompilacji.
#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();
}
tutaj jest komunikat o błędzie
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()
Jak mogę to naprawić i jaki jest problem?
Z góry dziękuję.