8

C++0x がもうすぐ登場するので、私はそれを試しており、特に nullptr を使用しています。標準ヘッダー ファイルを使用する必要がある場合に、どの標準ヘッダー ファイルを含めればよいかわかりません。

どんな助けでも大歓迎です。

4

1 に答える 1

20

ヘッダーは必要ありません。これは組み込みキーワードです (§[lex.nullptr])。

2.14.7 ポインタリテラル [lex.nullptr]

ポインタリテラル:
        nullptr

ポインタ リテラルはキーワード nullptrです。タイプの prvalue です std::nullptr_t。[注: std::nullptr_t は、ポインター型でもメンバー型へのポインターでもない特殊な型です。むしろ、この型の prvalue はヌル ポインター定数であり、ヌル ポインター値またはヌル メンバー ポインター値に変換できます。4.10 と 4.11 を参照してください。—文末脚注]


ただし、そのタイプstd::nullptr_tはヘッダーで「定義」されています<cstddef>(§[support.types]/9)。

nullptr_tは次のように定義されます。

namespace std {
    typedef decltype(nullptr) nullptr_t;
}

がシノニムである型nullptr_tは、3.9.1 および 4.10 で説明されている特性を持っています。[:nullptrのアドレスは取得できませんnullptr_tが、左辺値である別のオブジェクトのアドレスは取得できます。—文末脚注]

于 2011-04-05T05:38:59.057 に答える