Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r54189 - sandbox/committee/LWG/proposals
From: dave_at_[hidden]
Date: 2009-06-22 04:45:13


Author: dave
Date: 2009-06-22 04:45:12 EDT (Mon, 22 Jun 2009)
New Revision: 54189
URL: http://svn.boost.org/trac/boost/changeset/54189

Log:
Elaborate. Add "MRV" catchphrase

Text files modified:
   sandbox/committee/LWG/proposals/exported-concept-maps.rst | 17 +++++++++++------
   1 files changed, 11 insertions(+), 6 deletions(-)

Modified: sandbox/committee/LWG/proposals/exported-concept-maps.rst
==============================================================================
--- sandbox/committee/LWG/proposals/exported-concept-maps.rst (original)
+++ sandbox/committee/LWG/proposals/exported-concept-maps.rst 2009-06-22 04:45:12 EDT (Mon, 22 Jun 2009)
@@ -120,7 +120,9 @@
 Default implementations of associated functions arise in concepts like
 ``LessThanComparable`` whose interfaces are **non-minimal**, i.e. they
 contain elements that can be implemented entirely in terms of other
-interface elements. In C++03 the usual way to avoid repeating this
+interface elements. Such interfaces are quite common—in Boost you can
+find entire libraries devoted to implementing the redundant parts of
+non-minimal interfaces. The usual way to avoid repeating this
 boilerplate in each model of a concept is to capture the redundancy in
 a base class template::
 
@@ -145,11 +147,14 @@
       friend bool operator<(String const&, String const&);
   };
 
-If this proposal is accepted, all such CRTP base classes templates
-could be discarded, the redundant interface being implemented directly
-by the concept. The Boost.Operators library, for example, could be
-eliminated for C++0x, and the Boost.Iterator library would shrink
-substantially.
+In C++0x as defined today, one would need both the CRTP base *and* the
+``concept_map`` to achieve uniform behavior in constrained and
+unconstrained code. If this proposal is accepted, though, all such
+CRTP base class templates could be discarded, the redundant interface
+being implemented directly by the concept. The Boost.Operators
+library, for example, could be eliminated for C++0x, and the
+Boost.Iterator library would shrink substantially—a massive reduction
+in verbosity.
 
 Risks, Opportunities, and Rationale
 ===================================


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk