SYNOPSIS
Inherits __gnu_debug::_Safe_container< forward_list< _Tp, _Alloc >, _Alloc, __gnu_debug::_Safe_forward_list >, and forward_list< _Tp, _Alloc >.
Public Types
typedef _Base::allocator_type allocator_type
typedef __gnu_debug::_Safe_iterator< _Base_const_iterator, forward_list > const_iterator
typedef _Base::const_pointer const_pointer
typedef _Base::const_reference const_reference
typedef _Base::difference_type difference_type
typedef __gnu_debug::_Safe_iterator< _Base_iterator, forward_list > iterator
typedef _Base::pointer pointer
typedef _Base::reference reference
typedef _Base::size_type size_type
typedef _Tp value_type
Public Member Functions
forward_list (const allocator_type &__al=allocator_type())
forward_list (const forward_list &__list, const allocator_type &__al)
forward_list (forward_list &&__list, const allocator_type &__al)
forward_list (size_type __n, const allocator_type &__al=allocator_type())
forward_list (size_type __n, const _Tp &__value, const allocator_type &__al=allocator_type())
template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>> forward_list (_InputIterator __first, _InputIterator __last, const allocator_type &__al=allocator_type())
forward_list (const forward_list &)=default
forward_list (forward_list &&)=default
forward_list (std::initializer_list< _Tp > __il, const allocator_type &__al=allocator_type())
void _M_attach (_Safe_iterator_base *__it, bool __constant)
void _M_attach_single (_Safe_iterator_base *__it, bool __constant) throw ()
_Base & _M_base () noexcept
const _Base & _M_base () const noexcept
void _M_detach (_Safe_iterator_base *__it)
void _M_detach_single (_Safe_iterator_base *__it) throw ()
void _M_invalidate_all () const
void _M_invalidate_if (_Predicate __pred)
void _M_swap (_Safe_container &__x) noexcept
void _M_transfer_from_if (_Safe_sequence &__from, _Predicate __pred)
template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>> void assign (_InputIterator __first, _InputIterator __last)
void assign (size_type __n, const _Tp &__val)
void assign (std::initializer_list< _Tp > __il)
iterator before_begin () noexcept
const_iterator before_begin () const noexcept
iterator begin () noexcept
const_iterator begin () const noexcept
const_iterator cbefore_begin () const noexcept
const_iterator cbegin () const noexcept
const_iterator cend () const noexcept
void clear () noexcept
template<typename... _Args> iterator emplace_after (const_iterator __pos, _Args &&...__args)
iterator end () noexcept
const_iterator end () const noexcept
iterator erase_after (const_iterator __pos)
iterator erase_after (const_iterator __pos, const_iterator __last)
reference front ()
const_reference front () const
iterator insert_after (const_iterator __pos, const _Tp &__val)
iterator insert_after (const_iterator __pos, _Tp &&__val)
iterator insert_after (const_iterator __pos, size_type __n, const _Tp &__val)
template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>> iterator insert_after (const_iterator __pos, _InputIterator __first, _InputIterator __last)
iterator insert_after (const_iterator __pos, std::initializer_list< _Tp > __il)
void merge (forward_list &&__list)
void merge (forward_list &__list)
template<typename _Comp > void merge (forward_list &&__list, _Comp __comp)
template<typename _Comp > void merge (forward_list &__list, _Comp __comp)
forward_list & operator= (const forward_list &)=default
forward_list & operator= (forward_list &&)=default
forward_list & operator= (std::initializer_list< _Tp > __il)
void pop_front ()
void remove (const _Tp &__val)
template<typename _Pred > void remove_if (_Pred __pred)
void resize (size_type __sz)
void resize (size_type __sz, const value_type &__val)
void splice_after (const_iterator __pos, forward_list &&__list)
void splice_after (const_iterator __pos, forward_list &__list)
void splice_after (const_iterator __pos, forward_list &&__list, const_iterator __i)
void splice_after (const_iterator __pos, forward_list &__list, const_iterator __i)
void splice_after (const_iterator __pos, forward_list &&__list, const_iterator __before, const_iterator __last)
void splice_after (const_iterator __pos, forward_list &__list, const_iterator __before, const_iterator __last)
void swap (forward_list &__list) noexcept(noexcept(declval< _Base >().swap(__list)))
void unique ()
template<typename _BinPred > void unique (_BinPred __binary_pred)
Public Attributes
_Safe_iterator_base * _M_const_iterators
_Safe_iterator_base * _M_iterators
unsigned int _M_version
Protected Member Functions
void _M_detach_all ()
void _M_detach_singular ()
__gnu_cxx::__mutex & _M_get_mutex () throw ()
void _M_invalidate_all ()
void _M_revalidate_singular ()
_Safe_container & _M_safe () noexcept
void _M_swap (_Safe_sequence_base &) noexcept
Detailed Description
template<typename _Tp, typename _Alloc = std::allocator<_Tp>>
class std::__debug::forward_list< _Tp, _Alloc >" Class std::forward_list with safety/checking/debug instrumentation.
Definition at line 177 of file debug/forward_list.
Member Function Documentation
void __gnu_debug::_Safe_sequence_base::_M_attach (_Safe_iterator_base * __it, bool __constant) [inherited]
Attach an iterator to this sequence.void __gnu_debug::_Safe_sequence_base::_M_attach_single (_Safe_iterator_base * __it, bool __constant) [inherited]
Likewise but not thread safe.void __gnu_debug::_Safe_sequence_base::_M_detach (_Safe_iterator_base * __it) [inherited]
Detach an iterator from this sequenceReferenced by __gnu_debug::_Safe_iterator< _Iterator, _Sequence >::_Safe_iterator().
void __gnu_debug::_Safe_sequence_base::_M_detach_all () [protected], [inherited]
Detach all iterators, leaving them singular.void __gnu_debug::_Safe_sequence_base::_M_detach_single (_Safe_iterator_base * __it) [inherited]
Likewise but not thread safe.void __gnu_debug::_Safe_sequence_base::_M_detach_singular () [protected], [inherited]
Detach all singular iterators.Postcondition:
- for all iterators i attached to this sequence, i->_M_version == _M_version.
__gnu_cxx::__mutex& __gnu_debug::_Safe_sequence_base::_M_get_mutex () [protected], [inherited]
For use in _Safe_sequence.Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().
void __gnu_debug::_Safe_sequence_base::_M_invalidate_all () const [inline], [inherited]
Invalidates all iterators.Definition at line 241 of file safe_base.h.
References __gnu_debug::_Safe_iterator_base::_M_attach(), __gnu_debug::_Safe_iterator_base::_M_attach_single(), __gnu_debug::_Safe_iterator_base::_M_detach(), and __gnu_debug::_Safe_iterator_base::_M_detach_single().
void __gnu_debug::_Safe_sequence< forward_list< _Tp, _Alloc > >::_M_invalidate_if (_Predicate __pred) [inherited]
Invalidates all iterators x that reference this sequence, are not singular, and for which __pred(x) returns true. __pred will be invoked with the normal iterators nested in the safe ones.void __gnu_debug::_Safe_sequence_base::_M_revalidate_singular () [protected], [inherited]
Revalidates all attached singular iterators. This method may be used to validate iterators that were invalidated before (but for some reason, such as an exception, need to become valid again).void __gnu_debug::_Safe_sequence< forward_list< _Tp, _Alloc > >::_M_transfer_from_if (_Safe_sequence< forward_list< _Tp, _Alloc > > & __from, _Predicate __pred) [inherited]
Transfers all iterators x that reference from sequence, are not singular, and for which __pred(x) returns true. __pred will be invoked with the normal iterators nested in the safe ones.Member Data Documentation
_Safe_iterator_base* __gnu_debug::_Safe_sequence_base::_M_const_iterators [inherited]
The list of constant iterators that reference this container.
Definition at line 186 of file safe_base.h.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().
_Safe_iterator_base* __gnu_debug::_Safe_sequence_base::_M_iterators [inherited]
The list of mutable iterators that reference this container.
Definition at line 183 of file safe_base.h.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().
unsigned int __gnu_debug::_Safe_sequence_base::_M_version [mutable], [inherited]
The container version number. This number may never be 0.
Definition at line 189 of file safe_base.h.
Author
Generated automatically by Doxygen for libstdc++ from the source code.