Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/iterator/permutable"

From cppreference.com
< cpp‎ | iterator
(removes equality preservation since it's not a direct requirement for this concept)
m
Line 15: Line 15:
  
 
===Semantic requirements===
 
===Semantic requirements===
Given a value {{tt|i}} of type {{tt|I}}, {{tt|I}} models {{tt|permutable}} only if all concepts it subsumes are modeled.
+
{{tt|I}} models {{tt|permutable}} only if all concepts it subsumes are modeled.
  
 
===See also===
 
===See also===

Revision as of 23:30, 27 July 2020

 
 
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> &&

    std::indirectly_swappable<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) [edit]