'nullptr'之前的预期unqualified-id

tom*_*tom 6 c++ nullptr

我试图实施BST,但std::nullptr向我显示错误:

错误:'nullptr'之前的预期unqualified-id

#include <iostream>
#include <memory>

template <typename T>
class BinTreeNode {
public: 
    BinTreeNode(T key): data {key} {
        left = std::nullptr;
        right = std::nullptr; 
    }
    ~BinTreeNode() {}
    T data;
    BinTreeNode<T>* left;
    BinTreeNode<T>* right;
};

template <typename T>
class BinTree {
public:
    BinTree(){ 
        root = std::nullptr;
    }
    ~BinTree() {}
    BinTreeNode<T>* root;
};

int main(){
    BinTree<int> tree;
}
Run Code Online (Sandbox Code Playgroud)

我试过在谷歌搜索但没有任何有意义的相关内容 std::nullptr

Ser*_*eyA 16

nullptr,不像nullptr_t,不需要std::前缀.这样做的原因是nullptr是文字,并且没有在命名空间中定义,在std那里没有定义相同的方式42.它也不需要使用任何包含指令.

另一方面,nullptr_t是一个在命名空间中定义的类型,std需要<cstddef>包含它.