
On Tue, Aug 20, 2013 at 2:03 PM, Mathias Gaunard < mathias.gaunard@ens-lyon.org> wrote:
All existing C++ concepts have requirements specified as a list of valid expressions with the right properties, not with a class-like function list.
The new approach is more fitting to concepts as they've been used in C++.
That has already been discussed many times, and years ago at that, which is why C++0x concepts managed to make it to the working paper to begin with. It has not been a strong point of contention for those advocating ConceptsLite. Needless to say, the standard concepts could have been less ambiguous with a pseudo-signature style approach. That the 98 standard introduced the specification of the standard's concepts via usage requirements should not hold back adoption of proper pseudo-signatures in a concepts language feature, nor should it prevent the specification of the standard concepts from being improved in future standards. We have learned since then and shouldn't have the original, entirely external specification of standard concepts hamper progress with respect to a concepts language feature, especially given that most programmers probably do not reference the concept specifications in the standard when writing code anyway (while I'd like to think that the boost community is representative of the C++ community in general, that is far from the case). Rather, that change mostly impacts generic library developers, who also happen to be able to benefit most from the change. Compatible language-level concepts were introduced in the 0x proposal and a transition to that approach would only cause problems in already-suspicious code that probably shouldn't have be acceptable anyway had the original concepts been more precise. -- -Matt Calabrese