如何定义nullptr?

时间:2018-08-18 20:30:42

标签: c++ c++11 nullptr

有效的现代C ++ 中,“第8项:将nullptr优先选择为0和NULL。”,第59页,它说:

  

nullptr的实际类型是std::nullptr_t,在一个极好的循环定义中,std::nullptr_t被定义为nullptr的类型。

一个奇妙的循环定义?

怎么回事?

1 个答案:

答案 0 :(得分:2)

简而言之,nullptr是可以分配给任何类型的指针的值,并且在布尔上下文中为false(与大多数new / {{1}的指针不同)不同},或引用有效对象),尽管它本身是有效的指针,但对其进行取消引用会导致UB的出现(与增加/减少一样),并且它是单例类型malloc的唯一值。

这样的事情。