constexpr関数はそんな感じですね。従来はマクロで似たことをやっていたのですが、それが関数で書けるということで、見やすく、デバッグもしやすくなりました。戻り値がconstexprとは限らない(constexpr関数は実行時にも使える)ので注意しましょう。戻り値をconstexpr変数で受け取れば、constexprじゃないときはコンパイルエラーになるので検出できます。 (関数にenumとかを指定する)templateは、確かに速くなるのですが、最初のうちはあまりおすすめしません。バイナリサイズの増加とそれによる速度低下、コンパイル時間の増加といったデメリットも大きいのです。 速くなる理由は、例えば手生成の関数なら、テンプレート引数に手番を渡せば、手番側のビットボードを取得するときに手番の変数を読む必要がなくなるとか、手番を使った計算のコストも考えなくてよくなるとか(それこそconst
![merom686 (@merom686). Ask me anything on ASKfm](https://cdn-ak-scissors.b.st-hatena.com/image/square/1488388db37c4da16a1a65e703c76dd5c8aac923/height=288;version=1;width=512/https%3A%2F%2Fcuad.ask.fm%2F55f%2Ffaff3%2Fb814%2F4571%2Faf45%2F177d002602cb%2Fnormal%2F145834.png)