std::ranges...or::iterator(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

🌸 NAME 🌸

okay bestie, this is the std::ranges...or::iterator(3) page from the C++ Standard Libary manual β€” yes, that’s literally how the header spells it, and we are not fixing it. The name is std::ranges::join_with_view::iterator::iterator, and the original hits you with it twice: std::ranges::join_with_view::iterator::iterator. It’s giving β€œI contain multitudes,” but make it C++.


✨ Synopsis ✨

okay so there are two constructors here, both marked (since C++23), and the manpage line-wrap was doing the absolute most. Here are the overloads with all the tokens intact:

/*iterator*/() requires std::default_initializable<ranges::iterator_t<Base>> = default;

(1) (since C++23)

constexpr /*iterator*/( /*iterator*/<!Const> i )

  requires Const &&
    std::convertible_to<ranges::iterator_t<V>, ranges::iterator_t<Base>> &&
    std::convertible_to<ranges::iterator_t<ranges::range_reference_t<V>>, ranges::iterator_t<InnerBase>> &&
    std::convertible_to<ranges::iterator_t<Pattern>, ranges::iterator_t<PatternBase>>;

(2) (since C++23)

Construct an iterator. That’s the whole assignment, and honestly? iconic.

  1. Default constructor. Value-initializes the underlying iterator to Base and the iterator to PatternBase, and initializes the pointer to parent join_with_view with nullptr.
  2. Conversion from /*iterator*/<false> to /*iterator*/<true>. Move constructs corresponding members.
also there’s a private constructor, used by join_with_view::begin and join_with_view::end. It is not accessible to users, so don’t try to summon it, bestie.

πŸ’– Parameters πŸ’–

  • i β€” an /*iterator*/<false>. That’s it. One parameter, one icon.

πŸŽ€ Example πŸŽ€

This section is incomplete Reason: no example

πŸ¦‹ Category πŸ¦‹

Category: * Todo no example


mwah πŸ’‹ β€” source http://cppreference.com, date/version 2024.06.10, page std::ranges...or::iterator(3). periodt 🫢

πŸ“¦ where this page comes from