std::is_null_pointer 如何使用
时间: 2023-05-26 13:03:42 浏览: 166
std::is_null_pointer 是 C++ 11 中的一个类型特别判断类模板,用来判断一个类型是否为空指针类型。其定义如下:
```
template <class T>
struct is_null_pointer : public std::integral_constant<bool, std::is_same<std::nullptr_t, typename std::remove_cv<T>::type>::value> {};
```
is_null_pointer 的模板参数是要检查的类型 T,如果 T 是空指针类型,则 is_null_pointer<T>::value == true,否则 is_null_pointer<T>::value == false。
使用 is_null_pointer 非常简单,只需要将要判断的类型作为模板参数传递给 is_null_pointer,然后通过其 value 成员来判断。例如:
```
#include <iostream>
#include <type_traits>
int main() {
std::cout << std::is_null_pointer<int*>::value << std::endl; // false
std::cout << std::is_null_pointer<std::nullptr_t>::value << std::endl; // true
return 0;
}
```
这段代码中,我们首先输出了 int* 的 is_null_pointer 的 value,结果为 false,说明 int* 不是空指针类型;而后输出了 std::nullptr_t 的 is_null_pointer 的 value,结果为 true,说明 std::nullptr_t 是空指针类型。
阅读全文