vc ++ 2010“数组不是std的成员”错误

时间:2012-08-16 19:37:58

标签: c++ arrays visual-studio-2010 stl c++11

以下C ++ 11代码:

std::array<float, 3> A;

收到错误消息:

array is not a member of std.

在Visual Studio中,单词“array”为蓝色,表示它是关键字。这是CLI的扩展。我以前通过转到属性/ C ++ /语言并将“禁用语言扩展”设置为是来修复过它。我还有属性/常规< / em>设置为无公共语言支持。仍然没有快乐。

如何将程序作为关键字忽略编辑器中array的可见性?

2 个答案:

答案 0 :(得分:7)

您需要添加<array>标题。

答案 1 :(得分:0)

即使使用带有g ++的Ubuntu上的'array'指令也可以重现此错误:

例如,这个C ++代码:

#include <iostream>
#include <array>

using namespace std;
int main(){
    std::array<int, 5> myints;
    cout << myints.size();
}

编译并运行如下:

g++ -o s s.cpp
./s

打印错误:

/usr/include/c++/4.6/bits/c++0x_warning.h:32:2: error: #error This 
file requires compiler and library support for the upcoming ISO 
C++ standard, C++0x. This support is currently experimental, and 
must be enabled with the -std=c++0x or -std=gnu++0x compiler options.
s.cpp: In function ‘int main()’:
s.cpp:6:5: error: ‘array’ is not a member of ‘std’

解决方案:使用编译器选项-std=c++0x编译它:

g++ -o s s.cpp -std=c++0x
./s

然后程序正确打印:

5