Mac上的clang不支持统一初始化吗?

时间:2017-04-23 12:16:11

标签: c++ macos

Mac上的clang不支持统一初始化吗?

我尝试编译以下代码,但编译器引发错误。

#include <iostream>
#include <vector>
#include <string>

int main() {
    std::vector<int> v = {3, 1, 9, 4};
    std::cout << v[1] << std::endl;
}

错误:

vector.cpp:9:22: error: non-aggregate type 'std::vector<int>' cannot be initialized with an initializer list
    std::vector<int> v = {3, 1, 9, 4};
                     ^   ~~~~~~~~~~~~
1 error generated.

操作系统:macOS 10.12.4

编译器版本:

Apple LLVM version 8.1.0 (clang-802.0.42)
Target: x86_64-apple-darwin16.5.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

1 个答案:

答案 0 :(得分:2)

我怀疑你将代码编译为C ++ 11/14(-std=c++11-std=c++14)?如果不;去做。 Clang 确实支持您要做的事情。