3

以下 C++11 代码位:

std::array<float, 3> A;

获取错误消息:

array is not a member of std.

在 Visual Studio 中,单词“array”是蓝色的,表示它是一个关键字。这是 CLI 的扩展。我以为我之前通过转到Properties/C C++/Language并将“禁用语言扩展”设置为Yes 来修复它。我还将Properties/General设置为No Common Language Support。仍然没有喜悦。

如何使程序工作而不考虑array在编辑器中作为关键字的可见性?

4

2 回答 2

7

您需要包含<array>标题。

于 2012-08-16T19:39:18.277 回答
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
于 2014-04-08T23:28:32.467 回答