|
Boost-Commit : |
From: dgregor_at_[hidden]
Date: 2008-06-28 16:27:11
Author: dgregor
Date: 2008-06-28 16:27:11 EDT (Sat, 28 Jun 2008)
New Revision: 46823
URL: http://svn.boost.org/trac/boost/changeset/46823
Log:
Add missing requirements for merge and set algorithms
Text files modified:
sandbox/committee/concepts/stdlib/clib-algorithms.tex | 48 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 48 insertions(+), 0 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-28 16:27:11 EDT (Sat, 28 Jun 2008)
@@ -573,6 +573,8 @@
@\addedCC{OutputIterator<OutIter, InIter1::reference>}@
&& @\addedCC{OutputIterator<OutIter, InIter2::reference>}@
&& HasLess<@\addedCC{InIter2::value_type, }@InIter1::value_type>
+ @\addedCC{\&\& LessThanComparable<InIter1::value_type>}@
+ @\addedCC{\&\& LessThanComparable<InIter2::value_type>}@
OutIter merge(InIter1 @\farg{first1}@, InIter1 @\farg{last1}@,
InIter2 @\farg{first2}@, InIter2 @\farg{last2}@,
OutIter @\farg{result}@);
@@ -583,6 +585,8 @@
@\addedCC{OutputIterator<OutIter, InIter1::reference>}@
@\addedCC{\&\& OutputIterator<OutIter, InIter2::reference>}@
@\addedCC{\&\& CopyConstructible<Compare>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, InIter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, InIter2::value_type>}@
OutIter merge(InIter1 @\farg{first1}@, InIter1 @\farg{last1}@,
InIter2 @\farg{first2}@, InIter2 @\farg{last2}@,
OutIter @\farg{result}@, Compare @\farg{comp}@);
@@ -606,6 +610,8 @@
requires @\removedCCC{SameType<Iter1::value_type, Iter2::value_type> \&\& LessThanComparable<Iter1::value_type>}@
@\addedCC{HasLess<Iter1::value_type, Iter2::value_type>}@
@\addedCC{\&\& HasLess<Iter2::value_type, Iter1::value_type>}@
+ @\addedCC{\&\& LessThanComparable<Iter1::value_type>}@
+ @\addedCC{\&\& LessThanComparable<Iter2::value_type>}@
bool includes(Iter1 @\farg{first1}@, Iter1 @\farg{last1}@,
Iter2 @\farg{first2}@, Iter2 @\farg{last2}@);
template<InputIterator Iter1, InputIterator Iter2,
@@ -613,6 +619,8 @@
requires @\removedCCC{SameType<Iter1::value_type, Iter2::value_type>}@
@\addedCC{Predicate<Compare, Iter1::value_type, Iter2::value_type>}@
@\addedCC{\&\& Predicate<Compare, Iter2::value_type, Iter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, Iter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, Iter2::value_type>}@
bool includes(Iter1 @\farg{first1}@, Iter1 @\farg{last1}@,
Iter2 @\farg{first2}@, Iter2 @\farg{last2}@,
Compare @\farg{comp}@);
@@ -625,6 +633,8 @@
@\addedCC{\&\& OutputIterator<OutIter, InIter2::reference>}@
@\addedCC{\&\& HasLess<InIter2::value_type, InIter1::value_type>}@
@\addedCC{\&\& HasLess<InIter1::value_type, InIter2::value_type>}@
+ @\addedCC{\&\& LessThanComparable<InIter1::value_type>}@
+ @\addedCC{\&\& LessThanComparable<InIter2::value_type>}@
OutIter set_union(InIter1 @\farg{first1}@, InIter1 @\farg{last1}@,
InIter2 @\farg{first2}@, InIter2 @\farg{last2}@,
OutIter @\farg{result}@);
@@ -636,6 +646,8 @@
@\addedCC{\&\& OutputIterator<OutIter, InIter2::reference>}@
@\addedCC{\&\& Predicate<Compare, InIter1::value_type, InIter2::value_type>}@
@\addedCC{\&\& Predicate<Compare, InIter2::value_type, InIter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, InIter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, InIter2::value_type>}@
OutIter set_union(InIter1 @\farg{first1}@, InIter1 @\farg{last1}@,
InIter2 @\farg{first2}@, InIter2 @\farg{last2}@,
OutIter @\farg{result}@, Compare @\farg{comp}@);
@@ -648,6 +660,8 @@
@\addedCC{\&\& OutputIterator<OutIter, InIter2::reference>}@
@\addedCC{\&\& HasLess<InIter2::value_type, InIter1::value_type>}@
@\addedCC{\&\& HasLess<InIter1::value_type, InIter2::value_type>}@
+ @\addedCC{\&\& LessThanComparable<InIter1::value_type>}@
+ @\addedCC{\&\& LessThanComparable<InIter2::value_type>}@
OutIter set_intersection(InIter1 @\farg{first1}@, InIter1 @\farg{last1}@,
InIter2 @\farg{first2}@, InIter2 @\farg{last2}@,
OutIter @\farg{result}@);
@@ -659,6 +673,8 @@
@\addedCC{\&\& OutputIterator<OutIter, InIter2::reference>}@
@\addedCC{\&\& Predicate<Compare, InIter1::value_type, InIter2::value_type>}@
@\addedCC{\&\& Predicate<Compare, InIter2::value_type, InIter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, InIter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, InIter2::value_type>}@
OutIter set_intersection(InIter1 @\farg{first1}@, InIter1 @\farg{last1}@,
InIter2 @\farg{first2}@, InIter2 @\farg{last2}@,
OutIter @\farg{result}@, Compare @\farg{comp}@);
@@ -671,6 +687,8 @@
@\addedCC{\&\& OutputIterator<OutIter, InIter2::reference>}@
@\addedCC{\&\& HasLess<InIter2::value_type, InIter1::value_type>}@
@\addedCC{\&\& HasLess<InIter1::value_type, InIter2::value_type>}@
+ @\addedCC{\&\& LessThanComparable<InIter1::value_type>}@
+ @\addedCC{\&\& LessThanComparable<InIter2::value_type>}@
OutIter set_difference(InIter1 @\farg{first1}@, InIter1 @\farg{last1}@,
InIter2 @\farg{first2}@, InIter2 @\farg{last2}@,
OutIter @\farg{result}@);
@@ -682,6 +700,8 @@
@\addedCC{\&\& OutputIterator<OutIter, InIter2::reference>}@
@\addedCC{\&\& Predicate<Compare, InIter1::value_type, InIter2::value_type>}@
@\addedCC{\&\& Predicate<Compare, InIter2::value_type, InIter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, InIter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, InIter2::value_type>}@
OutIter set_difference(InIter1 @\farg{first1}@, InIter1 @\farg{last1}@,
InIter2 @\farg{first2}@, InIter2 @\farg{last2}@,
OutIter @\farg{result}@, Compare @\farg{comp}@);
@@ -694,6 +714,8 @@
@\addedCC{\&\& OutputIterator<OutIter, InIter2::reference>}@
@\addedCC{\&\& HasLess<InIter2::value_type, InIter1::value_type>}@
@\addedCC{\&\& HasLess<InIter1::value_type, InIter2::value_type>}@
+ @\addedCC{\&\& LessThanComparable<InIter1::value_type>}@
+ @\addedCC{\&\& LessThanComparable<InIter2::value_type>}@
OutIter set_symmetric_difference(InIter1 @\farg{first1}@, InIter1 @\farg{last1}@,
InIter2 @\farg{first2}@, InIter2 @\farg{last2}@,
OutIter @\farg{result}@);
@@ -705,6 +727,8 @@
@\addedCC{\&\& OutputIterator<OutIter, InIter2::reference>}@
@\addedCC{\&\& Predicate<Compare, InIter1::value_type, InIter2::value_type>}@
@\addedCC{\&\& Predicate<Compare, InIter2::value_type, InIter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, InIter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, InIter2::value_type>}@
OutIter set_symmetric_difference(InIter1 @\farg{first1}@, InIter1 @\farg{last1}@,
InIter2 @\farg{first2}@, InIter2 @\farg{last2}@,
OutIter @\farg{result}@, Compare @\farg{comp}@);
@@ -3119,6 +3143,8 @@
@\addedCC{OutputIterator<OutIter, InIter1::reference>}@
&& @\addedCC{OutputIterator<OutIter, InIter2::reference>}@
&& HasLess<@\addedCC{InIter2::value_type, }@InIter1::value_type>
+ @\addedCC{\&\& LessThanComparable<InIter1::value_type>}@
+ @\addedCC{\&\& LessThanComparable<InIter2::value_type>}@
OutIter merge(InIter1 @\farg{first1}@, InIter1 @\farg{last1}@,
InIter2 @\farg{first2}@, InIter2 @\farg{last2}@,
OutIter @\farg{result}@);
@@ -3130,6 +3156,8 @@
@\addedCC{OutputIterator<OutIter, InIter1::reference>}@
@\addedCC{\&\& OutputIterator<OutIter, InIter2::reference>}@
@\addedCC{\&\& CopyConstructible<Compare>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, InIter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, InIter2::value_type>}@
OutIter merge(InIter1 @\farg{first1}@, InIter1 @\farg{last1}@,
InIter2 @\farg{first2}@, InIter2 @\farg{last2}@,
OutIter @\farg{result}@, Compare @\farg{comp}@);
@@ -3267,6 +3295,8 @@
requires @\removedCCC{SameType<Iter1::value_type, Iter2::value_type> \&\& LessThanComparable<Iter1::value_type>}@
@\addedCC{HasLess<Iter1::value_type, Iter2::value_type>}@
@\addedCC{\&\& HasLess<Iter2::value_type, Iter1::value_type>}@
+ @\addedCC{\&\& LessThanComparable<Iter1::value_type>}@
+ @\addedCC{\&\& LessThanComparable<Iter2::value_type>}@
bool includes(Iter1 @\farg{first1}@, Iter1 @\farg{last1}@,
Iter2 @\farg{first2}@, Iter2 @\farg{last2}@);
@@ -3275,6 +3305,8 @@
requires @\removedCCC{SameType<Iter1::value_type, Iter2::value_type>}@
@\addedCC{Predicate<Compare, Iter1::value_type, Iter2::value_type>}@
@\addedCC{\&\& Predicate<Compare, Iter2::value_type, Iter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, Iter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, Iter2::value_type>}@
bool includes(Iter1 @\farg{first1}@, Iter1 @\farg{last1}@,
Iter2 @\farg{first2}@, Iter2 @\farg{last2}@,
Compare @\farg{comp}@);
@@ -3311,6 +3343,8 @@
@\addedCC{\&\& OutputIterator<OutIter, InIter2::reference>}@
@\addedCC{\&\& HasLess<InIter2::value_type, InIter1::value_type>}@
@\addedCC{\&\& HasLess<InIter1::value_type, InIter2::value_type>}@
+ @\addedCC{\&\& LessThanComparable<InIter1::value_type>}@
+ @\addedCC{\&\& LessThanComparable<InIter2::value_type>}@
OutIter set_union(InIter1 @\farg{first1}@, InIter1 @\farg{last1}@,
InIter2 @\farg{first2}@, InIter2 @\farg{last2}@,
OutIter @\farg{result}@);
@@ -3323,6 +3357,8 @@
@\addedCC{\&\& OutputIterator<OutIter, InIter2::reference>}@
@\addedCC{\&\& Predicate<Compare, InIter1::value_type, InIter2::value_type>}@
@\addedCC{\&\& Predicate<Compare, InIter2::value_type, InIter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, InIter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, InIter2::value_type>}@
OutIter set_union(InIter1 @\farg{first1}@, InIter1 @\farg{last1}@,
InIter2 @\farg{first2}@, InIter2 @\farg{last2}@,
OutIter @\farg{result}@, Compare @\farg{comp}@);
@@ -3368,6 +3404,8 @@
@\addedCC{\&\& OutputIterator<OutIter, InIter2::reference>}@
@\addedCC{\&\& HasLess<InIter2::value_type, InIter1::value_type>}@
@\addedCC{\&\& HasLess<InIter1::value_type, InIter2::value_type>}@
+ @\addedCC{\&\& LessThanComparable<InIter1::value_type>}@
+ @\addedCC{\&\& LessThanComparable<InIter2::value_type>}@
OutIter set_intersection(InIter1 @\farg{first1}@, InIter1 @\farg{last1}@,
InIter2 @\farg{first2}@, InIter2 @\farg{last2}@,
OutIter @\farg{result}@);
@@ -3380,6 +3418,8 @@
@\addedCC{\&\& OutputIterator<OutIter, InIter2::reference>}@
@\addedCC{\&\& Predicate<Compare, InIter1::value_type, InIter2::value_type>}@
@\addedCC{\&\& Predicate<Compare, InIter2::value_type, InIter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, InIter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, InIter2::value_type>}@
OutIter set_intersection(InIter1 @\farg{first1}@, InIter1 @\farg{last1}@,
InIter2 @\farg{first2}@, InIter2 @\farg{last2}@,
OutIter @\farg{result}@, Compare @\farg{comp}@);
@@ -3424,6 +3464,8 @@
@\addedCC{\&\& OutputIterator<OutIter, InIter2::reference>}@
@\addedCC{\&\& HasLess<InIter2::value_type, InIter1::value_type>}@
@\addedCC{\&\& HasLess<InIter1::value_type, InIter2::value_type>}@
+ @\addedCC{\&\& LessThanComparable<InIter1::value_type>}@
+ @\addedCC{\&\& LessThanComparable<InIter2::value_type>}@
OutIter set_difference(InIter1 @\farg{first1}@, InIter1 @\farg{last1}@,
InIter2 @\farg{first2}@, InIter2 @\farg{last2}@,
OutIter @\farg{result}@);
@@ -3436,6 +3478,8 @@
@\addedCC{\&\& OutputIterator<OutIter, InIter2::reference>}@
@\addedCC{\&\& Predicate<Compare, InIter1::value_type, InIter2::value_type>}@
@\addedCC{\&\& Predicate<Compare, InIter2::value_type, InIter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, InIter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, InIter2::value_type>}@
OutIter set_difference(InIter1 @\farg{first1}@, InIter1 @\farg{last1}@,
InIter2 @\farg{first2}@, InIter2 @\farg{last2}@,
OutIter @\farg{result}@, Compare @\farg{comp}@);
@@ -3493,6 +3537,8 @@
@\addedCC{\&\& OutputIterator<OutIter, InIter2::reference>}@
@\addedCC{\&\& HasLess<InIter2::value_type, InIter1::value_type>}@
@\addedCC{\&\& HasLess<InIter1::value_type, InIter2::value_type>}@
+ @\addedCC{\&\& LessThanComparable<InIter1::value_type>}@
+ @\addedCC{\&\& LessThanComparable<InIter2::value_type>}@
OutIter set_symmetric_difference(InIter1 @\farg{first1}@, InIter1 @\farg{last1}@,
InIter2 @\farg{first2}@, InIter2 @\farg{last2}@,
OutIter @\farg{result}@);
@@ -3505,6 +3551,8 @@
@\addedCC{\&\& OutputIterator<OutIter, InIter2::reference>}@
@\addedCC{\&\& Predicate<Compare, InIter1::value_type, InIter2::value_type>}@
@\addedCC{\&\& Predicate<Compare, InIter2::value_type, InIter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, InIter1::value_type>}@
+ @\addedCC{\&\& StrictWeakOrder<Compare, InIter2::value_type>}@
OutIter set_symmetric_difference(InIter1 @\farg{first1}@, InIter1 @\farg{last1}@,
InIter2 @\farg{first2}@, InIter2 @\farg{last2}@,
OutIter @\farg{result}@, Compare @\farg{comp}@);
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