función error de compilación de especialización de plantilla
##A.hh
template<class T> void func(T t) {}
template<> void func<int>(int t) {}
void func2();
##A.cpp
void func2() {}
##main.cpp
func("hello");
func(int());
El error que obtengo es: error LNK2005: "void __cdecl func (int)" (?? $ func @ H @@ YAXH @ Z) ya definido en A.obj, se encontraron uno o más símbolos de definición múltiple
¿Es una especialización de plantilla de función no tratada como una plantilla de función normal? Parece que estará en el archivo objetivo para A.