ReSharper 2026.1 Help

C++ /CLI サポート

C++/CLI は、Microsoft による C++ 言語拡張のセットであり、マネージドコードとネイティブコード間の容易な相互運用性を実現するために設計されています。 ジェネリクス、値クラスと参照クラス、ハンドル、追跡参照、インターフェース、その他の構文追加が含まれています。

C++ で慣れている コード解析ナビゲーションと検索コーディング支援などの主な機能に加えて、ReSharper は C++/CLI 固有のケースにも追加のサポートを提供します。

検索とナビゲーション

C++/CLI は言語間の橋渡しとなるため、ReSharper は相互運用性を高める言語間ナビゲーション機能を提供します:

派生シンボルに移動は、C++ /CLI プロパティ内の get/set 関数および C++ /CLI イベント内の add/remove 関数でも機能します。

Go to Derived in C++/CLI

コード解析

ReSharper には、C++/CLI 固有の言語構造のためのインスペクションセットが含まれています:

  • インターフェースメンバーに virtual 指定子が足りない場合や、 public アクセシビリティがない場合には警告が表示されます。

    メソッドはパブリックで仮想でなければなりません
  • ReSharper はメモリ割り当ての方法を確認し、ターゲット型が無効な場合、 gcnewnew に置き換えるクイックフィックスを提案します。 また、 newgcnew に置き換えるクイックフィックスにも対応しています。

    ネイティブ型で gcnew を使用することはできません
  • ReSharper は、マネージクラスやインターフェースで C++ の final 指定子を使用しようとした場合、それを sealed に変更するクイックフィックス付きで警告を表示します。

    ファイナルをシール付きに交換

C++/CLI 用にもいくつか便利なクイックフィックスがあります。 たとえば、C++/CLI の safe_cast 演算子は基底クラスから派生クラスへのダウンキャスト時に特に便利です。 safe_cast が動的チェックを実行し、変換が失敗した場合は InvalidCastException をスローします。 C 形式キャストを safe_cast に変換するクイックフィックスを利用できます。

C++ キャストの代わりに C スタイルキャストを使用

インレイヒント

パラメーター名型名ヒントに加えて、ReSharper は C++/CLI ボクシング変換で発生するマネージドヒープへの割り当ての 型変換ヒントも提供します。 標準変換向けのこのようなヒントはデフォルトで無効化されていますが、 環境 | インレイヒント | C++ | 型変換のヒント ページ(ReSharper オプション Alt+R、O )で有効化できます。

C++ /CLI ボクシング変換

フォーマットスタイル

追加のフォーマット設定により、C++/CLI ジェネリック制約用のスタイルを設定できます。好みのインデントを選び、必要に応じてスペースを追加し、改行を強制できます(コード編集 | C++ | スタイルのフォーマット)。

generic <class ItemType> where ItemType:IItem ref class Stack {};
generic <class ItemType> where ItemType : IItem ref class Stack {};

後置補完

一部の C++ 置テンプレートは、そのコンテキストで呼び出されたときに C++ /CLI コードを生成するように特別に設計されています。

  • .gcnew を使用して、型のインスタンス化式を生成します。

  • .safe_cast を使用して、式を .safe_cast で囲みます。

既知の問題と制限

2026 年 6 月 12 日