Ниже кусок кода бросает Непроверенное целочисленное значение получено из std :: stoi ошибка klocwork. Если * содержит недопустимый диапазон или нецелое значение, будет выполнен блок catch. Но мы получаем ошибку klocwork в секунду для цикла for, поскольку «значение» испорченных данных используется в границе цикла. Как исправить эту проблему?
#include <vector>
#include <string>
#include <iostream>
int main()
{
int value = 0;
std::vector<std::string> test;
test.push_back("1");
test.push_back("2");
for (std::vector<std::string>::iterator it = test.begin(); it != test.end(); ++it)
{
try
{
value = std::stoi(*it);
}
catch (...)
{
return -1;
}
for (int i = 0; i < value; i++)
{
//...
//...
}
}
return 0;
}
Задача ещё не решена.
Других решений пока нет …