ReSharper C++ 2025.3 の新機能

ReSharper C++ 2025.3 では C++26 標準の主な言語機能がいくつか新たにサポートされ、constexpr 評価エンジンがさらに改善されています。 Out-of-Process(アウトプロセス)モードの更新によって安定性と全体的な応答性が向上し、.NET Core ランタイムへの移行によってパフォーマンスが大幅に強化されています。 さらに、Unreal Engine プロジェクトのウォームスタートが大幅に高速化されたため、より早くコーディングに着手できるようになっています。

C++26

ReSharper C++ 2025.3 でも引き続き C++26 のサポートに取り組んでいます。 このリリースでは、以下に挙げる最新言語標準の主な機能が新たにサポートされています。

  • パックへのインデックスアクセス: パック内の個別の要素に添字演算子を使用してアクセスできるようになりました。
  • 展開ステートメント: 新しい template for ステートメントを使用することで、コンパイル時に要素を反復処理できるようになりました。
  • 構造化バインディング内のパック: 構造化バインディング宣言に単一のパックを含め、任意の数の要素をバインドできるようになりました。
  • テンプレートテンプレートパラメーターとしてのコンセプトと変数テンプレート: テンプレートテンプレートパラメーターをクラステンプレートだけでなく、コンセプトと変数テンプレートと照合できるようになりました。
  • 契約: 言語レベルの構文を使用し、事前条件、事後条件、およびその他のアサーションを記述できるようになりました。

Constexpr の評価

このリリースでは、constexpr 評価エンジンで発生していた多数の問題を解決しました。 この改善と先行する改善により、constexpr の評価失敗を検出し、この問題の診断をより容易にする完全な評価トレースを提示する新しいインスペクションを使用できるようになりました。

Unreal Engine

ReSharper C++ 2025.3 ではプロジェクトの初期化とアセットのスキャン処理を最適化することで、Unreal Engine プロジェクトのウォームスタートの速度が大幅に改善されました。 当社のテストでは、IDE が起動した後よりも最大で 30% 早く有効なファイルのコード解析が完了しています。 さらに、即座に編集を開始できるようになりました。ソリューションを開いた後、すべてのアセットファイルのインデックス作成が終了するのを待つ必要がなくなりました。

このリリースでは、Unreal Engine 開発者の使い心地を改善する機能もいくつか導入されています。

  • UE 5.6 で導入された Sparse Class Data システムへの変更がサポートされるようになりました。
  • Rename(名前の変更)リファクタリングで UE_INLINE_GENERATED_CPP_BY_NAME マクロ内の参照を正しく更新できるようになりました。
  • フォーマッターに UFUNCTION および UPROPERTY 指定子の後の宣言をインデントする新しい設定が追加され、UPARAM 指定子の後に改行が強制されなくなりました。
  • 自動インポートで .Build.cs ファイルへのモジュール参照を追加する際に C# のコレクション式が処理されるようになりました。
  • アセットファイル形式への最新の更新がサポートされるようになりました。

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

Visual Studio 2026

ReSharper C++ 2025.3 は、新たにリリースされた Microsoft Visual Studio 2026 に対応することが期待されています。 また、Visual Studio 2026 では ReSharper の外観が新しくなっていることにも気が付くことでしょう。 ポップアップやドロップダウンメニュー、およびいくつかのツールウィンドウ(Find Results(結果検索)、 Unit Tests(ユニットテスト)など)のデザインを改良し、進化し続ける Visual Studio UI にふさわしい、より洗練されたモダンな外観にしました。

注意: 現時点では ReSharper のツールチップは Visual Studio 2026 では機能しません。 現在、この問題の修正方法を活発に調査しているところです。

Out-of-Process(アウトプロセス)モード

当社は ReSharper の Out-of-Process(アウトプロセス)モードの改良に継続的に取り組んでおり、安定性の改善、問題の解決、および従来のインプロセス環境に不足していた機能の導入に努めています。 Peek Definition、ユニットテスト、Unreal Engine プロジェクトのインレイヒント、ファイルテンプレートなどのいくつかの機能が Out-of-Process(アウトプロセス)モードで動作するようになりました。

バックエンドプロセスが .NET Core ランタイムで動作するようになり、調整によってパフォーマンスが改善されました。 当社のテストでは、Out-of-Process(アウトプロセス)モードにおける Unreal Engine プロジェクトの初回インデックス作成速度がインプロセス環境よりも最大で 25% 向上しています。

Out-of-Process(アウトプロセス)モードはデフォルトで無効化されています。 有効化するには、ReSharper | Options(オプション)| Environment(環境)| Products & Features(製品と機能)に移動し、Run ReSharper in separate process(ReSharper を別のプロセスで実行する)オプションを選択してください。

コーディング支援

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

Extract Method(メソッドの抽出)リファクタリングを使用する際、新たに作成された関数から返すローカル変数を選択できるようになりました。 また、Change Signature(シグネチャーの変更)ダイアログのプレビューペインのパフォーマンスが改善されており、特に多数の include を含むファイルでその効果を確認できます。

Quick Info(クイック情報)にパディングのサイズと配置に加えて、クラス内のパディングの合計数が表示されるようになりました。この情報は、オブジェクトのメモリレイアウトを最適化するのに役立ちます。

新しいフォーマッターの設定では、列内で指示付きイニシャライザーを位置揃えできるようになっています。

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