- cstddef[meta header]
- std[meta namespace]
- type-alias[meta id-type]
- cpp11[meta cpp]
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;
}
- std::nullptr_t[color ff0000]
- std::is_object[link /reference/type_traits/is_object.md]
- std::is_scalar[link /reference/type_traits/is_scalar.md]
- std::is_union[link /reference/type_traits/is_union.md]
- std::is_array[link /reference/type_traits/is_array.md]
- std::is_class[link /reference/type_traits/is_class.md]
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 [mark verified]
- GCC: 4.6.4 [mark verified]
- ICC: ??
- Visual C++: 2010 [mark verified], 2012 [mark verified], 2013 [mark verified]
- 2010, 2012では
is_scalar
<nullptr_t>
がfalse_type
(からの派生クラス)となっているバグがある。
- 2010, 2012では