STD::__PROFILE::LIST(3cxx)
π std::__profile::list< _Tp, _Allocator > π
okay bestie, this is the 3cxx manual page for std::__profile::list< _Tp, _Allocator >, and she is long, so we're doing this in 3 parts β this is part 1. no cap. π«Ά
β¨ NAME β¨
std::__profile::list< _Tp, _Allocator > β List wrapper with performance instrumentation. that's the whole vibe, she's a list but with extra profiling garnish on top. π
πΈ SYNOPSIS πΈ
#include <list>
Inherits list< _Tp, std::allocator< _Tp > >, and std::__profile::_List_profile< _List >.
π Public Types π
typedef _Allocator allocator_typetypedef __iterator_tracker< typename _Base::const_iterator, list > const_iteratortypedef _Base::const_pointer const_pointertypedef _Base::const_reference const_referencetypedef std::reverse_iterator< const_iterator > const_reverse_iteratortypedef _Base::difference_type difference_typetypedef __iterator_tracker< typename _Base::iterator, list > iteratortypedef _Base::pointer pointertypedef _Base::reference referencetypedef std::reverse_iterator< iterator > reverse_iteratortypedef _Base::size_type size_typetypedef _Tp value_type
π Public Member Functions π
template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>> list (_InputIterator __first, _InputIterator __last, const _Allocator &__a=_Allocator())list (const _Allocator &__a) noexceptlist (const _Base &__x)list (const list &)=defaultlist (const list &__x, const allocator_type &__a)list (initializer_list< value_type > __l, const allocator_type &__a=allocator_type())list (list &&)=defaultlist (list &&__x, const allocator_type &__a)list (size_type __n, const _Tp &__value, const _Allocator &__a=_Allocator())list (size_type __n, const allocator_type &__a=allocator_type())const _Base & _M_base () const noexcept_Base & _M_base () noexceptvoid _M_profile_construct () noexceptvoid _M_profile_destruct () noexceptvoid _M_profile_iterate (int __rewind=0) constvoid _M_swap (_List_profile &__other)const_reference back () const noexceptreference back () noexceptconst_iterator begin () const noexceptiterator begin () noexceptconst_iterator cbegin () const noexceptconst_iterator cend () const noexceptvoid clear () noexceptconst_reverse_iterator crbegin () const noexceptconst_reverse_iterator crend () const noexcepttemplate<typename... _Args> iterator emplace (const_iterator __position, _Args &&... __args)const_iterator end () const noexceptiterator end () noexceptiterator erase (const_iterator __pos) noexceptiterator erase (const_iterator __pos, const_iterator __last) noexcepttemplate<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>> iterator insert (const_iterator __pos, _InputIterator __first, _InputIterator __last)iterator insert (const_iterator __pos, _Tp &&__x)iterator insert (const_iterator __pos, const _Tp &__x)iterator insert (const_iterator __pos, initializer_list< value_type > __l)iterator insert (const_iterator __pos, size_type __n, const _Tp &__x)void merge (list &&__x)template<class _Compare > void merge (list &&__x, _Compare __comp)void merge (list &__x)template<typename _Compare > void merge (list &__x, _Compare __comp)list & operator= (const list &)=defaultlist & operator= (initializer_list< value_type > __l)list & operator= (list &&)=defaultvoid pop_back () noexceptvoid pop_front () noexceptvoid push_front (const value_type &__x)const_reverse_iterator rbegin () const noexceptreverse_iterator rbegin () noexceptvoid remove (const _Tp &__value)template<class _Predicate > void remove_if (_Predicate __pred)const_reverse_iterator rend () const noexceptreverse_iterator rend () noexceptvoid splice (const_iterator __pos, list &&__x) noexceptvoid splice (const_iterator __pos, list &&__x, const_iterator __first, const_iterator __last) noexceptvoid splice (const_iterator __pos, list &&__x, const_iterator __i) noexceptvoid splice (const_iterator __pos, list &__x) noexceptvoid splice (const_iterator __pos, list &__x, const_iterator __first, const_iterator __last) noexceptvoid splice (const_iterator __pos, list &__x, const_iterator __i)void swap (list &__x) noexcept(/*conditional */)void unique ()template<class _BinaryPredicate > void unique (_BinaryPredicate __binary_pred)
π¦ Public Attributes π¦
__gnu_profile::__list2slist_info * _M_list2slist_info__gnu_profile::__list2vector_info * _M_list2vector_info
π Detailed Description π
template<typename _Tp, typename _Allocator = std::allocator<_Tp>>
class std::__profile::list< _Tp, _Allocator >
List wrapper with performance instrumentation.
Definition at line 106 of file profile/list.
ngl, this is the whole point of the class: it's a list, but she's clocked in and taking notes on her own performance. iconic behaviour honestly. π₯
π Member Typedef Documentation π
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> typedef _Allocator std::__profile::list< _Tp, _Allocator >::allocator_typeβ Definition at line 125 of file profile/list.template<typename _Tp , typename _Allocator = std::allocator<_Tp>> typedef __iterator_tracker<typename _Base::const_iterator, list> std::__profile::list< _Tp, _Allocator >::const_iteratorβ Definition at line 119 of file profile/list.template<typename _Tp , typename _Allocator = std::allocator<_Tp>> typedef _Base::const_pointer std::__profile::list< _Tp, _Allocator >::const_pointerβ Definition at line 127 of file profile/list.template<typename _Tp , typename _Allocator = std::allocator<_Tp>> typedef _Base::const_reference std::__profile::list< _Tp, _Allocator >::const_referenceβ Definition at line 114 of file profile/list.template<typename _Tp , typename _Allocator = std::allocator<_Tp>> typedef std::reverse_iterator<const_iterator> std::__profile::list< _Tp, _Allocator >::const_reverse_iteratorβ Definition at line 129 of file profile/list.template<typename _Tp , typename _Allocator = std::allocator<_Tp>> typedef _Base::difference_type std::__profile::list< _Tp, _Allocator >::difference_typeβ Definition at line 122 of file profile/list.template<typename _Tp , typename _Allocator = std::allocator<_Tp>> typedef __iterator_tracker<typename _Base::iterator, list> std::__profile::list< _Tp, _Allocator >::iteratorβ Definition at line 117 of file profile/list.template<typename _Tp , typename _Allocator = std::allocator<_Tp>> typedef _Base::pointer std::__profile::list< _Tp, _Allocator >::pointerβ Definition at line 126 of file profile/list.template<typename _Tp , typename _Allocator = std::allocator<_Tp>> typedef _Base::reference std::__profile::list< _Tp, _Allocator >::referenceβ Definition at line 113 of file profile/list.template<typename _Tp , typename _Allocator = std::allocator<_Tp>> typedef std::reverse_iterator<iterator> std::__profile::list< _Tp, _Allocator >::reverse_iteratorβ Definition at line 128 of file profile/list.template<typename _Tp , typename _Allocator = std::allocator<_Tp>> typedef _Base::size_type std::__profile::list< _Tp, _Allocator >::size_typeβ Definition at line 121 of file profile/list.template<typename _Tp , typename _Allocator = std::allocator<_Tp>> typedef _Tp std::__profile::list< _Tp, _Allocator >::value_typeβ Definition at line 124 of file profile/list.
π Constructor & Destructor Documentation π
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> std::__profile::list< _Tp, _Allocator >::list (initializer_list< value_type > __l, const allocator_type & __a = allocator_type())[inline] β Definition at line 145 of file profile/list.template<typename _Tp , typename _Allocator = std::allocator<_Tp>> std::__profile::list< _Tp, _Allocator >::list (const list< _Tp, _Allocator > & __x, const allocator_type & __a)[inline] β Definition at line 149 of file profile/list.template<typename _Tp , typename _Allocator = std::allocator<_Tp>> std::__profile::list< _Tp, _Allocator >::list (list< _Tp, _Allocator > && __x, const allocator_type & __a)[inline] β Definition at line 152 of file profile/list.template<typename _Tp , typename _Allocator = std::allocator<_Tp>> std::__profile::list< _Tp, _Allocator >::list (const _Allocator & __a)[inline], [explicit], [noexcept] β Definition at line 157 of file profile/list.template<typename _Tp , typename _Allocator = std::allocator<_Tp>> std::__profile::list< _Tp, _Allocator >::list (size_type __n, const allocator_type & __a = allocator_type())[inline], [explicit] β Definition at line 162 of file profile/list.template<typename _Tp , typename _Allocator = std::allocator<_Tp>> std::__profile::list< _Tp, _Allocator >::list (size_type __n, const _Tp & __value, const _Allocator & __a = _Allocator())[inline] β Definition at line 165 of file profile/list.template<typename _Tp , typename _Allocator = std::allocator<_Tp>> template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>> std::__profile::list< _Tp, _Allocator >::list (_InputIterator __first, _InputIterator __last, const _Allocator & __a = _Allocator())[inline] β Definition at line 181 of file profile/list.template<typename _Tp , typename _Allocator = std::allocator<_Tp>> std::__profile::list< _Tp, _Allocator >::list (const _Base & __x)[inline] β Definition at line 185 of file profile/list.
π Member Function Documentation π
okay bestie, deep breath, hydrate, sit down β this is the main character section of the whole page. every single member function of std::__profile::list, in the exact order the docs list them, with the full signature, the attribute tags, and the exact line of profile/list where each one lives. no skipping, no summarising, we are eating the whole plate. π
quick heads-up so the walls of code don't jump you: almost every one of these declarations opens with the same class-template prefix,
template<typename _Tp , typename _Allocator = std::allocator<_Tp>>
so when you see that at the top, that's just the class's own params, not a new thing. the _List_profile< _List > ones are the odd ones out and they're tagged [inherited] β they come from the profile base, and I'm telling you because the docs tell you. π
_M_base () const
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> const _Base & std::__profile::list< _Tp, _Allocator >::_M_base () const
[inline], [noexcept] β Definition at line 581 of file profile/list.
the const flavour, and she's noexcept about it. β¨
_M_base ()
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> _Base & std::__profile::list< _Tp, _Allocator >::_M_base ()
[inline], [noexcept] β Definition at line 578 of file profile/list.
same girl, but without the const β she gives you a _Base & instead of a const _Base &. both are [inline] and [noexcept], periodt. π
_List_profile< _List >::_M_profile_construct ()
template<typename _List > void std::__profile::_List_profile< _List >::_M_profile_construct ()
[inline], [noexcept], [inherited] β Definition at line 55 of file profile/list.
inherited, returns void, takes nothing, and is very noexcept about all of it. π«Ά
_List_profile< _List >::_M_profile_destruct ()
template<typename _List > void std::__profile::_List_profile< _List >::_M_profile_destruct ()
[inline], [noexcept], [inherited] β Definition at line 62 of file profile/list.
the inherited twin of the one above, seven lines further down. iconic symmetry, honestly. β¨
_M_profile_iterate (int __rewind = 0) const
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> void std::__profile::list< _Tp, _Allocator >::_M_profile_iterate (int __rewind = 0) const
[inline] β Definition at line 583 of file profile/list.
note bestie: default argument int __rewind = 0, it's a const member, and β read carefully β there is no [noexcept] on this one. π
_List_profile< _List >::_M_swap (_List_profile< _List > & __other)
template<typename _List > void std::__profile::_List_profile< _List >::_M_swap (_List_profile< _List > & __other)
[inline], [inherited] β Definition at line 71 of file profile/list.
takes a reference to another _List_profile< _List > named __other. [inline] and [inherited] only β no noexcept here either, don't let anyone tell you otherwise. π
back () const
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> const_reference std::__profile::list< _Tp, _Allocator >::back () const
[inline], [noexcept] β Definition at line 286 of file profile/list.
returns const_reference. π
back ()
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> reference std::__profile::list< _Tp, _Allocator >::back ()
[inline], [noexcept] β Definition at line 279 of file profile/list.
returns plain reference. the const/non-const duo, both [inline], both [noexcept], both slaying. π
begin () const
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> const_iterator std::__profile::list< _Tp, _Allocator >::begin () const
[inline], [noexcept] β Definition at line 220 of file profile/list.
begin ()
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> iterator std::__profile::list< _Tp, _Allocator >::begin ()
[inline], [noexcept] β Definition at line 216 of file profile/list.
cbegin () const
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> const_iterator std::__profile::list< _Tp, _Allocator >::cbegin () const
[inline], [noexcept] β Definition at line 261 of file profile/list.
cend () const
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> const_iterator std::__profile::list< _Tp, _Allocator >::cend () const
[inline], [noexcept] β Definition at line 265 of file profile/list.
the c-girlies (cbegin and cend) both hand you const_iterator and are const members themselves. consistency, we love to see it. πΈ
clear ()
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> void std::__profile::list< _Tp, _Allocator >::clear ()
[inline], [noexcept] β Definition at line 421 of file profile/list.
returns void, takes nothing, [inline], [noexcept], line 421. clean. β¨
crbegin () const
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> const_reverse_iterator std::__profile::list< _Tp, _Allocator >::crbegin () const
[inline], [noexcept] β Definition at line 269 of file profile/list.
crend () const
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> const_reverse_iterator std::__profile::list< _Tp, _Allocator >::crend () const
[inline], [noexcept] β Definition at line 273 of file profile/list.
both const_reverse_iterator, both const, both [noexcept]. the reverse-const squad is fully assembled. π¦
emplace (const_iterator __position, _Args &&... __args)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> template<typename... _Args> iterator std::__profile::list< _Tp, _Allocator >::emplace (const_iterator __position, _Args &&... __args)
[inline] β Definition at line 318 of file profile/list.
okay this one's got two template heads stacked: the class one and template<typename... _Args>. takes a const_iterator __position plus a variadic pack _Args &&... __args, hands back an iterator. [inline] only, bestie. π
end () const
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> const_iterator std::__profile::list< _Tp, _Allocator >::end () const
[inline], [noexcept] β Definition at line 231 of file profile/list.
end ()
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> iterator std::__profile::list< _Tp, _Allocator >::end ()
[inline], [noexcept] β Definition at line 224 of file profile/list.
erase (const_iterator __pos)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> iterator std::__profile::list< _Tp, _Allocator >::erase (const_iterator __pos)
[inline], [noexcept] β Definition at line 394 of file profile/list.
one __pos, returns iterator. yes she's noexcept, no we're not asking questions. π
erase (const_iterator __pos, const_iterator __last)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> iterator std::__profile::list< _Tp, _Allocator >::erase (const_iterator __pos, const_iterator __last)
[inline], [noexcept] β Definition at line 402 of file profile/list.
the range version, __pos through __last, still returns iterator, still [inline], still [noexcept]. π₯
insert (const_iterator __pos, _InputIterator __first, _InputIterator __last)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>> iterator std::__profile::list< _Tp, _Allocator >::insert (const_iterator __pos, _InputIterator __first, _InputIterator __last)
[inline] β Definition at line 374 of file profile/list.
double template head again, and the second one has a defaulted type param that's literally std::_RequireInputIter<_InputIterator>. that's the vibes check gatekeeping who's allowed in. [inline] only. πͺ
insert (const_iterator __pos, _Tp && __x)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> iterator std::__profile::list< _Tp, _Allocator >::insert (const_iterator __pos, _Tp && __x)
[inline] β Definition at line 339 of file profile/list.
takes an rvalue ref _Tp && __x. π«
insert (const_iterator __pos, const _Tp & __x)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> iterator std::__profile::list< _Tp, _Allocator >::insert (const_iterator __pos, const _Tp & __x)
[inline] β Definition at line 328 of file profile/list.
the const-ref one, same name, same return type, different signature. overloads are wild fr fr. π
insert (const_iterator __pos, initializer_list< value_type > __l)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> iterator std::__profile::list< _Tp, _Allocator >::insert (const_iterator __pos, initializer_list< value_type > __l)
[inline] β Definition at line 347 of file profile/list.
takes an initializer_list< value_type > named __l. curly-brace girlies rise. π
insert (const_iterator __pos, size_type __n, const _Tp & __x)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> iterator std::__profile::list< _Tp, _Allocator >::insert (const_iterator __pos, size_type __n, const _Tp & __x)
[inline] β Definition at line 356 of file profile/list.
count size_type __n plus the value. that's all five insert overloads, accounted for, none missing. π
merge (list< _Tp, _Allocator > && __x)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> void std::__profile::list< _Tp, _Allocator >::merge (list< _Tp, _Allocator > && __x)
[inline] β Definition at line 549 of file profile/list.
returns void, takes an rvalue ref to another list< _Tp, _Allocator >. π€
merge (list< _Tp, _Allocator > && __x, _Compare __comp)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> template<class _Compare > void std::__profile::list< _Tp, _Allocator >::merge (list< _Tp, _Allocator > && __x, _Compare __comp)
[inline] β Definition at line 564 of file profile/list.
rvalue version with a comparator. note it says template<class _Compare > here, with class, not typename β copy it exactly, bestie. π
merge (list< _Tp, _Allocator > & __x)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> void std::__profile::list< _Tp, _Allocator >::merge (list< _Tp, _Allocator > & __x)
[inline] β Definition at line 557 of file profile/list.
lvalue ref this time. same everything else. β¨
merge (list< _Tp, _Allocator > & __x, _Compare __comp)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> template<typename _Compare > void std::__profile::list< _Tp, _Allocator >::merge (list< _Tp, _Allocator > & __x, _Compare __comp)
[inline] β Definition at line 573 of file profile/list.
and the fourth merge uses template<typename _Compare > β yes, typename this time, not class. they're different. I checked. don't @ me. π
operator= (initializer_list< value_type > __l)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> list & std::__profile::list< _Tp, _Allocator >::operator= (initializer_list< value_type > __l)
[inline] β Definition at line 205 of file profile/list.
returns list & β a reference to the list itself. the assignment girlie. π
pop_back ()
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> void std::__profile::list< _Tp, _Allocator >::pop_back ()
[inline], [noexcept] β Definition at line 309 of file profile/list.
pop_front ()
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> void std::__profile::list< _Tp, _Allocator >::pop_front ()
[inline], [noexcept] β Definition at line 302 of file profile/list.
back one at 309, front one at 302, both void, both [noexcept]. π
push_front (const value_type & __x)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> void std::__profile::list< _Tp, _Allocator >::push_front (const value_type & __x)
[inline] β Definition at line 294 of file profile/list.
takes const value_type & __x, returns void, and β heads up β only [inline], no [noexcept] tag on this one. π
rbegin () const
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> const_reverse_iterator std::__profile::list< _Tp, _Allocator >::rbegin () const
[inline], [noexcept] β Definition at line 245 of file profile/list.
rbegin ()
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> reverse_iterator std::__profile::list< _Tp, _Allocator >::rbegin ()
[inline], [noexcept] β Definition at line 238 of file profile/list.
remove (const _Tp & __value)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> void std::__profile::list< _Tp, _Allocator >::remove (const _Tp & __value)
[inline] β Definition at line 483 of file profile/list.
void, one const _Tp & __value, [inline], no noexcept tag. β
remove_if (_Predicate __pred)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> template<class _Predicate > void std::__profile::list< _Tp, _Allocator >::remove_if (_Predicate __pred)
[inline] β Definition at line 496 of file profile/list.
double template head, class _Predicate, one arg __pred, returns void. π§
rend () const
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> const_reverse_iterator std::__profile::list< _Tp, _Allocator >::rend () const
[inline], [noexcept] β Definition at line 256 of file profile/list.
rend ()
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> reverse_iterator std::__profile::list< _Tp, _Allocator >::rend ()
[inline], [noexcept] β Definition at line 252 of file profile/list.
splice (const_iterator __pos, list< _Tp, _Allocator > && __x)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> void std::__profile::list< _Tp, _Allocator >::splice (const_iterator __pos, list< _Tp, _Allocator > && __x)
[inline], [noexcept] β Definition at line 431 of file profile/list.
splice (const_iterator __pos, list< _Tp, _Allocator > && __x, const_iterator __first, const_iterator __last)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> void std::__profile::list< _Tp, _Allocator >::splice (const_iterator __pos, list< _Tp, _Allocator > && __x, const_iterator __first, const_iterator __last)
[inline], [noexcept] β Definition at line 464 of file profile/list.
splice (const_iterator __pos, list< _Tp, _Allocator > && __x, const_iterator __i)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> void std::__profile::list< _Tp, _Allocator >::splice (const_iterator __pos, list< _Tp, _Allocator > && __x, const_iterator __i)
[inline], [noexcept] β Definition at line 449 of file profile/list.
splice (const_iterator __pos, list< _Tp, _Allocator > & __x)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> void std::__profile::list< _Tp, _Allocator >::splice (const_iterator __pos, list< _Tp, _Allocator > & __x)
[inline], [noexcept] β Definition at line 439 of file profile/list.
splice (const_iterator __pos, list< _Tp, _Allocator > & __x, const_iterator __first, const_iterator __last)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> void std::__profile::list< _Tp, _Allocator >::splice (const_iterator __pos, list< _Tp, _Allocator > & __x, const_iterator __first, const_iterator __last)
[inline], [noexcept] β Definition at line 477 of file profile/list.
splice (const_iterator __pos, list< _Tp, _Allocator > & __x, const_iterator __i)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> void std::__profile::list< _Tp, _Allocator >::splice (const_iterator __pos, list< _Tp, _Allocator > & __x, const_iterator __i)
[inline] β Definition at line 443 of file profile/list.
okay bestie LOOK AT THIS ONE β that's the last splice (the lvalue + single const_iterator __i version) and it is the only splice without a [noexcept] tag. every other splice has it. this one does not. write that down. π
swap (list< _Tp, _Allocator > & __x)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> void std::__profile::list< _Tp, _Allocator >::swap (list< _Tp, _Allocator > & __x)
[inline], [noexcept] β Definition at line 413 of file profile/list.
unique ()
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> void std::__profile::list< _Tp, _Allocator >::unique ()
[inline] β Definition at line 509 of file profile/list.
no args, returns void, [inline] and that's it. π«
unique (_BinaryPredicate __binary_pred)
template<typename _Tp , typename _Allocator = std::allocator<_Tp>> template<class _BinaryPredicate > void std::__profile::list< _Tp, _Allocator >::unique (_BinaryPredicate __binary_pred)
[inline] β Definition at line 529 of file profile/list.
the comparator version, class _BinaryPredicate, one arg __binary_pred, void, [inline]. and that's the last one on the list. π«Ά
and that is every single member function the docs give you, all 48 of them, in order, signatures and line numbers intact, nothing dropped. to be continuedβ¦ π
π Member Data Documentation π
okay bestie, last stretch, we're at the data members and there's literally just two of them, both inherited, both chillin' in the same file. no cap, they're twins. π―
_M_list2slist_infoβ template<typename _List> a pointer of type__gnu_profile::__list2slist_info*, living onstd::__profile::_List_profile< _List >. marked [inherited] bc she didn't come up with it herself, she got it from the family. Definition at line 48 of fileprofile/list. π_M_list2vector_infoβ template<typename _List> a pointer of type__gnu_profile::__list2vector_info*, also hanging out onstd::__profile::_List_profile< _List >, also [inherited]. Definition at line 49 of fileprofile/list. right below her sister. iconic placement fr fr. β¨
so yeah, both of these are just pointers sitting there as member data, one for the list-to-slist info and one for the list-to-vector info, and if you wanna go read the actual definitions they're one line apart in profile/list. the way that they're numbered 48 and 49 and nothing else... lowkey obsessed. π
π¦ Author π¦
Generated automatically by Doxygen for libstdc++ from the source code.
like, nobody wrote this with their hands, bestie. a machine did it. Doxygen looked at the libstdc++ source code and just β¨manifestedβ¨ this whole page. so if something reads a lil robotic in places, that's why. don't @ me, @ Doxygen. π
and that's a wrap on the whole page!! π«Ά this one came from the libstdc++ docs, auto-generated by Doxygen from the source code, and it's filed under the (3cxx) section β the footer line was giving very much "mangled title + version stamp" energy, so consider this the cute lil sign-off instead: source = libstdc++, generator = Doxygen, section = (3cxx), date = whatever the build stamped on it π thanks for reading all three parts, you ate that. periodt. ππΈ
π¦ where this page comes from
- ubuntu noble: libstdc++-9-doc 9.5.0-6ubuntu2
- ubuntu noble: libstdc++-9-doc 9.5.0-6ubuntu2.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms