在VC ++ 2015中,我有一个untemplated类,它应该有一个模板化成员函数,它返回一个map。
以下是一些代码:
class Registry
{
template<class configclass>
std::map<std::wstring, configclass> enumerateSubKeys(std::wstring subKeyName);
}
但编译器会抛出错误消息:
错误C2988:无法识别的模板声明/定义
错误C2143:语法错误:缺少&#34 ;;&#34;之前&#34;&lt;&#34;
错误C2238:&#34;;&#34;
之前的意外令牌
错误C2059:语法错误:&#34;&lt;&#34;
我认为我的问题是必须使用一个地图,其中wstring必须被修复/未模板化,但第二个参数是我的模板类。
当然,我遵循了编译器的建议,但这并没有让我更进一步。
答案 0 :(得分:1)
您需要@{
ViewBag.Title = "TestPage";
}
<h2>TestPage</h2>
<input type="submit" name="name" value="Click me" id="btn"/>
<div id="d1"></div>
<script type="text/javascript">
$('#btn').click(function(){
alert('clicked');
});
</script>
并在类声明的末尾添加一个分号。
正如@Kevin和@juanchopanza在评论中指出的那样,你只是缺少一个分号,可能是一个包含。使用VS2013中的以下程序:
#include <map>
我收到了您列出的各种错误:
错误C2143:语法错误:缺少';'在'&lt;'之前 错误C2238:';'之前的意外标记 错误C2988:无法识别的模板声明/定义
错误C2059:语法错误:'&lt;'
还有:
错误C2039:'map':不是'std'的成员
为class Registry
{
template<class configclass>
std::map<std::wstring, configclass> enumerateSubKeys(std::wstring subKeyName);
}
int main()
{
}
添加包含后,错误会减少:
std::map
错误C2628:'注册表'后跟'int'是非法的(你忘了';'?)
这表明你在课堂宣言结束时遗漏了一个分号。