タグ

constexprに関するyowanoのブックマーク (2)

  • 最新のconstexpr

    constexprは何度も解説しているが、だいぶ昔のドラフトを元にしていたので、正式な規格とはずれている。今書いている参考書はもうしばらく時間がかかるので、とりあえずその間をつなぐために、constexprについて解説する。 constexpr変数 constexpr指定子をつけてリテラル型の変数を宣言すると、その変数はコンパイル時定数になる。変数の初期化式はコンパイル時定数でなければならない。 void f() { constexpr int x = 10 ; // OK、コンパイル時定数 int r = 0 ; constexpr int error = r ; // エラー } constexpr指定子をつけて関数を宣言すると、constexpr関数になる。constexpr関数は、コンパイル時に評価される。ただし、constexpr関数にはとても厳しい制限がある。 まず、仮引数の型

  • constexpr を使うべき5の理由 - まとめ&リンク集 - ボレロ村上 - ENiyGmaA Code

    「constexpr を使うべき5の理由」の連載をひとまず終えたので、記事の一覧をここにまとめておきます。 また、その他の資料や情報へのリンクを載せておきますので、更に興味あるという方は読んでみるのもよいでしょう。 constexpr を使うべき5の理由 1.定数を明示的にコンパイル時定数にする なぜあなたは const 修飾よりも constexpr 指定をするべきか。 2.定数を返す関数をコンパイル時定数にする 「市民、あなたは constexpr ですか」 「もちろんです、C++。constexpr であることは市民の義務です」 3.副作用がないことを保証する 参照透明な世界に行きたい。 4.あのうんざりするテンプレートメタプログラミングによる数値計算からはもはや解放された 型には TMP、値には constexpr。 5.必要なものをなるべく早く用意しておくために 「C++ のこと

    constexpr を使うべき5の理由 - まとめ&リンク集 - ボレロ村上 - ENiyGmaA Code
    yowano
    yowano 2013/11/05
    C++11で実装された、constexprの利点の解説まとめ。
  • 1