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)
使用C++ 0x(或更确切地说是C++ 11)基于范围的for循环,您可以执行以下操作:
for (auto& i : observers) {
i = true;
}
Run Code Online (Sandbox Code Playgroud)