myTemplateTemplate espera que el segundo parámetro de plantilla sea una plantilla con un argumento. myDefaultTemplate es una plantilla con dos argumentos, y el segundo argumento tiene el tipo predeterminado int.Por qué la plantilla con argumentos de plantilla predeterminados no se puede usar como plantilla con menos argumento de plantilla en Plantilla Parámetros de plantilla
En VS2008, me sale el error de compilación: la lista de parámetros de plantilla para la plantilla de clase 'myDefaultTemplate' no coincide con la lista de parámetros de plantilla para el parámetro de plantilla
Así que, ¿por qué la myDefaultTemplate no se puede utilizar 'TT' como la plantilla con solo un argumento? ¿Hay algún impacto negativo si el compilador de C++ lo admite?
template
<typename T1, typename T2 = int>
class
myDefaultTemplate{
T1 a;
T2 b;
};
template
<typename T1, template<typename T2> class TT>
class
myTemplateTemplate{
T1 a;
TT<T1> b;
};
int main(int argc, char* argv[]){
myTemplateTemplate<int, myDefaultTemplate> bar; //error here:
return 0;
}
Debería obtener una insignia para "Pregunta que utiliza la palabra 'plantilla' la mayoría de las veces" :) – Praetorian