Это состояние, в котором оно действительно полезно и может выполнять больше, чем переименовывать классы?
Каково состояние поддержки рефакторинга С++ в Eclipse?
Ответ 1
CDT (инструменты разработки C/С++ - проект eclipse) 5.0 имеет кучу новых рефакторингов
* Declare Method
* Extract Baseclass
* Extract Constant
* Extract Method
* Extract Subclass
* Hide Method
* Implement Method
* Move Field / Method
* Replace Number
* Separate Class
* Generate Getters and Setters
Существует рефакторинг CDT wiki
Ответ 2
Были предприняты многочисленные усилия по предоставлению инструментов рефакторинга для С++, большинство из них потерпели неудачу довольно рано, потому что для создания таких инструментов требуется полная возможность обрабатывать исходный код С++, то есть вам нужен рабочий и полный компилятор С++ в первом место для реализации даже самых основных форм преобразования автоматических источников в исходные.
К счастью, с введением плагинов в gcc, это, наконец, становится предсказуемым, что связанные усилия могут фактически иметь возможность использовать существующий С++ компилятор для этой цели, вместо того, чтобы прибегать к их собственным реализациям компилятора С++.
Для более подробного обсуждения вы можете проверить это.
В настоящее время наиболее перспективным кандидатом для предоставления широко автоматизированной поддержки рефакторинга С++ является, безусловно, проект Mozilla pork, с его связанным сопутствующим проектом Dehydra.
Ответ 3
Некоторые рефакторинги С++, которые поддерживаются, например, Ref ++, не должны полностью понимать синтаксис С++. Например, метод pull up, метод push down и т.д. Довольно просты. По некоторым причинам такой рефакторинг не реализован в рефакторингах CDT.
Ответ 4
Да, и большинство из них не работают, если код слишком сложный. Такие вещи, как перемещение метода, переименование и т.д. Иногда возникают проблемы.
Ответ 5
С++ - очень жесткий язык для поддержки рефакторинга. Это связано с тем, что langauge очень сложный и трудный для анализа, но в основном из-за препроцессора.
Препроцессор является основной причиной, по которой C/С++ IDE отстают от других языков.