は、この例で考えてみましょう関数の宣言として解析されますこのように:ベクトルコンストラクタが
std::istream_iterator<std::string> it_begin(iss);
std::istream_iterator<std::string> it_end;
std::vector<std::string> vec(it_begin, it_end);
またはこのような、各パラメータの周りに括弧を置くことによって:
std::vector<std::string>
vec((std::istream_iterator<std::string>(iss)),
(std::istream_iterator<std::string>()));
あるいはC++ 11に新しい均一な初期化となぜコンパイラは、一例としてで宣言を構文解析さ
std::vector<std::string> vec { /*begin*/, /*end*/ };
関数宣言?私は最も厄介な解析について知っていますが、私は空のパラメータリストでしか起こらないと思っていました。 2番目の回避策がなぜ機能するのだろうか。
GCC 4.6.1(重要な場合)私もcomauのオンラインコンパイラで試してみました。 – jrok
次のように入力しないでください: 'std :: istream_iterator it_begin(iss)、it_end; std :: vector vec(it_begin、it_end); ' –
よく構成され、整形式でよくフォーマットされた質問です。よくやった。 :) –