lectura C++ Templates: The Complete Guide y dice¿Por qué las plantillas no se pueden declarar en una función?
Tenga en cuenta que las plantillas no pueden ser declarados en una función
No da explicación y/o referencia cruzada a cualquier otro capítulo en el libro o recurso externo.
Podría alguien ayudarme a explicar esto. Probablemente se explica más adelante en el libro pero aún no está allí. Si lo explicamos antes, me lo debería haber perdido.
Ejemplo:
int main()
{
class DummyClass // This compiles ok
{
int object;
};
template <typename T> // compile error "expected primary-expression before "template""
class DummyTemplate
{
T object;
};
return 0;
}
no entiendo el mensaje de error de gcc tampoco. El mensaje de error dice:
expected primary-expression before "template"
No puede declarar nuevas clases, así es, así es, supongo. –
Hay varias respuestas que básicamente dicen "no se puede porque no se puede". ¿Alguien sabe si hay una buena razón para evitar hacer esto? –
Los argumentos de la plantilla deben tener un enlace externo. En cuanto a por qué es una necesidad, hay algunas sugerencias proporcionadas por Greg Comeau en este clC++. Discusión moderada @ http://groups.google.com/group/comp.lang.c++moderated/browse_thread/thread/f822a008746d1e68/2e9e48a43743e9e1 ? lnk = gst & q = por qué + local + plantillas # 2e9e48a43743e9e1 – Abhay