8

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

任何帮助表示赞赏。

4

1 回答 1

20

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

2.14.7 指针文字 [lex.nullptr]

指针字面量:
        nullptr

指针文字是关键字 nullptr。它是类型的prvalue std::nullptr_t。[注意: std::nullptr_t 是一种独特的类型,既不是指针类型也不是指向成员类型的指针;相反,这种类型的纯右值是一个空指针常量,可以转换为空指针值或空成员指针值。见 4.10 和 4.11。——尾注]


std::nullptr_t然而,它的类型是在标题中“定义”的<cstddef>(§[support.types]/9)。

nullptr_t定义如下:

namespace std {
    typedef decltype(nullptr) nullptr_t;
}

作为同义词的类型nullptr_t具有 3.9.1 和 4.10 中描述的特征。[注意:虽然nullptr不能取 的地址,但可以取另一个nullptr_t左值对象的地址。——尾注]

于 2011-04-05T05:38:59.057 回答