STD::COMMON_ITERATOR(3cxx)

πŸ’– std::common_iterator< _It, _Sent > πŸ’–

okay so bestie, this is the 3cxx manual page for std::common_iterator< _It, _Sent > from libstdc++ β€” manual name folded in near the top instead of copied as the header, because we're cute and also accurate. ✨

🌸 NAME 🌸

std::common_iterator< _It, _Sent > β€” literally An iterator/sentinel adaptor for representing a non-common range. That's the official vibe. πŸ¦‹


✨ SYNOPSIS ✨

#include <iterator>

πŸŽ€ Public Member Functions πŸŽ€

bestie, here's the full public roster, signatures untouched and in order. No merging, no skipping, no "I'll mention one and call it a day". πŸ’…

constexpr common_iterator (_It __i)
    noexcept(is_nothrow_move_constructible_v< _It >)
constexpr common_iterator (_Sent __s)
    noexcept(is_nothrow_move_constructible_v< _Sent >)
common_iterator (common_iterator &&)=default
constexpr common_iterator (common_iterator &&__x) noexcept(_S_noexcept<
    _It, _Sent >())
common_iterator (const common_iterator &)=default
constexpr common_iterator (const common_iterator &__x)
    noexcept(_S_noexcept< const _It &, const _Sent & >())
template<typename _It2 , typename _Sent2 >
    requires convertible_to<const _It2&, _It> && convertible_to<const
    _Sent2&, _Sent>constexpr common_iterator (const common_iterator<
    _It2, _Sent2 > &__x) noexcept(_S_noexcept< const _It2 &, const
    _Sent2 & >())"
constexpr decltype(auto) operator* ()
constexpr decltype(auto) operator* () const
constexpr common_iterator & operator++ ()
constexpr decltype(auto) operator++ (int)
constexpr auto operator-> () const
constexpr common_iterator & operator= (common_iterator &&)=default
constexpr common_iterator & operator= (common_iterator &&__x)
    noexcept(is_nothrow_move_assignable_v< _It >
    &&is_nothrow_move_assignable_v< _Sent >
    &&is_nothrow_move_constructible_v< _It >
    &&is_nothrow_move_constructible_v< _Sent >)
constexpr common_iterator & operator= (const common_iterator &)=default
constexpr common_iterator & operator= (const common_iterator &__x)
    noexcept(is_nothrow_copy_assignable_v< _It >
    &&is_nothrow_copy_assignable_v< _Sent >
    &&is_nothrow_copy_constructible_v< _It >
    &&is_nothrow_copy_constructible_v< _Sent >)
template<typename _It2 , typename _Sent2 >
    requires convertible_to<const _It2&, _It> && convertible_to<const
    _Sent2&, _Sent> && assignable_from<_It&, const _It2&> &&
    assignable_from<_Sent&, const _Sent2&>constexpr common_iterator &
    operator= (const common_iterator< _It2, _Sent2 > &__x)
    noexcept(is_nothrow_constructible_v< _It, const _It2 & >
    &&is_nothrow_constructible_v< _Sent, const _Sent2 & >
    &&is_nothrow_assignable_v< _It &, const _It2 & >
    &&is_nothrow_assignable_v< _Sent &, const _Sent2 & >)"

🫢 Friends 🫢

and these are the friends β€” lowkey iconic, highkey exact:

constexpr iter_rvalue_reference_t< _It > iter_move (const
    common_iterator &__i)
    noexcept(noexcept(ranges::iter_move(std::declval< const _It & >())))
template<indirectly_swappable< _It > _It2, typename _Sent2 > constexpr
    void iter_swap (const common_iterator &__x, const common_iterator<
    _It2, _Sent2 > &__y)
    noexcept(noexcept(ranges::iter_swap(std::declval< const _It & >(),
    std::declval< const _It2 & >())))
template<sized_sentinel_for< _It > _It2, sized_sentinel_for< _It >
    _Sent2>
    requires sized_sentinel_for<_Sent, _It2>constexpr iter_difference_t<
    _It2 > operator- (const common_iterator &__x, const common_iterator<
    _It2, _Sent2 > &__y)"
template<typename _It2 , sentinel_for< _It > _Sent2>
    requires sentinel_for<_Sent, _It2>constexpr bool operator== (const
    common_iterator &__x, const common_iterator< _It2, _Sent2 > &__y)"
template<typename _It2 , sentinel_for< _It > _Sent2>
    requires sentinel_for<_Sent, _It2> && equality_comparable_with<_It,
    _It2>constexpr bool operator== (const common_iterator &__x, const
    common_iterator< _It2, _Sent2 > &__y)"

🌈 Detailed Description 🌈

template<input_or_output_iterator _It, sentinel_for< _It > _Sent>
    requires (!same_as<_It, _Sent>) && copyable<_It>
    class std::common_iterator< _It, _Sent >

the description is exactly this: An iterator/sentinel adaptor for representing a non-common range. tiny note: the raw page has a " tucked right after _Sent > before that sentence, so that's the formatting artifact I'm acknowledging, not a fact I'm changing. πŸ™ˆ

πŸ‘‘ AUTHOR πŸ‘‘

Generated automatically by Doxygen for libstdc++ from the source code.


bye bestie πŸ’– β€” footer/source/version sign-off: libststd::common_ite...r< _It, _Sent >(3cxx); source is libstdc++, generated automatically by Doxygen, and no separate date is shown in that footer, so we're not inventing one. πŸŽ€

πŸ“¦ where this page comes from