2014-02-04 6 views
0

Я новичок на C++. Попытка перенести программу на Windows на Linux. Используемая платформа - unbuntu 13.03. Компилятор - g ++.ожидаемое имя шаблона перед '<' token

Вот проблемный код.

class CMapIDNames : public map< IDKey, string, CIDKeyLess > 
{ 
} mapOfIDNames; 

Ошибки: ошибка: ожидается шаблон имя до того «<» лексема

Пробовал включать <functiontal> и namespace::std, не помогает. Спасибо за ваше время.

+0

Вы неправильно указали «Ubuntu». ;) – SevenBits

ответ

4

Вы должны указать <map> и см. Как std::map. Кажется, что вам тоже не хватает заголовка <string>.

#include <map> 
#include <string> 

class CMapIDNames : public std::map< IDKey, std::string, CIDKeyLess > 
{ 
}; 

Но обратите внимание, что стандартные библиотечные контейнеры не предназначены для публичного наследования. Вы, конечно, не должны использовать их полиморфно.

+0

Спасибо, juanchopanza. Это решает проблему. Хорошего дня! – user3272549

Смежные вопросы