相关疑难解决方法(0)

初始化列表在C++ 11中是否合法?

我阅读了C++入门第5版,其中说明了最新的标准支持列表初始化程序.

我的测试代码是这样的:

#include <iostream>
#include <string>
#include <cctype>
#include <vector>
using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;
using std::ispunct;
int main(int argc, char *argv[])
{
    vector<int> a1 = {0,1,2};
    vector<int> a2{0,1,2}; // should be equal to a1
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

然后我使用Clang 4.0:

bash-3.2$ c++ --version
Apple clang version 4.0 (tags/Apple/clang-421.0.60) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin12.2.0
Thread model: posix
Run Code Online (Sandbox Code Playgroud)

并像这样编译它:

c++ -std=c++11 -Wall    playground.cc   -o playground
Run Code Online (Sandbox Code Playgroud)

但是,它抱怨这样:

playground.cc:13:17: error: no matching constructor for initialization of
      'vector<int>'
    vector<int> …
Run Code Online (Sandbox Code Playgroud)

c++ initialization vector clang c++11

4
推荐指数
1
解决办法
6787
查看次数

标签 统计

c++ ×1

c++11 ×1

clang ×1

initialization ×1

vector ×1