Использование шаблонной структуры внутри шаблонного класса в С++

Рейтинг: -2Ответов: 1Опубликовано: 25.07.2023

Внутри шаблонного класса мне нужно создать хеш-таблицу, хранящуюю шаблонную структуру. Но получаю ошибку: main.cpp:23:33: error: template argument 3 is invalid Cache_t <int, int, Node>cache;

Код:

template <typename T > struct Node {
    T value;
    int type;
};
template <typename T, typename KeyT, typename U> struct Cache_t{
    std::unordered_map<KeyT, U>hash;
};

int main() {
    Cache_t <int, int, <int>Node>cache;
}

Ответы

▲ 0

Общее правило - тип, потом параметр в угловых скобках.

Не <int>Node, а Node<int>.

Замените

Cache_t <int, int, <int>Node>cache;

на

Cache_t <int, int, Node<int>>cache;