2

我需要使用在 C++11 之前编写的库,其中一个函数可以返回类型转换 NULL。我正在尝试按照 C++11 标准编写我的程序,所以在防止空引用时,我会使用类似的东西:

if(retPtr==nullptr){...}

这是一个安全的比较吗?为了参数,在 (int*)NULL 和 (int*)nullptr 之间说?还是我应该只使用:

if(retPtr){...}?
4

1 回答 1

3

NULL可以安全地将类型转换的先前返回与更新的返回进行比较nullptr吗?

是的。来自cppreference.com

存在从nullptr任何指针类型的空指针值和任何指向成员类型的指针的隐式转换。std::nullptr_t任何类型的值以及宏NULL、空指针常量都存在类似的转换。

正如Praetorian 好心指出的那样,标准的相应部分是4.10 [conv.ptr]

另请参阅nullptr 到底是什么?

于 2014-06-09T16:03:38.627 回答