nullptr
生の任意のポインター型に変換できる型である std::nullptr_tのnullポインター定数を示します。ヘッダーをインクルードせずに nullptr キーワードを使用できますが、コードの型 std::nullptr_tを使用すると、ヘッダー **<cstddef>**を含めることによって、これを定義する必要があります。
[!メモ]
nullptr のキーワードは、マネージ コード アプリケーションのC++/CLIで定義され、ISO標準C++のキーワードと互換性がありません。コードがマネージ コードを対象とする [/clr] のコンパイラ オプションを使用してコンパイルする可能性がある場合、コンパイラはネイティブC++の解釈を使用することを保証する必要のあるコード行を使用 __nullptr。詳細については、「nullptr」を参照してください。
解説
NULL を使用しないか、またはnullポインター定数として0 (0)、ゼロ。; nullptr は、悪用するには、受けやすく、ほとんどの場合、より適切に機能します。たとえば、func(std::pair<const char *, double>)は、を func(std::make_pair(NULL, 3.14)) を呼び出すと、コンパイル エラーになります。マクロはNULLに 0機能 () のstd::pair<const char *, double> のパラメーターの型に変換可能ではない呼び出し std::make_pair(0, 3.14) が std::pair<int, double>を返すように抽出します。std::make_pair(nullptr, 3.14) が std::pair<std::nullptr_t, double>を返すため func(std::make_pair(nullptr, 3.14)) のコンパイルを std::pair<const char *, double>に変換できる正常に呼び出すこと。