C ++ Code :: Blocks&#34; #include <array>&#34;导致错误

时间:2016-01-21 04:50:26

标签: c++ arrays compiler-errors codeblocks compiler-warnings

我正在使用Code :: Blocks 13.12 GNU GCC Compiler以及当我尝试编译时:

#include <iostream>
#include <array>
#include <iomanip>

using namespace std;

int main()
{
    array< int, 20 > c1={};
    array< int, 20 > c2={};
    array< int, 20 > c3={};
}

它跳转到头文件&#34; c ++ 0x_warning.h&#34;发出以下警告:

#ifndef _CXX0X_WARNING_H
#define _CXX0X_WARNING_H 1

#ifndef __GXX_EXPERIMENTAL_CXX0X__
#error This file requires compiler and library support for the \
ISO C++ 2011 standard. This support is currently experimental, and must be \
enabled with the -std=c++11 or -std=gnu++11 compiler options.
#endif
#endif

我做错了什么?对不起,我刚开始学习C ++,在搜索这个问题时我找不到任何有用的信息。

1 个答案:

答案 0 :(得分:3)

阅读错误消息,它告诉您确切的问题。您需要将-std=c++11-std=gnu++11作为编译器参数传递给std::array,这只是在C ++ 11标准中引入的。您的编译器支持的后续标准(例如-std=c++14)也可以使用。

对于CodeBlocks的特定情况,已经询问并回答了启用C ++ 11支持:How can I add C++11 support to Code::Blocks compiler?