cpp / latest / iterator / permutable.html /

std::permutable

Defined in header <iterator>
template< class I >
concept permutable =
    std::forward_iterator<I> &&
    std::indirectly_movable_storable<I, I> &&
    std::indirectly_swappable<I, I>;
(since C++20)

The concept permutable refines std::forward_iterator by adding requirements for reordering through moves and swaps.

Semantic requirements

I models permutable only if all concepts it subsumes are modeled.

See also

(C++20)
specifies the common requirements of algorithms that permute sequences into ordered sequences
(concept)
(C++20)(C++20)
removes elements satisfying specific criteria
(niebloid)
(C++20)
removes consecutive duplicate elements in a range
(niebloid)
(C++20)
reverses the order of elements in a range
(niebloid)
(C++20)
rotates the order of elements in a range
(niebloid)
(C++20)
randomly re-orders elements in a range
(niebloid)
(C++20)
divides a range of elements into two groups
(niebloid)
(C++20)
divides elements into two groups while preserving their relative order
(niebloid)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/iterator/permutable