2008-09-25 3 views

答えて

22

CDT(C/C++開発ツール - プロジェクト日食)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

0

をリファクタリングされており、それらのほとんどがあれば、実際に動作しないを持っていますコードが複雑すぎます。メソッドの移動、名前の変更などのようなものは時々問題を抱えます。

+0

マクロと#ifを使用せず、すべて正常に動作します。 –

0

C++は、リファクタリングサポートを提供するための非常に難しい言語です。これは、言語が非常に複雑で解析が難しいが、その主な理由はプリプロセッサのためである。

プリプロセッサは、C/C++ IDEが他の言語に遅れる主な理由です。

+0

それと、C++にはステートレスな文法がないという事実。 –

2

C++のリファクタリングツールを提供するために多くの努力がなされていますが、そのようなツールの作成にはC++ソースコードを処理する能力が必要です。自動ソース・ソース変換の最も基本的な形式でさえも実装しています。

幸いなことに、plugins into gccが導入されたことで、実際にはC++コンパイラの独自の実装に頼る代わりに、既存のC++コンパイラを実際に活用できる可能性があることは間違いありません。

詳細については、thisを参照してください。

当分の間、広く自動化されたC++リファクタリングサポートを提供する最も有望な候補者は確かにMozilla porkプロジェクトであり、関連するコンパニオンプロジェクトDehydraです。

1

たとえば、Ref ++でサポートされているC++リファクタリングでは、C++構文を完全に理解する必要はありません。例えばプルアップ法、プッシュダウン法などは非常に簡単です。何らかの理由で、この種のリファクタリングはCDTリファクタリングには実装されていません。