2011-01-28 25 views
11
template<int N> 
class myClass 
{ 
    template<typename T> 
    void myFunction(); 
}; 

template<typename T> 
void myClass<int N>::myFunction() {} // doesn't work, nor do many other combinations! 

Hola,C++ - cómo implementar la función miembro de plantilla fuera de una clase de plantilla

¿Es posible lograr lo anterior? Puedo implementar myFunction en la definición de clase sin problema. Si es así, ¿cuál sería la sintaxis? GCC 4.2 me dice:

perdido '>' para finalizar la lista de argumentos de plantilla

gracias por su ayuda

+0

¿Podría ser la plantilla su problema? debe ser la plantilla no? – ColinCren

+1

@ Colin: es un parámetro de plantilla sin tipo. –

Respuesta

4
template<int N> template<typename T> 
void myClass<N>::myFunction() {} 
12

Usted ha buscado:

template <int N> 
template <typename T> 
void myClass<N>::myFunction() {} 

Necesita una template para la plantilla de clase y una para la función de miembro templ comió

+0

muchas gracias funcionó un placer! –

+0

@Oli: Claro. Me alegro de haber ayudado. –

Cuestiones relacionadas