У меня есть шаблонный класс BST и структура узла следующим образом:
template <typename T>
struct Node {
T value;
Node* left;
Node* right;
};
template <typename Node, typename T>
class BST {
public:
Node* m_root;
public:
BST() {
m_root = NULL;
}
bool find(T value, Node** parent, Node** location) {/* ... */}
}
Мне нужно знать аргумент шаблона структуры внутри класса BST, и я создаю его экземпляр следующим образом:
BST<Node<int>, int>* bst = new BST<Node<int>, int>();
Что немного некрасиво.
Я бы хотел
BST<Node<int>>* bst = new BST<Node<int>>();
и выведите параметр шаблона T в BST из параметра структуры шаблона.
Я пытался template < template<typename T> class Node>
, который, похоже, не работает (T
неизвестно в объявлении find()
).