名稱空間
變體
操作

std::indirectly_copyable_storable

來自 cppreference.com
 
 
迭代器庫
迭代器概念
迭代器原語
演算法概念與工具
間接可呼叫概念
常用演算法要求
indirectly_copyable_storable(間接可複製儲存)
(C++20)  
工具
迭代器介面卡
 
定義於標頭檔案 <iterator>
template< class In, class Out >

concept indirectly_copyable_storable =
    std::indirectly_copyable<In, Out> &&
    std::indirectly_writable<Out, std::iter_value_t<In>&> &&
    std::indirectly_writable<Out, const std::iter_value_t<In>&> &&
    std::indirectly_writable<Out, std::iter_value_t<In>&&> &&
    std::indirectly_writable<Out, const std::iter_value_t<In>&&> &&
    std::copyable<std::iter_value_t<In>> &&
    std::constructible_from<std::iter_value_t<In>, std::iter_reference_t<In>> &&

    std::assignable_from<std::iter_value_t<In>&, std::iter_reference_t<In>>;
(C++20 起)

indirectly_copyable_storable 概念指定了 indirectly_readable 型別與 indirectly_writable 型別之間的關係。除了 indirectly_copyable,此概念還指定可以透過中間物件執行從 indirectly_readable 型別的複製。

[編輯] 語義要求

當且僅當給定型別為 In 的可解引用值 i 時,InOut 才建模 std::indirectly_copyable_storable<In, Out>

  • 在定義 std::iter_value_t<In> obj(*i); 後,obj 等於先前由 *i 表示的值,並且
  • 如果 std::iter_reference_t<In> 是右值引用型別,則在 obj 初始化後,*i 處於有效但未指定的狀態。

[編輯] 相等性保持

標準庫概念的 requires 表示式中宣告的表示式必須是 相等性保持的(除非另有說明)。

[編輯] 參見

指定值可以從 indirectly_readable 型別複製到 indirectly_writable 型別
(概念) [編輯]
指定值可以從 indirectly_readable 型別移動到 indirectly_writable 型別,並且移動可以透過中間物件執行
(概念) [編輯]