命名空间
变体
操作

std::indirectly_swappable

来自 cppreference.com
< cpp‎ | iterator
 
 
迭代器库
迭代器概念
迭代器原语
算法概念和实用程序
间接可调用概念
通用算法要求
indirectly_swappable
(C++20)
(C++20)
(C++20)
(C++20)
实用程序
(C++20)
迭代器适配器
范围访问
(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 的类型之间的关系,其中它们引用的类型可以交换。

[编辑] 语义要求

只有当 I1I2 模拟了它所包含的所有概念时,它们才模拟 indirectly_swappable

[编辑] 相等性保留

标准库概念的 requires 表达式 中声明的表达式必须是 相等性保留 的(除非另有说明)。

[编辑] 另请参阅

指定类型通过应用运算符 * 是间接可读的
(概念) [编辑]
(C++20)
交换两个可解引用的对象所引用的值
(自定义点对象)[编辑]