std::nullptr_t[1]是c++空指针类型的文字,nullptr.在c++11中引入的
如果两个或两个以上的重载接受不同的指针类型,过载std::nullptr_t是需要接受一个空指针参数.
#include
#include
voidf(int*pi)
{
std::cout<<"Pointertointegeroverload\n";
}
voidf(double*pd)
{
std::cout<<"Pointertodoubleoverload\n";
}
voidf(std::nullptr_tnullp)
{
std::cout<<"nullpointeroverload\n";
}
intmain(){
int*pi;double*pd;
f(pi);
f(pd);
f(nullptr);//wouldbeambiguouswithoutvoidf(nullptr_t)//f(NULL);//ambiguousoverload:allthreefunctionsarecandidates
}
Pointertointegeroverload
Pointertodoubleoverload
nullpointeroverload