Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r48712 - sandbox/committee/concepts/stdlib
From: dgregor_at_[hidden]
Date: 2008-09-10 18:18:58


Author: dgregor
Date: 2008-09-10 18:18:54 EDT (Wed, 10 Sep 2008)
New Revision: 48712
URL: http://svn.boost.org/trac/boost/changeset/48712

Log:
cv-qualified function type madness, thanks to Peter Dimov
Text files modified:
   sandbox/committee/concepts/stdlib/clib-concepts.tex | 24 ++++++++++++++++--------
   1 files changed, 16 insertions(+), 8 deletions(-)

Modified: sandbox/committee/concepts/stdlib/clib-concepts.tex
==============================================================================
--- sandbox/committee/concepts/stdlib/clib-concepts.tex (original)
+++ sandbox/committee/concepts/stdlib/clib-concepts.tex 2008-09-10 18:18:54 EDT (Wed, 10 Sep 2008)
@@ -127,9 +127,17 @@
     follow-on issue 866), there is no longer a need for the
     \tcode{HasPlacementNew} concept in the Standard Library, so it has
     been removed.
- \item Made the \tcode{intmax_t}, \tcode{uintmax_t}, and
- \tcode{long double} constructors in the arithmetic concept
- \tcode{explicit}, resolving concepts issue \#47.
+ \item Made the \tcode{intmax_t}, \tcode{uintmax_t}, and
+ \tcode{long double} constructors in the arithmetic concept
+ \tcode{explicit}, resolving concepts issue \#47.
+ \item \tcode{MemberPointeeType} not longer refines
+ \tcode{PointeeType}, because \tcode{void() const} is a
+ \tcode{MemberPointeeType} but not a \tcode{PointeeType}. Also,
+ \tcode{FunctionType} refines \tcode{MemberPointeeType} (not
+ \tcode{PointeeType}), and both \tcode{PointeeType} and
+ \tcode{ReferentType} are restricted to \emph{cv-qualified}
+ function types. Thanks to
+ Peter Dimov for the acute observation!
 \end{itemize}
 
 \end{titlepage}
@@ -216,7 +224,7 @@
   // \ref{concept.support}, support concepts:
   concept Returnable<typename T> { }
   concept PointeeType<typename T> { }
- @\addedConcepts{concept MemberPointeeType<typename T> \mbox{\textit{see below}};}@
+ concept MemberPointeeType<typename T> { }
   concept ReferentType<typename T> { }
   concept VariableType<typename T> { }
   concept ObjectType<typename T> @\textit{see below}@;
@@ -386,13 +394,13 @@
 \pnum
 \addedConcepts{\mbox{\requires}
 for every type \mbox{\tcode{T}} that is an object type,
- function type, or \mbox{\techterm{cv}} \mbox{\tcode{void}}, a
+ cv-unqualified function type, or \mbox{\techterm{cv}} \mbox{\tcode{void}}, a
   concept map \mbox{\tcode{PointeeType}} shall be implicitly defined
   in namespace \mbox{\tcode{std}}.}
 \end{itemdescr}
 
 \begin{itemdecl}
-@\addedConcepts{concept MemberPointeeType<typename T> : PointeeType<T> \{ \}}@
+concept MemberPointeeType<typename T> { }
 \end{itemdecl}
 
 \begin{itemdescr}
@@ -424,7 +432,7 @@
 \pnum
 \mbox{\requires}
 for every type \mbox{\tcode{T}} that is an object type, a
- function type, or a reference type, a
+ cv-qualified function type, or a reference type, a
   concept map \mbox{\tcode{ReferentType}} shall be implicitly defined
   in namespace \mbox{\tcode{std}}.
 \end{itemdescr}
@@ -462,7 +470,7 @@
 \end{itemdescr}
 
 \begin{itemdecl}
-concept FunctionType<typename T> : PointeeType<T> { }
+concept FunctionType<typename T> : MemberPointeeType<T> { }
 \end{itemdecl}
 
 \begin{itemdescr}


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