std::indirectly_movable_storable
來自 cppreference.com
< cpp | 迭代器 (iterator)
定義於標頭檔案 <iterator> |
||
template< class In, class Out > concept indirectly_movable_storable = |
(C++20 起) | |
indirectly_movable_storable
概念指定了 indirectly_readable
型別和 indirectly_writable
型別之間的關係。除了 indirectly_movable
,此概念還指定了從 indirectly_readable
型別進行的移動可以透過中間物件執行。
[編輯] 語義要求
In
和 Out
僅在給定型別為 In
的可解引用值 i
的情況下,才符合 std::indirectly_movable_storable<In, Out> 模型
- 在定義 std::iter_value_t<In> obj(ranges::iter_move(i)); 之後,
obj
等於先前由 *i 表示的值,並且 - 如果 std::iter_rvalue_reference_t<In> 是右值引用型別,則在
obj
初始化後,*i 處於有效但未指定的狀態。
[編輯] 等價性保留
標準庫概念的 requires 表示式中宣告的表示式必須是等價性保留的(除非另有說明)。
[編輯] 另請參閱
(C++20) |
指定值可以從 indirectly_readable 型別移動到 indirectly_writable 型別(概念) |
指定值可以從 indirectly_readable 型別複製到 indirectly_writable 型別,並且複製可以透過中間物件執行(概念) |