std::indirectly_swappable

出自cppreference.com
 
 
迭代器庫
迭代器概念
迭代器原語
算法概念與工具
間接可調用概念
常用算法要求
(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)
交換兩個可解引用對象所引用的值
(定製點對象) [編輯]