std::mergeable(3)
πΈ NAME πΈ
std::mergeable β std::mergeable. That's it, that's the name bestie π
(we're hanging out in std::mergeable(3) from the C++ Standard Libary β yep, "Libary", that's the header's spelling, no cap).
β¨ Synopsis β¨
Defined in header <iterator>
template< class I1, class I2, class Out, class Comp = ranges::less,
class Proj1 = std::identity, class Proj2 = std::identity >
concept mergeable =
std::input_iterator<I1> &&
std::input_iterator<I2> &&
std::weakly_incrementable<Out> &&
(since C++20)
std::indirectly_copyable<I1, Out> &&
std::indirectly_copyable<I2, Out> &&
std::indirect_strict_weak_order<Comp,
std::projected<I1, Proj1>,
std::projected<I2, Proj2>>;
Ok so the mergeable concept specifies the requirements for algorithms that merge two input ranges into a single output range, according to the strict weak ordering imposed by Comp β¨. It's giving "requirements list but make it cute," and honestly? Obsessed.
π§ Semantic requirements π§
mergeable is modeled only if all concepts it subsumes are modeled. Periodt β no shortcuts, bestie π.
π₯ See also π₯
ranges::mergeβ merges two sorted ranges (C++20) (niebloid)ranges::set_unionβ computes the union of two sets (C++20) (niebloid)ranges::set_intersectionβ computes the intersection of two sets (C++20) (niebloid)ranges::set_differenceβ computes the difference between two sets (C++20) (niebloid)ranges::set_symmetric_differenceβ computes the symmetric difference between two sets (C++20) (niebloid)
Sign-off time π«Ά: this page came from http://cppreference.com, dated 2024.06.10, and it's std::mergeable(3). Bye bestie, go merge something iconic ππ
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms