'<'之前的预期模板名称代币

时间:2014-02-04 20:26:17

标签: c++ linux templates

我是C ++的新手。试图将基于Windows的程序移植到linux。我使用的平台是Ubuntu 13.03。编译器是g ++。

这是有问题的代码。

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

错误是:

  

错误:在'&lt;'标记

之前预期的模板名称

试图包含<functiontal>namespace::std,但没有帮助。

1 个答案:

答案 0 :(得分:5)

您需要添加<map>并将其引用为std::map。您似乎也错过了<string>标题。

#include <map>
#include <string>

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

但请注意,标准库容器不是为公共继承而设计的。你当然不应该多态地使用它们。