「C++の基礎 - constexpr」の版間の差分

ナビゲーションに移動 検索に移動
1行目: 1行目:
== 概要 ==
== 概要 ==
C++には、<code>constexpr</code>という概念がある。<br>
C++には、<code>constexpr</code>という概念がある。<br>
<br>
今まで、const修飾してきたものには2種類ある。<br>
* ROM化可能な値。
* 実行時にしか決まらないが、一度初期化した後は二度と変更されない値。
<br>
C++ 11以降、前者はconstexprが受け持ち、後者はconstが受け持つことになった。<br>
constexprは、constexprの制約を満たした変数の定義、関数と関数テンプレートの宣言、staticデータメンバの宣言に対して使用できる。<br>
<br>
つまり、constはRAMにしか配置できない変数に対して使う型修飾子となった。<br>
constexprは型修飾子ではなく、型指定子である。<br>
型を修飾するものでなく、ROM化できる、または、ROM化できる可能性がある、という意味を持つ指定子である。<br>
<br>
<br>
* constexprが使用できない、または、使用すべきではない場合
* constexprが使用できない、または、使用すべきではない場合

案内メニュー