1 #ifndef _theplu_yat_utility_range_ 2 #define _theplu_yat_utility_range_ 98 template<
typename T1,
typename T2>
108 template<
typename T1,
typename T2>
122 template<
typename T1,
typename T2>
123 bool operator<(const Range<T1>& lhs,
const Range<T2>& rhs);
132 template<
typename T1,
typename T2>
133 bool operator<=(const Range<T1>& lhs,
const Range<T2>& rhs);
142 template<
typename T1,
typename T2>
152 template<
typename T1,
typename T2>
162 : first_(first), last_(last)
175 template<
typename T1,
typename T2>
180 T1 first1(lhs.
begin());
182 T2 first2(rhs.
begin());
184 while (first1 != last1 && first2 != last2) {
185 if (*first1 != *first2)
191 return first1==last1 && first2==last2;
195 template<
typename T1,
typename T2>
202 template<
typename T1,
typename T2>
203 bool operator<(const Range<T1>& lhs,
const Range<T2>& rhs)
205 return std::lexicographical_compare(lhs.begin(), lhs.end(),
206 rhs.begin(), rhs.end());
210 template<
typename T1,
typename T2>
217 template<
typename T1,
typename T2>
218 bool operator<=(const Range<T1>& lhs,
const Range<T2>& rhs)
224 template<
typename T1,
typename T2>
The Department of Theoretical Physics namespace as we define it.
Range(void) YAT_DEPRECATE_GCC_PRE4_3
Default Constructor.
Definition: Range.h:158
#define YAT_DEPRECATE_GCC_PRE4_3
with GCC 4.3 and newer (or other compilers) define it as empty
Definition: deprecate.h:53
A class for storing a shallow copy of a Range.
Definition: Range.h:48
bool operator!=(const Range< T1 > &, const Range< T2 > &)
Based on operator==.
Definition: Range.h:196
bool operator>(const Range< T1 > &, const Range< T2 > &)
Definition: Range.h:211
T begin(void) const
Definition: Range.h:166
bool operator==(const Range< T1 > &, const Range< T2 > &)
Equality comparison.
Definition: Range.h:176
T end(void) const
Definition: Range.h:171
T iterator_type
Definition: Range.h:54
bool operator>=(const Range< T1 > &, const Range< T2 > &)
Definition: Range.h:225