呼び出された時、その呼び出しがコンパイル時に行われているかを判定する。この関数は、コンパイル時と実行時で実装を切り替える用途に使用できる。戻り値コンパイル時に評価された場合はtrue、そうでなければfalseを返す。詳細には、本関数は以下の文脈内で評価された場合に常にtrueを返す。ifの条件式およびstatic_assertの条件式に書かれている場合は必ずtrueに評価される。変数の初期化式内でこの関数を利用すると、その初期化式が定数式となるかどうかによって複数回呼び出される事がある。//aは実行時に1で初期化される//コンパイル時に一度呼ばれ、その時はtrueを返すが//定数式で利用出来ない変数yを用いて初期化しようとするためコンパイル時実行不可//そのため、実行時にもう一度呼ばれ`false`を返す。//bはコンパイル時に2で初期化される//コンパイル時に一度だけ呼ばれ、trueを返す//定数値2で初期化する式になり、定数式として実行される。//cは実行時にy+yで初期化される(yの初期化がされない場合未定義動作)//初期化式にまず定数式で利用出来ない変数yが出現するため、コンパイル時実行不可//is_constant_evaluated()は実行時に呼び出されfalseを返す//オペランドの評価順序によっては、コンパイル時にも1度呼ばれるかもしれないこの様な挙動に依存したプログラムにならない様に注意が必要である。下に提供されています。