Каково состояние поддержки рефактора C ++ в Eclipse? - PullRequest
20 голосов
/ 25 сентября 2008

Это в состоянии, когда это действительно полезно и может делать больше, чем просто переименовывать классы?

Ответы [ 5 ]

22 голосов
/ 25 сентября 2008

CDT (Инструменты разработки на C / 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 голосов
/ 20 мая 2009

Были предприняты многочисленные попытки предоставить инструменты рефакторинга для C ++, большинство из них провалилось довольно рано, потому что создание таких инструментов требует полной способности обрабатывать исходный код C ++, то есть вам нужен работающий и полный компилятор c ++ в первом место для реализации даже самых основных форм автоматизированного преобразования источника в источник.

К счастью, с введением плагинов в gcc , наконец, становится предсказуемым, что связанные усилия могут реально использовать для этой цели существующий компилятор C ++ вместо необходимости прибегать к своим собственным реализациям. компилятора C ++.

Для более глубокого обсуждения, вы можете проверить это .

В настоящее время наиболее многообещающим кандидатом на предоставление широко автоматизированной поддержки рефакторинга C ++, безусловно, является проект Mozilla pork вместе со связанным с ним сопутствующим проектом Dehydra .

1 голос
/ 10 декабря 2010

Некоторые рефакторинги C ++, которые поддерживаются, например, Ref ++, не обязательно должны полностью понимать синтаксис C ++. Например, метод подтягивания, метод отталкивания и т. Д. Довольно прост. По какой-то причине этот вид рефакторинга не реализован в рефакторинге CDT.

0 голосов
/ 08 мая 2009

C ++ - очень сложный язык для поддержки рефакторинга. Это потому, что язык очень сложный и его трудно разобрать, но в основном из-за препроцессора.

Препроцессор является основной причиной, по которой IDE C / C ++ отстают от других языков.

0 голосов
/ 29 сентября 2008

Да, и большинство из них на самом деле не работают, если код слишком сложный. Такие вещи, как перемещение метода, переименование и т. Д. Иногда имеют проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...