Acusado para esto, pero no puede encontrar una pregunta similar. Si hay uno, cierre esta pregunta. Esto no es mi verdadero código, sólo un ejemplo para demostrar: -Especialización de plantillas parciales para matrices
#include <iostream>
// Normal template class with a destructor
template <class T> class Test
{
public:
~Test() { std::cout << "Normal \n";}
};
// Partial specialization for arrays
template<class T> class Test<T[]>
{
public:
~Test() { std::cout << "Array \n"; }
};
int main()
{
Test<int[3]> i;
}
Cuando compilo esto no llamada la versión especializada para las matrices. Si se sustituye la plantilla con
template<class T> class Test<T[3]>
{
public:
~Test() { std::cout << "Array \n"; }
};
Entonces hace llamar la especialización pero quiero que esto se detiene por cualquier variedad no sólo los de un tamaño specifed. ¿Hay alguna forma de escribir una especialización que se utilice para todas las matrices?
no estoy del todo seguro, pero creo que lo que ha escrito no es una especialización para las matrices de tamaño desconocido. Es un tipo incompleto, pero se puede usar en una declaración 'extern' de una matriz que proporcionará alguna otra TU. –