C++ 什么是C++;0x头应该定义nullptr吗?

C++ 什么是C++;0x头应该定义nullptr吗?,c++,header,c++11,nullptr,C++,Header,C++11,Nullptr,现在C++0x就快到了,我一直在试验它,特别是使用nullptr。我还没有弄清楚,如果需要使用标准头文件,应该包含哪些标准头文件 感谢您的帮助。不需要任何标题。它是一个内置关键字(§[lex.nullptr]) 2.14.7指针文字[lex.nullptr] 指针文字: nullptr 指针文本是关键字 nullptr。它是类型为的PRV值 std::nullptr\u t。[注:std::nullptr\u t 是一个既不是 指针类型或指向成员的指针 类型;而是此类型的prvalue 是空指针

现在C++0x就快到了,我一直在试验它,特别是使用nullptr。我还没有弄清楚,如果需要使用标准头文件,应该包含哪些标准头文件


感谢您的帮助。

不需要任何标题。它是一个内置关键字(§[lex.nullptr])

2.14.7指针文字[lex.nullptr] 指针文字:
nullptr

指针文本是关键字
nullptr
。它是类型为的PRV值
std::nullptr\u t
。[注:
std::nullptr\u t
是一个既不是 指针类型或指向成员的指针 类型;而是此类型的prvalue 是空指针常量,可以为空 已转换为空指针值或 空成员指针值。请参阅4.10 和4.11.-尾注]


但是,其类型std::nullptr\u t在标题
(§[support.types]/9)中被“定义”

nullptr\t
的定义如下:

namespace std {
    typedef decltype(nullptr) nullptr_t;
}
nullptr\u t
为同义词的类型具有3.9.1和4.10中描述的特征。[注意:尽管无法获取
nullptr
的地址,但可以获取另一个作为左值的
nullptr\u t
对象的地址。-尾注]


nullptr仅受GCC 4.6或更高版本或MSVC 10支持。也许你的编译器还不够新。Centos有较旧版本的gcc,所以谢谢你的提醒。(仅供参考centos的gcc版本:5船4.1.x、6船4.4.x、7船4.8.x)谢谢!我本来是这么想的,但发现g++在我的一个单元测试中已经停止接受nullptr。我认为这是一个标题问题,但不知怎么的,我的g++版本已经从4.6(支持它)降级到了4.5(不支持)。嘿,我喜欢将
nullptr
类型定义为“类型
nullptr
的向后逻辑。