template< class T >
struct is_null_pointer;
std::is_null_pointer
is a UnaryTypeTrait.
Checks whether T
is the type std::nullptr_t.
Provides the member constant value
that is equal to true, if T
is the type std::nullptr_t, const std::nullptr_t, volatile std::nullptr_t, or const volatile std::nullptr_t.
Otherwise, value is equal to false.
If the program adds specializations for std::is_null_pointer
or std::is_null_pointer_v
(since C++17), the behavior is undefined.
template< class T >
constexpr bool is_null_pointer_v = is_null_pointer<T>::value;
T
is the type std::nullptr_t (possibly cv-qualified), false otherwise
std::is_pointer is false for std::nullptr_t because it is not a built-in pointer type.
In libc++, std::is_null_pointer
is not available in C++11 mode.
#include <type_traits> static_assert(std::is_null_pointer_v<decltype(nullptr)>); static_assert(!std::is_null_pointer_v<int*>); static_assert(!std::is_pointer_v<decltype(nullptr)>); static_assert(std::is_pointer_v<int*>); int main() { }[edit] Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR Applied to Behavior as published Correct behavior LWG 2247 C++11 the type trait for detecting std::nullptr_t was missing added [edit] See also checks if a type is voidRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4