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

我在用icc编译时遇到问题。

错误:无法推断“自动”类型(需要初始化程序)

请帮助解决上述问题。谢谢。

最佳答案

此语法在C++中无效。尝试以下方法:

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

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

如果您的编译器支持基于范围的for循环,则可以执行以下操作:
for (auto &obs: observers)
    *obs = true;

10-06 02:38