最終更新日時(UTC): 2024年06月11日 13時45分38秒
Akira Takahashi が更新

履歴 編集

type-alias
<cstddef>

# std::nullptr_t(C++11)

    namespace std {
      using nullptr_t = decltype(nullptr);
    }

## 概要

ヌルポインタを表すポインタリテラル`nullptr`の型。

## 例

    #include <iostream>
    #include <type_traits>

    int main()
    {
      std::cout << "sizeof(nullptr_t): " << sizeof(std::nullptr_t) << std::endl; // sizeof(void*)と同サイズ

      std::cout << "is_object<nullptr_t>: " << std::is_object<std::nullptr_t>::value << std::endl;
      std::cout << "is_scalar<nullptr_t>: " << std::is_scalar<std::nullptr_t>::value << std::endl; // 0 on VS 2010～2012
      std::cout << "is_union<nullptr_t>: " << std::is_union<std::nullptr_t>::value << std::endl;
      std::cout << "is_array<nullptr_t>: " << std::is_array<std::nullptr_t>::value << std::endl;
      std::cout << "is_class<nullptr_t>: " << std::is_class<std::nullptr_t>::value << std::endl;
    }

### 出力例

    sizeof(nullptr_t): 8
    is_object<nullptr_t>: 1
    is_scalar<nullptr_t>: 1
    is_union<nullptr_t>: 0
    is_array<nullptr_t>: 0
    is_class<nullptr_t>: 0

## バージョン

### 言語

- C++11

### 処理系

- Clang: 3.1 ✅
- GCC: 4.6.4 ✅
- ICC: ??
- Visual C++: 2010 ✅, 2012 ✅, 2013 ✅
  - 2010, 2012では`is_scalar<nullptr_t>`が`false_type`（からの派生クラス）となっているバグがある。

## 関連項目

- C++11 `nullptr`