Блог компании PVS-Studio
Информационная безопасность
Тестирование IT-систем
Управление проектами
Управление разработкой
Комментарии 5
+2
Пользуясь случаем: всем пользователям macOS предлагаю морально подготовиться пробовать проверять свои C, C++ проекты с помощью PVS-Studio. Ориентировочно PVS-Studio for macOS появится в начале следующего месяца.
0
Недавно столкнулся со старой ошибкой в своем коде. Решил проверить, как PVS-Studio отработает мою ошибку. К сожалению он не нашел не только мою ошибку, но и более простую.

Простой вариант:
std::vector<int> a;
int b = a.front();

(причем вариант «int b = a[0];» детектируется).

Более сложный вариант:
std::vector<int> a = { 3 };
a.assign(10, a.front());
0
На здоровье.

Кроме assign/front, еще есть несколько функций приводящих к таким же проблемам.
Да и контейнер такой не только вектор.
Только полноправные пользователи могут оставлять комментарии. , пожалуйста.