Обновить
100
Vladislav Stolyarov@Stolyarrr

Разработчик

22
Подписчики
Отправить сообщение

На этапе написания статьи я об этом не задумывался, стоило бы поменять название. Спасибо за комментарий, в следующий раз буду внимательнее

В ближайшее время таких планов нет а так, всё зависит от заинтересованности пользователей

Дела хорошо, но, конечно, всегда есть куда расти. Несколько диагностических правил, которые сразу пришли на ум:

V828. Decreased performance. Moving an object in a return statement prevents copy elision.
V833. Using 'std::move' function's with const object disables move semantics.
V1017. Variable of the 'string_view' type references a temporary object, which will be removed after evaluation of an expression.

Спасибо за замечание по поводу сравнения, поправил в документации. По поводу отсутствия 0-символа, мне кажется, это уже совсем частный случай)
Да, если написать условие, то мы перестанем выдавать ложное срабатывание.

После обнаружения данного срабатывания мы добавили его, как пример, в документацию V645 и там предлагаем такой вариант фикса:

size_t textSize = strlen(a.consoleText);
if (sizeof(a.consoleText) - textSize > 5)
{
     strncat(a.consoleText, inputBuffer, 
              sizeof(a.consoleText) - textSize - 5);
}
Спасибо за фидбек! Учту при написании следующих статей.
Спасибо, учту
Также, если не хочется создавать строчку через итераторы, как я в примере, то можно позвать ещё одну перегрузку и написать, так:

list.emplace_back(str, pos1, pos2 - pos1);
Спасибо за замечание, вы действительно правы, просто замена push_back на emplace_back не даст выигрыша в производительности и по моему описанию предупреждения было не особо понятно что я имел в виду. Более подробно расписал пример N1.
Здравствуйте, с точки зрения человека, читающего код — это безусловно полезная практика, как минимум может защитить от двойного освобождения памяти (выстрел в ногу, защита). Но по факту такое обнуление компилятор, скорее всего, оптимизирует. А, вообще, я бы порекомендовал пользоваться умными указателми с явной семантикой владения и выделения памяти.
В среднесрочной перспективе поддержка плагина не планируется, но сам способ запуска анализатора таким образом можем исследовать и написать по итогу статью-гайд. Там, скорее всего, достаточно будет позвать консольную версию анализатора по аналогии с GitLab, Azure, TeamCity и т.д.
Спасибо за замечание, поправил.
Вы имеете в виду интеграцию с GitHub Actions?
2

Информация

В рейтинге
Не участвует
Откуда
Тула, Тульская обл., Россия
Работает в
Зарегистрирован
Активность