c++ - 如何在基于范围的for循环中进行初始化

标签 c++ for-loop foreach compiler-errors

我试图在基于范围的for循环中使用索引,因此我创建了如下代码。我指这个网站http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0614r0.html

#include <vector>

int main(void)
{
    std::vector<double> vector1(100);

    for (std::size_t _index = 0; auto& _value : vector1)
    {
        _value = 10 + 5;    //This code is for test.
        ++_index;
    }

    return 0;
}

但是,它给了我一些错误消息(无法推断出汽车的类型,无法使用未初始化的_value等。/对不起,我的语言不是英语,因此错误消息也是如此)

为什么会这样?当我使用if语句进行这样的初始化时,
if (bool is_valid = false; is_valid)
{
    //do something
}

它工作得一样好。

最佳答案

该语法被认为是即将到来的C++ 20标准的一部分,请参见https://en.cppreference.com/w/cpp/language/range-for

当前没有符合C++ 20的编译器,因此也难怪您会遇到编译错误。

关于c++ - 如何在基于范围的for循环中进行初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53284939/

相关文章:

c++ - 错误 : anachronistic old-style base class initializer [-fpermissive]

ios - 基于引用子文件夹创建唯一数组

python - 将数据帧绑定(bind)到 for 循环中的变量会将其转换为元组?

C++ : NLopt COBYLA as compared to Matlab fmincon

c++ - 不复制就返回std::function

java - 如何使用从 for 循环获取的值作为同一方法的返回值

batch-file - 批处理脚本 - 对目录中的每个文件运行命令

java - 匿名内部类的 ClassName 相同 - obj.getClass().getName()

mysql - "foreach"循环 : Using all cores in R (especially if we are sending sql queries inside foreach loop)

c++ - boost加月行为的原理是什么?