std:: permutable

From cppreference.com
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
permutable
(C++20)
(C++20)
(C++20)
Utilities
(C++20)
Iterator adaptors
Range access
(C++11) (C++14)
(C++14) (C++14)
(C++11) (C++14)
(C++14) (C++14)
(C++17) (C++20)
(C++17)
(C++17)
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)
removes elements satisfying specific criteria
(algorithm function object)
removes consecutive duplicate elements in a range
(algorithm function object)
reverses the order of elements in a range
(algorithm function object)
rotates the order of elements in a range
(algorithm function object)
randomly re-orders elements in a range
(algorithm function object)
divides a range of elements into two groups
(algorithm function object)
divides elements into two groups while preserving their relative order
(algorithm function object)