使用Clang++初始化向量

3
我在这里找到了一个类似的问题:为什么我会得到“非聚合体无法使用初始化列表进行初始化”,但答案说现在它可以工作,但对我来说似乎并没有。代码如下:
vector<int> temp = {1,2,3,4,5};

我收到的错误信息:

test.cpp:18:14: error: non-aggregate type 'vector<int>' cannot be initialized
with an initializer list
vector<int> temp = {1,2,3,4,5};

当我尝试时:

clang++ --version

I get:

Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.2.0
Thread model: posix

最后一个线程是否正确,现在应该可以工作了,还是我在编译中犯了错误?谢谢。


1
这是C++11的特性。 - undefined
8
换句话说,按照这种方式编译:clang++ -std=c++11 program.cpp。当然,你也可以添加其他标志。 - undefined
@red_eight 在 High Sierra 上不起作用。 - undefined
@xxks-kkk 我刚刚在High Sierra上测试了一下,对我来说是可以工作的。 - undefined
@red_eight 你说得对。我在代码中犯了一些错误,导致了错误的警报。对此我感到抱歉。 - undefined
1个回答

1
默认的C++ Clang标准是C++98,不支持向量,所以请提供一个更新的版本。
示例:
clang++ main.cpp -std=c++11

这取决于Clang/LLVM的版本 - 例如,Clang 16默认使用C++17。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接