nullptr
nullptr
キーワードは、任意の生ポインター型に変換可能な型 std::nullptr_t
の null ポインター定数を指定します。 ヘッダーを含めずにキーワード nullptr
を使用できますが、コードで型 std::nullptr_t
を使用する場合、ヘッダー <cstddef>
を含めることにより定義を行う必要があります。
Note
また nullptr
キーワードは、マネージド コード アプリケーション用に C++/CLI でも定義されており、ISO 標準の C++ キーワードに対して互換性がありません。 マネージド コードをターゲットとする /clr
コンパイラ オプションを使用してコードをコンパイルする可能性がある場合は、コンパイラでネイティブな C++ 解釈を使用することを保証する必要があるすべてのコード行で __nullptr
を使用します。 詳細については、「nullptr
(C++/CLI と C++/CX)」を参照してください。
解説
null ポインター定数として NULL
またはゼロ (0
) を使用しないでください。nullptr
は悪用に対する脆弱性が少なく、大半の状況でより適切に動作します。 たとえば、func(std::pair<const char *, double>)
が指定されている場合に、func(std::make_pair(NULL, 3.14))
を呼び出すとコンパイラ エラーが発生します。 マクロ NULL
は 0
に展開します。したがって、std::make_pair(0, 3.14)
の呼び出しでは、func
の std::pair<const char *, double>
パラメーター型に変換可能ではない std::pair<int, double>
が返されます。 func(std::make_pair(nullptr, 3.14))
は std::make_pair(nullptr, 3.14)
に変換可能な std::pair<std::nullptr_t, double>
を返すので、std::pair<const char *, double>
の呼び出しは正常にコンパイルされます。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示