IT用語集 › プログラミング › constexpr

constexpr

プログラミング Svenska → 更新: 2026-10-21

コンパイル時に評価してもよいことを示すキーワード。関数に付けた場合は「してもよい」であって「しなければならない」ではなく、混乱の大半はここから生じる。

constexpr 関数は、定数が必要な文脈で定数の引数を渡して呼ぶとコンパイラが評価し、普通の変数で呼べば通常の関数と同様に実行時に走る。同じコードに二つの顔がある。できることは段階的に広がった。C++11では単一のreturn文のみ、C++14でループ・分岐・ローカル変数、C++20では定数評価中の動的確保や仮想関数呼び出しが許され、どちらの文脈かで分岐する std::is_constant_evaluated() も加わった。コンパイル時の評価を強制するのが consteval、値をconstにせずコンパイル時初期化だけを保証するのが constinit だ。結果として、ルックアップテーブルの生成やパースがビルド時に移りつつある。

← 用語集に戻る