¿Por qué deben especializarse las especializaciones de plantillas?
Me refiero a esta respuesta:
https://stackoverflow.com/a/4447057/930315
Me encontré con un problema similar al OP de la pregunta citada, teniendo una función
template<typename T>
void func(T& val);
y su especialización
template<>
void func<mytype>(mytype& val);
resultó en un error de enlazador de símbolos duplicados (los métodos se implementan en un archivo '.tpp' que se incluye al final de mi encabezado). agregandoinline
a la función especializada resolvió el problema. ¿Por qué?