Comme les codes suivants, je voudrais utiliser un alias pour éviter l'écriture fastidieuse du membre statique de la classe interne NIL.Comment utiliser un alias du membre de la classe interne statique?
//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 = ???
Je veux utiliser le mot-clé « en utilisant » pour éviter l'écriture fastidieuse tels que:
//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;
Comme ci-dessus, il sera simple. Donc, je veux trouver un moyen d'utiliser un membre interne statique comme ci-dessus. THX!
'l'aide 'crée un alias de type. 'NIL' n'est pas un type, c'est un membre de classe statique. –
euh, si je veux faire ça, que dois-je faire? – wind2412
Créez une macro de clavier pour 'RBTree :: TreeNode :: NIL'. Notez que cela n'est nécessaire qu'en dehors de la portée des modèles. À l'intérieur du modèle, 'TreeNode :: NIL' suffira, ou juste' NIL' dans la portée de 'TreeNode'. Peut-être quelques 'typedef RBTree :: TreeNode', ici et là, vont diminuer la douleur. –