Questions tagged «nullptr»

13
nullptr到底是什么?
现在,我们有了具有许多新功能的C ++ 11。新的(至少对我而言)是一个有趣而令人困惑的人nullptr。 好了,不再需要讨厌的宏NULL。 int* x = nullptr; myclass* obj = nullptr; 不过,我仍无法了解其nullptr工作原理。例如,维基百科文章说: C ++ 11通过引入一个新的关键字作为一个独特的空指针常量:nullptr 来纠正此问题。它的类型为nullptr_t,可以隐式转换,并且可以与任何指针类型或指针到成员类型进行比较。除了布尔型,它不能隐式转换或与整数类型媲美。 关键字和类型实例如何? 此外,您是否还有另一个示例(除了Wikipedia之外)nullptr优于旧的示例0?
570 c++  pointers  c++11  nullptr 

7
使用nullptr有什么优势?
这段代码在概念上对三个指针(安全指针初始化)执行相同的操作: int* p1 = nullptr; int* p2 = NULL; int* p3 = 0; 那么,分配指针nullptr比给它们分配值NULLor有0什么好处?
163 c++  c++11  null  c++-faq  nullptr 


1
C ++ nullptr实现如何工作?
我很好奇如何nullptr运作。标准N4659和N4849说: 它必须有类型std::nullptr_t; 您不能使用其地址; 它可以直接转换为指针和指向成员的指针; sizeof(std::nullptr_t) == sizeof(void*); 其转换bool为false; 可以将其值转换为与相同的整数类型(void*)0,但不能向后转换; 因此,它基本上是一个常量,其含义与相同(void*)0,但类型不同。我std::nullptr_t在设备上找到的实现,如下所示。 #ifdef _LIBCPP_HAS_NO_NULLPTR _LIBCPP_BEGIN_NAMESPACE_STD struct _LIBCPP_TEMPLATE_VIS nullptr_t { void* __lx; struct __nat {int __for_bool_;}; _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR nullptr_t() : __lx(0) {} _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR nullptr_t(int __nat::*) : __lx(0) {} _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR operator int __nat::*() const {return 0;} template <class _Tp> _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR operator …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.