Филипп Хандельянц
@khandeliants
Тимлид C и C++ анализатора в PVS-Studio
Information
- Rating
- 4,308-th
- Location
- Тула, Тульская обл., Россия
- Works in
- Date of birth
- Registered
- Activity
Тимлид C и C++ анализатора в PVS-Studio
Information
Спасибо за отличный пример! Выписали его себе для доработок нашего анализатора:
Повторный вызов
isalnum
могла бы найти V810, но на текущий момент она ограничена специфичным паттерном. Настало время расширить её.Действительно, сравнения некорректны, однако это не UB. UB будет тогда, когда передаваемый символ не представим типом
unsigned char
или это неEOF
. У нас есть похожее диагностическое правило V698 для функцийmemcmp
,strcmp
. Подумаем или над его расширением, или над отдельным правилом для семейства функций из <cctype>.Рекомендую не обходить стороной YouTube. Там всегда найдется что-то интересное. Например, доклады с конференций, подкасты, обучающие видео. Мой личный список интересных каналов:
C++ User Group
CoreHard
CppCon
C++ Now
ACCU
C++ Weekly
Еще из мыслей – раз статический и динамический упомянули, то не забываем и про unit-тестирование :) Библиотек для этого – вагон и маленькая тележка, но лично приходилось пользоваться этим:
Google Test
Boost Test
Catch2
Также соглашусь с gasizdat, после рефакторинга у вас могут остаться куча неиспользуемых include'ов даже в предкомпилированном заголовке, а в него не стоит запихивать все и побольше.