Classes
class _After_nth_from
struct _BeforeBeginHelper
class _Equal_to
class _Not_equal_to
class _Safe_container
Safe class dealing with some allocator dependent operations.
class _Safe_forward_list
Special iterators swap and invalidation for forward_list because of the before_begin iterator.
class _Safe_iterator
Safe iterator wrapper.
class _Safe_iterator_base
Basic functionality for a safe iterator.
class _Safe_local_iterator
Safe iterator wrapper.
class _Safe_local_iterator_base
Basic functionality for a safe iterator.
class _Safe_node_sequence
Like _Safe_sequence but with a special _M_invalidate_all implementation not invalidating past-the-end
iterators. Used by node based sequence.
class _Safe_sequence
Base class for constructing a safe sequence type that tracks iterators that reference it.
class _Safe_sequence_base
Base class that supports tracking of iterators that reference a sequence.
class _Safe_unordered_container
Base class for constructing a safe unordered container type that tracks iterators that reference it.
class _Safe_unordered_container_base
Base class that supports tracking of local iterators that reference an unordered container.
class _Safe_vector
Base class for Debug Mode vector.
struct _Sequence_traits
class basic_string
Class std::basic_string with safety/checking/debug instrumentation.
Typedefs
typedef basic_string< char > string
typedef basic_string< char16_t > u16string
A string of char16_t.
typedef basic_string< char32_t > u32string
A string of char32_t.
typedef basic_string< wchar_t > wstringEnumerations
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 > constexpr _Iterator __base (_Iterator __it)
template<typename _Iterator , typename _Sequence > _Iterator __base (const _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 , typename _Sequence > constexpr std::reverse_iterator< _Iterator > __base
(const std::reverse_iterator< _Safe_iterator< _Iterator, _Sequence, std::random_access_iterator_tag >
> &__it)
template<typename _InputIterator , typename _Size > constexpr bool __can_advance (_InputIterator, _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 _Size > bool
__can_advance (const _Safe_iterator< _Iterator, _Sequence, _Category > &, _Size)
template<typename _Iterator , typename _Sequence , typename _Category , typename _Diff > bool
__can_advance (const _Safe_iterator< _Iterator, _Sequence, _Category > &, const std::pair< _Diff,
_Distance_precision > &, int)
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 _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 _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 _Safe_iterator_base *__x)
bool __check_singular_aux (const class _Safe_iterator_base *)
bool __check_singular_aux (const void *)
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 _ForwardIterator , typename _Predicate > constexpr bool __check_sorted_aux
(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, std::forward_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 _InputIterator > constexpr bool __check_sorted_aux (const _InputIterator &, const
_InputIterator &, std::input_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 , typename _Predicate > constexpr bool __check_sorted_set_aux (const
_InputIterator &, const _InputIterator &, _Predicate, std::__false_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 > constexpr bool __check_sorted_set_aux (const _InputIterator &__first,
const _InputIterator &__last, std::__true_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 > _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 _Integral > bool
__foreign_iterator_aux (const _Safe_iterator< _Iterator, _Sequence, _Category > &, _Integral,
_Integral, std::__true_type)
template<typename _Iterator , typename _Sequence , typename _Category , typename _InputIterator > bool
__foreign_iterator_aux (const _Safe_iterator< _Iterator, _Sequence, _Category > &__it, _InputIterator
__other, _InputIterator __other_end, std::__false_type)
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 _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 _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 , 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 > bool __foreign_iterator_aux4
(const _Safe_iterator< _Iterator, _Sequence, _Category > &,...)
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 > constexpr _Distance_traits< _Iterator >::__type __get_distance (_Iterator
__lhs, _Iterator __rhs)
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 (_Iterator
__lhs, _Iterator __rhs, std::random_access_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 (const
std::reverse_iterator< _Iterator > &__first, const std::reverse_iterator< _Iterator > &__last)
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 > _Iterator __unsafe (_Iterator __it)
template<typename _Iterator , typename _Sequence > _Iterator __unsafe (const _Safe_iterator< _Iterator,
_Sequence > &__it)
template<typename _Iterator , typename _Sequence > _Iterator __unsafe (const _Safe_local_iterator<
_Iterator, _Sequence > &__it)
template<typename _Iterator > constexpr auto __unsafe (const std::move_iterator< _Iterator > &__it) ->
decltype(std::make_move_iterator(__unsafe(__it.base())))
template<typename _Iterator > constexpr auto __unsafe (const std::reverse_iterator< _Iterator > &__it) ->
decltype(std::__make_reverse_iterator(__unsafe(__it.base())))
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 > bool __valid_range (const
_Safe_iterator< _Iterator, _Sequence, _Category > &, const _Safe_iterator< _Iterator, _Sequence,
_Category > &)
template<typename _Iterator , typename _Sequence , typename _Category > 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 > &)
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 > constexpr bool __valid_range (const std::move_iterator< _Iterator >
&__first, const std::move_iterator< _Iterator > &__last, typename _Distance_traits< _Iterator
>::__type &__dist)
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 _InputIterator > constexpr bool __valid_range_aux (_InputIterator __first,
_InputIterator __last, std::__false_type)
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 _InputIterator > constexpr bool __valid_range_aux (_InputIterator __first,
_InputIterator __last, typename _Distance_traits< _InputIterator >::__type &__dist,
std::__false_type)
template<typename _Integral > constexpr bool __valid_range_aux (_Integral, _Integral, std::__true_type)
template<typename _Integral > constexpr bool __valid_range_aux (_Integral, _Integral, typename
_Distance_traits< _Integral >::__type &__dist, std::__true_type)
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 > 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 > 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 > 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 _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, _CharT __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, 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 > 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 _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 > bool operator>= (const basic_string<
_CharT, _Traits, _Allocator > &__lhs, const basic_string< _CharT, _Traits, _Allocator > &__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)