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

ナビゲーションに移動 検索に移動
578行目: 578行目:
   
   
     return 0;
     return 0;
}
</syntaxhighlight>
<br><br>
== レビュー ==
# constが付加された変数を見つけた場合、その変数はRAMにしか配置できないものか確認する。<br>もし、ROM化できる場合、constexpr指定子に変更できないか考えて指摘する。
# constexprテンプレート関数の内部に、ROM化できない文や関数呼び出しが入っていないか確認する。
# ESCRでは再帰は使用してはいけないので、constexpr関数内において、再帰を使用してはいけない。
# constexpr関数やconstexpr関数テンプレートを見つけた場合、その戻り値で初期化している変数とconstexpr型指定されているかどうか確認する。<br>そうでなければ、constexpr関数やconstexpr関数テンプレートの存在意義がない。
<br>
以下の例は、constexprを付加しても意味の無い例である。<br>
ただし、コンパイルエラーにはならない。<br>
<syntaxhighlight lang="c++">
template <typename T>
constexpr inline static T GetFromCin()
{
    T value;
    cin >> value;
    return value;
  }
  }
  </syntaxhighlight>
  </syntaxhighlight>

案内メニュー