レガシーコードの近代化
レガシーコードを近代化
レガシーコードを近代化
C++11はコア言語への追加と標準ライブラリの拡張を含みます。これらの新機能の中には非常に使いやすく、C++プロジェクトに大きな価値をもたらすものがあります。
新しいC++11機能を使える場所を自動検出することは有益です。そのようなニーズには、clang-modernizerが古い規格で書かれたC++コードを最新のC++規格の適切な機能に自動変換するスタンドアロンツールです。
CppDepend Windows版はclang-modernizeツールを統合し、次の機能を使える箇所を検出:
- Override: 基底クラスの仮想関数をオーバーライドし、まだoverride指定子のないメンバ関数に追加できる箇所を検出。
- Loop Convert: for(...; ...; ...)のようなループを検出し、C++11の範囲ベースループに置き換え。新しい範囲ループ式も提示。
- Pass-By-Value: 値渡しイディオムの恩恵があるconst-refパラメータを検出。
- auto_ptr: 非推奨のstd::auto_ptrの使用を検出しstd::unique_ptrに置き換え。
- auto指定子: 変数宣言でauto型指定子を使うべき箇所を検出。
- nullptr: 該当する場合nullptrに置き換えるべきnullリテラルを検出。
主なメリット
- ✓レガシーコードのホットスポット検出
- ✓近代化パスの提案
- ✓C++規格アップグレードガイド
- ✓近代化の進捗を追跡
