Tengo problemas para compilar este código en Linux, pero funciona perfectamente en Windows.Problema de plantilla de C++ en el código multiplataforma
de Windows compilador: Visual Studio 2005
Linux compilador: gcc versión 3.4.3 20041212 (Red Hat 3.4.3-9.EL4)
class DoSomething
{
public:
template <class DataType>
bool Execute()
{
//do something here
}
};
template <class Operator>
TypeSwitch(int DataTypeCode, Operator& Op)
{
switch (DataTypeCode)
{
case 1: return Op.Execute<char>();
case 2: return Op.Execute<int>();
//snip;
}
}
//To call the operator
TypeSwitch(Code,DoSomething);
En Windows este código funciona perfectamente y hace exactamente lo que quiero que haga En Linux, consigo los errores:
de error: se esperaba primaria-expresión antes '>' símbolo
de error: se esperaba primaria-expresión antes ')' símbolo
para cada una de las líneas con el caso declaración.
¿Alguna idea?
Gracias, Mike
líneas Wich están señalados por los errores? – Klaim
Él dice en su publicación: "para cada una de las líneas con la declaración del caso". – DeusAduro
¿Seguro que compila el código? puedo ver varios errores ¿Dónde está el tipo de devolución TypeSwitch? –