У меня большая база кода C ++ (500 000+ LOC, 10k файлов), и я доволен кодом, но с ним есть несколько проблем:
const не был использован так часто, как следовало бы. Например:
class A
{
int foo( B &a )
{
return a.v * 10;
}
};
действительно должно быть изменено на:
class A
{
int foo( const B &a ) const
{
return a.v * 10;
}
};
Похоже, что компилятор должен знать, в большинстве случаев, когда функция может быть const.
Он также был написан на стандартном C ++ с начала 2000-х годов. Я хотел бы изменить, чтобы использовать авто и для петель диапазона так
std::map< int, std::string >::iterator i = m.start();
for ( ; i != m.end(); i++
...;
в
for ( const auto p : m )
...;
Я мог бы взломать что-то вместе с Perl и / или Sed, что, вероятно, найдет большинство случаев, потому что код соответствует нашим внутренним стандартам, но мне просто интересно, есть ли реальный инструмент, который будет делать это и другие вещи, которые мы можем захотеть сделать? Как вы переводите устаревший код C ++ в новый стандарт?
Ваша проблема, кажется, прекрасная возможность использовать ReSharper для C ++ если ваш код организован в решение Visual Studio. Он все еще находится в разработке, но благодаря этому свободно.
Он содержит множество встроенных проверок кода, и вы можете выполнить очистку кода в рамках всего решения. Я использую его версию на C # ежедневно, и, хотя версия на C ++ еще многое предстоит наверстать, она кажется подходящим инструментом для вашей ситуации.