向前向声明的模板添加参数
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;
};
但是,IntelliSense 告诉我 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
和参考文献。
根据我的
#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;
};
但是,IntelliSense 告诉我 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
和参考文献。