Why have both variable and function concepts in C++ Concepts TS?
问题 I've been looking at the C++1z N4377 Concepts TS draft that is being implemented in GCC 6, and I don't understand the purpose of having two different kinds of concepts: variable concepts and function concepts. The relevant part of the draft for function concepts is [dcl.spec.concept (5.4)] The declaration shall have a function-body equivalent to { return E; } where E is a constraint-expression (14.10.1.3). and for variable concepts, in the next paragraph [(6.3)] : The initializer shall be a