-3

As per my previous question, I'd like to do the following:

#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;
};

However, IntelliSense tells me that identifier "T" is undefined"

What am I doing wrong?

Community
  • 1
  • 1
audiFanatic
  • 2,296
  • 8
  • 40
  • 56

1 Answers1

2

You have to substitute T by std::vector<uint8_t> everywhere in your specialization:

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;
};

I also add missing const and references.

Jarod42
  • 203,559
  • 14
  • 181
  • 302