我正在尝试在mac上的clang ++上编译C ++ 11 list congregation初始化。
#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
我得到了相同的结果。可能有什么问题?
答案 0 :(得分:0)
我试过icc,得到了同样的错误。我想问题是模板而不是编译器。 icc使用现有模板/usr/include/c++/4.2.1,并且该实现不完全支持c ++ 11。
我从端口
尝试了gcc 4.8sudo port install gcc48
工作正常
/opt/local/bin/g++-mp-4.8 -std=c++11 Iterator.cpp