|
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