Пользуясь случаем: всем пользователям macOS предлагаю морально подготовиться пробовать проверять свои C, C++ проекты с помощью PVS-Studio. Ориентировочно PVS-Studio for macOS появится в начале следующего месяца.
Сравните пожалуйста два проекта, некогда имевших общую кодовую базу:
github.com/OpenSIPS/opensips
github.com/kamailio/kamailio
Недавно столкнулся со старой ошибкой в своем коде. Решил проверить, как PVS-Studio отработает мою ошибку. К сожалению он не нашел не только мою ошибку, но и более простую.

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

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

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

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