ICC编译时出现C++ 0x问题

1 c++ icc c++11

for each (auto obs in observers)
     *obs = true;
Run Code Online (Sandbox Code Playgroud)

我有这个与icc编译的问题.

error : cannot deduce "auto" type (initializer required)

请帮忙解决上述问题.谢谢.

Cha*_*esB 10

此语法在C++中无效.试试这个:

for (auto obs_iter=observers.begin(); obs_iter != observers.end(); ++obs_iter)
    **obs_iter = true;
Run Code Online (Sandbox Code Playgroud)

(这假设observers存储指向对象的指针)

如果编译器支持基于范围的for循环,则可以执行以下操作:

for (auto &obs: observers)
    *obs = true;
Run Code Online (Sandbox Code Playgroud)


Vit*_*tus 5

使用C++ 0x(或更确切地说是C++ 11)基于范围的for循环,您可以执行以下操作:

for (auto& i : observers) {
   i = true;
}
Run Code Online (Sandbox Code Playgroud)