向前向声明的模板添加参数
Adding parameters to forward-declared templates
根据我之前的问题,我想做以下事情:
#include <vector>
#include<string>
#include <cstdint>
template<typename T> class Message;
template<> class Message <std::vector<uint8_t>>
{
public:
const T getKey() { return key; };
const T getMessage() { return message; };
protected:
T key;
T message;
};
然而,智能感知告诉我identifier "T" is undefined"
我做错了什么?
你必须在你的专门化中处处用std::vector<uint8_t>
代替T
:
template<> class Message <std::vector<uint8_t>>
{
public:
const std::vector<uint8_t>& getKey() const { return key; };
const std::vector<uint8_t>& getMessage() const { return message; };
protected:
std::vector<uint8_t> key;
std::vector<uint8_t> message;
};
我还添加了缺失的const
和参考。
相关文章:
- 可变参数模板与使用元组在参数中添加不同的数据对
- 如何在OMNET++中添加专门的命令行参数?
- 如何将带有参数的愚蠢函数添加到愚蠢的执行器中?
- 为模板参数包添加别名
- 如何使用主参数添加更多堆栈?
- C++中添加参数的沙漏
- 为什么在函数参数前面添加 const 会出错?
- 为什么我们需要在优先级队列声明中添加一个向量作为参数?
- 具有可变参数包的模板化可添加类
- 添加可变参数函数的错误结果
- 在对象序列化期间添加额外参数是否有更好的方法?
- 在C++中,如何将参数添加到"Args&&... args"参数列表中?
- C++添加检查以避免读取两个参数
- 如何添加参数-Fvisibility =默认为cmake
- 我可以为模板类的模板类型添加参数吗?
- 添加参数后"模板参数推断/替换失败"
- 添加参数或添加函数
- Cocos2d-x:在callfuncN_selector中添加参数
- 我想创建一个std::函数,但增量地添加参数
- 向前向声明的模板添加参数