3

GCC 6 で実装されている C++1z N4377 Concepts TS ドラフトを見てきましたが、変数の概念と関数の概念という 2 つの異なる種類の概念を持つ目的がわかりません。

関数概念のドラフトの関連部分は [dcl.spec.concept (5.4)] です。

  • { return E; }宣言には、 where Eis a constraint-expression (14.10.1.3)と同等の関数本体が必要です。

変数の概念については、次の段落で [(6.3)] :

  • 初期化子は制約式でなければなりません。

どちらかができて、もう一方ができないことはありますか? そうでない場合、両方を含める理由はありますか?

注: 最新のドラフトP0121R0では、この点に関して何も変更されていません。

4

1 に答える 1