↓この辺りの記事を見て色々と試したくなった。
以下の方法でフィボナッチ数列を計算してみる
- 素の関数(元々の記事と一緒)
- fib関数をinline関数にする
- fib関数をconstexprにする
- テンプレートメタプログラミングで計算する
素の関数(元々の記事と一緒)
fib関数をinline関数にする
fib関数をconstexprにする
まとめ
ideoneで動かしてみたら速い順にテンプレートメタプログラミング>素の関数>constexpr=inlineでした(?)
TMP | 素の関数 | constexpr | inline |
---|---|---|---|
0 | 0.76 | 0.98 | 0.99 |
テンプレートメタプログラミングが速いのは当然とはいえ、予想ではテンプレートメタプログラミング=constexpr>inline>素の関数だったんですが……。
constexprってコンパイル時計算みたいなものだと思っていたのですが、なぜか速くないです。
ちゃんと書けてないのか、そもそも理解が間違っているのか……