Ich habe einige Probleme mit diesem Code auf Linux kompilieren, aber es funktioniert perfekt in Windows.C++ Vorlage Problem in Cross-Plattform-Code
Windows-Compiler: Visual Studio 2005
Linux-Compiler gcc Version 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 Dieser Code funktioniert perfekt und genau das tut, was ich will. In Linux, erhalte ich die Fehler:
Fehler: erwartete Primärausdruck vor ‚>‘ Token
Fehler: erwartete Primärausdruck vor ‚)‘ token
für jede der Leitungen mit dem Fall Erklärung.
Irgendwelche Ideen?
Danke, Mike
Wich Linien werden die Fehler angezeigt? – Klaim
Er sagt in seinem Beitrag: "für jede Zeile mit der Case-Anweisung." – DeusAduro
Sind Sie sicher, dass der Code kompiliert? Ich kann mehrere Fehler sehen. Wo ist der TypeSwitch-Rückgabetyp? –