La especialización de la función de plantilla después del punto de uso rompa la compilación
-
29-10-2019 - |
Pregunta
Considere el siguiente ejemplo:
#include <iostream>
template< int a >
void foo();
int main(int argn, char* argv[])
{
foo<1>();
}
template<>
void foo<1>()
{
std::cout<<1<<std::endl;
}
La compilación falla con los siguientes mensajes de error:
rg.cpp:12: error: specialization of ‘void foo() [with int a = 1]’ after instantiation
¿Qué párrafo en el estándar explica este error?
PD: Sé que si muevo la definición de función frente a Main hará que el error desaparezca.
No hay solución correcta
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow