什么C ++ 0x标头应该定义nullptr?

时间:2011-04-05 05:37:18

标签: c++ header c++11 nullptr

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

感谢任何帮助。

1 个答案:

答案 0 :(得分:20)

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

  

2.14.7指针文字[lex.nullptr]

     
    

指针字面:
    nullptr

  
     

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


然而,它的类型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对象的地址作为左值。 -endnote