|
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