• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    type-alias
    <cstddef>

    std::nullptr_t

    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(からの派生クラス)となっているバグがある。

    関連項目