[dcl.constexpr/3]によると:constexprとfunction body = delete:目的は何ですか?
constexprの関数の定義は、次の要件を満たすものとする:
を[...]
- その機能-体は=デフォルト、または[削除=しなければなりません。 ..]
これは、以下のクラスのスニペットが有効であることを意味します
struct S {
constexpr void f() = delete;
};
削除されたconstexpr
機能を持つ目的は何ですか?
constexpr
がある場合、それを定義する利点は何ですか?
私は何らかの理由を理解することはできませんが、標準でそれを禁止するよりも許可するほうが簡単かもしれないという事実はわかります。
'delete'ing関数は、特定のオーバーロードを無効にする簡単な方法です。私は 'constexpr'ファミリーの関数にも同様に適用されるべきだと思います。 – StoryTeller
'void'を返す関数の' constexpr'も* fun *です。 – Jarod42
@ Jarod42Touché。 mvceを作成するために使用され、それは問題ありませんが、それは確かに意味があります。 – skypjack