как сделать инициализацию в цикле на основе диапазона - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь использовать индексы для цикла на основе диапазона, поэтому я создал код следующим образом. Я имею в виду этот веб-сайт http://www.open -std.org / jtc1 / sc22 / wg21 / docs / documents / 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;
}

Тем не менее, он дает мне несколько сообщений об ошибках (не может определить тип auto, не может использовать неинициализированное _value и т. Д. / Извините, мой язык не английский, как и сообщения об ошибках)

Почему это происходит? Когда я использую оператор if с такой инициализацией,

if (bool is_valid = false; is_valid)
{
    //do something
}

все работало так же хорошо.

1 Ответ

0 голосов
/ 13 ноября 2018

Этот синтаксис предположительно является частью будущего стандарта C ++ 20, см. https://en.cppreference.com/w/cpp/language/range-for

В настоящее время нет совместимых с C ++ 20 компиляторов, поэтому неудивительно, что вы получаете ошибки компиляции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...