目录
一、nullptr,0,NULL都是什么类型
二、正确调用函数指针版本的函数重载
三、模板推导时使用不能混用
一、nullptr,0,NULL都是什么类型
auto a = 0; -> int
auto a = NULL; -> long
auto a = nullptr; -> std::nullptr_t
二、正确调用函数指针版本的函数重载
void f(int);
void f(bool);
void f(void*);f(0); -> void f(int);
f(NULL); -> 错
f(nullptr); ->void f(void*);
三、模板推导时使用不能混用
template<typename FuncType,Typename PtrType>
decltype(auto) func(FuncType f, PtrType ptr) {return f(ptr);
}bool f3(int* p);
auto result = func(f3, nullptr); //此处只能用nullptr