У меня возникли проблемы с компиляцией этого кода в Linux, но он отлично работает в Windows.проблема с шаблоном C++ в межплатформенном коде
Windows, составитель: Visual Studio 2005
Linux компилятор: GCC версии 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);
В Windows этот код работает отлично и делает именно то, чего я хочу. В Linux, я получаю ошибки:
ошибка: ожидается, первичное-выражение перед «>» лексем
ошибка: ожидается первичной экспрессией до «)» маркера
для каждой из линий с корпусом заявление.
Любые идеи?
Спасибо, Майк
Wich линии указаны ошибки? – Klaim
Он говорит в своем посте: «для каждой строки с заявлением дела». – DeusAduro
Вы уверены, что код компилируется? я вижу несколько ошибок. Где тип возврата TypeSwitch? –