|
Boost-Commit : |
From: dgregor_at_[hidden]
Date: 2008-06-27 15:23:40
Author: dgregor
Date: 2008-06-27 15:23:40 EDT (Fri, 27 Jun 2008)
New Revision: 46789
URL: http://svn.boost.org/trac/boost/changeset/46789
Log:
Update unique_copy requirements
Text files modified:
sandbox/committee/concepts/stdlib/clib-algorithms.tex | 98 ++++++++++++++++++++++++---------------
1 files changed, 59 insertions(+), 39 deletions(-)
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-27 15:23:40 EDT (Fri, 27 Jun 2008)
@@ -290,7 +290,7 @@
void replace_if(Iter @\farg{first}@, Iter @\farg{last}@,
Pred @\farg{pred}@, const T& @\farg{new_value}@);
template<InputIterator InIter, typename OutIter, class T>
- requires OutputIterator<_OutIter, InIter::@\changedCCC{value_type}{reference}@>
+ requires OutputIterator<OutIter, InIter::@\changedCCC{value_type}{reference}@>
&& @\changedCCC{HasCopyAssign}{OutputIterator}@<Iter@\removedCCC{::reference}@, @\changedCCC{T}{const T\&}@>
&& HasEqualTo<InIter::@\changedCCC{reference}{value_type}@, T>
OutIter replace_copy(InIter @\farg{first}@, InIter @\farg{last}@,
@@ -351,37 +351,47 @@
@\addedCC{\&\& CopyConstructible<Pred>}@
Iter unique(Iter @\farg{first}@, Iter @\farg{last}@,
Pred @\farg{pred}@);
- template<InputIterator InIter, OutputIterator<auto, InIter::value_type> OutIter>
- requires EqualityComparable<InIter::value_type> && CopyAssignable<InIter::value_type> &&
- @\textcolor{addclr}{CopyConstructible}@<InIter::value_type> && !ForwardIterator<InIter> &&
- !MutableForwardIterator<OutIter>
- OutIter
- unique_copy(InIter @\farg{first}@, InIter @\farg{last}@,
- OutIter @\farg{result}@);
+ template<InputIterator InIter, @\changedCCC{OutputIterator<auto, InIter::value_type>}{typename}@ OutIter>
+ requires @\addedCC{OutputIterator<OutIter, InIter::reference>}@
+ @\addedCC{\&\& OutputIterator<OutIter, const InIter::value_type\&>}@
+ @\addedCC{\&\&}@ EqualityComparable<InIter::value_type>
+ && CopyAssignable<InIter::value_type>
+ && CopyConstructible<InIter::value_type>
+ && !ForwardIterator<InIter>
+ && !@\removedCCC{Mutable}@ForwardIterator<OutIter>
+ OutIter unique_copy(InIter @\farg{first}@, InIter @\farg{last}@,
+ OutIter @\farg{result}@);
template<ForwardIterator InIter, OutputIterator<auto, InIter::@\changedCCC{value_type}{reference}@> OutIter>
- requires EqualityComparable<InIter::reference>
+ requires EqualityComparable<InIter::@\changedCCC{reference}{value_type}@>
OutIter unique_copy(InIter @\farg{first}@, InIter @\farg{last}@,
OutIter @\farg{result}@);
- template<InputIterator InIter, MutableForwardIterator OutIter>
- requires HasEqualTo<OutIter::reference, InIter::@\changedCCC{value_type}{reference}@> &&
- Has@\removedCCC{Copy}@Assign<OutIter::reference, InIter::reference> &&
- !ForwardIterator<InIter>
+ template<InputIterator InIter, @\removedCCC{Mutable}@ForwardIterator OutIter>
+ requires @\changedCCC{HasCopyAssign}{OutputIterator}@<OutIter@\removedCCC{::reference}@, InIter::reference>
+ && HasEqualTo<OutIter::@\changedCCC{reference}{value_type}@, InIter::value_type>
+ && !ForwardIterator<InIter>
OutIter unique_copy(InIter @\farg{first}@, InIter @\farg{last}@,
OutIter @\farg{result}@);
- template<InputIterator InIter, OutputIterator<auto, InIter::value_type> OutIter,
+ template<InputIterator InIter, @\changedCCC{OutputIterator<auto, InIter::value_type>}{typename}@ OutIter,
Predicate<auto, InIter::value_type, InIter::value_type> Pred>
- requires CopyAssignable<InIter::value_type> && CopyConstructible<InIter::value_type> &&
- !ForwardIterator<InIter> && !MutableForwardIterator<OutIter>
+ requires @\addedCC{OutputIterator<OutIter, InIter::reference>}@
+ @\addedCC{\&\& OutputIterator<OutIter, const InIter::value_type\&>}@
+ @\addedCC{\&\&}@ CopyAssignable<InIter::value_type>
+ && CopyConstructible<InIter::value_type>
+ @\addedCC{\&\& CopyConstructible<Pred>}@
+ && !ForwardIterator<InIter>
+ && !@\removedCCC{Mutable}@ForwardIterator<OutIter>
OutIter unique_copy(InIter @\farg{first}@, InIter @\farg{last}@,
OutIter @\farg{result}@, Pred @\farg{pred}@);
template<ForwardIterator InIter, OutputIterator<auto, InIter::@\changedCCC{value_type}{reference}@> OutIter,
Predicate<auto, InIter::@\changedCCC{reference}{value_type}@, InIter::@\changedCCC{reference}{value_type}@> Pred>
+ @\addedCC{requires CopyConstructible<Pred>}@
OutIter unique_copy(InIter @\farg{first}@, InIter @\farg{last}@,
OutIter @\farg{result}@);
- template<InputIterator InIter, MutableForwardIterator OutIter,
+ template<InputIterator InIter, @\removedCCC{Mutable}@ForwardIterator OutIter,
Predicate<auto, OutIter::@\changedCCC{reference}{value_type}@, InIter::@\changedCCC{reference}{value_type}@> Pred>
- requires Has@\removedCCC{Copy}@Assign<OutIter::reference, InIter::reference> &&
- !ForwardIterator<InIter>
+ requires @\changedCCC{HasCopyAssign}{OutputIterator}@<OutIter@\removedCCC{::reference}@, InIter::reference>
+ @\addedCC{\&\& CopyConstructible<Pred>}@
+ && !ForwardIterator<InIter>
OutIter unique_copy(InIter @\farg{first}@, InIter @\farg{last}@,
OutIter @\farg{result}@, Pred @\farg{pred}@);
@@ -1845,7 +1855,7 @@
\index{replace_copy_if@\tcode{replace_copy_if}}%
\color{addclr}\begin{itemdecl}
template<InputIterator InIter, typename OutIter, class T>
- requires OutputIterator<_OutIter, InIter::@\changedCCC{value_type}{reference}@>
+ requires OutputIterator<OutIter, InIter::@\changedCCC{value_type}{reference}@>
&& @\changedCCC{HasCopyAssign}{OutputIterator}@<Iter@\removedCCC{::reference}@, @\changedCCC{T}{const T\&}@>
&& HasEqualTo<InIter::@\changedCCC{reference}{value_type}@, T>
OutIter replace_copy(InIter @\farg{first}@, InIter @\farg{last}@,
@@ -2132,42 +2142,52 @@
\index{unique_copy@\tcode{unique_copy}}%
\color{addclr}
\begin{itemdecl}
-template<InputIterator InIter, OutputIterator<auto, InIter::value_type> OutIter>
- requires EqualityComparable<InIter::value_type> && CopyAssignable<InIter::value_type> &&
- CopyConstructible<InIter::value_type> && !ForwardIterator<InIter> &&
- !MutableForwardIterator<OutIter>
- @\textcolor{addclr}{OutIter}@
- unique_copy(InIter @\farg{first}@, InIter @\farg{last}@,
- OutIter @\farg{result}@);
+template<InputIterator InIter, @\changedCCC{OutputIterator<auto, InIter::value_type>}{typename}@ OutIter>
+ requires @\addedCC{OutputIterator<OutIter, InIter::reference>}@
+ @\addedCC{\&\& OutputIterator<OutIter, const InIter::value_type\&>}@
+ @\addedCC{\&\&}@ EqualityComparable<InIter::value_type>
+ && CopyAssignable<InIter::value_type>
+ && CopyConstructible<InIter::value_type>
+ && !ForwardIterator<InIter>
+ && !@\removedCCC{Mutable}@ForwardIterator<OutIter>
+ OutIter unique_copy(InIter @\farg{first}@, InIter @\farg{last}@,
+ OutIter @\farg{result}@);
template<ForwardIterator InIter, OutputIterator<auto, InIter::@\changedCCC{value_type}{reference}@> OutIter>
- requires EqualityComparable<InIter::reference>
+ requires EqualityComparable<InIter::@\changedCCC{reference}{value_type}@>
OutIter unique_copy(InIter @\farg{first}@, InIter @\farg{last}@,
OutIter @\farg{result}@);
-@\textcolor{addclr}{template}@<InputIterator InIter, MutableForwardIterator OutIter>
- requires HasEqualTo<OutIter::reference, InIter::@\changedCCC{value_type}{reference}@> &&
- Has@\removedCCC{Copy}@Assign<OutIter::reference, InIter::reference> &&
- !ForwardIterator<InIter>
+template<InputIterator InIter, @\removedCCC{Mutable}@ForwardIterator OutIter>
+ requires @\changedCCC{HasCopyAssign}{OutputIterator}@<OutIter@\removedCCC{::reference}@, InIter::reference>
+ && HasEqualTo<OutIter::@\changedCCC{reference}{value_type}@, InIter::value_type>
+ && !ForwardIterator<InIter>
OutIter unique_copy(InIter @\farg{first}@, InIter @\farg{last}@,
OutIter @\farg{result}@);
-template<InputIterator InIter, OutputIterator<auto, InIter::value_type> OutIter,
+template<InputIterator InIter, @\changedCCC{OutputIterator<auto, InIter::value_type>}{typename}@ OutIter,
Predicate<auto, InIter::value_type, InIter::value_type> Pred>
- requires CopyAssignable<InIter::value_type> && CopyConstructible<InIter::value_type> &&
- !ForwardIterator<InIter> && !MutableForwardIterator<OutIter>
+ requires @\addedCC{OutputIterator<OutIter, InIter::reference>}@
+ @\addedCC{\&\& OutputIterator<OutIter, const InIter::value_type\&>}@
+ @\addedCC{\&\&}@ CopyAssignable<InIter::value_type>
+ && CopyConstructible<InIter::value_type>
+ @\addedCC{\&\& CopyConstructible<Pred>}@
+ && !ForwardIterator<InIter>
+ && !@\removedCCC{Mutable}@ForwardIterator<OutIter>
OutIter unique_copy(InIter @\farg{first}@, InIter @\farg{last}@,
- @\textcolor{addclr}{OutIter}@ @\farg{result}@, Pred @\farg{pred}@);
+ OutIter @\farg{result}@, Pred @\farg{pred}@);
template<ForwardIterator InIter, OutputIterator<auto, InIter::@\changedCCC{value_type}{reference}@> OutIter,
Predicate<auto, InIter::@\changedCCC{reference}{value_type}@, InIter::@\changedCCC{reference}{value_type}@> Pred>
+ @\addedCC{requires CopyConstructible<Pred>}@
OutIter unique_copy(InIter @\farg{first}@, InIter @\farg{last}@,
OutIter @\farg{result}@);
-template<InputIterator InIter, MutableForwardIterator OutIter,
+template<InputIterator InIter, @\removedCCC{Mutable}@ForwardIterator OutIter,
Predicate<auto, OutIter::@\changedCCC{reference}{value_type}@, InIter::@\changedCCC{reference}{value_type}@> Pred>
- requires Has@\removedCCC{Copy}@Assign<OutIter::reference, InIter::reference> &&
- !ForwardIterator<InIter>
+ requires @\changedCCC{HasCopyAssign}{OutputIterator}@<OutIter@\removedCCC{::reference}@, InIter::reference>
+ @\addedCC{\&\& CopyConstructible<Pred>}@
+ && !ForwardIterator<InIter>
OutIter unique_copy(InIter @\farg{first}@, InIter @\farg{last}@,
OutIter @\farg{result}@, Pred @\farg{pred}@);
\end{itemdecl}
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