Дела хорошо, но, конечно, всегда есть куда расти. Несколько диагностических правил, которые сразу пришли на ум:
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.
Спасибо за замечание, вы действительно правы, просто замена push_back на emplace_back не даст выигрыша в производительности и по моему описанию предупреждения было не особо понятно что я имел в виду. Более подробно расписал пример N1.
Здравствуйте, с точки зрения человека, читающего код — это безусловно полезная практика, как минимум может защитить от двойного освобождения памяти (выстрел в ногу, защита). Но по факту такое обнуление компилятор, скорее всего, оптимизирует. А, вообще, я бы порекомендовал пользоваться умными указателми с явной семантикой владения и выделения памяти.
В среднесрочной перспективе поддержка плагина не планируется, но сам способ запуска анализатора таким образом можем исследовать и написать по итогу статью-гайд. Там, скорее всего, достаточно будет позвать консольную версию анализатора по аналогии с GitLab, Azure, TeamCity и т.д.
На этапе написания статьи я об этом не задумывался, стоило бы поменять название. Спасибо за комментарий, в следующий раз буду внимательнее
В ближайшее время таких планов нет а так, всё зависит от заинтересованности пользователей
Дела хорошо, но, конечно, всегда есть куда расти. Несколько диагностических правил, которые сразу пришли на ум:
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.
После обнаружения данного срабатывания мы добавили его, как пример, в документацию V645 и там предлагаем такой вариант фикса: