新的C++ 11/14/17引入了一些新特性,相应的编译器对这些新特性的支持也逐渐完善了,这篇文章会逐步记录一些相关内容,方便以后查阅。
nullptr
关于nullptr的讨论基本上是比较容易的,网上讨论也非常多,具体可以参考两篇博客:
https://www.cnblogs.com/porter/p/3611718.html
https://blog.csdn.net/qq_18108083/article/details/84346655
这里总结一下就是,在C++里面,将NULL宏定义成了0
1 | #ifdef __cplusplus |
导致如果如果存在如下重载函数
1 | void func(void* ptr); |
那么调用时,NULL优先识别成 0 而不是 void *,这在编码时候就容易产生二义性。nullptr的出现就是为了解决这个问题。