__GNU_PBDS::DETAIL::OV_TREE_NODE_IT_(3cxx)
π NAME
ok so bestie, you're on the 3cxx page β that's the libstdc++ man page zone β and the header up top got so aggressively truncated it's literally __gnu_pbds::de..._Type, _Alloc >(3cxx) π (the ... is doing main character energy and hiding the middle of the class name, ngl). The actual full title is:
__gnu_pbds::detail::ov_tree_node_it_< Value_Type, Metadata_Type, _Alloc >
and what it is, in one line, is a node reference. that's it. that's the whole name section. periodt π
β¨ SYNOPSIS
you get to it by including this, no cap:
#include <node_iterators.hpp>
it inherits from __gnu_pbds::detail::ov_tree_node_const_it_< Value_Type, Metadata_Type, _Alloc > β so it's the non-const glow-up of the const version, iykyk π¦
π¦ Public Types
these are the typedefs, and the way that < and > nesting goes crazy here is honestly iconic. all of them, exactly as written:
const_referenceβrebind_traits< _Alloc, typenameremove_const< Value_Type >::type >::pointerdifference_typeβtrivial_iterator_difference_typeiterator_categoryβtrivial_iterator_tagmetadata_const_referenceβrebind_traits< _Alloc, metadata_type >::const_referencemetadata_typeβMetadata_Typereferenceβrebind_traits< _Alloc, typenameremove_const< Value_Type >::type >::pointervalue_typeβrebind_traits< _Alloc, Value_Type >::pointer
and yes,const_referenceandreferenceboth end in::pointerβ that's literally what the page says, we're not "fixing" it, we're just reporting it π«Ά
π Public Member Functions
ov_tree_node_it_ (const_pointer p_nd=0, const_pointer p_begin_nd=0, const_pointer p_end_nd=0, const_metadata_pointer p_metadata=0)β the constructor, with four defaulted-to-0params. very "here are your knobs, all of them optional" of it.ov_tree_node_it_ get_l_child () constβ returns the node reference associated with the left node πmetadata_const_reference get_metadata () constβ returns the metadata. that's all the page says. no elaboration. we respect the mystery πov_tree_node_it_ get_r_child () constβ returns the node reference associated with the right node πΈbool operator!= (const this_type &other) constβ inequality check againstconst this_type &other.reference operator* () constβ "Access." that's the entire description. short, sweet, ate πbool operator== (const this_type &other) constβ equality check againstconst this_type &other.
π Public Attributes
the exposed members, bestie, they're just out there:
pointer m_p_begin_valuepointer m_p_end_valueconst_metadata_pointer m_p_metadatapointer m_p_value
π₯ Static Protected Member Functions
one (1) protected static helper, and it's a template:
template<typename Ptr > static Ptr mid_pointer (Ptr p_begin, Ptr p_end)
it's giving "find the middle pointer" but we're not adding lore that isn't on the page π₯
π Detailed Description
the full declaration, laid out exactly like this, template line and all:
template<typename Value_Type, typename Metadata_Type, typename _Alloc>
class __gnu_pbds::detail::ov_tree_node_it_< Value_Type, Metadata_Type,
_Alloc >
and the description? "Node reference." two words. no notes. absolute legend behavior π
β Member Function Documentation
get_l_child
template<typename Value_Type , typename Metadata_Type , typename _Alloc >
ov_tree_node_it_ __gnu_pbds::detail::ov_tree_node_it_< Value_Type,
Metadata_Type, _Alloc >::get_l_child () const [inline]
returns the node reference associated with the left node π
get_r_child
template<typename Value_Type , typename Metadata_Type , typename _Alloc >
ov_tree_node_it_ __gnu_pbds::detail::ov_tree_node_it_< Value_Type,
Metadata_Type, _Alloc >::get_r_child () const [inline]
returns the node reference associated with the right node π
operator*
template<typename Value_Type , typename Metadata_Type , typename _Alloc >
reference __gnu_pbds::detail::ov_tree_node_it_< Value_Type,
Metadata_Type, _Alloc >::operator* () const [inline]
"Access." that's it. that's the whole doc comment. we stan a minimalist π
note: onlyget_l_child,get_r_childandoperator*get their own documentation entries here.get_metadata,operator==,operator!=and the constructor don't β so don't come for me, I'm not inventing descriptions π«Ά
π Author
generated automatically by Doxygen for libstdc++ from the source code. no human hand-wrote this bad boy, it's all machine-made β¨
and that's the whole page, bestie! sign-off time: this was libstdc++'s 3cxx manual β the footer reads libstd__gnu_pbds::de..._Type, _Alloc >(3cxx) (truncation trauma again π) β generated by Doxygen straight from the source code. go forth and reference some nodes πππ¦
π¦ 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