Code::Blocks 12.11 error: ‘nullptr’ was not declared in this scope&GNU GCC -std=gnu++0x

C++primer英文版(第五版)p54 Null Pointers章节:Modern C++ programs generally should avoid using NULL and use nullptr instead.本人通俗理解为指针初始化尽量用nullptr而避免用NULL。于是乎用Code::Blocks敲敲代码,问题来了。

error: ‘nullptr’ was not declared in this scope

于是网上Google答案,一大堆英文,最后大概了解到是GNU GCC编译器的问题,而不是Code::Blocks这个IDE问题,只需要在编译器里敲入命令行-std=gnu++0x。解决方法:Code::Blocks集成了GNU GCC编译器,所以 菜单栏->Setting->compiler…,选择Global compiler settings页面,页面上部selected compiler选择GNU GCC Comiler,然后页面选择中部选择Compiler settings->Compiler Flags,勾选Have g++ follow the coming C++0x ISO C++ language standard [-std=gnu++0x],图片一切明了:

GNU GCC -std=gnu++0x

好了,接下来再编译就成功啦!O(∩_∩)O~

  1. I now have a shorter error code:) g -std=c 0x test.cpp test.cpp: In function ‘int main()’: test.cpp:9: error: ‘default_random_engine’ is not a member of ‘std’ test.cpp:9: error: expected ‘;’ before ‘generator’ test.cpp:14: error: ‘generator’ was not declared in this scope looks like gnu still dont recognize std::macros from <random>. Using -std=gnu 0x returns the same error.