|
Boost-Commit : |
From: widman_at_[hidden]
Date: 2008-08-01 12:46:08
Author: james.widman
Date: 2008-08-01 12:46:07 EDT (Fri, 01 Aug 2008)
New Revision: 47933
URL: http://svn.boost.org/trac/boost/changeset/47933
Log:
Prepare for the next draft of the concepts wording
(Changes from revisions r47898 and r47932 are still represented with the
\*CC{} commands, since they did not appear in N2710.)
Text files modified:
sandbox/committee/concepts/wording/wording.tex | 92 ++++++++++++---------------------------
1 files changed, 28 insertions(+), 64 deletions(-)
Modified: sandbox/committee/concepts/wording/wording.tex
==============================================================================
--- sandbox/committee/concepts/wording/wording.tex (original)
+++ sandbox/committee/concepts/wording/wording.tex 2008-08-01 12:46:07 EDT (Fri, 01 Aug 2008)
@@ -103,13 +103,12 @@
\item N2654=08-0161: Allocator Concepts (Revision 1)
\end{itemize}
-\section*{Changes from N2676}
-\begin{itemize}
-\item Deprecate the \tcode{late_check} feature, which is meant only as
- an evolutionary tool.
-\item Clarify where concept semantics occur only within a constrained
- context, rather than within a complete constrained template.
-\end{itemize}
+% To be updated:
+%
+% \section*{Changes from N2710}
+% \begin{itemize}
+% \item
+% \end{itemize}
\section*{Typographical conventions}
Within the proposed wording, text that has been added
@@ -337,9 +336,7 @@
\rSec2[basic.scope.req]{Requirements scope}
\pnum
-\addedConcepts{In a constrained }
- \changedCCC{template}{context}
-\addedConcepts{ (\mbox{\ref{temp.constrained}}),
+\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
are visible in the scope of the template
@@ -860,10 +857,9 @@
parameters do not behave as if they were replaced with their
corresponding archetypes. Thus, template parameters imply the
existence of dependent types, type-dependent expressions, and
- dependent names as in an unconstrained template. }
-\addedCC{
-Furthermore, names at requirements scope (\mbox{\ref{basic.scope.req}})
-are not visible.
+ dependent names as in an unconstrained template.
+ Furthermore, names at requirements scope (\mbox{\ref{basic.scope.req}})
+ are not visible.
}
\addedConcepts{ \mbox{\exitnote}}
@@ -903,7 +899,7 @@
\pnum
-\addedCC{
+\addedConcepts{
\mbox{\enternote}
within a late-checked block,
users should prefer to avoid using operations which,
@@ -921,12 +917,12 @@
}
\pnum
-\addedCC{
+\addedConcepts{
The use of \mbox{\tcode{late\_check}} is deprecated.
}
\pnum
-\addedCC{
+\addedConcepts{
\mbox{\enterrationale}
a late-checked block should be used only when certain suitably
constrained versions of templates are not yet available for use from
@@ -1076,10 +1072,9 @@
\pnum
\addedConcepts{A \mbox{\techterm{using-declaration}} for a concept map
is an alias to
-the concept map}
-\changedCCC{that matches (\mbox{\ref{temp.concept.map}}) the
-concept instance corresponding to the}{determined by concept map lookup (\mbox{\ref{temp.req.sat}}) of the}
-\addedConcepts{\mbox{\techterm{concept-id}} from the specified
+the concept map determined by concept map lookup
+(\mbox{\ref{temp.req.sat}}) of the
+\mbox{\techterm{concept-id}} from the specified
namespace.
\mbox{\enterexample}}
%
@@ -1215,9 +1210,7 @@
\setcounter{Paras}{6}
\pnum
-\addedConcepts{In a constrained }
- \changedCCC{template}{context}
-\addedConcepts{ (\mbox{\ref{temp.constrained}}),
+\addedConcepts{In a constrained context (\mbox{\ref{temp.constrained}}),
a type archetype \mbox{\techterm{cv} \tcode{T}} shall only
be used as the type of a variable if the template has a concept
requirement \mbox{\tcode{VariableType<T>}}.}
@@ -1225,9 +1218,7 @@
\rSec2[dcl.ptr]{Pointers}
\setcounter{Paras}{4}
\pnum
-\addedConcepts{In a constrained }
- \changedCCC{template}{context}
-\addedConcepts{ (\mbox{\ref{temp.constrained}}),
+\addedConcepts{In a constrained context (\mbox{\ref{temp.constrained}}),
a type archetype \mbox{\techterm{cv} \tcode{T}} shall only
be used to form a type ``pointer to \mbox{\techterm{cv} \tcode{T}}''
if the template has a concept requirement
@@ -1236,9 +1227,7 @@
\rSec2[dcl.ref]{References}
\setcounter{Paras}{5}
\pnum
-\addedConcepts{In a constrained }
- \changedCCC{template}{context}
-\addedConcepts{ (\mbox{\ref{temp.constrained}}), a
+\addedConcepts{In a constrained context (\mbox{\ref{temp.constrained}}), a
type archetype \mbox{\techterm{cv} \tcode{T}} shall only be
used to form a type ``reference to \mbox{\techterm{cv} \tcode{T}}''
if the
@@ -1253,9 +1242,7 @@
or
``\textit{cv}\
\tcode{void}.''
-\addedConcepts{In a constrained }
- \changedCCC{template}{context}
-\addedConcepts{ (\mbox{\ref{temp.constrained}}), a
+\addedConcepts{In a constrained context (\mbox{\ref{temp.constrained}}), a
pointer to member shall only point to a type archetype \mbox{\techterm{cv}
\tcode{T}} if the template has a concept
requirement \mbox{\tcode{MemberPointeeType<T>}}.}
@@ -1278,9 +1265,7 @@
from a pointer to member, from a class,
from an enumeration type,
or from another array.
-\addedConcepts{In a constrained }
- \changedCCC{template}{context}
-\addedConcepts{ (\mbox{\ref{temp.constrained}}), an
+\addedConcepts{In a constrained context (\mbox{\ref{temp.constrained}}), an
array shall only be constructed from a type archetype \mbox{\techterm{cv}
\tcode{T}} if the template has a concept
requirement \mbox{\tcode{ObjectType<T>}}.}
@@ -1310,9 +1295,7 @@
although they may have a return type of type pointer or reference to such things.
There shall be no arrays of functions, although there can be arrays of pointers
to functions.
-\addedConcepts{In a constrained }
- \changedCCC{template}{context}
-\addedConcepts{ (\mbox{\ref{temp.constrained}}), a
+\addedConcepts{In a constrained context (\mbox{\ref{temp.constrained}}), a
type archetype \mbox{\techterm{cv}} \mbox{\tcode{T}} shall
only be used as the return type of a function type if the template
has a concept requirement \mbox{\tcode{Returnable<T>}}.}
@@ -4929,21 +4912,11 @@
context, several constructs provide unconstrained contexts:}
\begin{itemize}
\additemConcepts{a late-checked block (\mbox{\ref{stmt.late}}),}
- \additemConcepts{a default }
- \removedCCC{template}
- \addedConcepts{ argument in a
+ \additemConcepts{a default argument in a
\mbox{\techterm{template-parameter}},}
\end{itemize}
\pnum
-\removedCCC{If a type or expression within the signature of a constrained
-template, the \mbox{\techterm{template-parameter-list}} of a
-constrained template, or the \mbox{\techterm{requires-clause}} of a
-constrained template (if any) would be ill-formed if the associated
-context were a constrained context, the program is
-ill-formed. \mbox{\enterexample} [removed example] \mbox{\exitexample}}
-
-\pnum
\addedConcepts{Within a constrained context, a program shall not refer to an
unconstrained template.}
@@ -5497,9 +5470,7 @@
a value is a value. }
\pnum
-\addedConcepts{A type in a constrained }
- \changedCCC{template}{context}
-\addedConcepts{ aliases an archetype if it is:}
+\addedConcepts{A type in a constrained context aliases an archetype if it is:}
\begin{itemize}
\item \addedConcepts{a template type parameter (\mbox{\ref{temp.param}}),}
\item \addedConcepts{an associated type (\mbox{\ref{concept.assoc}}), or}
@@ -5508,18 +5479,14 @@
\end{itemize}
\pnum
-\addedConcepts{A template in a constrained }
- \changedCCC{template}{context}
-\addedConcepts{ aliases an archetype if it is:}
+\addedConcepts{A template in a constrained context aliases an archetype if it is:}
\begin{itemize}
\additemConcepts{a template template parameter (\mbox{\ref{temp.param}}) or}
\additemConcepts{an associated class template (\mbox{\ref{concept.assoc}}).}
\end{itemize}
\pnum
-\addedConcepts{A value in a constrained }
- \changedCCC{template}{context}
-\addedConcepts{ aliases an archetype if it is a
+\addedConcepts{A value in a constrained context aliases an archetype if it is a
\mbox{\techterm{constant-expression}} (\mbox{\ref{expr.const}})
whose value depends on a template parameter.}
@@ -5895,11 +5862,8 @@
\rSec2[temp.constrained.set]{Candidate sets}
\pnum
\addedConcepts{A \mbox{\techterm{candidate set}} is a set containing
- functions and function templates that is defined in a constrained
-}
-\changedCCC{template }{context}
-\addedConcepts{
- (a \mbox{\techterm{retained}} \mbox{\techterm{candidate
+ functions and function templates that is defined in a constrained
+ context (a \mbox{\techterm{retained}} \mbox{\techterm{candidate
set}},~\mbox{\ref{temp.constrained.inst}}) or as the result of
satisfying an associated function requirement in a concept map (an
\mbox{\techterm{associated}} \mbox{\techterm{function}} \mbox{\techterm{candidate
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