统一初始化语法不适用于Visual Studio 2012

时间:2018-01-11 13:56:46

标签: c++ c++11 visual-studio-2012 most-vexing-parse uniform-initialization

介绍了Uniform Initialization Syntax作为解决Most Vexing Parse的明确方法。

我相信http://en.cppreference.com将其称为Direct List Initialization

无论如何,无论你怎么称呼它,它似乎都不适用于。给出这个例子:

istringstream foo("192 168 1 1");
const vector<int> bar{ istream_iterator<int>(foo), istream_iterator<int>() };

cout << bar.front() << endl;

我收到错误:

  

错误C2601:bar:本地函数定义是非法的

如果我这样做:const vector<int> bar(istream_iterator<int>(foo), istream_iterator<int>());我收到错误:

  

错误C2228:.front左边必须有class / struct / union

我可以使用前解决方法解决此问题:const vector<int> bar((istream_iterator<int>(foo)), istream_iterator<int>());但我觉得这很令人沮丧。是否为实现了统一初始化语法?

0 个答案:

没有答案