【发布时间】:2015-12-08 00:51:24
【问题描述】:
在 VC++ 2015 中,我有一个未模板化的类,它应该有一个返回映射的模板化成员函数。
下面是一些代码:
class Registry
{
template<class configclass>
std::map<std::wstring, configclass> enumerateSubKeys(std::wstring subKeyName);
}
但是编译器会抛出错误消息:
错误 C2988:无法识别的模板声明/定义
错误 C2143:语法错误:缺少“;”在“
错误 C2238:“;”之前的意外令牌
错误 C2059:语法错误:“
我认为我的问题是必须使用一个映射,其中 wstring 必须被固定/取消模板化,但第二个参数是我的模板类。
当然,我遵循了编译器的建议,但这并没有让我更进一步。
【问题讨论】:
-
如果我在类定义的末尾添加
;,则编译良好。这些错误可能与此有关。 -
@Kevin 不包含某些头文件将无法正常编译。
-
没错,也许我错误地认为它们包含在发布的代码之上。
标签: c++