Даже автоматизированные инструменты сами не работают - нужно проверять результаты их работы (типа передается аргумент по значению или ссылке при выделении блока кода в функцию). Но ты же ведь и сам это знаешь. Если бы были такие чудо - инструменты, которые ты хочешь, то ты сам в такой задаче был бы не нужен...
QtCreator, JetBrains CLion про них ты, наверняка, тоже знаешь.
Мне нужно выделять циклические зависимости классов, искать бесполезные классы, вместо которых лучше использовать структуры/пространства имен, заменять платформозависимые типы на кроссплатформенные, и т.д.
искать бесполезные классы, вместо которых лучше использовать структуры/пространства имен
Просто ради любопытства: как, по-твоему, софт должен решить, что из этих трёх вариантов лучше подходит?
заменять платформозависимые типы на кроссплатформенные
Насколько я помню по постам Карпова, их PVS-studio давала предупреждения в каких-то таких случаях (или это у них в блоге было? Не помню). Возможно, что и кланговский анализатор сможет что-то такое выцепить. Хотя по мне тут лучше сработает греп и ручной анализ.
Ну если класс содержит только публичные статические методы, то класс можно выкинуть, а все наследования от него убрать и заменить его пространством имен. Если содержит еще и непустые поля в паблике, то тогда имеет смысл преобразовать все в структуру.
Хотя тут лучше пересматривать всю архитектуру приложения.
Ну если класс содержит только публичные статические методы, то класс можно выкинуть, а все наследования от него убрать и заменить его пространством имен. Если содержит еще и непустые поля в паблике, то тогда имеет смысл преобразовать все в структуру.
cppcheck может подсказать в этом случае. Но сам работу не сделает.
И что улучшит такой рефакторинг? Рефакторинг должен делать код более понятным: разбивать сложную логику на простые блоки, убирать повторяющиеся фрагменты.
Если есть время и не хочется в IDE, то можешь попробовать прикрутить clangd [1], intellisense [2], или cquery [3] через language server protocol [4] к виму/емаксу.
Если получится годно - поделись с остальными, у меня пока получалось не очень :)