我想制作一个简单的消息模板类,如下所示。我从chosen answer posted here逐字逐句地跟随结构。但是,这似乎在Visual Studio 2013中中断。
template<typename T> Message;
template<> Message <std::vector<uint8_t>>
{
public:
};
template<> Message <std::string>
{
};
IntelliSense告诉我Message is not a template
。
在前向声明中class
之前放置Message
会导致稍微好一点但同样令人讨厌的IntelliSense错误:expected and identifier
在每个模板的左括号{
之后。< / p>
template<typename T> class Message;
template<> Message <std::vector<uint8_t>>
{
public:
};
template<> Message <std::string>
{
};
我应该注意,以上所有代码当前都放在头文件中。
答案 0 :(得分:1)
您还需要在模板专精中加入class
关键字。我不知道为什么链接的答案不会这样做。
template<typename T> class Message;
template<> class Message <std::vector<uint8_t>>
{
public:
};
template<> class Message <std::string>
{
};