Как следующие коды, я хотел бы использовать псевдоним, чтобы избежать утомительной записи статического члена внутреннего класса NIL.Как использовать псевдоним статического внутреннего члена класса?
//in RBTree.hpp
template <typename T, typename Comp>
class RBTree{
public:
struct TreeNode{
...
static TreeNode* NIL = new TreeNode();
...
}
}
//in RBTree_IMPL.hpp
template <typename T, typename Comp>
using NIL = ???
Я хочу использовать ключевое слово «с помощью», чтобы избежать утомительного написания таких как:
//in BST.hpp
template <typename T, typename Comp>
class BST{
public:
struct TreeNode{
...
}
}
//in BST_IMPL.hpp
template <typename T, typename Comp>
using TreeNode = typename BST<T, Comp>::TreeNode;
Как выше, это будет просто. Поэтому я хочу найти способ использования статического внутреннего элемента, как указано выше. Спасибо!
'используя 'создает псевдоним типа. 'NIL' не является типом, это статический член класса. –
um, если я хочу это сделать, что мне делать? – wind2412
Создайте макрос клавиатуры для 'RBTree :: TreeNode :: NIL'. Обратите внимание, что это необходимо только за пределами области шаблонов. Внутри шаблона «TreeNode :: NIL» будет достаточно или просто «NIL» внутри области «TreeNode». Возможно, несколько «typedef RBTree :: TreeNode», кое-где, уменьшат боль. –