ReSharper 2019.1ヘルプ

C++のコードインスペクションとクイックフィックス

ReSharperのコード解析の主な機能は、C++でもサポートされています。これらの機能の詳細については、コード解析の該当するトピックを参照してください。このセクションの主題では、フィーチャマトリックスを見つけて、C++で正確にサポートされているものを確認することもできます。

このトピックでは、C++でコード解析機能を使用する例をいくつか見てみましょう。

コード・インスペクション

ReSharperのスタティックコード解析は、C++ファイルのコンパイラエラーのほとんどとコンパイラの警告を検出します。

その上、他のコードの問題を見つけます。例:コンストラクターで仮想メソッドを使用すると、このStackOverflowの質問(英語)で記述されていたように予期しない動作が発生します。ReSharperはコンパイルする前にこの問題を指摘しています。

ReSharper warning. virtual method in constructor

分析は、コードインスペクション現在の文書または指定された範囲に適用することによって実行されます。

Code inspection results in a C++ project

コードインスペクションをカスタマイズする方法については、コードインスペクションの設定を参照してください。

クイックフィックス

クイックフィックスを使用すると、コードインスペクションで見つかったコードの問題のほとんどを自動的に解決することができます。コードの問題に対して1つ以上のクイックフィックスが利用可能な場合は、キャレットが強調表示されたコード上にあるときに対応するアクションインジケータが表示されます。目的の修正を確認して適用するには、Alt+Enter を押します。

ReSharperはC++に50を超えるクイックフィックスを提供します。ここではいくつかの例を示します。

使用箇所から作成

宣言されていないシンボルを使用する場合、ReSharperは使用箇所に基づいてシンボルを作成するための1つ以上のクイックフィックスを提案します。

Generating C++ field from usage

宣言を作成する

C++ファイルのメンバー関数がヘッダファイルに宣言を持たない場合、ReSharperは実装のシグネチャーに従って欠落した宣言を作成できます:

Generating declaration for C++ class member

不足している#includeディレクティブを追加する

標準ライブラリーやプロジェクトの他の場所で定義されている型を使用する場合、ReSharperは欠落している #include ディレクティブを自動的に追加します。

ReSharper helps adding missing includes automatically

前方宣言を追加する

ReSharperは、未解決シンボルの前方宣言を生成することもできます。

ReSharper: Add forward declaration quick-fix

未使用の#includeディレクティブを削除する

未使用の #include はすべて強調表示され、クイックフィックスで簡単に削除できます:

Removing unused #include directives

変数を初期化します

ReSharperは初期化されていない変数を検出し、デフォルト値で初期化できます:

ReSharper helps initialize variables in C++

ドット(。)を矢印( - >)に置き換えます。逆も同様です

ドット(.)演算子が誤ってポインタに適用されている場合、ReSharperは矢印(->)演算子で置換します。

ReSharper helps replacing the dot operator with arrow

逆のクイックフィックスも利用できます:

ReSharper helps replacing the arrow operator with the dot

変数の型を変更する

指定された型の変数またはフィールドが、割り当てられた値と一致しない場合、ReSharperは、宣言で正しい型を使用するためのクイックフィックスを提供します。

ReSharper helps fixing types of variables and fields

戻り値の型を変更する

関数の戻り値の型が実際に返される値と一致しない場合、ReSharperでは戻り値の型をすばやく修正できます。

ReSharper helps fixing types of variables and fields

メンバーを初期化する

ReSharperが初期化されていない型メンバーを検出した場合は、1回の修正ですべてのメンバーを初期化することをお勧めします。この修正プログラムのサブメニューを使用して、特定のメンバーの初期化を生成することもできます。

ReSharper C++: quick-fix to initialize members

ReSharperに特定のコードを無視させる

ReSharperでは、特定のファイル、フォルダー、ファイルマスクをさまざまな方法で無視できます。無視されるファイルは、次のオプションページで設定できます。

最終更新日: 2019年6月7日

関連事項

関連ページ:

コード解析

ReSharperは、エディター内の単一のステートメントから、ソリューション全体のアーキテクチャまで、さまざまなレベルのコードを分析できます。コードの問題を見つける:ReSharperは2500コードインスペクションをC#、VB.NET、XAML、XML、ASP.NET、ASP.NET MVC、Ra...

コード・インスペクション

ReSharperはすべてのサポートされている言語で2500コードインスペクションを提供します。これらのインスペクションは、開いているすべてのファイルで設計時にコードの問題を検出して強調表示するため、および/または特定の範囲内ですべてのコードの問題を見つけるために使用されます。エディターで強調表示さ...

設計時にコード問題を検出

ReSharperは、エディターでコード・ファイルを開くとすぐに分析を開始し、最後まで編集を続けます。検出されたすべてのコードの問題は、重大度に従ってエディターで強調表示されます。問題のマップは、エディターウィンドウの右側のマーカーバーにも表示されます。ここでは、ファイルのステータスを即座に確認し、...

特定の範囲のコード問題を見つける

設計時コードインスペクションは、エディターでコーディングしたり、特定のファイルを見直したりするときに役立ちます。ただし、ReSharperを使用すると、ソリューション全体または狭い範囲でスタティックコード分析を実行し、結果をフレンドリーな視点で調べることもできます。必要に応じてインスペクション結果を...

コードインスペクションの設定

コード注釈を使用して、ReSharperがコードをインスペクションする方法をカスタマイズすることもできます。デザインタイムコードインスペクションの切り替え:デフォルトでは、ReSharperはサポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、...

アクションインジケータとアクションリスト

ReSharperがVisual Studioのテキストエディターに追加する最も目立つものは、アクションインジケータとアクションリストです。ReSharper(C#、VB.NET、XML、CSS、JavaScript、ASP.NETなど)でサポートされているすべてのファイルに表示され、利用可能な操作...