C++ のコードスタイル支援
ReSharper は、コードをすっきりとクリーンに保つための多くの機能を提供します。 他の ReSharper の機能の大部分と密接に連携しているため、特定のコードスタイルに従ってコードを作成し、既存のコードベースを変更できます。 命名標準、フォーマット規則、その他のさまざまな小さな要素を含むコードスタイルは、非常に詳細なレベルに構成してチーム全体で共有できます。
他の言語と同様に、すべての C++ コードスタイル環境設定は、 スコープ内で修正または コードのクリーンアップのいずれかを使うことで、目的のスコープにワンコマンドで適用できます。
組み込みのコードのクリーンアッププロファイルには、一部の C++ 固有のタスクが含まれていないため、それらを有効化するには 新しいカスタムプロファイルを作成する必要があります。コードフォーマットルールの管理と適用
コードスタイルの重要な側面は、コードのフォーマット方法です。つまり、空白、タブ、改行を使ってコード要素をどう配置するか、インデントにタブを使うかどうかとその方法、長い行を折り返すかどうかとその方法などです。
ReSharper の広範なコードフォーマット規則セットには、デフォルトの Visual Studio フォーマットオプションや多くのベストプラクティスを考慮したデフォルト構成があります。 フォーマットルールのすべての詳細を 構成し、コードにルールを適用できます。 これらのルールは、ReSharper が コード補完や コード生成機能で新しいコードを生成する際、 コードテンプレートを適用したり、 リファクタリングを実行したりする場合にも適用されます。 フォーマット規則は、現在の選択範囲、現在のファイル、またはソリューション全体までのより広いスコープの 既存のコードにも適用できます。
ReSharper は、 共有設定の仕組みを利用してフォーマット環境設定を保存します。 グループのオプションページで フォーマットルールを設定できます。 また、 EditorConfig および Clang 形式ファイルに フォーマット設定を保存して共有することもできます。
個別のフォーマット環境設定を調整する代わりの方法として、既存のコードサンプルからフォーマット規則を学習することもできます。サンプルは、選択したブロック、現在のファイル、ファイルのセット、1 つ以上のプロジェクト、またはソリューション全体にできます。 ReSharper は選択したサンプルを分析し、現在の設定と異なるフォーマット規則を一覧表示します。 その後、検出されたルールを確認し、必要に応じて変更し、 設定レイヤー または .editorconfig や .clang-format 構成ファイルに保存できます。
詳細については、 既存のコードから書式ルールを学ぶ を参照してください。
ネーミングスタイル
ReSharper は、コード内のシンボルに対して希望する命名スタイルを定義、管理、適用するのに役立ちます。 特定の識別子を対象とするルールのセットがあり、それぞれが制約のセットを持っています。 各ルールには、複合語、アンダースコア、接尾辞、接頭辞などの大文字化を定義する 1 つ以上の関連スタイルを含めることができます。
これらのルールは、ReSharper が コード補完や コード生成機能で新しいコードを作成し、 コードテンプレートを適用し、 リファクタリングを実行する際に考慮されます。 ReSharper は、命名規則違反を 検出して修正するのにも役立ちます。 必要に応じて、命名規則の自動チェックを 構成または無効にできます。
ReSharper オプション の ページで、ルールセットを定義済みの命名スタイルスキーム(STL、Google、LLVM、CamelCase、Microsoft)のいずれかにリセットできます。 Alt+R、O 。 これらのスキームをそのまま使用することも、定義済みのスキームに基づいて 独自のルールセットを設定することもできます。
命名ルールセットをカスタマイズする
メインメニューから を選択するか、 Alt+R O を押してから、左側の を選択します。
ページの右上隅にある スキームにリセット セレクターを使用して、ルールセットの基礎となる命名スタイル体系を選択します。
命名規則が設定されている識別子とその他の項目のリストが表示されます。
アイテムのルールを変更するには、それを選択して 編集
をクリックするか、単にダブルクリックします。 リストにない項目にルールを追加するには、 追加
をクリックします。開いたダイアログで、新規または変更したルールを設定できます。

ダイアログの左側では、ルールの説明を指定できます。これはルールがどの識別子に適用されるかを理解するのに役立ちます。 左側の他のコントロールでは、識別子の種類や指定子、アクセシビリティによってルールの適用範囲を制限できます。
指定子は三状態のチェックボックスで設定します:チェックはこの指定子がある場合のみ、未チェックはない場合のみ、四角はある場合とない場合の両方に適用されます。 上の図は、
public static関数に適用されるルールを示しています。ダイアログの右側の部分で、ルールのスタイルを設定できます。 少なくとも 1 つのスタイルが必要です。 このルールに他のスタイルを許可する場合は、 追加
をクリックします。 1 つのルールに複数のスタイルがある場合、対応するシンボル名がこれらのスタイルのいずれかに一致する場合、ReSharper はコードスタイル違反を 報告しません。 それ以外の場合、ReSharper はコードスタイル違反を検出し、デフォルトスタイル(リストの最初のスタイル)に従ってシンボルの名前変更を提案します。 デフォルトスタイルを変更するには、 上へ移動
ボタンと 下へ移動
ボタンを使用します。特定のスタイルを設定するには、リストでスタイルを選択し、接頭辞、接尾辞を設定して、命名スタイルを選択します。
不要なスタイルを削除するには、リスト内でスタイルを選択し、 除去する
をクリックします。必要に応じて、このルールに関連するコードスタイル違反の 報告を無効化しつつ、ReSharper が他の命名ルール違反の検出を続けることができます。 これを行うには、 インスペクションを有効化する チェックボックスをオフにします。
ルールエディターがオプションダイアログから開かれた場合は、 設定 をクリックして ルール設定の編集 ダイアログを閉じます。
命名スタイル 設定ページに戻ったら、 上へ移動、
、 下へ移動
ボタンを使用してルールの優先順位を変更します - 複数のルールが特定の識別子の種類に一致する場合は、リストの上位にあるルールが適用されます。 つまり、制限が多いルールは制限が少ないルールよりも上位に配置する必要があります。 例: 関数と パブリック静的関数の両方の規則が public static関数に適用されるため、 パブリック静的関数規則はリストの上位に配置されます。
オプション ダイアログで 保存 をクリックして変更内容を適用し、ReSharper に保存場所を任せるか、 保存先 セレクターから特定のレイヤーを選択して変更を保存します。 詳細については、 resharper 設定の管理と共有 をご参照ください。
UE4 プロジェクトで作業している場合、ReSharper は構成不可な Unreal Engine コーディング標準に対応する命名ルールセットを自動適用します。 つまり、UE4 プロジェクトで作業しているときは、ReSharper オプション の ページ Alt+R、O で構成したルールは無視されます。 Unreal Engine コーディング標準の代わりに、構成済みのルールセットを引き続き使用したい場合は、対応するインスペクションを無効にすることができます。

cv 修飾子の配置
ReSharper は cv-修飾子を 生成コードで整理するのに役立ちます。 ReSharper オプションの ページで、cv 修飾子を型指定子の前後どちらに配置するかや、 const および volatile 修飾子の順序を指定できます。
ディレクティブスタイルを含める
ReSharper オプションの ページで、 生成コードの include ディレクティブでパス区切りとしてスラッシュまたはバックスラッシュのどちらを使うか指定できます。 ヘッダーファイルで前方宣言を生成するかどうかを指定することもできます。
インクルードのソート
ReSharper では、 #include  ディレクティブの並び替えや、既存グループの再配置、空行で区切られた新しいグループの作成が可能です。
キャレットが #include ディレクティブ上にある場合、 #include ディレクティブを並べ替える サブメニューには 3 つのコンテキストアクションがあります。
#include ディレクティブを並べ替える | |
|---|---|
#include ディレクティブを並べ替えて再グループ化する | このアクションは、すべての  ![]() |
各 #include グループを個別に並べ替える | このアクションは、各グループ内の  ![]() |
現在の #include グループのみを並べ替える | このアクションは、キャレットがオンになっているグループをソートします。 |
ReSharper オプション の ページ Alt+R、O で順序付けルールを設定できます。
ReSharper は、 .clang-format ファイルからソート設定をインポートすることをサポートしています。 ReSharper オプション の ページ
Alt+R、O
で .clang-format スタイルのコードスタイルフォームを読み取る がチェックされている場合、 .clang-format ファイルの IncludeBlocks、 IncludeCategories、 IncludeIsMainRegex、 SortIncludes 設定が clang-format と同じ方法で #include ディレクティブの並べ替えに使用されます。
インクルードの並べ替えは、 コードのクリーンアップ でも適用できます。
デフォルトのポインタ初期化子のスタイル
0、 nullptr、 NULL を、ポインター初期化子の優先初期化子として指定できます(例: const char *foo = nullptr)。 ReSharper オプションの ページで環境設定を変更できます。
ファイルヘッダースタイル
コピーライト表示やその他の識別メッセージにファイルヘッダーを使用するのが一般的です。 ReSharper では、デフォルトのヘッダーテキストを設定して、ソースファイルに自動的に挿入したり、既存のファイルヘッダーを置換したりできます。
ファイルヘッダースタイルは、 ReSharper オプション または .editorconfig ファイルで設定でき、 ファイルテンプレートで作成した新規ファイルに追加したり、既存ファイルのファイルヘッダーを コードのクリーンアップで挿入・置換できます。
異なるチームメンバーが作成および編集したファイルが同じヘッダースタイルを持つようにするには、 ファイルヘッダー設定をチームと共有します。

