Я пытался создать пример кода в Microsoft Visual Studio, который выглядит так
int main()
{
const size_t size = 10;
int arr[size];
for (size_t i = 0; i < size; ++i)
arr[i] = i;
return 0;
}
Теперь JetBrains ResharperC ++ выдает следующее предупреждение в строке arr[i] = i;
Не используйте индекс массива, если индекс не является целочисленным константным выражением; используйте вместо этого gsl :: at ()
Я не понимаю, что я имею в виду и как устранить это предупреждение.
Поскольку эту схему я использовал довольно часто, я немного обеспокоен предупреждением.
Может ли кто-нибудь посоветовать или указать мне правильное направление?
РЕДАКТИРОВАТЬ: изменение цикла на:
for (size_t i = 0; i < size; ++i)
arr[i] = 0;
по-прежнему выдает предупреждение.
an_array.at(index)
эквивалентноif (index>=an_array.size()) throw a_logical_error{}; return an_array[index];
- person Oliv   schedule 17.08.2018