|
Go to the documentation of this file.
9 #ifndef ADOBE_ALGORITHM_MINMAX_HPP
10 #define ADOBE_ALGORITHM_MINMAX_HPP
14 #include <boost/range/begin.hpp>
15 #include <boost/range/end.hpp>
16 #include <boost/bind.hpp>
66 inline const T& ( min)( const T& a, const T& b)
67 { return a < b ? a : b; }
76 inline T& ( min)(T& a, T& b)
77 { return a < b ? a : b; }
86 inline const T& ( max)( const T& a, const T& b)
87 { return b < a ? a : b; }
96 inline T& ( max)(T& a, T& b)
97 { return b < a ? a : b; }
105 template < class T, class Compare>
106 inline const T& ( min)( const T& a, const T& b, Compare comp)
108 return ( std::min)(a, b, boost::bind(comp, _1, _2));
117 template < class T, class Compare>
118 inline T& ( min)(T& a, T& b, Compare comp)
120 return ( std::min)(a, b, boost::bind(comp, _1, _2));
129 template < class T, class Compare>
130 inline const T& ( max)( const T& a, const T& b, Compare comp)
132 return boost::bind(comp, _1, _2)(b, a) ? a : b;
141 template < class T, class Compare>
142 inline T& ( max)(T& a, T& b, Compare comp)
144 return boost::bind(comp, _1, _2)(b, a) ? a : b;
152 template < class ForwardRange>
153 inline typename boost::range_iterator<ForwardRange>::type min_element(ForwardRange& range)
163 template < class ForwardRange>
164 inline typename boost::range_const_iterator<ForwardRange>::type
175 template < class ForwardIterator, class Compare>
176 inline ForwardIterator min_element(ForwardIterator first, ForwardIterator last, Compare comp)
186 template < class ForwardRange, class Compare>
187 inline typename boost::range_iterator<ForwardRange>::type
198 template < class ForwardRange, class Compare>
199 inline typename boost::range_const_iterator<ForwardRange>::type
210 template < class ForwardRange>
211 inline typename boost::range_iterator<ForwardRange>::type max_element(ForwardRange& range)
221 template < class ForwardRange>
222 inline typename boost::range_const_iterator<ForwardRange>::type
233 template < class ForwardIterator, class Compare>
234 inline ForwardIterator max_element(ForwardIterator first, ForwardIterator last, Compare comp)
244 template < class ForwardRange, class Compare>
245 inline typename boost::range_iterator<ForwardRange>::type
256 template < class ForwardRange, class Compare>
257 inline typename boost::range_const_iterator<ForwardRange>::type
|