Hin*_*dol 19 c++ nullptr c++11
我了解到nullptr
,除了可转换为任何指针类型(但不是任何整数类型)之外,还有自己的类型std::nullptr_t
.因此可以接受一个方法重载std::nullptr_t
.
究竟为什么需要这样的过载?
tor*_*ons 24
如果多个重载接受指针类型,std::nullptr_t
则接受nullptr
参数需要重载.如果没有std::nullptr_t
重载,传递时应该选择哪个指针重载是不明确的nullptr
.
例:
void f(int *intp)
{
// Passed an int pointer
}
void f(char *charp)
{
// Passed a char pointer
}
void f(std::nullptr_t nullp)
{
// Passed a null pointer
}
Run Code Online (Sandbox Code Playgroud)
在某些特殊情况下,与nullptr_t
类型进行比较有助于指示对象是否有效。
例如,operator==
和operator!=
的重载std::function
只能nullptr_t
作为参数来判断函数对象是否为空。有关更多详细信息,您可以阅读这个问题。
归档时间: |
|
查看次数: |
4951 次 |
最近记录: |