Namespaces
Variants

std:: indirectly_swappable

From cppreference.net
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
indirectly_swappable
(C++20)
(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)
ヘッダーで定義 <iterator>
template < class I1, class I2 = I1 >

concept indirectly_swappable =
std:: indirectly_readable < I1 > &&
std:: indirectly_readable < I2 > &&
requires ( const I1 i1, const I2 i2 )
{
ranges:: iter_swap ( i1, i1 ) ;
ranges:: iter_swap ( i1, i2 ) ;
ranges:: iter_swap ( i2, i1 ) ;
ranges:: iter_swap ( i2, i2 ) ;

} ;
(C++20以降)

indirectly_swappable の概念は、それぞれ std::indirectly_readable をモデル化する2つの型の間の関係を指定し、それらの参照される型が交換可能であることを示します。

セマンティック要件

I1 および I2 は、それが包含するすべてのコンセプトがモデル化されている場合にのみ indirectly_swappable をモデル化します。

等価性保存

標準ライブラリコンセプトの requires expressions で宣言される式は、 equality-preserving であることが要求されます(特に明記されている場合を除く)。

関連項目

型がoperator * を適用することで間接的に読み取り可能であることを指定する
(コンセプト)
(C++20)
2つの間接参照可能なオブジェクトが参照する値を交換する
(カスタマイゼーションポイントオブジェクト)