$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: dgregor_at_[hidden]
Date: 2008-06-30 10:25:03
Author: dgregor
Date: 2008-06-30 10:25:02 EDT (Mon, 30 Jun 2008)
New Revision: 46911
URL: http://svn.boost.org/trac/boost/changeset/46911
Log:
Final cleanup of containers chapter
Text files modified: 
   sandbox/committee/concepts/stdlib/Makefile            |    36 ++++++------                            
   sandbox/committee/concepts/stdlib/clib-algorithms.tex |     2                                         
   sandbox/committee/concepts/stdlib/clib-containers.tex |   109 ++++++++++++++++++++++++++++----------- 
   sandbox/committee/concepts/stdlib/clib-iterators.tex  |     5 +                                       
   sandbox/committee/concepts/stdlib/local.bib           |    10 +++                                     
   sandbox/committee/concepts/stdlib/macros.tex          |     2                                         
   6 files changed, 109 insertions(+), 55 deletions(-)
Modified: sandbox/committee/concepts/stdlib/Makefile
==============================================================================
--- sandbox/committee/concepts/stdlib/Makefile	(original)
+++ sandbox/committee/concepts/stdlib/Makefile	2008-06-30 10:25:02 EDT (Mon, 30 Jun 2008)
@@ -41,25 +41,23 @@
 
 .tex.pdf:
         @$(PDFLATEX) $*
-
-
-#	@if ( grep 'LaTeX Warning: Label(s) may' $*.log > /dev/null ); \
-#	then $(PDFLATEX) $* ; else :; fi
-#	@ if ( grep 'Writing index file' $*.log > /dev/null ); \
-#	then makeindex $* ; $(PDFLATEX) $* ; fi
-#	@-if ( grep 'LaTeX Warning: Citation' $*.log > /dev/null ); then \
-#	  bibtex $* ; \
-#	  $(PDFLATEX) $* ; \
-#	fi
-#	@if ( grep 'LaTeX Warning: Label(s) may' $*.log > /dev/null || \
-#	      grep 'LaTeX Warning: Citation' $*.log > /dev/null); \
-#	then $(PDFLATEX) $* ; else :; fi
-#	@if ( grep 'LaTeX Warning: Label(s) may' $*.log > /dev/null || \
-#	      grep 'LaTeX Warning: Citation' $*.log > /dev/null); \
-#	then $(PDFLATEX) $* ; else :; fi
-#	@if ( grep 'LaTeX Warning: Label(s) may' $*.log > /dev/null || \
-#	      grep 'LaTeX Warning: Citation' $*.log > /dev/null); \
-#	then $(PDFLATEX) $* ; else :; fi
+	@if ( grep 'LaTeX Warning: Label(s) may' $*.log > /dev/null ); \
+	then $(PDFLATEX) $* ; else :; fi
+	@ if ( grep 'Writing index file' $*.log > /dev/null ); \
+	then makeindex $* ; $(PDFLATEX) $* ; fi
+	@-if ( grep 'LaTeX Warning: Citation' $*.log > /dev/null ); then \
+	  bibtex $* ; \
+	  $(PDFLATEX) $* ; \
+	fi
+	@if ( grep 'LaTeX Warning: Label(s) may' $*.log > /dev/null || \
+	      grep 'LaTeX Warning: Citation' $*.log > /dev/null); \
+	then $(PDFLATEX) $* ; else :; fi
+	@if ( grep 'LaTeX Warning: Label(s) may' $*.log > /dev/null || \
+	      grep 'LaTeX Warning: Citation' $*.log > /dev/null); \
+	then $(PDFLATEX) $* ; else :; fi
+	@if ( grep 'LaTeX Warning: Label(s) may' $*.log > /dev/null || \
+	      grep 'LaTeX Warning: Citation' $*.log > /dev/null); \
+	then $(PDFLATEX) $* ; else :; fi
 
 
 #
Modified: sandbox/committee/concepts/stdlib/clib-algorithms.tex
==============================================================================
--- sandbox/committee/concepts/stdlib/clib-algorithms.tex	(original)
+++ sandbox/committee/concepts/stdlib/clib-algorithms.tex	2008-06-30 10:25:02 EDT (Mon, 30 Jun 2008)
@@ -64,7 +64,7 @@
 Thomas Witt, Zephyr Associates, Inc.\\
 Andrew Lumsdaine, Indiana University
 \end{tabular}\vspace{-6pt}
-\par\noindent Document number: D2696=08-0206\vspace{-6pt}
+\par\noindent Document number: N2696=08-0206\vspace{-6pt}
 \par\noindent Revises document number: N2625=08-0135\vspace{-6pt}
 \par\noindent Date: \today\vspace{-6pt}
 \par\noindent Project: Programming Language \Cpp{}, Library Working Group\vspace{-6pt}
Modified: sandbox/committee/concepts/stdlib/clib-containers.tex
==============================================================================
--- sandbox/committee/concepts/stdlib/clib-containers.tex	(original)
+++ sandbox/committee/concepts/stdlib/clib-containers.tex	2008-06-30 10:25:02 EDT (Mon, 30 Jun 2008)
@@ -64,7 +64,7 @@
 Mat Marcus, Adobe Systems, Inc.\\
 Pablo Halpern,  Bloomberg, L.P.
 \end{tabular}\vspace{-6pt}
-\par\noindent Document number: D2694=08-0204\vspace{-6pt}
+\par\noindent Document number: N2694=08-0204\vspace{-6pt}
 \par\noindent Revises document number: N2623=08-0133\vspace{-6pt}
 \par\noindent Date: \today\vspace{-6pt}
 \par\noindent Project: Programming Language \Cpp{}, Library Working Group\vspace{-6pt}
@@ -775,16 +775,21 @@
 \synopsis{Header \tcode{<container_concepts>} synopsis}
 \begin{codeblock}
 namespace std {
+  @\addedCC{// \mbox{\ref{container.concepts.free}}, container concepts}@
   concept Container<typename C> @\textit{see below}@
   concept SequenceContainer<typename C> @\textit{see below}@
   concept FrontInsertionSequence<typename C> @\textit{see below}@
   concept BackInsertionSequence<typename C> @\textit{see below}@
   concept InsertionSequence<typename C> @\textit{see below}@
+
+  @\addedCC{// \mbox{\ref{container.concepts.member}}, member container concepts}@
   @\addedCC{concept MemberContainer<typename C>} \textit{see below}@
   @\addedCC{concept MemberSequenceContainer<typename C>} \textit{see below}@
   @\addedCC{concept MemberFrontInsertionSequence<typename C>} \textit{see below}@
   @\addedCC{concept MemberBackInsertionSequence<typename C>} \textit{see below}@
   @\addedCC{concept MemberInsertionSequence<typename C>} \textit{see below}@
+
+  @\addedCC{// \mbox{\ref{container.concepts.maps}}, container concept maps}@
   @\addedCC{template <MemberContainer C>              concept_map Container<C>} \textit{see below}@
   @\addedCC{template <MemberSequenceContainer C>      concept_map SequenceContainer<C>} \textit{see below}@
   @\addedCC{template <MemberFrontInsertionSequence C> concept_map FrontInsertionSequence<C>} \textit{see below}@
@@ -804,7 +809,7 @@
   other parts of the library. These concepts are written in terms of
   free functions. For backward compatibility, member function versions and 
 concept maps adapting member to free syntax follow in
-(\mbox{\ref{container.concepts.member}}) and (\mbox{\ref{concept.concepts.maps}}).}
+(\mbox{\ref{container.concepts.member}}) and (\mbox{\ref{container.concepts.maps}}).}
 
 \begin{itemdecl}
 auto concept Container<typename C> {
@@ -928,16 +933,17 @@
   modified by inserting elements at any position within the sequence.}
 \end{itemdescr}
 
-\rSec3[container.concepts.member]{Backward compatibility container concepts} 
+\rSec3[container.concepts.member]{Member container concepts} 
 
 \pnum 
 \addedCC{This section contains backward compatibility concepts,
   written using member function syntax, corresponding to the container
-  concepts in (\mbox{\ref{container.concepts.free}}). Concept maps
+  concepts (\mbox{\ref{container.concepts.free}}). Concept maps
   that automatically adapt these member function concepts to the free
-  function concept syntax follow in
-  (\mbox{\ref{concept.concepts.maps}}).}
+  function concept syntax follow 
+  (\mbox{\ref{container.concepts.maps}}).}
 
+\color{ccadd}
 \begin{itemdecl}
 auto concept MemberContainer<typename C> {
   ObjectType           value_type      = typename C::value_type;
@@ -967,11 +973,11 @@
 
 \begin{itemdescr}
 \pnum
-\addedConcepts{\mbox{\reallynote} describes a container, in terms of
+\addedCC{\mbox{\reallynote} describes a container, in terms of
   member functions, which provides
   iteration through a sequence of elements stored in the container.}
 \pnum
-\addedConcepts{\mbox{\requires} for a (possibly
+\addedCC{\mbox{\requires} for a (possibly
   \mbox{\tcode{const}}-qualified) container \mbox{\tcode{c}},
   \mbox{\tcode{[c.begin(), c.end())}} is a valid range.}
 \end{itemdescr}
@@ -996,7 +1002,7 @@
 
 \begin{itemdescr}
 \pnum 
-\addedConcepts{\mbox{\reallynote} describes a sequence container, in
+\addedCC{\mbox{\reallynote} describes a sequence container, in
   terms of member functions, which stores its elements in the order in
   which they were added.}
 \end{itemdescr}
@@ -1017,7 +1023,7 @@
 
 \begin{itemdescr}
 \pnum
-\addedConcepts{\mbox{\reallynote} describes a container, in terms of
+\addedCC{\mbox{\reallynote} describes a container, in terms of
   member functions, that can be
   modified by adding or removing elements from the front of the
   sequence.}
@@ -1037,7 +1043,7 @@
 
 \begin{itemdescr}
 \pnum
-\addedConcepts{\mbox{\reallynote} describes a container, in terms of member functions, that can be
+\addedCC{\mbox{\reallynote} describes a container, in terms of member functions, that can be
   modified by adding or removing elements from the back of the
   sequence.}
 \end{itemdescr}
@@ -1059,7 +1065,7 @@
 
 \begin{itemdescr}
 \pnum
-\addedConcepts{\mbox{\reallynote} describes a container, in terms of member functions, that can be
+\addedCC{\mbox{\reallynote} describes a container, in terms of member functions, that can be
   modified by inserting elements at any position within the sequence.}
 \end{itemdescr}
 
@@ -1069,7 +1075,7 @@
 \addedCC{This section contains concept maps that automatically adapt
   classes with the appropriate member functions, as specified in
   (\mbox{\ref{container.concepts.member}}), to meet the free function
-  container concept syntax in (\mbox{\ref{concept.concepts.free}}). It
+  container concept syntax in (\mbox{\ref{container.concepts.free}}). It
   also contains maps adapting built-in arrays to model the appropriate
   container concepts. }
 
@@ -1095,6 +1101,13 @@
 }
 \end{itemdecl}
 
+\begin{itemdescr}
+\pnum 
+\addedCC{\mbox{\reallynote} Adapts an existing container, which uses
+  member function syntax for each of its operations, to the
+  \mbox{\tcode{Container}} concept.}
+\end{itemdescr}
+
 \begin{itemdecl}
 template <typename E, size_t N>
 concept_map Container<E[N]> {
@@ -1134,17 +1147,30 @@
 }
 \end{itemdecl}
 
+\begin{itemdescr}
+\pnum 
+\addedCC{\mbox{\reallynote} Adapts built-in arrays to the 
+  \mbox{\tcode{Container}} concept.}
+\end{itemdescr}
+
 
 \begin{itemdecl}
 template <MemberSequenceContainer C> 
 concept_map SequenceContainer<C> {
   Container<C>::reference       front(C& c)       { return c.front(); }
   Container<C>::const_reference front(const C& c) { return c.front(); }
-  Container<C>::reference       back(C& c)        { return c.back(); }
+  @\resetcolor{}@Container<C>::reference       back(C& c)        { return c.back(); }
   Container<C>::const_reference back(const C& c)  { return c.back(); }
 }			
 \end{itemdecl}
 
+\begin{itemdescr}
+\pnum 
+\addedCC{\mbox{\reallynote} Adapts an existing container, which uses
+  member function syntax for each of its operations, to the}
+\\\addedCC{\mbox{\tcode{SequenceContainer}} concept.}
+\end{itemdescr}
+
 \begin{itemdecl}
 template <typename E, size_t N>
 concept_map SequenceContainer<E[N]> {
@@ -1163,6 +1189,12 @@
 }
 \end{itemdecl}
 
+\begin{itemdescr}
+\pnum 
+\addedCC{\mbox{\reallynote} Adapts built-in arrays to the 
+  \mbox{\tcode{SequenceContainer}} concept.}
+\end{itemdescr}
+
 \begin{itemdecl}
 template <MemberFrontInsertionSequence C> 
 concept_map FrontInsertionSequence<C> {
@@ -1171,6 +1203,12 @@
 }			
 \end{itemdecl}
 
+\begin{itemdescr}
+\pnum 
+\addedCC{\mbox{\reallynote} Adapts an existing container, which uses
+  member function syntax for each of its operations, to the}
+  \\\addedCC{\mbox{\tcode{FrontSequenceContainer}} concept.}
+\end{itemdescr}
 
 \begin{itemdecl}
 template <MemberBackInsertionSequence C> 
@@ -1180,6 +1218,13 @@
 }			
 \end{itemdecl}
 
+\begin{itemdescr}
+\pnum 
+\addedCC{\mbox{\reallynote} Adapts an existing container, which uses
+  member function syntax for each of its operations, to the}
+  \\\addedCC{\mbox{\tcode{BackSequenceContainer}} concept.}
+\end{itemdescr}
+
 \color{black}
 
 \rSec1[sequences]{Sequences}
@@ -1338,7 +1383,7 @@
     void swap(queue<T,@\changedCCC{Allocator}{ Cont}@>& x, queue<T,@\changedCCC{Allocator}{ Cont}@>&& y);
 
   template <@\changedConcepts{class}{ObjectType}@ T, @\changedConcepts{class}{BackInsertionSequence}@ Cont@\removedConcepts{ainer}@ = vector<T>,
-        @\changedConcepts{class}{Predicate<auto, T, T>}@ Compare = less<typename Cont@\removedConcepts{ainer}@::value_type> >
+        @\removedCC{{class}}\changedCCC{Predicate<auto, T, T>}{StrictWeakOrder<auto, T>}@ Compare = less<typename Cont@\removedConcepts{ainer}@::value_type> >
     @\addedConcepts{requires SameType<Cont::value_type, T> \&\&} \removedCCC{Mutable}\addedConcepts{RandomAccessIterator<Cont::iterator>}@
              @\addedConcepts{\&\& }\changedCCC{Swappable}{Shuffle}\addedConcepts{Iterator<Cont::iterator> \&\& CopyConstructible<Compare>}@
   class priority_queue;
@@ -1832,7 +1877,7 @@
 \tcode{n} default constructed elements.
 
 \pnum
-@\removedConcepts{\mbox{\requires} \mbox{\tcode{T}} shall be \mbox{\tcode{DefaultConstructible}}.}@
+\removedConcepts{\mbox{\requires} \mbox{\tcode{T}} shall be \mbox{\tcode{DefaultConstructible}}.}
 
 \pnum
 \complexity Linear in \farg{n}.
@@ -1853,7 +1898,7 @@
 using the specified allocator.
 
 \pnum
-@\removedConcepts{\mbox{\requires} \mbox{\tcode{T}} shall be \mbox{\tcode{CopyConstructible}}.}@
+\removedConcepts{\mbox{\requires} \mbox{\tcode{T}} shall be \mbox{\tcode{CopyConstructible}}.}
 
 \pnum
 \complexity\ 
@@ -3377,8 +3422,8 @@
 \begin{codeblock}
 namespace std {
   template <@\changedConcepts{class}{ObjectType}@ T, class Cont@\removedConcepts{ainer}@ = deque<T> >
-  @\addedConcepts{requires FrontInsertionSequence<Cont> \&\& BackInsertionSequence<Cont>
-           \&\& SameType<T, Cont::value_type>}@
+  @\addedConcepts{requires FrontInsertionSequence<Cont> \&\& BackInsertionSequence<Cont>}@
+           @\addedConcepts{\&\& SameType<T, Cont::value_type>}@
   class queue {
   public:
     typedef typename Cont@\removedConcepts{ainer}@::value_type            value_type;
@@ -3549,7 +3594,7 @@
 
 \begin{itemdescr}
 \pnum
-\effects \tcode{@\changedCCC{x.swap(y)}{swap(x, y)}@}.
+\effects \tcode{x.swap(y)}.
 \end{itemdescr}
 
 \rSec3[priority.queue]{Class template \tcode{priority_queue}}
@@ -3580,7 +3625,7 @@
 \begin{codeblock}
 namespace std {
   template <@\changedConcepts{class}{ObjectType}@ T, @\changedConcepts{class}{BackInsertionSequence}@ Cont@\removedConcepts{ainer}@ = vector<T>,
-       @\changedConcepts{class}{Predicate<auto, T, T>}@ Compare = less<typename Cont@\removedConcepts{ainer}@::value_type> >
+       @\removedCC{class}\changedCCC{Predicate<auto, T, T>}{StrictWeakOrder<auto, T>}@ Compare = less<typename Cont@\removedConcepts{ainer}@::value_type> >
   @\addedConcepts{requires SameType<Cont::value_type, T> \&\&} \removedCCC{Mutable}\addedConcepts{RandomAccessIterator<Cont::iterator>}@
            @\addedConcepts{\&\&} \changedCCC{Swappable}{Shuffle}\addedConcepts{Iterator<Cont::iterator> \&\& CopyConstructible<Compare>}@
   class priority_queue { 
@@ -3668,8 +3713,8 @@
 
 \begin{itemdescr}
 \pnum
-\requires\ 
-\farg{x}\ shall define a strict weak ordering (\ref{alg.sorting}).
+\removedCC{\mbox{\requires}
+\mbox{\farg{x}} shall define a strict weak ordering (\mbox{\ref{alg.sorting}}).}
 
 \pnum
 \effects\ 
@@ -3679,7 +3724,7 @@
 \tcode{c}\ with
 \tcode{y} (copy constructing or move constructing as appropriate);
 calls
-\tcode{make_heap(@\removedCCC{c.}@c.begin(@\addedCC{c}@), @\removedCCC{c.}@c.end(@\addedCC{c}@), comp)}.
+\tcode{make_heap(\removedCCC{c.}c.begin(\addedCC{c}), \removedCCC{c.}c.end(\addedCC{c}), comp)}.
 \end{itemdescr}
 
 \begin{itemdecl}
@@ -3695,8 +3740,8 @@
 
 \begin{itemdescr}
 \pnum
-\requires\ 
-\farg{x}\ shall define a strict weak ordering (\ref{alg.sorting}).
+\removedCC{\mbox{\requires}
+\mbox{\farg{x}} shall define a strict weak ordering (\mbox{\ref{alg.sorting}}).}
 
 \pnum
 \effects\ 
@@ -3706,9 +3751,9 @@
 \tcode{c} with
 \tcode{y} (copy constructing or move constructing as appropriate);
 calls
-\tcode{c.insert(@\removedCCC{c.}@end(@\addedCC{c}@), first, last)};
+\tcode{c.insert(\removedCCC{c.}end(\addedCC{c}), first, last)};
 and finally calls
-\tcode{make_heap(@\removedCCC{c.}@begin(@\addedCC{c}@), @\removedCCC{c.}@end(@\addedCC{c}@), comp)}.
+\tcode{make_heap(\removedCCC{c.}begin(\addedCC{c}), \removedCCC{c.}end(\addedCC{c}), comp)}.
 \end{itemdescr}
 
 \rSec4[priqueue.members]{\tcode{priority_queue}\ members}
@@ -3769,7 +3814,7 @@
 
 \begin{itemdescr}
 \pnum
-\effects \tcode{@\changedCCC{x.swap(y)}{swap(x, y)}@}.
+\effects \tcode{x.swap(y)}.
 \end{itemdescr}
 
 \rSec3[stack]{Class template \tcode{stack}}
@@ -3963,7 +4008,7 @@
 
 \begin{itemdescr}
 \pnum
-\effects \tcode{@\changedCCC{x.swap(y)}{swap(x, y)}@}.
+\effects \tcode{x.swap(y)}.
 \end{itemdescr}
 
 
@@ -4314,7 +4359,7 @@
 \footnote{
 \tcode{reserve()}\
 uses
-\tcode{Alloc@\removedConcepts{ator}@::allocate()}\
+\tcode{Alloc\removedConcepts{ator}::allocate()}\
 which may throw an appropriate exception.
 }
 
@@ -5835,7 +5880,7 @@
 \range{\farg{first}}{\farg{last}}.
 
 \pnum
-@\removedConcepts{\mbox{\requires} If the iterator's dereference operator returns an lvalue or a
+\removedConcepts{\mbox{\requires} If the iterator's dereference operator returns an lvalue or a
 non-const rvalue, then \mbox{\tcode{Key}} shall be
 \mbox{\tcode{CopyConstructible}}.}
 
Modified: sandbox/committee/concepts/stdlib/clib-iterators.tex
==============================================================================
--- sandbox/committee/concepts/stdlib/clib-iterators.tex	(original)
+++ sandbox/committee/concepts/stdlib/clib-iterators.tex	2008-06-30 10:25:02 EDT (Mon, 30 Jun 2008)
@@ -59,7 +59,7 @@
 \end{center}
 
 \vspace{1in}
-\par\noindent Document number: D2695=08-0205 \vspace{-6pt}
+\par\noindent Document number: N2695=08-0205 \vspace{-6pt}
 \par\noindent Revises document number: N2624=08-0134 \vspace{-6pt}
 \par\noindent Date: \today\vspace{-6pt}
 \par\noindent Project: Programming Language \Cpp{}, Library Working Group\vspace{-6pt}
@@ -324,7 +324,8 @@
 
 \begin{itemdescr}
 \pnum
-\addedCC{\mbox{\reallynote} describes the \mbox{\tcode{std::move}}
+\addedCC{\mbox{\reallynote} describes the behavior of the
+  \mbox{\tcode{std::move}} 
   operation and encapsulates its result in an associated type.}
 \end{itemdescr}
 
Modified: sandbox/committee/concepts/stdlib/local.bib
==============================================================================
--- sandbox/committee/concepts/stdlib/local.bib	(original)
+++ sandbox/committee/concepts/stdlib/local.bib	2008-06-30 10:25:02 EDT (Mon, 30 Jun 2008)
@@ -366,6 +366,16 @@
   month =     {May}
 }
 
+@TechReport{GregorStroustrup07:concepts_wording_rev_6,
+  author =       {Douglas Gregor and Bjarne Stroustrup and James Widman and Jeremy Siek},
+  title =        {Proposed Wording for Concepts (Revision 6)},
+  institution =  {ISO/IEC JTC 1, Information Technology, Subcommittee
+                  SC 22, Programming Language {C++}},
+  year =         2008,
+  number =    {N2676=08-0186},
+  month =     {June}
+}
+
 @TechReport{SiekWidman07:ScopedConceptMaps,
   author =       {Jeremy Siek and James Widman},
   title =        {Proposed Wording for Scoped Concept Maps},
Modified: sandbox/committee/concepts/stdlib/macros.tex
==============================================================================
--- sandbox/committee/concepts/stdlib/macros.tex	(original)
+++ sandbox/committee/concepts/stdlib/macros.tex	2008-06-30 10:25:02 EDT (Mon, 30 Jun 2008)
@@ -1117,7 +1117,7 @@
 % Text common to all of the library proposals
 \newcommand{\libintrotext}[1]{This document proposes changes to #1 of
   the \Cpp{} Standard Library in order to make full use of
-  concepts~\cite{GregorStroustrup07:concepts_wording_rev_5}. We make
+  concepts~\cite{GregorStroustrup07:concepts_wording_rev_6}. We make
   every attempt to provide complete backward compatibility with the
   pre-concept Standard Library, and note each place where we have
   knowingly changed semantics.