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)
交换两个可解引用对象所引用的值
(定制点对象)[编辑]
close