Sto riscontrando qualche problema nel compilare questo codice in Linux ma funziona perfettamente in Windows.problema di modello C++ in codice multipiattaforma
di Windows compilatore: Visual Studio 2005
Linux compilatore: versione di gcc 3.4.3 20.041.212 (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);
In Windows questo codice funziona perfettamente e fa esattamente quello che voglio io. In Linux, ottengo gli errori:
errore: atteso primaria espressione prima di '>' token
errore: atteso primaria espressione prima di ')' token
per ciascuna delle linee con il caso dichiarazione.
Qualche idea?
Grazie, Mike
linee Wich sono indicati dagli errori? – Klaim
Dice nel suo post: "per ciascuna delle righe con la dichiarazione del caso". – DeusAduro
Sei sicuro che il codice viene compilato? posso vedere diversi errori. Dov'è il tipo di ritorno TypeSwitch? –