Constexpr デバッガー
Constexpr デバッガーは、特に constexpr および consteval コードにおけるコンパイル時の評価に関するインサイトを提供します。 これにより、コンパイラーの世界に留まり、評価中に何が起こっているかを正確に把握できます。
現在、Constexpr デバッガーで実行できる操作は次のとおりです。
static_assert(...)またはconstexpr宣言子の横にある デバッグ ボタンをクリックしてガターからステップバイステップのデバッグを開始し、評価方法や失敗した理由を確認します。通常のデバッガーと 同じアクション (ステップイン や ステップオーバー など)を使用します。 さらに、コンパイル時の逆ステップ実行機能である 後退 も使用できます。
コンパイラーが認識する内容(呼び出しスタック、ローカル、最後の戻り値、現在のインスタンス化のテンプレート引数)を確認します。
変数の上にマウスを移動してその値を表示するか、 式の評価 を使用するか、呼び出しスタックからソースコードに移動します。
定数評価がいつ、なぜ発生したかを特定できない場合は、コンテキスト全体をインスペクションします。
主なデバッグ機能
次のセクションでは、 constexpr コードをデバッグするときに実行できる重要なアクションの概要を示します。
デバッグを開始する
コード例として、コンパイル時のフィボナッチキャッシュの実装を考えてみましょう。
アイコンを constexpr宣言子またはstatic_assertの横でクリックしてデバッグを開始します:
標準の ステップイン または ステップオーバー デバッガーアクションを使って式を評価します:

後退 を使い、コンパイル時評価の各ステップを戻ります:

状態をインスペクションします。
エディターで
this->memoにマウスオーバーすると、構築中に配列がどのように埋められるかウォッチできます:
Alt+F8 を押して式または型を評価します:

ペインで
this、iなどのローカルや最近のリターンを確認します:
ペインでコールスタックを確認し、ソースコードに移動します:

コンストラクターがすべてのフィボナッチ数を事前計算した後、 ペインで結果を確認します:

コンパイル時のエラーを診断して修正する
たとえば、コードロジックの誤りなどにより評価が失敗した場合、CLion はエラーをハイライト表示します。 それにマウスオーバーすると、問題の説明が表示されるポップアップが現れます:

エラーの原因と発生ステップが不明な場合は、 失敗するまで評価を実行する をクリックしてデバッグしてください。 Constexpr デバッガーは失敗した評価箇所で停止し、エラーメッセージとコンテキストを表示します。
コンパイル時に式を評価できない場合(たとえば、非 constexpr 関数が呼び出された場合)、CLion はエディターとデバッグの両方でエラーをハイライトします。

制限
ブレークポイントと Cursor まで実行 /Cursor まで強制実行 は constexpr 評価ではサポートされていません。
一部の構文はまだ constexpr 評価ツールでサポートされていません。 進捗状況の確認や関連する問題への投票は YouTrack で行えます。