Hola, tengo un problema al intentar utilizar esta template class. Cuando declaro una instancia de la misma de la forma
CArray<int,int> branch_container;
e intento compilar, el compilador me lanza los siguientes errores:
U:\L_System_v1\LTree_v1\LTree_v1.cpp(69) : error C2143: syntax error : missing ';' before '<'
U:\L_System_v1\LTree_v1\LTree_v1.cpp(69) : error C2501: 'CArray' : missing storage-class or type specifiers
U:\L_System_v1\LTree_v1\LTree_v1.cpp(69) : error C2143: syntax error : missing ';' before '<'
¿Alguien sabe porque ocurre eso?
Muchas gracias
Fernando Gutiérrez[/code]
nunca he usado templates en C++ pero se me ocurre que compruebes que estas realmente compilando en C++ y no en C. (Aunque el nombre del fichero sea .cpp quizas esta usando C por alguna razon.)
si no es esto, seguramente sea que CArray no esta reconocido, y te falta un include adecuado.
aunque nunca he programado en templates, he buscado un ejemplo en internet, y parece sintacticamente equivalente a tu codigo:
#include <Afxwin.h>
#include <Afxtempl.h>
void main()
{
CString l_strValue;
CArray<CString,CString> l_CArray;
for(int i=0;i< 20; i++)
{
//Use the CString format function to create different values
l_strValue.Format("Value %d",i);
//Add the formatted CString to CArray
l_CArray.Add(l_strValue);
}
}
Tiene toda la pinta de que le falte el include a CArray :) ya que no reconoce CArray.