29#ifndef _GLIBCXX_DEBUG_SAFE_LOCAL_ITERATOR_TCC
30#define _GLIBCXX_DEBUG_SAFE_LOCAL_ITERATOR_TCC 1
34 template<
typename _Iterator,
typename _Sequence>
35 typename _Distance_traits<_Iterator>::__type
39 if (base() == __rhs.base())
40 return { 0, __dp_exact };
44 if (__rhs._M_is_end())
47 _M_get_ucontainer()->bucket_size(bucket()),
51 return { 1, __dp_sign };
56 if (__rhs._M_is_begin())
59 -_M_get_ucontainer()->bucket_size(bucket()),
63 return { -1, __dp_sign };
66 if (__rhs._M_is_begin())
67 return { -1, __dp_sign };
69 if (__rhs._M_is_end())
70 return { 1, __dp_sign };
72 return { 1, __dp_equality };
75 template<
typename _Iterator,
typename _Sequence>
81 if (_M_value_initialized() && __rhs._M_value_initialized())
83 __dist = { 0, __dp_exact };
87 if (_M_singular() || __rhs._M_singular() || !_M_can_compare(__rhs))
90 if (bucket() != __rhs.bucket())
95 __dist = _M_get_distance_to(__rhs);
99 if (__dist.
first == 0)
105 return __dist.
first >= 0;
pair(_T1, _T2) -> pair< _T1, _T2 >
Two pairs are equal iff their members are equal.
GNU debug classes for public use.
_T1 first
The first member.
_T2 second
The second member.