Boost logo

Boost-Commit :

From: dgregor_at_[hidden]
Date: 2008-08-24 18:41:56


Author: dgregor
Date: 2008-08-24 18:41:56 EDT (Sun, 24 Aug 2008)
New Revision: 48358
URL: http://svn.boost.org/trac/boost/changeset/48358

Log:
Clarify the template requirements available within an associated function's default implementation
Text files modified:
   sandbox/committee/concepts/wording/wording.tex | 29 ++++++++++++++++++-----------
   1 files changed, 18 insertions(+), 11 deletions(-)

Modified: sandbox/committee/concepts/wording/wording.tex
==============================================================================
--- sandbox/committee/concepts/wording/wording.tex (original)
+++ sandbox/committee/concepts/wording/wording.tex 2008-08-24 18:41:56 EDT (Sun, 24 Aug 2008)
@@ -105,6 +105,15 @@
 
 \section*{Changes from N2710}
 \begin{itemize}
+\item Removed the deprecation of \tcode{late_check}.
+
+\item The \tcode{MoveConstructible<T>} requirement is no longer
+ propagated from the types of function parameters
+ (\ref{temp.req.impl}). This change brings concepts in sync with
+ generalized initializer lists (N2672), which permit a function
+ parameter to be direct-initialized. Thanks to Daniel Kr\"ugler for
+ the reminder!
+
 \item Made an expression that uses a constrained member in the current
   instantiation a type-dependent expression
   (\ref{temp.dep.expr}). This change is required to properly delay
@@ -120,8 +129,6 @@
 };
 \end{codeblock}
 
-\item Removed the deprecation of \tcode{late_check}.
-
 \item Clarified the point of declaration of a template requirement
   (\ref{basic.scope.pdecl}) and its potential scope
   (\ref{basic.scope.req}).
@@ -138,11 +145,9 @@
 \item Specify precisely which built-in candidates get defined when
   archetypes are present (\ref{over.built}).
 
-\item The \tcode{MoveConstructible<T>} requirement is no longer
- propagated from the types of function parameters
- (\ref{temp.req.impl}). This change brings concepts in sync with
- generalized initializer lists (N2672), which permit a function
- parameter to be direct-initialized.
+\item Clarified the template requirements of the default
+ implementations of associated functions (\ref{concept.fct}). Thanks
+ again to Daniel Kr\"ugler.
 \end{itemize}
 
 \section*{Typographical conventions}
@@ -3827,9 +3832,8 @@
 member function template.}
 %
 \addedConcepts{An associated function shall not be
- \mbox{\tcode{extern}}, inline}
-\addedZ{or \mbox{\tcode{virtual}}}
-\addedConcepts{(\mbox{\ref{dcl.fct.spec}}), explicitly-defaulted or deleted
+ \mbox{\tcode{extern}}, inline or \mbox{\tcode{virtual}}
+(\mbox{\ref{dcl.fct.spec}}), explicitly-defaulted or deleted
 (\mbox{\ref{dcl.fct.def}}), or a friend function (\mbox{\ref{class.friend}}). An
 associated function shall not contain an
 \mbox{\techterm{exception-specification}} (\mbox{\ref{except.spec}}).}
@@ -3925,7 +3929,10 @@
 \addedConcepts{Associated functions may have a default implementation. This
 implementation will be instantiated when used. A default implementation of an
 associated function is a constrained template
-(\mbox{\ref{temp.constrained}}). \mbox{\enterexample}}
+(\mbox{\ref{temp.constrained}})} \addedCC{whose template requirements
+include concept requirements for the enclosing concept, its
+refinements, along with its
+associated requirements}\addedConcepts{. \mbox{\enterexample}}
 \begin{codeblock}
 concept EqualityComparable<typename T> {
   bool operator==(T, T);


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