2
C ++関数constexprをマークするのは悪いことですか?
非常に簡単な関数を考えると、 int transform(int val) { return (val + 7) / 8; } この関数を関数に変換するconstexprことは簡単で、constexpr変数を定義するときに次のように使用できることは非常に明白です。 constexpr int transform(int val) { return (val + 7) / 8; } 私の想定では、これは厳密に改善されたものです。関数はconstexprコンテキスト以外でも呼び出すことができ、コンパイル時の定数変数の定義に使用できるようになったためです。 私の質問は、これが悪い考えである状況はありますか?たとえば、この関数を作成することによりconstexpr、特定の状況でこの関数が使用できなくなる状況や、誤動作する状況に遭遇することはありますか?