From 2596850c99fb8cf301f6cb7c10ddbef9b7b086d5 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 9 Nov 2011 21:53:49 +0000 Subject: [PATCH 01/12] Fix "exits" typos --- source/utilities.tex | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/utilities.tex b/source/utilities.tex index ed8b09f29b..dda5b0798a 100644 --- a/source/utilities.tex +++ b/source/utilities.tex @@ -3389,7 +3389,7 @@ \begin{itemdescr} \pnum \ctype \tcode{Alloc::propagate_on_container_copy_assignment} if such a type -exits, otherwise \tcode{false_type}. +exists, otherwise \tcode{false_type}. \end{itemdescr} \indexlibrary{\idxcode{allocator_traits}!\idxcode{propagate_on_container_move_assignment}}% @@ -3401,7 +3401,7 @@ \begin{itemdescr} \pnum \ctype \tcode{Alloc::propagate_on_container_move_assignment} if such a type -exits, otherwise \tcode{false_type}. +exists, otherwise \tcode{false_type}. \end{itemdescr} \indexlibrary{\idxcode{allocator_traits}!\idxcode{propagate_on_container_swap}}% @@ -3412,7 +3412,7 @@ \begin{itemdescr} \pnum -\ctype \tcode{Alloc::propagate_on_container_swap} if such a type exits, otherwise \tcode{false_type}. +\ctype \tcode{Alloc::propagate_on_container_swap} if such a type exists, otherwise \tcode{false_type}. \end{itemdescr} \indexlibrary{\idxcode{allocator_traits}!\idxcode{rebind_alloc}}% From 86e8e4a0b5726657acb9ce4a57b76efb930025d5 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 10 Nov 2011 10:55:17 +0000 Subject: [PATCH 02/12] BRE vs ERE cleanup --- tools/grama.sed | 2 +- tools/makegram | 3 ++- tools/makexref | 5 +++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/tools/grama.sed b/tools/grama.sed index 141ace4c8e..074ee32ced 100644 --- a/tools/grama.sed +++ b/tools/grama.sed @@ -2,5 +2,5 @@ /\\index.*|see/d # insert newlines after groups -/\\end/s/(.*)/\1\ +/\\end/s/\(.*\)/\1\ / diff --git a/tools/makegram b/tools/makegram index fa28d1f7c2..575cea1fb8 100644 --- a/tools/makegram +++ b/tools/makegram @@ -1,2 +1,3 @@ +export LC_ALL=C cp ../tools/grambase.tex grammar.tex -cat $(cat ../tools/gram.files) | sed -n -E -f ../tools/gram.sed | sed -E -f ../tools/grama.sed | sed -E -f ../tools/gramb.sed >> grammar.tex +cat $(cat ../tools/gram.files) | sed -n -f ../tools/gram.sed | sed -f ../tools/grama.sed | sed -f ../tools/gramb.sed >> grammar.tex diff --git a/tools/makexref b/tools/makexref index 80843a745b..35bae61e8d 100644 --- a/tools/makexref +++ b/tools/makexref @@ -1,5 +1,6 @@ +export LC_ALL=C cp ../tools/xrefbegin.tex xref.tex cp ../tools/alphabet xref.tmp -cat $(cat ../tools/std.files) | sed -n -E -f ../tools/xref.sed >> xref.tmp -sort -f < xref.tmp | sed -E -f ../tools/indexheader.sed >> xref.tex +cat $(cat ../tools/std.files) | sed -n -r -f ../tools/xref.sed >> xref.tmp +sort -f < xref.tmp | sed -r -f ../tools/indexheader.sed >> xref.tex cat ../tools/xrefend.tex >> xref.tex From 47a910aa6e1d3f781a752f039007a9557bbe7074 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Sat, 3 Dec 2011 15:54:14 +0000 Subject: [PATCH 03/12] Type T should be charT in [string.access] --- source/strings.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/strings.tex b/source/strings.tex index db60724b1a..c4e4872f3e 100644 --- a/source/strings.tex +++ b/source/strings.tex @@ -1779,7 +1779,7 @@ \pnum \returns \tcode{*(begin() + pos)} if \tcode{pos < size()}. Otherwise, -returns a reference to an object of type \tcode{T} with value +returns a reference to an object of type \tcode{charT} with value \tcode{charT()}, where modifying the object leads to undefined behavior. From f666e07c83d987768a21f82a587baad3db8cb6d3 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Sat, 10 Dec 2011 18:36:25 +0000 Subject: [PATCH 04/12] Fix typeface for CopyConstructible and related concepts --- source/algorithms.tex | 8 ++++---- source/iterators.tex | 2 +- source/numerics.tex | 12 ++++++------ source/utilities.tex | 8 ++++---- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/source/algorithms.tex b/source/algorithms.tex index d101548edd..3ebf187905 100644 --- a/source/algorithms.tex +++ b/source/algorithms.tex @@ -1707,7 +1707,7 @@ \requires The type of \tcode{*first} -shall satisfy the MoveAssignable +shall satisfy the \tcode{MoveAssignable} requirements (Table~\ref{moveassignable}). \pnum @@ -1859,9 +1859,9 @@ \tcode{OutputIterator} meets the requirements of forward iterator then the value type of \tcode{InputIterator} -shall be CopyConstructible (Table~\ref{copyconstructible}) and -CopyAssignable (Table~\ref{copyassignable}). -Otherwise CopyConstructible is not required. +shall be \tcode{CopyConstructible} (Table~\ref{copyconstructible}) and +\tcode{CopyAssignable} (Table~\ref{copyassignable}). +Otherwise \tcode{CopyConstructible} is not required. \pnum \effects diff --git a/source/iterators.tex b/source/iterators.tex index 34b7e33d21..023c126ffa 100644 --- a/source/iterators.tex +++ b/source/iterators.tex @@ -380,7 +380,7 @@ They should be \term{single pass} algorithms. -Value type T is not required to be a CopyAssignable type (Table~\ref{copyassignable}). +Value type T is not required to be a \tcode{CopyAssignable} type (Table~\ref{copyassignable}). These algorithms can be used with istreams as the source of the input data through the \tcode{istream_iterator} class template. diff --git a/source/numerics.tex b/source/numerics.tex index 5a99461672..a091e20fa0 100644 --- a/source/numerics.tex +++ b/source/numerics.tex @@ -1973,8 +1973,8 @@ \pnum \tcode{E} shall meet the requirements -of CopyConstructible (Table~\ref{copyconstructible}) -and CopyAssignable (Table~\ref{copyassignable}) types. +of \tcode{CopyConstructible} (Table~\ref{copyconstructible}) +and \tcode{CopyAssignable} (Table~\ref{copyassignable}) types. These operations shall each be of complexity no worse than \bigoh{\mbox{size of state}}. @@ -2352,8 +2352,8 @@ \pnum \tcode{D} shall satisfy the requirements -of CopyConstructible (Table~\ref{copyconstructible}) -and CopyAssignable (Table~\ref{copyassignable}) types. +of \tcode{CopyConstructible} (Table~\ref{copyconstructible}) +and \tcode{CopyAssignable} (Table~\ref{copyassignable}) types. \pnum The sequence of numbers @@ -2384,8 +2384,8 @@ \pnum \tcode{P} shall satisfy the requirements -of CopyConstructible (Table~\ref{copyconstructible}), -CopyAssignable (Table~\ref{copyassignable}), +of \tcode{CopyConstructible} (Table~\ref{copyconstructible}), +\tcode{CopyAssignable} (Table~\ref{copyassignable}), and EqualityComparable (Table~\ref{equalitycomparable}) types. diff --git a/source/utilities.tex b/source/utilities.tex index a95e886ea1..60294dbe6c 100644 --- a/source/utilities.tex +++ b/source/utilities.tex @@ -4434,7 +4434,7 @@ \begin{codeblock} D d; unique_ptr p1(new int, D()); // \tcode{D} must be \tcode{MoveConstructible} -unique_ptr p2(new int, d); // \tcode{D} must be \tcode{Copyconstructible} +unique_ptr p2(new int, d); // \tcode{D} must be \tcode{CopyConstructible} unique_ptr p3(new int, d); // \tcode{p3} holds a reference to \tcode{d} unique_ptr p4(new int, D()); // error: rvalue deleter object combined // with reference deleter type @@ -6936,8 +6936,8 @@ \indextext{simple call wrapper}% \indextext{forwarding call wrapper}% Every call wrapper~(\ref{func.def}) shall be -MoveConstructible. A \term{simple call wrapper} is a call wrapper -that is CopyConstructible and CopyAssignable and whose copy +\tcode{MoveConstructible}. A \term{simple call wrapper} is a call wrapper +that is \tcode{CopyConstructible} and \tcode{CopyAssignable} and whose copy constructor, move constructor, and assignment operator do not throw exceptions. A \term{forwarding call wrapper} is a call wrapper that can be called with an arbitrary argument list @@ -6993,7 +6993,7 @@ \end{codeblock} \pnum -\tcode{reference_wrapper} is a CopyConstructible and CopyAssignable wrapper +\tcode{reference_wrapper} is a \tcode{CopyConstructible} and \tcode{CopyAssignable} wrapper around a reference to an object or function of type \tcode{T}. \pnum From e3c1f0df5215a269962d8cbf2d40fa10dc627af0 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Sat, 10 Dec 2011 18:37:37 +0000 Subject: [PATCH 05/12] Fix typeface. --- source/diagnostics.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/diagnostics.tex b/source/diagnostics.tex index 03748f02a2..7d4855963d 100644 --- a/source/diagnostics.tex +++ b/source/diagnostics.tex @@ -1612,7 +1612,7 @@ \pnum \postconditions \tcode{code() == ec}. -string(what()).find(what_arg) != string::npos. +\tcode{string(what()).find(what_arg) != string::npos}. \end{itemdescr} \indexlibrary{\idxcode{system_error}!\idxcode{system_error}} @@ -1643,7 +1643,7 @@ \pnum \postconditions \tcode{code() == error_code(ev, ecat)}. -string(what()).find(what_arg) != string::npos. +\tcode{string(what()).find(what_arg) != string::npos}. \end{itemdescr} \indexlibrary{\idxcode{system_error}!\idxcode{system_error}} From cfe1f5c7dce196bc6c10ce032c4d280b2968ba85 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Sat, 10 Dec 2011 18:38:43 +0000 Subject: [PATCH 06/12] Fix missing colon in nested-name-specifier. --- source/threads.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/threads.tex b/source/threads.tex index 81d7619323..d4ec5ee7d1 100644 --- a/source/threads.tex +++ b/source/threads.tex @@ -3994,7 +3994,7 @@ \end{itemize} \pnum -\returns An object of type \tcode{future:type>} that refers +\returns An object of type \tcode{future::type>} that refers to the shared state created by this call to \tcode{async}. \pnum From 6de1576c0746d046319b90008f8a8957eed9485f Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Sat, 10 Dec 2011 18:44:22 +0000 Subject: [PATCH 07/12] Fix typeface of MoveConstructible and MoveAssignable. --- source/lib-intro.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/lib-intro.tex b/source/lib-intro.tex index 99838b4d34..f86f9c33eb 100644 --- a/source/lib-intro.tex +++ b/source/lib-intro.tex @@ -1325,7 +1325,7 @@ \end{concepttable} \indextext{requirements!\idxcode{CopyConstructible}}% -\begin{concepttable}{\tcode{CopyConstructible} requirements (in addition to MoveConstructible)}{copyconstructible} +\begin{concepttable}{\tcode{CopyConstructible} requirements (in addition to \tcode{MoveConstructible})}{copyconstructible} {p{1in}p{4.15in}} \topline Expression & Post-condition \\ \capsep @@ -1349,7 +1349,7 @@ \end{concepttable} \indextext{requirements!\idxcode{CopyAssignable}}% -\begin{concepttable}{\tcode{CopyAssignable} requirements(in addition to MoveAssignable)}{copyassignable} +\begin{concepttable}{\tcode{CopyAssignable} requirements (in addition to \tcode{MoveAssignable})}{copyassignable} {p{1in}p{1in}p{1in}p{1.9in}} \topline Expression & Return type & Return value & Post-condition \\ \capsep From 926cb64ffc0b1ac9562bf8e3f53ff0ea7f08c7be Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Sat, 10 Dec 2011 18:45:28 +0000 Subject: [PATCH 08/12] Remove redundant explicit template argument lists. --- source/containers.tex | 114 +++++++++++++++++++++--------------------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/source/containers.tex b/source/containers.tex index d2f3ae18b3..f4aec922cd 100644 --- a/source/containers.tex +++ b/source/containers.tex @@ -2431,7 +2431,7 @@ // no explicit construct/copy/destroy for aggregate type void fill(const T& u); - void swap(array&) noexcept(noexcept(swap(declval(), declval()))); + void swap(array&) noexcept(noexcept(swap(declval(), declval()))); // iterators: iterator begin() noexcept; @@ -2703,15 +2703,15 @@ deque(size_type n, const T& value,const Allocator& = Allocator()); template deque(InputIterator first, InputIterator last,const Allocator& = Allocator()); - deque(const deque& x); + deque(const deque& x); deque(deque&&); deque(const deque&, const Allocator&); deque(deque&&, const Allocator&); deque(initializer_list, const Allocator& = Allocator()); ~deque(); - deque& operator=(const deque& x); - deque& operator=(deque&& x); + deque& operator=(const deque& x); + deque& operator=(deque&& x); deque& operator=(initializer_list); template void assign(InputIterator first, InputIterator last); @@ -2774,7 +2774,7 @@ iterator erase(const_iterator position); iterator erase(const_iterator first, const_iterator last); - void swap(deque&); + void swap(deque&); void clear() noexcept; }; @@ -3121,8 +3121,8 @@ forward_list(forward_list&& x, const Allocator&); forward_list(initializer_list, const Allocator& = Allocator()); ~forward_list(); - forward_list& operator=(const forward_list& x); - forward_list& operator=(forward_list&& x); + forward_list& operator=(const forward_list& x); + forward_list& operator=(forward_list&& x); forward_list& operator=(initializer_list); template void assign(InputIterator first, InputIterator last); @@ -3167,22 +3167,22 @@ iterator erase_after(const_iterator position); iterator erase_after(const_iterator position, iterator last); - void swap(forward_list&); + void swap(forward_list&); void resize(size_type sz); void resize(size_type sz, const value_type& c); void clear() noexcept; // \ref{forwardlist.ops}, forward_list operations: - void splice_after(const_iterator position, forward_list& x); - void splice_after(const_iterator position, forward_list&& x); - void splice_after(const_iterator position, forward_list& x, + void splice_after(const_iterator position, forward_list& x); + void splice_after(const_iterator position, forward_list&& x); + void splice_after(const_iterator position, forward_list& x, const_iterator i); - void splice_after(const_iterator position, forward_list&& x, + void splice_after(const_iterator position, forward_list&& x, const_iterator i); - void splice_after(const_iterator position, forward_list& x, + void splice_after(const_iterator position, forward_list& x, const_iterator first, const_iterator last); - void splice_after(const_iterator position, forward_list&& x, + void splice_after(const_iterator position, forward_list&& x, const_iterator first, const_iterator last); void remove(const T& value); @@ -3191,10 +3191,10 @@ void unique(); template void unique(BinaryPredicate binary_pred); - void merge(forward_list& x); - void merge(forward_list&& x); - template void merge(forward_list& x, Compare comp); - template void merge(forward_list&& x, Compare comp); + void merge(forward_list& x); + void merge(forward_list&& x); + template void merge(forward_list& x, Compare comp); + template void merge(forward_list&& x, Compare comp); void sort(); template void sort(Compare comp); @@ -3572,8 +3572,8 @@ \indexlibrary{\idxcode{splice_after}!\idxcode{forward_list}}% \indexlibrary{\idxcode{forward_list}!\idxcode{splice_after}}% \begin{itemdecl} -void splice_after(const_iterator position, forward_list& x); -void splice_after(const_iterator position, forward_list&& x); +void splice_after(const_iterator position, forward_list& x); +void splice_after(const_iterator position, forward_list&& x); \end{itemdecl} \begin{itemdescr} @@ -3599,8 +3599,8 @@ \indexlibrary{\idxcode{splice_after}!\idxcode{forward_list}}% \indexlibrary{\idxcode{forward_list}!\idxcode{splice_after}}% \begin{itemdecl} -void splice_after(const_iterator position, forward_list& x, const_iterator i); -void splice_after(const_iterator position, forward_list&& x, const_iterator i); +void splice_after(const_iterator position, forward_list& x, const_iterator i); +void splice_after(const_iterator position, forward_list&& x, const_iterator i); \end{itemdecl} \begin{itemdescr} @@ -3627,9 +3627,9 @@ \indexlibrary{\idxcode{splice_after}!\idxcode{forward_list}}% \indexlibrary{\idxcode{forward_list}!\idxcode{splice_after}}% \begin{itemdecl} -void splice_after(const_iterator position, forward_list& x, +void splice_after(const_iterator position, forward_list& x, const_iterator first, const_iterator last); -void splice_after(const_iterator position, forward_list&& x, +void splice_after(const_iterator position, forward_list&& x, const_iterator first, const_iterator last); \end{itemdecl} @@ -3703,10 +3703,10 @@ \indexlibrary{\idxcode{merge}!\idxcode{forward_list}}% \indexlibrary{\idxcode{forward_list}!\idxcode{merge}}% \begin{itemdecl} -void merge(forward_list& x); -void merge(forward_list&& x); -template void merge(forward_list& x, Compare comp) -template void merge(forward_list&& x, Compare comp) +void merge(forward_list& x); +void merge(forward_list&& x); +template void merge(forward_list& x, Compare comp) +template void merge(forward_list&& x, Compare comp) \end{itemdecl} \begin{itemdescr} @@ -3840,14 +3840,14 @@ list(size_type n, const T& value, const Allocator& = Allocator()); template list(InputIterator first, InputIterator last, const Allocator& = Allocator()); - list(const list& x); + list(const list& x); list(list&& x); list(const list&, const Allocator&); list(list&&, const Allocator&); list(initializer_list, const Allocator& = Allocator()); ~list(); - list& operator=(const list& x); - list& operator=(list&& x); + list& operator=(const list& x); + list& operator=(list&& x); list& operator=(initializer_list); template void assign(InputIterator first, InputIterator last); @@ -3904,17 +3904,17 @@ iterator erase(const_iterator position); iterator erase(const_iterator position, const_iterator last); - void swap(list&); + void swap(list&); void clear() noexcept; // \ref{list.ops}, list operations: - void splice(const_iterator position, list& x); - void splice(const_iterator position, list&& x); - void splice(const_iterator position, list& x, const_iterator i); - void splice(const_iterator position, list&& x, const_iterator i); - void splice(const_iterator position, list& x, + void splice(const_iterator position, list& x); + void splice(const_iterator position, list&& x); + void splice(const_iterator position, list& x, const_iterator i); + void splice(const_iterator position, list&& x, const_iterator i); + void splice(const_iterator position, list& x, const_iterator first, const_iterator last); - void splice(const_iterator position, list&& x, + void splice(const_iterator position, list&& x, const_iterator first, const_iterator last); void remove(const T& value); @@ -3924,10 +3924,10 @@ template void unique(BinaryPredicate binary_pred); - void merge(list& x); - void merge(list&& x); - template void merge(list& x, Compare comp); - template void merge(list&& x, Compare comp); + void merge(list& x); + void merge(list&& x); + template void merge(list& x, Compare comp); + template void merge(list&& x, Compare comp); void sort(); template void sort(Compare comp); @@ -4198,8 +4198,8 @@ \indexlibrary{\idxcode{splice}!\tcode{list}}% \begin{itemdecl} -void splice(const_iterator position, list& x); -void splice(const_iterator position, list&& x); +void splice(const_iterator position, list& x); +void splice(const_iterator position, list&& x); \end{itemdecl} \begin{itemdescr} @@ -4237,8 +4237,8 @@ \indexlibrary{\idxcode{splice}!\idxcode{list}}% \indexlibrary{\idxcode{list}!\idxcode{splice}}% \begin{itemdecl} -void splice(const_iterator position, list& x, const_iterator i); -void splice(const_iterator position, list&& x, const_iterator i); +void splice(const_iterator position, list& x, const_iterator i); +void splice(const_iterator position, list&& x, const_iterator i); \end{itemdecl} \begin{itemdescr} @@ -4285,9 +4285,9 @@ \indexlibrary{\idxcode{splice}!\idxcode{list}}% \indexlibrary{\idxcode{list}!\idxcode{splice}}% \begin{itemdecl} -void splice(const_iterator position, list& x, const_iterator first, +void splice(const_iterator position, list& x, const_iterator first, const_iterator last); -void splice(const_iterator position, list&& x, const_iterator first, +void splice(const_iterator position, list&& x, const_iterator first, const_iterator last); \end{itemdecl} @@ -4396,10 +4396,10 @@ \indexlibrary{\idxcode{merge}!\tcode{list}}% \begin{itemdecl} -void merge(list& x); -void merge(list&& x); -template void merge(list& x, Compare comp); -template void merge(list&& x, Compare comp); +void merge(list& x); +void merge(list&& x); +template void merge(list& x, Compare comp); +template void merge(list&& x, Compare comp); \end{itemdecl} \begin{itemdescr} @@ -4567,14 +4567,14 @@ template vector(InputIterator first, InputIterator last, const Allocator& = Allocator()); - vector(const vector& x); + vector(const vector& x); vector(vector&&); vector(const vector&, const Allocator&); vector(vector&&, const Allocator&); vector(initializer_list, const Allocator& = Allocator()); ~vector(); - vector& operator=(const vector& x); - vector& operator=(vector&& x); + vector& operator=(const vector& x); + vector& operator=(vector&& x); vector& operator=(initializer_list); template void assign(InputIterator first, InputIterator last); @@ -4637,7 +4637,7 @@ iterator insert(const_iterator position, initializer_list il); iterator erase(const_iterator position); iterator erase(const_iterator first, const_iterator last); - void swap(vector&); + void swap(vector&); void clear() noexcept; }; @@ -4851,7 +4851,7 @@ \indexlibrary{\idxcode{swap}!\idxcode{vector}}% \begin{itemdecl} -void swap(vector& x); +void swap(vector& x); \end{itemdecl} \begin{itemdescr} From d25aee0d8aecc182ff51f39e3e2e7be8f7a498e5 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Sat, 10 Dec 2011 20:19:48 +0000 Subject: [PATCH 09/12] Replace T with value_type in assoc container reqs. --- source/containers.tex | 50 +++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/source/containers.tex b/source/containers.tex index f4aec922cd..c32c6bb6b6 100644 --- a/source/containers.tex +++ b/source/containers.tex @@ -1296,7 +1296,7 @@ \tcode{a = il} & \tcode{X\&} & - \requires\ \tcode{T} is + \requires\ \tcode{value_type} is CopyInsertable into \tcode{X} and \tcode{CopyAssignable}.\br \effects Assigns the range \range{il.begin()}{il.end()} into \tcode{a}. All @@ -1317,8 +1317,8 @@ \tcode{a_uniq.} \tcode{emplace(args)} & \tcode{pair} & - \requires\ \tcode{T} shall be \tcode{EmplaceConstructible} into \tcode{X} from \tcode{args}.\br - \effects\ Inserts a \tcode{T} object \tcode{t} constructed with + \requires\ \tcode{value_type} shall be \tcode{EmplaceConstructible} into \tcode{X} from \tcode{args}.\br + \effects\ Inserts a \tcode{value_type} object \tcode{t} constructed with \tcode{std::forward(args)...} if and only if there is no element in the container with key equivalent to the key of \tcode{t}. The \tcode{bool} component of the returned @@ -1329,8 +1329,8 @@ \tcode{a_eq.} \tcode{emplace(args)} & \tcode{iterator} & - \requires\ \tcode{T} shall be \tcode{EmplaceConstructible} into \tcode{X} from \tcode{args}.\br - \effects\ Inserts a \tcode{T} object \tcode{t} constructed with + \requires\ \tcode{value_type} shall be \tcode{EmplaceConstructible} into \tcode{X} from \tcode{args}.\br + \effects\ Inserts a \tcode{value_type} object \tcode{t} constructed with \tcode{std::forward(args)...} and returns the iterator pointing to the newly inserted element. If a range containing elements equivalent to \tcode{t} exists in \tcode{a_eq}, @@ -1349,8 +1349,8 @@ \tcode{a_uniq.} \tcode{insert(t)} & \tcode{pair} & - \requires\ If \tcode{t} is a non-const rvalue expression, \tcode{T} shall be - \tcode{MoveInsertable} into \tcode{X}; otherwise, \tcode{T} shall be + \requires\ If \tcode{t} is a non-const rvalue expression, \tcode{value_type} shall be + \tcode{MoveInsertable} into \tcode{X}; otherwise, \tcode{value_type} shall be CopyInsertable into \tcode{X}.\br \effects\ Inserts \tcode{t} if and only if there is no element in the container with key equivalent to the key of \tcode{t}. The \tcode{bool} component of @@ -1362,8 +1362,8 @@ \tcode{a_eq.insert(t)} & \tcode{iterator} & - \requires\ If \tcode{t} is a non-const rvalue expression, \tcode{T} shall be - \tcode{MoveInsertable} into \tcode{X}; otherwise, \tcode{T} shall be + \requires\ If \tcode{t} is a non-const rvalue expression, \tcode{value_type} shall be + \tcode{MoveInsertable} into \tcode{X}; otherwise, \tcode{value_type} shall be CopyInsertable into \tcode{X}.\br \effects\ Inserts \tcode{t} and returns the iterator pointing to the newly inserted element. @@ -1375,8 +1375,8 @@ \tcode{a.insert(}\br \tcode{p, t)} & \tcode{iterator} & - \requires\ If \tcode{t} is a non-const rvalue expression, \tcode{T} shall be - \tcode{MoveInsertable} into \tcode{X}; otherwise, \tcode{T} shall be + \requires\ If \tcode{t} is a non-const rvalue expression, \tcode{value_type} shall be + \tcode{MoveInsertable} into \tcode{X}; otherwise, \tcode{value_type} shall be CopyInsertable into \tcode{X}.\br \effects\ Inserts \tcode{t} if and only if there is no element with key equivalent to the key of \tcode{t} in containers with unique keys; @@ -1390,7 +1390,7 @@ \tcode{a.insert(}\br \tcode{i, j)} & \tcode{void} & - \requires\ \tcode{T} shall be \tcode{EmplaceConstructible} into \tcode{X} from \tcode{*i}.\br + \requires\ \tcode{value_type} shall be \tcode{EmplaceConstructible} into \tcode{X} from \tcode{*i}.\br pre: \tcode{i}, \tcode{j} are not iterators into \tcode{a}. inserts each element from the range \range{i}{j} if and only if there is no element with key equivalent to the key of that element in containers @@ -1819,7 +1819,7 @@ % \tcode{a = il} & \tcode{X\&} -& \requires\ \tcode{T} is +& \requires\ \tcode{value_type} is CopyInsertable into \tcode{X} and \tcode{CopyAssignable}.\br \effects\ Assigns the range \range{il.begin()}{il.end()} into \tcode{a}. All @@ -1846,8 +1846,8 @@ \tcode{a_uniq.} \tcode{emplace(args)} & \tcode{pair} & - \requires\ \tcode{T} shall be \tcode{EmplaceConstructible} into \tcode{X} from \tcode{args}.\br - \effects\ Inserts a \tcode{T} object \tcode{t} constructed with + \requires\ \tcode{value_type} shall be \tcode{EmplaceConstructible} into \tcode{X} from \tcode{args}.\br + \effects\ Inserts a \tcode{value_type} object \tcode{t} constructed with \tcode{std::forward(args)...} if and only if there is no element in the container with key equivalent to the key of \tcode{t}. The \tcode{bool} component of the returned @@ -1859,8 +1859,8 @@ \tcode{a_eq.}\tcode{emplace(args)} & \tcode{iterator} & - \requires\ \tcode{T} shall be \tcode{EmplaceConstructible} into \tcode{X} from \tcode{args}.\br - \effects\ Inserts a \tcode{T} object \tcode{t} constructed with + \requires\ \tcode{value_type} shall be \tcode{EmplaceConstructible} into \tcode{X} from \tcode{args}.\br + \effects\ Inserts a \tcode{value_type} object \tcode{t} constructed with \tcode{std::forward(args)...} and returns the iterator pointing to the newly inserted element. & Average case \bigoh{1}, worst case \bigoh{\tcode{a_eq.}\br\tcode{size()}}. @@ -1868,7 +1868,7 @@ \tcode{a.emplace_hint(p, args)} & \tcode{iterator} & - \requires\ \tcode{T} shall be \tcode{EmplaceConstructible} into \tcode{X} from \tcode{args}.\br + \requires\ \tcode{value_type} shall be \tcode{EmplaceConstructible} into \tcode{X} from \tcode{args}.\br \effects\ Equivalent to \tcode{a.emplace(} \tcode{std::forward(args)...)}. Return value is an iterator pointing to the element with the key equivalent to the newly inserted element. The \tcode{const_iterator} \tcode{p} @@ -1879,8 +1879,8 @@ \tcode{a_uniq.insert(t)} & \tcode{pair} -& \requires\ If \tcode{t} is a non-const rvalue expression, \tcode{T} shall be - \tcode{MoveInsertable} into \tcode{X}; otherwise, \tcode{T} shall be +& \requires\ If \tcode{t} is a non-const rvalue expression, \tcode{value_type} shall be + \tcode{MoveInsertable} into \tcode{X}; otherwise, \tcode{value_type} shall be CopyInsertable into \tcode{X}.\br \effects\ Inserts \tcode{t} if and only if there is no element in the container with key equivalent to the key of \tcode{t}. The \tcode{bool} @@ -1894,8 +1894,8 @@ % \tcode{a_eq.insert(t)} & \tcode{iterator} -& \requires\ If \tcode{t} is a non-const rvalue expression, \tcode{T} shall be - \tcode{MoveInsertable} into \tcode{X}; otherwise, \tcode{T} shall be +& \requires\ If \tcode{t} is a non-const rvalue expression, \tcode{value_type} shall be + \tcode{MoveInsertable} into \tcode{X}; otherwise, \tcode{value_type} shall be CopyInsertable into \tcode{X}.\br \effects\ Inserts \tcode{t}, and returns an iterator pointing to the newly inserted element. @@ -1906,8 +1906,8 @@ % \tcode{a.insert(q, t)} & \tcode{iterator} -& \requires\ If \tcode{t} is a non-const rvalue expression, \tcode{T} shall be - \tcode{MoveInsertable} into \tcode{X}; otherwise, \tcode{T} shall be +& \requires\ If \tcode{t} is a non-const rvalue expression, \tcode{value_type} shall be + \tcode{MoveInsertable} into \tcode{X}; otherwise, \tcode{value_type} shall be CopyInsertable into \tcode{X}.\br \effects\ Equivalent to a.insert(t). Return value is an iterator pointing to the element with the key equivalent to that of \tcode{t}. The @@ -1920,7 +1920,7 @@ % \tcode{a.insert(i, j)} & \tcode{void} -& \requires\ \tcode{T} shall be \tcode{EmplaceConstructible} into \tcode{X} from \tcode{*i}.\br +& \requires\ \tcode{value_type} shall be \tcode{EmplaceConstructible} into \tcode{X} from \tcode{*i}.\br Pre: \tcode{i} and \tcode{j} are not iterators in \tcode{a}. Equivalent to \tcode{a.insert(t)} for each element in \tcode{[i,j)}.% \indextext{unordered associative containers!\idxcode{insert}}% From 2dada46159a9a6cd2ffdffe513b2e89498fbd0dd Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Sat, 10 Dec 2011 20:23:04 +0000 Subject: [PATCH 10/12] Fix typeface for CopyInsertable. --- source/containers.tex | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/source/containers.tex b/source/containers.tex index c32c6bb6b6..15fc0edb25 100644 --- a/source/containers.tex +++ b/source/containers.tex @@ -616,7 +616,7 @@ \tcode{a = t} & \tcode{X\&} & \requires\ \tcode{T} is - CopyInsertable into \tcode{X} + \tcode{CopyInsertable} into \tcode{X} and \tcode{CopyAssignable}.\br post: \tcode{a == t} & linear \\ \rowsep @@ -737,7 +737,7 @@ \tcode{X a(n, t)} & & \requires \tcode{T} shall be - CopyInsertable into \tcode{X}.\br + \tcode{CopyInsertable} into \tcode{X}.\br post: \tcode{distance(begin(), end()) == n}\br Constructs a sequence container with \tcode{n} copies of \tcode{t} \\ \rowsep @@ -761,7 +761,7 @@ \tcode{a = il;} & \tcode{X\&} & \requires\ \tcode{T} is - CopyInsertable into \tcode{X} + \tcode{CopyInsertable} into \tcode{X} and \tcode{CopyAssignable}. Assigns the range \range{il.begin()}{il.end()} into \tcode{a}. All existing elements of \tcode{a} are either assigned to or destroyed.\br @@ -779,7 +779,7 @@ \tcode{a.insert(p,t)} & \tcode{iterator} & \requires \tcode{T} shall be - CopyInsertable into \tcode{X}. For \tcode{vector} and \tcode{deque}, + \tcode{CopyInsertable} into \tcode{X}. For \tcode{vector} and \tcode{deque}, \tcode{T} shall also be \tcode{CopyAssignable}.\br \effects\ Inserts a copy of \tcode{t} before \tcode{p}. \\ \rowsep @@ -793,7 +793,7 @@ \tcode{a.insert(p,n,t)} & \tcode{iterator} & \requires \tcode{T} shall be - CopyInsertable into \tcode{X} + \tcode{CopyInsertable} into \tcode{X} and \tcode{CopyAssignable}.\br Inserts \tcode{n} copies of \tcode{t} before \tcode{p}. \\ \rowsep @@ -847,7 +847,7 @@ \tcode{a.assign(n,t)} & \tcode{void} & \requires \tcode{T} shall be - CopyInsertable into \tcode{X} + \tcode{CopyInsertable} into \tcode{X} and \tcode{CopyAssignable}.\br pre: \tcode{t} is not a reference into \tcode{a}.\br Replaces elements in \tcode{a} with \tcode{n} copies of \tcode{t}. \\ @@ -1014,7 +1014,7 @@ \tcode{void} & Prepends a copy of \tcode{t}.\br \requires\ \tcode{T} shall be - CopyInsertable into \tcode{X}. + \tcode{CopyInsertable} into \tcode{X}. & \tcode{deque}, \tcode{forward_list}, @@ -1036,7 +1036,7 @@ \tcode{void} & Appends a copy of \tcode{t}.\br \requires\ \tcode{T} shall be - CopyInsertable into \tcode{X}. + \tcode{CopyInsertable} into \tcode{X}. & \tcode{basic_string}, \tcode{deque}, @@ -1297,7 +1297,7 @@ \tcode{a = il} & \tcode{X\&} & \requires\ \tcode{value_type} is - CopyInsertable into \tcode{X} + \tcode{CopyInsertable} into \tcode{X} and \tcode{CopyAssignable}.\br \effects Assigns the range \range{il.begin()}{il.end()} into \tcode{a}. All existing elements of \tcode{a} are either assigned to or destroyed. & @@ -1351,7 +1351,7 @@ \tcode{pair} & \requires\ If \tcode{t} is a non-const rvalue expression, \tcode{value_type} shall be \tcode{MoveInsertable} into \tcode{X}; otherwise, \tcode{value_type} shall be - CopyInsertable into \tcode{X}.\br + \tcode{CopyInsertable} into \tcode{X}.\br \effects\ Inserts \tcode{t} if and only if there is no element in the container with key equivalent to the key of \tcode{t}. The \tcode{bool} component of the returned pair is true if and only if the insertion @@ -1364,7 +1364,7 @@ \tcode{iterator} & \requires\ If \tcode{t} is a non-const rvalue expression, \tcode{value_type} shall be \tcode{MoveInsertable} into \tcode{X}; otherwise, \tcode{value_type} shall be - CopyInsertable into \tcode{X}.\br + \tcode{CopyInsertable} into \tcode{X}.\br \effects\ Inserts \tcode{t} and returns the iterator pointing to the newly inserted element. If a range containing elements equivalent to @@ -1377,7 +1377,7 @@ \tcode{iterator} & \requires\ If \tcode{t} is a non-const rvalue expression, \tcode{value_type} shall be \tcode{MoveInsertable} into \tcode{X}; otherwise, \tcode{value_type} shall be - CopyInsertable into \tcode{X}.\br + \tcode{CopyInsertable} into \tcode{X}.\br \effects\ Inserts \tcode{t} if and only if there is no element with key equivalent to the key of \tcode{t} in containers with unique keys; always inserts \tcode{t} in containers with equivalent keys. always @@ -1881,7 +1881,7 @@ & \tcode{pair} & \requires\ If \tcode{t} is a non-const rvalue expression, \tcode{value_type} shall be \tcode{MoveInsertable} into \tcode{X}; otherwise, \tcode{value_type} shall be - CopyInsertable into \tcode{X}.\br + \tcode{CopyInsertable} into \tcode{X}.\br \effects\ Inserts \tcode{t} if and only if there is no element in the container with key equivalent to the key of \tcode{t}. The \tcode{bool} component of the returned pair indicates whether the insertion @@ -1896,7 +1896,7 @@ & \tcode{iterator} & \requires\ If \tcode{t} is a non-const rvalue expression, \tcode{value_type} shall be \tcode{MoveInsertable} into \tcode{X}; otherwise, \tcode{value_type} shall be - CopyInsertable into \tcode{X}.\br + \tcode{CopyInsertable} into \tcode{X}.\br \effects\ Inserts \tcode{t}, and returns an iterator pointing to the newly inserted element. \indextext{unordered associative containers!\idxcode{insert}}% @@ -1908,7 +1908,7 @@ & \tcode{iterator} & \requires\ If \tcode{t} is a non-const rvalue expression, \tcode{value_type} shall be \tcode{MoveInsertable} into \tcode{X}; otherwise, \tcode{value_type} shall be - CopyInsertable into \tcode{X}.\br + \tcode{CopyInsertable} into \tcode{X}.\br \effects\ Equivalent to a.insert(t). Return value is an iterator pointing to the element with the key equivalent to that of \tcode{t}. The iterator \tcode{q} is a hint pointing to where the search should From daa1cdead1d89ac89e2ae503be23424667343942 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Sat, 10 Dec 2011 22:01:45 +0000 Subject: [PATCH 11/12] Fix "behavor" typo. --- source/compatibility.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/compatibility.tex b/source/compatibility.tex index 80fd09ed29..cf4aee3d0e 100644 --- a/source/compatibility.tex +++ b/source/compatibility.tex @@ -1115,7 +1115,7 @@ \change \tcode{basic_string} requirements no longer allow reference-counted strings \rationale Invalidation is subtly different with reference-counted strings. -This change regularizes behavor for this International Standard. +This change regularizes behavior for this International Standard. \effect Valid \CppIII code may execute differently in this International Standard. From 1533cc500ab069397dcef550e3741aa2cf260b0b Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 12 Jan 2012 23:07:02 +0000 Subject: [PATCH 12/12] Remove duplicate ATOMIC_LLONG_LOCK_FREE definition. --- source/atomics.tex | 1 - 1 file changed, 1 deletion(-) diff --git a/source/atomics.tex b/source/atomics.tex index 840d17b703..2b14f199bf 100644 --- a/source/atomics.tex +++ b/source/atomics.tex @@ -45,7 +45,6 @@ #define ATOMIC_INT_LOCK_FREE @\unspec@ #define ATOMIC_LONG_LOCK_FREE @\unspec@ #define ATOMIC_LLONG_LOCK_FREE @\unspec@ - #define ATOMIC_LLONG_LOCK_FREE @\unspec@ #define ATOMIC_POINTER_LOCK_FREE @\unspec@ // \ref{atomics.types.generic}, generic types