STD::_FWD_LIST_BASE(3cxx)
π
std::_Fwd_list_base< _Tp, _Alloc > β the 3cxx manual page, bestie β¨
okay so this is the std::_Fwd_list_base< _Tp, _Alloc > page from the 3cxx manual, and it's literally the base-class lore for forward_list. Buckle up, it's giving internals π
π NAME π
std::_Fwd_list_base< _Tp, _Alloc > - Base class for forward_list.
That's the whole NAME line, no cap. It's the base class for forward_list, periodt.
β¨ SYNOPSIS β¨
#include <forward_list>
Inherited by std::forward_list< _Tp, _Alloc > [private].
Yes bestie, [private] β keep that in mind π
πΈ Public Types πΈ
typedef _Fwd_list_node< _Tp > _Node
typedef _Fwd_list_const_iterator< _Tp > const_iterator
typedef _Fwd_list_iterator< _Tp > iterator
Three public typedefs, all iconic in their own way: _Node, const_iterator, and iterator β¨
π Public Member Functions π
_Fwd_list_base (_Fwd_list_base &&)=default
_Fwd_list_base (_Fwd_list_base &&__lst, _Node_alloc_type &&__a)
_Fwd_list_base (_Fwd_list_base &&__lst, _Node_alloc_type &&__a,
std::true_type)
_Fwd_list_base (_Node_alloc_type &&__a)
const _Node_alloc_type & _M_get_Node_allocator () const noexcept
_Node_alloc_type & _M_get_Node_allocator () noexcept
So we've got move constructors, a move constructor with an allocator, one with that plus std::true_type, one that just takes _Node_alloc_type &&__a, and two _M_get_Node_allocator() flavors β one const noexcept, one non-const noexcept. All exact, all here, no skipping π«Ά
π¦ Protected Types π¦
typedef __gnu_cxx::__alloc_traits< _Node_alloc_type > _Node_alloc_traits
typedef __alloc_rebind< _Alloc, _Fwd_list_node< _Tp > > _Node_alloc_type
Protected typedefs, lowkey the plumbing behind the plumbing π
π§ Protected Member Functions π§
template<typename... _Args> _Node * _M_create_node (_Args &&... __args)
_Fwd_list_node_base * _M_erase_after (_Fwd_list_node_base *__pos)
_Fwd_list_node_base * _M_erase_after (_Fwd_list_node_base *__pos,
_Fwd_list_node_base *__last)
_Node * _M_get_node ()
template<typename... _Args> _Fwd_list_node_base * _M_insert_after
(const_iterator __pos, _Args &&... __args)
void _M_put_node (_Node *__p)
This is the under-the-hood protected crew: create a node, erase after one position, erase after a range, get a node, insert after with variadic args, and put a node back. Very βdon't touch unless you're the implementationβ energy π
π Protected Attributes π
_Fwd_list_impl _M_impl
One protected attribute: _M_impl, doing main-character implementation things π
π₯ Detailed Description π₯
template<typename _Tp, typename _Alloc>
struct std::_Fwd_list_base< _Tp, _Alloc >"Base class for forward_list.
That's the template struct and the description the source gives: Base class for forward_list. The stray quote right there is absolutely in the source vibes β not me inventing anything, bestie π
π Author π
Generated automatically by Doxygen for libstdc++ from the source code.
So yeah, no human author to tag β Doxygen generated this for libstdc++ straight from the source code. Iconic automation behavior π€β¨
Sign-off: this page is from the 3cxx manual, source/version vibes are libstdc++, and the footer line read libststd::_Fwd_list_...< _Tp, _Alloc >(3cxx). No date was listed on the page, so I'm not making one up, bestie π«Άπ
π¦ where this page comes from
- ubuntu noble: libstdc++-14-doc 14-20240412-0ubuntu1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms