【问题标题】:C++0x issue on ICC compilationICC 编译上的 C++0x 问题
【发布时间】:2011-04-11 17:32:59
【问题描述】:
for each (auto obs in observers)
     *obs = true;

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

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

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

【问题讨论】:

    标签: c++ c++11 icc


    【解决方案1】:

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

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

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

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

    for (auto &obs: observers)
        *obs = true;
    

    【讨论】:

      【解决方案2】:

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

      for (auto& i : observers) {
         i = true;
      }
      

      【讨论】:

        猜你喜欢
        • 2014-11-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-31
        • 2012-01-27
        • 2010-10-14
        • 2011-11-10
        • 2011-02-10
        相关资源
        最近更新 更多