c++ - nullptr 未在带有 c++11 支持的 scopt 中声明

标签 c++ c++11 gcc nullptr

我已经安装: gcc 版本 4.8.2 (Ubuntu 4.8.2-19ubuntu1)

作为 IDE,我使用 eclipse CDT 或 Code::Blocks,哪个都不重要。我现在会坚持使用 Code::Blocks。如果我在代码中使用空指针,我会得到: nullptr 未在此范围内声明

所有与研究相关的交叉帖子只是说,如果编译器支持 C++11(版本 4.8.2 应该支持),添加

-std=c++11 

作为参数。我在这两个IDE中都没有转过错误信息。在 CodeBlocks 中,这是由 设置 -> 编译器(选择 Gnu GCC 编译器)并检查: 让g++遵循C++11 ISO C++语言标准

我仍然收到错误消息。

最佳答案

在使用 nullptr 并使用 -std=c++11 标志进行编译时,我在 gcc 4.8.2 中遇到了类似的问题。

事实证明,我在 -std=c++11 之后出现了 -ansi 标志,这使得 gcc 使用 ansi 编译器选项并默默地忽略 -std=c++11。删除 ansi 标志或任何其他冲突的 -std 标志,如 -std=c90 或 -std=iso9899:1990,就可以解决问题。

关于c++ - nullptr 未在带有 c++11 支持的 scopt 中声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26885455/

相关文章:

C++类成员函数命名规则

c++ - 控制到达非空函数的结尾在 xcode 上是错误的,但在 gcc 上不是错误

C++11 删除类类型?

c++ - clang 3.5 constexpr 不一致 - 使用 double 而不是 int 时出错

c++ - 为什么我的并行任务管理这么慢?

c - 局部变量内存和分配的内存位置

c++ - 如何在 g++ 中使用不同的 STL

c++ - <locale> 中的 "ctype"函数抛出 std::bad_cast

c++ - 为什么 C 可以在没有其库的情况下编译 time()?

c++ - 为什么在此代码中出现运行时错误SIGSEGV