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 要求,且它们所引用的类型可以进行交换操作。

语义要求

I1 I2 只有在所有被其蕴含的概念均被满足时,才满足 indirectly_swappable 概念。

等值保持性

标准库概念的 requires 表达式 中声明的表达式必须满足 等值保持 特性(除非另有说明)。

参见

规定类型可通过应用 * 运算符间接读取
(概念)
(C++20)
交换两个可解引用对象所引用的值
(定制点对象)