libstdc++
__gnu_debug Namespace Reference

Classes

class  _After_nth_from
 
struct  _BeforeBeginHelper
 
class  _Equal_to
 
class  _Not_equal_to
 
class  _Safe_container
 
class  _Safe_forward_list
 
class  _Safe_iterator
 
class  _Safe_iterator_base
 
class  _Safe_local_iterator
 
class  _Safe_local_iterator_base
 
class  _Safe_node_sequence
 
class  _Safe_sequence
 
class  _Safe_sequence_base
 
class  _Safe_unordered_container
 
class  _Safe_unordered_container_base
 
class  _Safe_vector
 
struct  _Sequence_traits
 
class  basic_string
 

Typedefs

typedef basic_string< char > string
 
typedef basic_string< char16_t > u16string
 
typedef basic_string< char32_t > u32string
 
typedef basic_string< wchar_t > wstring
 

Enumerations

enum  _Debug_msg_id {
  __msg_valid_range, __msg_insert_singular, __msg_insert_different, __msg_erase_bad,
  __msg_erase_different, __msg_subscript_oob, __msg_empty, __msg_unpartitioned,
  __msg_unpartitioned_pred, __msg_unsorted, __msg_unsorted_pred, __msg_not_heap,
  __msg_not_heap_pred, __msg_bad_bitset_write, __msg_bad_bitset_read, __msg_bad_bitset_flip,
  __msg_self_splice, __msg_splice_alloc, __msg_splice_bad, __msg_splice_other,
  __msg_splice_overlap, __msg_init_singular, __msg_init_copy_singular, __msg_init_const_singular,
  __msg_copy_singular, __msg_bad_deref, __msg_bad_inc, __msg_bad_dec,
  __msg_iter_subscript_oob, __msg_advance_oob, __msg_retreat_oob, __msg_iter_compare_bad,
  __msg_compare_different, __msg_iter_order_bad, __msg_order_different, __msg_distance_bad,
  __msg_distance_different, __msg_deref_istream, __msg_inc_istream, __msg_output_ostream,
  __msg_deref_istreambuf, __msg_inc_istreambuf, __msg_insert_after_end, __msg_erase_after_bad,
  __msg_valid_range2, __msg_local_iter_compare_bad, __msg_non_empty_range, __msg_self_move_assign,
  __msg_bucket_index_oob, __msg_valid_load_factor, __msg_equal_allocs, __msg_insert_range_from_self,
  __msg_irreflexive_ordering
}
 
enum  _Distance_precision {
  __dp_none, __dp_equality, __dp_sign, __dp_sign_max_size,
  __dp_exact
}
 

Functions

template<typename _Iterator , typename _Sequence >
constexpr std::reverse_iterator< _Iterator > __base (const std::reverse_iterator< _Safe_iterator< _Iterator, _Sequence, std::random_access_iterator_tag > > &__it)
 
template<typename _Iterator >
constexpr auto __base (const std::move_iterator< _Iterator > &__it) -> decltype(std::make_move_iterator(__base(__it.base())))
 
template<typename _Iterator >
constexpr _Iterator __base (_Iterator __it)
 
template<typename _Iterator , typename _Sequence >
constexpr _Iterator __base (const _Safe_iterator< _Iterator, _Sequence, std::random_access_iterator_tag > &__it)
 
template<typename _Iterator , typename _Size >
constexpr bool __can_advance (const std::reverse_iterator< _Iterator > &__it, _Size __n)
 
template<typename _Iterator , typename _Diff >
constexpr bool __can_advance (const std::reverse_iterator< _Iterator > &__it, const std::pair< _Diff, _Distance_precision > &__dist, int __way)
 
template<typename _Iterator , typename _Size >
constexpr bool __can_advance (const std::move_iterator< _Iterator > &__it, _Size __n)
 
template<typename _Iterator , typename _Diff >
constexpr bool __can_advance (const std::move_iterator< _Iterator > &__it, const std::pair< _Diff, _Distance_precision > &__dist, int __way)
 
template<typename _InputIterator , typename _Size >
constexpr bool __can_advance (_InputIterator, _Size)
 
template<typename _Iterator , typename _Sequence , typename _Category , typename _Size >
constexpr bool __can_advance (const _Safe_iterator< _Iterator, _Sequence, _Category > &, _Size)
 
template<typename _InputIterator , typename _Diff >
constexpr bool __can_advance (_InputIterator, const std::pair< _Diff, _Distance_precision > &, int)
 
template<typename _Iterator , typename _Sequence , typename _Category , typename _Diff >
constexpr bool __can_advance (const _Safe_iterator< _Iterator, _Sequence, _Category > &, const std::pair< _Diff, _Distance_precision > &, int)
 
template<typename _ForwardIterator , typename _Tp >
constexpr bool __check_partitioned_lower (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__value)
 
template<typename _ForwardIterator , typename _Tp , typename _Pred >
constexpr bool __check_partitioned_lower (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__value, _Pred __pred)
 
template<typename _ForwardIterator , typename _Tp >
constexpr bool __check_partitioned_upper (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__value)
 
template<typename _ForwardIterator , typename _Tp , typename _Pred >
constexpr bool __check_partitioned_upper (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__value, _Pred __pred)
 
template<typename _Iterator >
constexpr bool __check_singular (_Iterator const &)
 
template<typename _Tp >
constexpr bool __check_singular (_Tp *const &__ptr)
 
bool __check_singular_aux (const void *)
 
bool __check_singular_aux (const class _Safe_iterator_base *)
 
bool __check_singular_aux (const _Safe_iterator_base *__x)
 
template<typename _InputIterator >
constexpr bool __check_sorted (const _InputIterator &__first, const _InputIterator &__last)
 
template<typename _InputIterator , typename _Predicate >
constexpr bool __check_sorted (const _InputIterator &__first, const _InputIterator &__last, _Predicate __pred)
 
template<typename _InputIterator >
constexpr bool __check_sorted_aux (const _InputIterator &, const _InputIterator &, std::input_iterator_tag)
 
template<typename _ForwardIterator >
constexpr bool __check_sorted_aux (_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag)
 
template<typename _InputIterator , typename _Predicate >
constexpr bool __check_sorted_aux (const _InputIterator &, const _InputIterator &, _Predicate, std::input_iterator_tag)
 
template<typename _ForwardIterator , typename _Predicate >
constexpr bool __check_sorted_aux (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, std::forward_iterator_tag)
 
template<typename _InputIterator1 , typename _InputIterator2 >
constexpr bool __check_sorted_set (const _InputIterator1 &__first, const _InputIterator1 &__last, const _InputIterator2 &)
 
template<typename _InputIterator1 , typename _InputIterator2 , typename _Predicate >
constexpr bool __check_sorted_set (const _InputIterator1 &__first, const _InputIterator1 &__last, const _InputIterator2 &, _Predicate __pred)
 
template<typename _InputIterator >
constexpr bool __check_sorted_set_aux (const _InputIterator &__first, const _InputIterator &__last, std::__true_type)
 
template<typename _InputIterator >
constexpr bool __check_sorted_set_aux (const _InputIterator &, const _InputIterator &, std::__false_type)
 
template<typename _InputIterator , typename _Predicate >
constexpr bool __check_sorted_set_aux (const _InputIterator &__first, const _InputIterator &__last, _Predicate __pred, std::__true_type)
 
template<typename _InputIterator , typename _Predicate >
constexpr bool __check_sorted_set_aux (const _InputIterator &, const _InputIterator &, _Predicate, std::__false_type)
 
template<typename _CharT , typename _Integer >
const _CharT * __check_string (const _CharT *__s, _Integer __n, const char *__file, unsigned int __line, const char *__function)
 
template<typename _CharT >
const _CharT * __check_string (const _CharT *__s, const char *__file, unsigned int __line, const char *__function)
 
template<typename _InputIterator >
constexpr _InputIterator __check_valid_range (const _InputIterator &__first, const _InputIterator &__last, const char *__file, unsigned int __line, const char *__function)
 
template<typename _Iterator , typename _Sequence , typename _Category , typename _InputIterator >
bool __foreign_iterator (const _Safe_iterator< _Iterator, _Sequence, _Category > &__it, _InputIterator __other, _InputIterator __other_end)
 
template<typename _Iterator , typename _Sequence , typename _Category , typename _OtherIterator >
bool __foreign_iterator_aux2 (const _Safe_iterator< _Iterator, _Sequence, _Category > &__it, const _Safe_iterator< _OtherIterator, _Sequence, _Category > &__other, const _Safe_iterator< _OtherIterator, _Sequence, _Category > &)
 
template<typename _Iterator , typename _Sequence , typename _Category , typename _OtherIterator , typename _OtherSequence , typename _OtherCategory >
bool __foreign_iterator_aux2 (const _Safe_iterator< _Iterator, _Sequence, _Category > &, const _Safe_iterator< _OtherIterator, _OtherSequence, _OtherCategory > &, const _Safe_iterator< _OtherIterator, _OtherSequence, _OtherCategory > &)
 
template<typename _Iterator , typename _Sequence , typename _Category , typename _InputIterator >
bool __foreign_iterator_aux2 (const _Safe_iterator< _Iterator, _Sequence, _Category > &__it, const _InputIterator &__other, const _InputIterator &__other_end)
 
template<typename _Iterator , typename _Sequence , typename _Category , typename _InputIterator >
bool __foreign_iterator_aux3 (const _Safe_iterator< _Iterator, _Sequence, _Category > &__it, const _InputIterator &__other, const _InputIterator &__other_end, std::__true_type)
 
template<typename _Iterator , typename _Sequence , typename _Category , typename _InputIterator >
bool __foreign_iterator_aux3 (const _Safe_iterator< _Iterator, _Sequence, _Category > &, const _InputIterator &, const _InputIterator &, std::__false_type)
 
template<typename _Iterator , typename _Sequence , typename _Category >
bool __foreign_iterator_aux4 (const _Safe_iterator< _Iterator, _Sequence, _Category > &__it, const typename _Sequence::value_type *__other)
 
template<typename _Iterator , typename _Sequence , typename _Category >
bool __foreign_iterator_aux4 (const _Safe_iterator< _Iterator, _Sequence, _Category > &,...)
 
template<typename _Iterator >
constexpr _Distance_traits< _Iterator >::__type __get_distance (const std::reverse_iterator< _Iterator > &__first, const std::reverse_iterator< _Iterator > &__last)
 
template<typename _Iterator >
constexpr _Distance_traits< _Iterator >::__type __get_distance (_Iterator __lhs, _Iterator __rhs, std::random_access_iterator_tag)
 
template<typename _Iterator >
constexpr _Distance_traits< _Iterator >::__type __get_distance (_Iterator __lhs, _Iterator __rhs, std::input_iterator_tag)
 
template<typename _Iterator >
constexpr _Distance_traits< _Iterator >::__type __get_distance (const std::move_iterator< _Iterator > &__first, const std::move_iterator< _Iterator > &__last)
 
template<typename _Iterator >
constexpr _Distance_traits< _Iterator >::__type __get_distance (_Iterator __lhs, _Iterator __rhs)
 
template<typename _Iterator >
constexpr bool __is_irreflexive (_Iterator __it)
 
template<typename _Iterator , typename _Pred >
constexpr bool __is_irreflexive_pred (_Iterator __it, _Pred __pred)
 
template<typename _Iterator >
constexpr auto __unsafe (const std::reverse_iterator< _Iterator > &__it) -> decltype(std::__make_reverse_iterator(__unsafe(__it.base())))
 
template<typename _Iterator >
constexpr auto __unsafe (const std::move_iterator< _Iterator > &__it) -> decltype(std::make_move_iterator(__unsafe(__it.base())))
 
template<typename _Iterator >
constexpr _Iterator __unsafe (_Iterator __it)
 
template<typename _Iterator , typename _UContainer >
_Iterator __unsafe (const _Safe_local_iterator< _Iterator, _UContainer > &__it)
 
template<typename _Iterator , typename _Sequence >
_Iterator __unsafe (const _Safe_iterator< _Iterator, _Sequence > &__it)
 
template<typename _Iterator >
constexpr bool __valid_range (const std::reverse_iterator< _Iterator > &__first, const std::reverse_iterator< _Iterator > &__last, typename _Distance_traits< _Iterator >::__type &__dist)
 
template<typename _Iterator >
constexpr bool __valid_range (const std::move_iterator< _Iterator > &__first, const std::move_iterator< _Iterator > &__last, typename _Distance_traits< _Iterator >::__type &__dist)
 
template<typename _InputIterator >
constexpr bool __valid_range (_InputIterator __first, _InputIterator __last)
 
template<typename _InputIterator >
constexpr bool __valid_range (_InputIterator __first, _InputIterator __last, typename _Distance_traits< _InputIterator >::__type &__dist)
 
template<typename _Iterator , typename _Sequence , typename _Category >
constexpr bool __valid_range (const _Safe_iterator< _Iterator, _Sequence, _Category > &, const _Safe_iterator< _Iterator, _Sequence, _Category > &, typename _Distance_traits< _Iterator >::__type &)
 
template<typename _Iterator , typename _Sequence >
bool __valid_range (const _Safe_local_iterator< _Iterator, _Sequence > &, const _Safe_local_iterator< _Iterator, _Sequence > &, typename _Distance_traits< _Iterator >::__type &)
 
template<typename _Iterator , typename _Sequence , typename _Category >
constexpr bool __valid_range (const _Safe_iterator< _Iterator, _Sequence, _Category > &, const _Safe_iterator< _Iterator, _Sequence, _Category > &)
 
template<typename _Iterator , typename _Sequence >
bool __valid_range (const _Safe_local_iterator< _Iterator, _Sequence > &, const _Safe_local_iterator< _Iterator, _Sequence > &)
 
template<typename _Iterator , typename _UContainer >
bool __valid_range (const _Safe_local_iterator< _Iterator, _UContainer > &__first, const _Safe_local_iterator< _Iterator, _UContainer > &__last, typename _Distance_traits< _Iterator >::__type &__dist_info)
 
template<typename _Iterator , typename _UContainer >
bool __valid_range (const _Safe_local_iterator< _Iterator, _UContainer > &__first, const _Safe_local_iterator< _Iterator, _UContainer > &__last)
 
template<typename _InputIterator >
constexpr bool __valid_range_aux (_InputIterator __first, _InputIterator __last, std::input_iterator_tag)
 
template<typename _InputIterator >
constexpr bool __valid_range_aux (_InputIterator __first, _InputIterator __last, std::random_access_iterator_tag)
 
template<typename _CharT , typename _Traits , typename _Allocator >
std::basic_istream< _CharT, _Traits > & getline (std::basic_istream< _CharT, _Traits > &__is, basic_string< _CharT, _Traits, _Allocator > &__str, _CharT __delim)
 
template<typename _CharT , typename _Traits , typename _Allocator >
std::basic_istream< _CharT, _Traits > & getline (std::basic_istream< _CharT, _Traits > &__is, basic_string< _CharT, _Traits, _Allocator > &__str)
 
template<typename _CharT , typename _Traits , typename _Allocator >
bool operator!= (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
bool operator!= (const _CharT *__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
bool operator!= (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const _CharT *__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
basic_string< _CharT, _Traits, _Allocator > operator+ (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
basic_string< _CharT, _Traits, _Allocator > operator+ (const _CharT *__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
basic_string< _CharT, _Traits, _Allocator > operator+ (_CharT __lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
basic_string< _CharT, _Traits, _Allocator > operator+ (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const _CharT *__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
basic_string< _CharT, _Traits, _Allocator > operator+ (const basic_string< _CharT, _Traits, _Allocator > &__lhs, _CharT __rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
bool operator< (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
bool operator< (const _CharT *__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
bool operator< (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const _CharT *__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
std::basic_ostream< _CharT, _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &__os, const basic_string< _CharT, _Traits, _Allocator > &__str)
 
template<typename _CharT , typename _Traits , typename _Allocator >
bool operator<= (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
bool operator<= (const _CharT *__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
bool operator<= (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const _CharT *__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
bool operator== (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
bool operator== (const _CharT *__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
bool operator== (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const _CharT *__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
bool operator> (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
bool operator> (const _CharT *__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
bool operator> (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const _CharT *__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
bool operator>= (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
bool operator>= (const _CharT *__lhs, const basic_string< _CharT, _Traits, _Allocator > &__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
bool operator>= (const basic_string< _CharT, _Traits, _Allocator > &__lhs, const _CharT *__rhs)
 
template<typename _CharT , typename _Traits , typename _Allocator >
std::basic_istream< _CharT, _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &__is, basic_string< _CharT, _Traits, _Allocator > &__str)
 
template<typename _CharT , typename _Traits , typename _Allocator >
void swap (basic_string< _CharT, _Traits, _Allocator > &__lhs, basic_string< _CharT, _Traits, _Allocator > &__rhs)
 

Detailed Description

GNU debug classes for public use.

Typedef Documentation

◆ u16string

A string of char16_t.

Definition at line 1310 of file debug/string.

◆ u32string

A string of char32_t.

Definition at line 1313 of file debug/string.

Enumeration Type Documentation

◆ _Distance_precision

The precision to which we can calculate the distance between two iterators.

Definition at line 54 of file helper_functions.h.

Function Documentation

◆ __base()

template<typename _Iterator >
constexpr _Iterator __gnu_debug::__base ( _Iterator  __it)
inline

◆ __check_singular()

template<typename _Tp >
constexpr bool __gnu_debug::__check_singular ( _Tp *const &  __ptr)
inline

Non-NULL pointers are nonsingular.

Definition at line 149 of file helper_functions.h.

References __check_singular(), __get_distance(), std::__iterator_category(), std::pair< _T1, _T2 >::first, and std::pair< _T1, _T2 >::second.

Referenced by __check_singular().

◆ __check_singular_aux()

bool __gnu_debug::__check_singular_aux ( const _Safe_iterator_base __x)
inline

Iterators that derive from _Safe_iterator_base can be determined singular or non-singular.

Definition at line 198 of file safe_base.h.

References __gnu_debug::_Safe_iterator_base::_M_singular().

Referenced by __get_distance().

◆ __check_string() [1/2]

template<typename _CharT , typename _Integer >
const _CharT* __gnu_debug::__check_string ( const _CharT *  __s,
_Integer  __n,
const char *  __file,
unsigned int  __line,
const char *  __function 
)
inline

Checks that __s is non-NULL or __n == 0, and then returns __s.

Definition at line 84 of file debug/string.

◆ __check_string() [2/2]

template<typename _CharT >
const _CharT* __gnu_debug::__check_string ( const _CharT *  __s,
const char *  __file,
unsigned int  __line,
const char *  __function 
)
inline

Checks that __s is non-NULL and then returns __s.

Definition at line 105 of file debug/string.

◆ __foreign_iterator_aux2() [1/2]

template<typename _Iterator , typename _Sequence , typename _Category , typename _OtherIterator >
bool __gnu_debug::__foreign_iterator_aux2 ( const _Safe_iterator< _Iterator, _Sequence, _Category > &  __it,
const _Safe_iterator< _OtherIterator, _Sequence, _Category > &  __other,
const _Safe_iterator< _OtherIterator, _Sequence, _Category > &   
)
inline

Handle debug iterators from the same type of container.

Definition at line 131 of file functions.h.

Referenced by __foreign_iterator_aux2().

◆ __foreign_iterator_aux2() [2/2]

template<typename _Iterator , typename _Sequence , typename _Category , typename _OtherIterator , typename _OtherSequence , typename _OtherCategory >
bool __gnu_debug::__foreign_iterator_aux2 ( const _Safe_iterator< _Iterator, _Sequence, _Category > &  ,
const _Safe_iterator< _OtherIterator, _OtherSequence, _OtherCategory > &  ,
const _Safe_iterator< _OtherIterator, _OtherSequence, _OtherCategory > &   
)
inline

Handle debug iterators from different types of container.

Definition at line 142 of file functions.h.

References __foreign_iterator_aux2(), and std::__iterator_category().

◆ __get_distance()

template<typename _Iterator >
constexpr _Distance_traits<_Iterator>::__type __gnu_debug::__get_distance ( _Iterator  __lhs,
_Iterator  __rhs,
std::random_access_iterator_tag   
)
inline

Determine the distance between two iterators with some known precision.

Definition at line 101 of file helper_functions.h.

References std::__addressof(), __check_singular_aux(), and std::__iterator_category().

Referenced by __check_singular().

◆ __valid_range() [1/2]

template<typename _Iterator , typename _Sequence , typename _Category >
constexpr bool __gnu_debug::__valid_range ( const _Safe_iterator< _Iterator, _Sequence, _Category > &  __first,
const _Safe_iterator< _Iterator, _Sequence, _Category > &  __last,
typename _Distance_traits< _Iterator >::__type &  __dist 
)
inline

Safe iterators know how to check if they form a valid range.

Definition at line 1119 of file safe_iterator.h.

References __base(), and __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::base().

◆ __valid_range() [2/2]

template<typename _Iterator , typename _UContainer >
bool __gnu_debug::__valid_range ( const _Safe_local_iterator< _Iterator, _UContainer > &  __first,
const _Safe_local_iterator< _Iterator, _UContainer > &  __last,
typename _Distance_traits< _Iterator >::__type &  __dist_info 
)
inline

Safe local iterators know how to check if they form a valid range.

Definition at line 415 of file safe_local_iterator.h.