読者です 読者をやめる 読者になる 読者になる

constexprの問題点

C++

・constexpr関数中のコンパイル時計算エラー

 constexpr関数中で1/0としたときはエラー(ill-formed)になるべきだけど
 今だとそのへんが回りくどい言い回しになっててよくわからん。



・constexprメンバ関数は宣言と定義を分けられない?

 今のドラフトだと以下のように書かれていて

constexpr指定子は、オブジェクト、関数、関数テンプレートの定義、あるいはリテラル型の静的データメンバの宣言だけに適用されるものとします。

 宣言ではなく定義のほうにconstexprが必要、となってるので
 メンバ関数をconstexprにする場合に宣言と定義を分けることができない。



・constexprの再帰は許可しないって言ったけどやっぱりほしい

 constexprの再帰を許可すると大量の注意事項が発生するので禁止してたけど
 再帰がどうしても必要な場合があったのでやっぱり禁止すべきではない。
 再帰の深さの最小サポートはいくつかを新たに定義する必要がある。(512回)



N2826 Issues with Constexpr