タグ付けされた質問 「nullptr」

13
nullptrとは正確には何ですか?
これで、C ++ 11に多くの新機能が追加されました。(少なくとも私にとって)面白くて混乱するのは、新しいnullptrです。 まあ、厄介なマクロはもう必要ありませんNULL。 int* x = nullptr; myclass* obj = nullptr; それでも、nullptr動作がわかりません。たとえば、Wikipediaの記事では次のように述べています。 C ++ 11では、これを修正するために、識別されたnullポインター定数として機能する新しいキーワード nullptrを導入しています。これはnullptr_t型であり、暗黙的に変換可能であり、任意のポインター型またはメンバーへのポインター型と比較できます。boolを除いて、暗黙的に変換したり、整数型と比較したりすることはできません。 キーワードと型のインスタンスはどうですか? また、nullptr古き良きより優れている別の例(ウィキペディア以外のもの)はあり0ますか?
570 c++  pointers  c++11  nullptr 

7
nullptrを使用する利点は何ですか?
このコードは、概念的には3つのポインターに対して同じことを行います(安全なポインター初期化)。 int* p1 = nullptr; int* p2 = NULL; int* p3 = 0; だから、ポインタを割り当てることの利点どのようなものnullptrそれらに値を代入上NULLかは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 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.