繁体   English   中英

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

[英]how to do initialization in range-based for loop

我试图在基于范围的 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 的编译器,所以难怪您会遇到编译错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM