|
Boost-Commit : |
From: dgregor_at_[hidden]
Date: 2008-06-11 04:34:40
Author: dgregor
Date: 2008-06-11 04:34:39 EDT (Wed, 11 Jun 2008)
New Revision: 46314
URL: http://svn.boost.org/trac/boost/changeset/46314
Log:
Cleanup the concept map refinement compatibility checking
Text files modified:
sandbox/committee/concepts/wording/macros.tex | 1
sandbox/committee/concepts/wording/wording.tex | 67 ++++++++++++++++++++++++++-------------
2 files changed, 46 insertions(+), 22 deletions(-)
Modified: sandbox/committee/concepts/wording/macros.tex
==============================================================================
--- sandbox/committee/concepts/wording/macros.tex (original)
+++ sandbox/committee/concepts/wording/macros.tex 2008-06-11 04:34:39 EDT (Wed, 11 Jun 2008)
@@ -105,6 +105,7 @@
\newcommand{\additemCC}[1]{\item\addedCC{#1}}
\newcommand{\changedCCC}[2]{\textcolor{addclr}{\st{#1}}\addedCC{#2}}
\newcommand{\removedCCC}[1]{\textcolor{addclr}{\st{#1}}}
+\newcommand{\remitemCCC}[1]{\item\removedCCC{#1}}
%% Concepts changes for the next revision
\definecolor{zadd}{rgb}{0.8,0,0.8}
Modified: sandbox/committee/concepts/wording/wording.tex
==============================================================================
--- sandbox/committee/concepts/wording/wording.tex (original)
+++ sandbox/committee/concepts/wording/wording.tex 2008-06-11 04:34:39 EDT (Wed, 11 Jun 2008)
@@ -4036,12 +4036,17 @@
\addedConcepts{\mbox{\exitexample}}
\pnum
-\addedConcepts{If a concept map is provided for a particular
-concept instance,
+\changedCCC{If a concept map or concept map template is provided
+ for a particular concept instance,
then that concept map shall be defined before a constrained template
-referring to that concept instance is instantiated.
-If the introduction of a concept
-map changes a previous result (e.g., in template argument deduction
+referring to that concept instance is instantiated.}{A concept map or
+concept map template shall be defined before the first use of a
+concept instance that would make use of the concept map or concept map
+template in every translation unit in which such a use occurs; no
+diagnostic is required.}
+\addedConcepts{If the introduction of a concept map}
+\addedCC{or concept map template}
+\addedConcepts{changes a previous result (e.g., in template argument deduction
(\mbox{\ref{temp.deduct}})), the program is ill-formed, no diagnostic
required. Concept map templates must be
instantiated if doing so would affect the semantics of the program.}
@@ -4730,33 +4735,51 @@
\addedConcepts{\mbox{\exitexample}}
\pnum
-\addedConcepts{Each concept map or concept map template shall provide only
+\addedConcepts{Each concept map or concept map template shall}
+\changedCCC{provide only
definitions corresponding to requirements of the refinements of its
-concept that are compatible with the definitions provided by the
-concept map or concept map template named by the refinement. A
-definition in the refining concept map or concept map template is
-compatible with its corresponding definition in the refined concept
+concept}{have satisfiers}
+\addedConcepts{that are compatible with the}
+\changedCCC{definitions provided by}{satisfiers of}
+\addedConcepts{the
+concept map or concept map template named by the refinement. A}
+\changedCCC{definition in}{satisfier of}
+\addedConcepts{the refining concept map or concept map template is
+compatible with its corresponding}
+\changedCCC{definition in}{satisfier of}
+\addedConcepts{the refined concept
map or concept map template if}
\begin{itemize}
-\item \addedConcepts{the definition in the refined concept
-map or concept map template was implicitly defined from} \addedConcepts{an explicit
- definition in} \addedConcepts{the refining
+\remitemCCC{the definition in the refined concept
+map or concept map template was implicitly defined from} \removedCCC{an explicit
+ definition in} \removedCCC{the refining
concept map or concept map template,}
-\additemConcepts{the definition was explicitly provided in the refined
+\remitemCCC{the definition was explicitly provided in the refined
concept map or concept map template and implicitly defined in the
refining concept map or concept map template, or}
-\additemConcepts{the definitions satisfy
-an associated type or template requirement (\mbox{\ref{concept.assoc}}) and
-both definitions name the same type or}
-\addedCC{class}
+\additemCC{the satisfiers correspond to an associated function
+ requirement (\mbox{\ref{concept.fct}}) and their associated function
+candidate sets have the same seed or}
+\additemConcepts{the} \changedCCC{definitions}{satisfiers}
+\addedConcepts{satisfy an associated type or}
+\addedCC{class}
+\addedConcepts{template requirement (\mbox{\ref{concept.assoc}}) and
+both}
+\changedCCC{definitions}{satisfiers}
+\addedConcepts{name the same type or}
\addedConcepts{template, respectively.}
\end{itemize}
-\addedConcepts{If a program contains definitions in a concept map or concept
-map template that are not compatible with their corresponding
-definitions in a refined concept map or concept map template, the
+\addedConcepts{If a program contains}
+\changedCCC{definitions in}{satisfiers of}
+\addedConcepts{a concept map or concept
+map template that are not compatible with their corresponding}
+\changedCCC{definitions in}{satisfiers of}
+\addedConcepts{a refined concept map or concept map template, the
program is ill-formed.
\mbox{\enternote} if the concept maps or concept map templates with
-definitions that are not compatible occur in different translation
+}
+\changedCCC{definitions}{satisfiers}
+\addedConcepts{that are not compatible occur in different translation
units, no diagnostic is required. \mbox{\exitnote}\
\mbox{\enterexample}}
\begin{codeblock}
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