1
for each (auto obs in observers)
     *obs = true;

私はこれをiccでコンパイルすることに問題があります。

エラー:「自動」タイプを推測できません(初期化子が必要です)

上記の問題の解決にご協力ください。ありがとう。

4

2 に答える 2

10

この構文は C++ では無効です。代わりにこれを試してください:

for (auto obs_iter=observers.begin(); obs_iter != observers.end(); ++obs_iter)
    **obs_iter = true;

observers(これは、オブジェクトへのポインターを格納することを前提としています)

コンパイラが範囲ベースの for ループをサポートしている場合は、次の操作を実行できます。

for (auto &obs: observers)
    *obs = true;
于 2011-04-11T17:41:42.887 に答える
5

C++0x (または C++11) の範囲ベースの for ループを使用すると、次のことができます。

for (auto& i : observers) {
   i = true;
}
于 2011-04-11T17:47:16.023 に答える