Boost logo

Boost-Commit :

From: dgregor_at_[hidden]
Date: 2008-08-23 20:03:53

Author: dgregor
Date: 2008-08-23 20:03:53 EDT (Sat, 23 Aug 2008)
New Revision: 48335

Attempt to fix the issue of putting template requirements into scope
Text files modified:
   sandbox/committee/concepts/wording/wording.tex | 32 ++++++++++++++++++++++++++++----
   1 files changed, 28 insertions(+), 4 deletions(-)

Modified: sandbox/committee/concepts/wording/wording.tex
--- sandbox/committee/concepts/wording/wording.tex (original)
+++ sandbox/committee/concepts/wording/wording.tex 2008-08-23 20:03:53 EDT (Sat, 23 Aug 2008)
@@ -121,6 +121,13 @@
 \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}).
+\item Clarified that the requirements of a constrained member include
+ the requirements of enclosing constrained templates (\ref{temp.class}).
 \section*{Typographical conventions}
@@ -307,6 +314,18 @@
 immediately after the \mbox{\techterm{concept-id}} in the
+\addedCC{The point of declaration for a template requirement
+ (\mbox{\ref{temp.req}}) is immediately after the corresponding
+ \mbox{\techterm{requirement}} in a
+ \mbox{\techterm{requires-clause}} or the
+ \mbox{\techterm{constrained-template-parameter}} in a
+ \mbox{\techterm{template-parameter-list}}. The point of declaration
+ of an implied template requirement (\mbox{\ref{temp.req.impl}}) is
+ the point of declaration of the template requirement from which it
+ was implied or immediately
+ after the declaration of the entity from which the requirement was implied.}
 \noindent\editorial{Add the following new sections to 3.3 [basic.scope] after [basic.scope.class]:}
@@ -349,6 +368,11 @@
 \rSec2[basic.scope.req]{Requirements scope}
+\addedCC{A template requirement has \mbox{\techterm{requirements
+ scope}}. Its potential scope begins at its point of declaration
+ and terminates at the end of the constrained template.}
 \addedConcepts{In a constrained context (\mbox{\ref{temp.constrained}}),
 the names of all associated functions inside the concepts named
 by the concept requirements in the template's requirements
@@ -1402,7 +1426,8 @@
 A constrained member is
 treated as a constrained template (\mbox{\ref{temp.constrained}})
 whose template requirements include the requirements
- specified in its \mbox{\techterm{member-requirement}} clause.}
+ specified in its \mbox{\techterm{member-requirement}} clause}
+\addedCC{and the requirements of each enclosing constrained template}\addedConcepts{.}
@@ -5177,9 +5202,8 @@
   formed from the concept of a requirement and its template argument list
   after substitution of template arguments for their corresponding
   template parameters. There
- is an associated full concept name}
-\addedConcepts{of \mbox{\tcode{I}}; call it
+ is an associated full concept name (\mbox{\ref{concept.def}})
+ of \mbox{\tcode{I}}; call it
   \mbox{\tcode{N}}. Concept map lookup searches an ordered sequence
   \mbox{\tcode{Q}} (defined below) where each element is a set of
   concept maps called

Boost-Commit list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at