Boost logo

Boost-Commit :

From: dgregor_at_[hidden]
Date: 2008-04-04 11:25:24


Author: dgregor
Date: 2008-04-04 11:25:24 EDT (Fri, 04 Apr 2008)
New Revision: 44034
URL: http://svn.boost.org/trac/boost/changeset/44034

Log:
Simplify concept map lookup slightly
Text files modified:
   sandbox/committee/concepts/wording/wording.tex | 26 ++++++++++++--------------
   1 files changed, 12 insertions(+), 14 deletions(-)

Modified: sandbox/committee/concepts/wording/wording.tex
==============================================================================
--- sandbox/committee/concepts/wording/wording.tex (original)
+++ sandbox/committee/concepts/wording/wording.tex 2008-04-04 11:25:24 EDT (Fri, 04 Apr 2008)
@@ -4731,14 +4731,17 @@
 concept A<typename T> { }
 auto concept B<typename T> { T operator+(T, T); }
 concept C<typename T> { }
+concept D<typename T> { }
 
 concept_map A<float> { }
 concept_map B<float> { }
 template<typename T> concept_map C<T*> { }
+template<typename T> requires B<T> concept_map D<T> { }
 
 template<typename T> requires A<T> void f(T);
 template<typename T> requires B<T> void g(T);
 template<typename T> requires C<T> void h(T);
+template<typename T> requires D<T> void i(T);
 
 struct X { };
 void h(float x, int y, int X::* p, int *q) {
@@ -4748,6 +4751,7 @@
   g(y); // okay: implicitly defines and uses concept map B<int>
   g(p); // error: no implicit definition of concept map B<int X::*>; requirement not satisfied
   h(q); // okay: instantiates concept map C<T*> with T=int to satisfy requirement C<T>
+ i(p); // error: \tcode{i} can't get no satisfaction
 }
 \end{codeblock}
 \addedConcepts{\mbox{\exitexample}}
@@ -4823,24 +4827,18 @@
     
   \additemCC{\mbox{\tcode{S}} is the set of concept maps found by
       searching for \mbox{\tcode{N}} in the namespaces of which the
- concept maps in (1) are members;
+ concept maps in (1) are members and in the associated namespaces
+ of those namespaces (\mbox{\ref{namespace.def}});
       \mbox{\techterm{using-directives}} in those namespaces are not
       followed during this search.}
 
- \additemCC{\mbox{\tcode{S}} is the set of concept maps found by
- searching for \mbox{\tcode{N}} in the associated namespaces
- (\mbox{\ref{basic.lookup.argdep}}) of the concept arguments of
- \mbox{\tcode{I}}; \mbox{\techterm{using-directives}} in those
- namespaces are not followed during this search.}
-
- \additemCC{\mbox{\tcode{S}} is the set of concept maps found by
+ \additemCC{\mbox{\tcode{S}} is the set of concept maps found by
       searching for \mbox{\tcode{N}} in the namespace of which the
- concept of \mbox{\tcode{I}} is a member and its associated
- namespaces (\mbox{\ref{namespace.def}});
- \mbox{\techterm{using-directives}} in these
- namespaces are not followed during this search and all names
- found by way of
- \mbox{\techterm{using-declarations}} are ignored.}
+ concept of \mbox{\tcode{I}} is a member and that namespace's
+ associated namespaces (\mbox{\ref{namespace.def}});
+ \mbox{\techterm{using-directives}} in these namespaces are not
+ followed during this search and all names found by way of
+ \mbox{\techterm{using-declarations}} are ignored.}
 \end{enumerate}
 
 \mbox{\enterexample}


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