close
名前空間
変種

ポインタリテラル nullptr

提供: cppreference.com
 
 
C++言語
一般的なトピック
フロー制御
条件付き実行文
繰り返し文 (ループ)
ジャンプ文
関数
関数宣言
ラムダ関数宣言
inline 指定子
例外指定 (C++20未満)
noexcept 指定子 (C++11)
例外
名前空間
指定子
decltype (C++11)
auto (C++11)
alignas (C++11)
記憶域期間指定子
初期化
代替表現
リテラル
ブーリアン - 整数 - 浮動小数点
文字 - 文字列 - nullptr (C++11)
ユーザ定義 (C++11)
ユーティリティ
属性 (C++11)
typedef 宣言
型エイリアス宣言 (C++11)
キャスト
暗黙の変換 - 明示的な変換
static_cast - dynamic_cast
const_cast - reinterpret_cast
メモリ確保
クラス
クラス固有の関数特性
特別なメンバ関数
テンプレート
その他
 
 

構文

nullptr (C++11以上)

説明

キーワード nullptr はポインタリテラルを表します。 これは std::nullptr_t 型の prvalue です。 nullptr からあらゆるポインタ型およびあらゆるメンバポインタ型への暗黙の変換が存在します。 同様の変換があらゆるヌルポインタ定数 (std::nullptr_t 型の値およびマクロ NULL など) に対して存在します。

どのように nullptr がテンプレート関数を通した転送を可能とするかをデモンストレーションします。

#include <cstddef>
#include <iostream>

template<class F, class A>
void Fwd(F f, A a)
{
    f(a);
}

void g(int* i)
{
    std::cout << "Function g called\n";
}

int main()
{
    g(NULL);           // Fine
    g(0);              // Fine

    Fwd(g, nullptr);   // Fine
//  Fwd(g, NULL);  // ERROR: No function g(int)
}

出力:

Function g called
Function g called
Function g called

キーワード

nullptr

関連項目

処理系定義のヌルポインタ定数
(マクロ定数) [edit]
(C++11)
ヌルポインタリテラル nullptr の型
(typedef) [edit]

参考文献

  • C++11 standard (ISO/IEC 14882:2011):
  • 4.10 Pointer conversions [conv.ptr]