Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: fgutierrez en 23 de Octubre de 2007, 12:15:14 PM

Título: CArray
Publicado por: fgutierrez en 23 de Octubre de 2007, 12:15:14 PM
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]
Título: Re: CArray
Publicado por: Tei en 23 de Octubre de 2007, 02:11:10 PM
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);

   }

}
Título: CArray
Publicado por: Prompt en 23 de Octubre de 2007, 03:22:17 PM
Tiene toda la pinta de que le falte el include a CArray :) ya que no reconoce CArray.