codeblocks 16.01 中使用C++的nullptr
2017-04-25
1. nullptr头文件:
std::nullptr_t定义在标准头文件
2. nullptr的简介:
[转自wikipedia]
nullptr是c++11语言标准用来表示空指针的常量值。
在C语言中,空指针的值表示为#define NULL (void )0。
在C++语言中,由于对语法的类型检查更为严格,因而空指针的值就不能表示为(void )0;。例如,空指针的值表示为FILE fp=(void )0;编译报错。所以至少自C++98开始#define NULL 0,但这会在函数重载时遇到新的困难。eg.
|
|
C++11开始,定义了空指针的常值为nullptr,解决了上述函数重载问题。
在没有C++11的nullptr时,可以自己实现一个:
|
|
3. 设置codeblocks支持nullptr:
如果程序中包含nullptr,且编译时报错
error: ‘nullptr’ was not declared in this scope
那么,你的编译器可能使用的还是较早版本的c++语言标准。要让它支持nullptr,可以进行如下设置:1234567Settings -Compiler -Compiler Settings -Compiler Flags -General: 勾上:Have g++ follow the c++11 ISO c++ language standard ok
注意:我的codeblocks版本是:16.01