【发布时间】:2021-07-09 23:45:14
【问题描述】:
#include <vector>
#include <iostream>
using namespace std;
int main()
{
vector<int> v = {1,2,3,4};
for (int x : v)
{
cout << x << ' ';
}
return 0;
}
当我在 vscode 中运行上述代码时,我收到以下错误:
不能用初始化列表 gcc [7, 17] 初始化非聚合类型“向量”
注意 - 错误包括 gcc,即使那不是我使用的编译器。
代码在终端和 Xcode 中编译得很好,所以我知道它与 vscode 有关。我该如何解决这个问题?
注意 - 我正在使用具有以下配置的 I C/C++ IntelliSense:编译器路径 (/usr/bin/clang++) IntelliSense 模式 (macros-clang-arm64) 包含路径 (${workspaceFolder} /**) C 标准 (c17) C++ 标准 (C++17)。
【问题讨论】:
-
您是否启用了 c++11 或更高版本?
-
如何检查我是否在 VSCode 中使用 C++11 或更高版本?我一直在网上搜索一个清晰简洁的答案,但无济于事。
-
这可能是默认设置已经融入您的项目的结果,您使用的是 platformio 吗?您可能需要升级它或修复它的配置文件。
-
您的代码在最新的 gcc 中运行良好:gcc.godbolt.org/z/nqcvsecd6
-
我知道代码在在线编译器上运行良好。它在我的终端中也可以正常工作。这个问题介于 MacOS 和 VSCode 之间。
标签: c++ visual-studio-code vector initialization