Mam problem z uzyskaniem tego kodu do kompilacji w systemie Linux, ale działa on doskonale w systemie Windows.C++ Problem z szablonem w kodzie międzyplatformowym
Okna kompilator Visual Studio 2005
Linux kompilator: gcc w wersji 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);
W Windows ten kod działa doskonale i robi dokładnie czego chcę. W Linuksie, dostaję błędy:
błędzie: Oczekuje podstawową ekspresję przed „>” tokena
błędzie: Oczekuje pierwotnej ekspresji przed „)” tokena
dla każdej linii z przypadku komunikat.
Wszelkie pomysły?
Dzięki, Mike
linie Wich są wskazywane przez błędy? – Klaim
Mówi w swoim poście: "dla każdego wiersza z opisem sprawy." – DeusAduro
Jesteś pewien, że ten kod się kompiluje? widzę kilka błędów. Gdzie jest typ zwrotu TypeSwitch? –