Ошибка «Диапазон на основе циклов, не разрешенных в режиме C 98» в коде Visual Studio

#c

#c

Вопрос:

Я пытаюсь изучить векторы и случайно наткнулся на этот код, я попытался создать его в коде Visual Studio, но, к сожалению, он не работает.

Это было сообщение об ошибке, показанное на вкладке проблемы Это было сообщение об ошибке, показанное на вкладке проблемы

Это было сообщение об ошибке, показанное в терминале после сборки Это было сообщение об ошибке, показанное в терминале после сборки

Я погуглил сообщение об ошибке, но, похоже, не смог найти ничего, что решило бы эту проблему в VS Code. Я знаю, что цикл for может быть записан в базовой более простой форме, но есть ли способ заставить этот формат работать?

 #include <iostream>
#include <string>
#include <vector>
int main() {
    std::vector <int> vecOfInts(5);
    for (int x: vecOfInts)
    {
        std::cout << x << std::endl;
    }
}
  

Комментарии:

1. У вас старый компилятор, который по умолчанию не включает C 11. Обновите компилятор (GCC использует C 14 по умолчанию, начиная с GCC 6.1) или добавьте -std=c 11 в параметры сборки.

2. @Yksisarvinen okayy! Должен ли я добавить эту команду в tasks.json?

3. Похоже, что недавний компилятор g является gcc 10.2. Он поддерживает и предлагает C 17 -std=c 20 (что позволяет использовать части предстоящего нового стандарта C 20). К вашему СВЕДЕНИЮ: стандарты C поддерживаются в GCC . Если это возможно, я бы рекомендовал обновить. (Не то, чтобы вы должны были платить за это.) 😉

4. @Yksisarvinen Спасибо! Добавление команды в аргументы внутри задач. json решил проблему

5. @Scheff Спасибо! Я постараюсь обновить его как можно скорее. 🙂