【发布时间】:2013-06-01 22:01:04
【问题描述】:
我正在尝试在 mac 上的 clang++ 上编译 C++11 列表会众初始化。
#include <iostream>
#include <list>
#include <string>
using namespace std;
int main(int argc, char *argv[]) {
list<string> aList = {"abc", "def", "xyz"};
}
这是编译命令。
clang++-mp-3.1 -std=c++11 iterator.cpp
我没有匹配的构造函数错误。
iterator.cpp:7:23: error: no matching constructor for initialization of
'std::list<string>'
std::list<string> aList = {"abc", "def", "xyz"};
^ ~~~~~~~~~~~~~~~~~~~~~
我试过 XCode
clang -v
Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin11.4.2
Thread model: posix
我也尝试使用来自端口的 clang++
clang++-mp-3.1 -v
clang version 3.1 (branches/release_31)
Target: x86_64-apple-darwin11.4.2
Thread model: posix
我得到了同样的结果。可能有什么问题?
【问题讨论】:
-
您使用过
-std=c++11或-std=c++0x标志吗? -
@H2CO3 :我有那个标志。
-
来自 svn trunk 的 clang 编译你的代码。
-
这不是聚合初始化。这是通过 initializer_list 构造函数进行的 uniform 初始化。
-
另外,您使用的是什么版本的标准库实现?