目录
一、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
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 条款8 优先考虑nullptr而非0和NULL
发表评论 取消回复