我正在使用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 ++,在搜索这个问题时我找不到任何有用的信息。
答案 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?