問題タブ [uniform-initialization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 統一された初期化構文が Visual Studio 2012 で機能しない
c++11では、 Most Vexing Parseを回避する明示的な方法として、Uniform Initialization Syntaxが導入されました。
http://en.cppreference.comはそれをDirect List Initializationと呼んでいると思います。
とにかく、あなたがそれを何と呼んでも、 visual-studio-2012では機能しないようです。この例を考えると:
エラーが発生します:
エラー C2601:
bar
: ローカル関数の定義が不正です
代わりに行う場合:const vector<int> bar(istream_iterator<int>(foo), istream_iterator<int>());
エラーが発生します:
エラー C2228: 左側に
.front
はクラス/構造体/共用体が必要です
これは、C++11より前の回避策で回避const vector<int> bar((istream_iterator<int>(foo)), istream_iterator<int>());
できます。しかし、イライラします。Visual-studio-2012には統一初期化構文が実装されていませんか?