ReSharper C⁠+⁠+ 2026.1 の新機能

ReSharper C⁠+⁠+ 2026.1 では起動時間が短縮され、メモリ使用量が削減されました。 このリリースでは、C⁠+⁠+⁠26 の #embed ディレクティブとその他の新しい言語機能が新たにサポートされています。 コーディング支援の改善には、C⁠+⁠+⁠20 モジュールの自動インポートと新しい後置補完シナリオが含まれます。 Unreal Engine 開発者は、ブループリントの統合の改善と次期 Unreal Engine 5.8 の互換性に関する修正を利用できます。

パフォーマンス

ReSharper C⁠+⁠+ 2026.1 では IDE を使用するあらゆる場面でパフォーマンスが大幅に最適化され、大規模な Unreal Engine プロジェクトの需要に特化した調整が行われています。 当社が Out-of-Process(アウトプロセス)モードで実施した Unreal Engine 向けの Lyra サンプルプロジェクトに対する評価では、以下の改善が見られました。

  • C⁠+⁠+ コードの初回のインデックス作成が最大 20% 高速化し、ソリューションを初めて開いたときの待機時間が短縮されました。
  • ウォームスタート時間が 20% 以上改善されたため、前に開いていたソリューションに戻る処理が著しく高速化されました。
  • ウォームスタート後のバックエンドのメモリ使用量が最大 21% 削減されたため、他のワークフローで使用できるリソースの量が増加しました。

言語機能

ReSharper C⁠+⁠+ で C⁠+⁠+⁠26 と C23 で導入された #embed プリプロセッサディレクティブがサポートされるようになりました。 このディレクティブを使用すると、バイナリリソースファイルの内容をソースコードに直接埋め込めるため、外部のツールやコードの生成が不要になります。

このリリースでは、以下の 2 つの言語機能のサポートも新たに追加されています。

  • _Countof 演算子: ReSharper C⁠+⁠+ で配列の要素数を返す C2Y(C の次期標準)の _Countof 演算子が認識されるようになりました。
  • 浮動小数点型の拡張: C⁠+⁠+⁠23 で標準化された bfloat16_tfloat16_t、および float128_t 浮動小数点型がサポートされるようになりました。

ReSharper C⁠+⁠+ 2026.1 では、コンパイラー固有の拡張機能との互換性が改善されています。

  • ネストした関数: ReSharper C⁠+⁠+ で C コードで書かれた他の関数内に関数を定義する GCC の拡張機能がサポートされるようになりました。
  • _Nullable/_Nonnull 修飾子: パーサーが Clang のポインター null 許容性修飾子を認識するようになりました。

コーディング支援

ReSharper C⁠+⁠+⁠ で新たに導入された C⁠+⁠+⁠20 モジュールの自動インポートのサポートにより、認知的負荷を抑制できます。 エクスポートされたシンボルを使用する際に対応する import 宣言がない場合、IDE がその宣言を自動的に挿入するスマートな提案を提供するようになりました。 現在、自動インポートはプライマリモジュールインターフェースユニットとモジュールパーティションから直接エクスポートされたシンボルのみをサポートしています。

後置補完が拡張され、以下の状況に対応できるようになりました。

  • プリミティブ型: 以前の後置補完はクラスと構造体型でのみ機能していましたが、 intboolfloat などのプリミティブ型の式も処理するようになりました。
  • リテラル: 後置補完がリテラルの後でも機能するようになったため、42.cos と入力すると cos(42) に展開されるようになりました。
  • ユーザー定義のリテラル接尾辞: コード補完がユーザー定義のリテラル演算子で機能するようになりました。 リテラルの後に _ を入力すると、ReSharper C⁠+⁠+ が現在のスコープ内で可視の一致する operator"" 接尾辞を提案します。

以下の自動インデントに関する 2 つの改善により、より円滑に編集できるようになりました。

  • 制御フローステートメントかクラス定義の丸括弧間で Enter を押した際、(class [[deprecated]] MyClass {} のように)属性がある場合でも、適切なインデントでカーソルが正しく配置されるようになりました。
  • extern ブロック内の自動インデントで Indent linkage specification block members(リンケージ指定子ブロックメンバーをインデントする)書式設定が考慮されるようになりました。

Unreal Engine

ReSharper C⁠+⁠+ 2026.1 では、以下のようにブループリントのサポートが改善されています。

  • Code Vision の BlueprintPure: Code Vision が BlueprintCallable に加えて、BlueprintPure 指定子が付いた関数を認識できるようになりました。
  • Code Vision のイベント実装: Code Vision がブループリントアセット内の BlueprintNativeEvent および BlueprintImplementableEvent 関数の実装を検出できるようになりました。
  • デリゲートプロパティの Find Usages(使用箇所の検索): Find Usages(使用箇所の検索)を使用して BlueprintAssignable デリゲートプロパティのブループリント側のバインディングを検索できるようになりました。
  • ブループリントの検索精度の改善: ブループリント参照の Find Usages(使用箇所の検索)でブループリント名ではなくアセットパスで検索できるようになりました。 そのため、プロジェクトに同じ名前のブループリントが複数含まれる場合でも、検索結果があいまいになることがなくなりました。

ReSharper C⁠+⁠+ で Unreal Engine プラグインのインデックス作成がデフォルトで行われるようになりました。 Unreal Engine プロジェクトでプラグインが使用されるケースが増えており、最近はパフォーマンスが改善されたため、プラグインのインデックスをデフォルトで作成することによってコード解析と移動操作をあらかじめ改善するようにしています。 Settings(設定)の ReSharper | Options(オプション)| Code Editing(コード編集)| C/C⁠+⁠+ | Unreal Engine ページで以前の動作に戻すことができます。

ReSharper C⁠+⁠+ では、次期リリースの Unreal Engine 5.8 の UnrealHeaderTool の変更もサポートされるようになりました。 具体的にはコード解析で DECLARE_DYNAMIC_MULTICAST_DELEGATE マクロによる誤検出エラーが発生しなくなっています。

Unreal Engine 開発向けのスタンドアロン型クロスプラットフォーム IDE にご興味がありましたら、Rider をぜひご検討ください。 Rider と ReSharper C⁠+⁠+ での Unreal Engine のサポートは同等であるため、Rider 2026.1 アップデートと同じ改善を期待できます。

コード解析

ReSharper C⁠+⁠+ 2026.1 ではバンドルの Clang-Tidy バイナリが更新されており、最新のチェックと LLVM 22 リリースの機能強化が反映されています。

新しいインスペクションでは、対応するメンバーが構造体での宣言順序と異なる順序で出現している指示付きイニシャライザーが検出されます。 C⁠+⁠+⁠20 では指示付きイニシャライザーが宣言順序に従っている必要があるため、イニシャライザーの順序が異なっている場合にコンパイルエラーが発生してしまいます。 このリリースの ReSharper C⁠+⁠+ では、そのような場合にフラグを立て、イニシャライザーリストの順序を構造体の定義に合わせて自動的に変更するクイックフィックスが提供されるようになりました。

別の新しいインスペクションでは、関数のアクセスレベル(publicprotected、または private)が基底クラスでオーバーライドしている仮想関数と異なる場合に警告が表示されます。 C⁠+⁠+ ではオーバーライドのアクセスレベルの変更が許可されていますが、それは往々にして意図された変更ではなく、予期しない動作を引き起こす原因になっています。 このインスペクションにより、そのような分かりにくい不整合を検出できます。

このリリースでは、Unused symbol(未使用のシンボル)インスペクションの適用対象が .cpp ソースファイルで定義されたクラスメンバーにも拡張されました。 従来、このようなメンバーは外部から可視であることを前提に Unused symbol(未使用のシンボル)解析から除外されていました。 このリリースでは、static 関数や匿名の名前空間メンバーと同じように解析されるようになっています。

ナビゲーション

C⁠+⁠+ ファイルでのガターマークを改良し、より容易に複雑なコードベース内を移動して理解できるようにしました。

  • 構文ハイライト付きのツールチップ: ガターマークにホバーした際に表示されるツールチップで構文がハイライトされるようになり、一目で読みやすくなりました。
  • 基底クラスへの移動: 新しいクラス定義のガターアイコンを使用することで、継承階層をさかのぼって基底クラスに移動できるようになりました。これは、派生クラスに移動するための既存のマークを補完するものです。

Go to Declaration(宣言に移動)とその他の移動アクションが型名に加えて、波括弧の初期化式( MyStruct { 1 } など)の開始括弧で動作するようになりました。

Visual Studio 統合

ReSharper C⁠+⁠+ のツールチップを Visual Studio 2026 で利用できるようになり、初期の Visual Studio 2026 互換性リリースに不足していたツールチップのサポートが復元されました。 ツールチップの表示も改善されています。シンボルの型を区別しやすいアイコンになり、テーマ機能のサポートが強化されました。

ReSharper の複数のエディター UI 要素を更新し、Visual Studio のモダンな外観により適合させました。

デザインを刷新することで、エディター組み込みのコード補完 UI がよりすっきりとした一貫性のある外観になりました。

パラメーター情報ポップアップツールチップその他のエディターのポップアップを含む多数の関連 UI コンポーネントがモダン化され、古いビジュアル要素が置き換えられ、複数のテーマや DPI の設定で見た目が改善されました。

最新の UI では Visual Studio のエディターの拡大・縮小機能がサポートされ、拡大率が変更されても補完リストとパラメーター情報が正しく拡大されるようになっています。

ReSharper C⁠+⁠+ 2026.1 では、以下のようなプロジェクトモデルに関する複数の課題が解決されています。

  • Windows Driver Kit(WDK)プロジェクト: ReSharper C⁠+⁠+ で WDK 固有のプラットフォームツールセットが正しく認識され、適切なデフォルトプリプロセッサ定義が提供されるようになりました。
  • WinUI 3 プロジェクト: インクルードパスが正しく構成されるようになりました。
  • タイプライブラリのライブラリディレクトリ: ReSharper C⁠+⁠+ で Visual Studio プロジェクト設定で構成されているライブラリディレクトリの COM タイプライブラリを含むファイル(.tlb)を解決できるようになりました。

このリリースで導入されたその他の変更点については、「ReSharper の新機能」ページをご覧ください。