Spec-Zone.ru › C++

std::indirectly_movable_storable

Определено в заголовке <iterator>
template< class In, class Out >
concept indirectly_movable_storable =
    std::indirectly_movable<In, Out> &&
    std::indirectly_writable<Out, std::iter_value_t<In>> &&
    std::movable<std::iter_value_t<In>> &&
    std::constructible_from<std::iter_value_t<In>, std::iter_rvalue_reference_t<In>> &&
    std::assignable_from<std::iter_value_t<In>&, std::iter_rvalue_reference_t<In>>;
(с C++20)

Концепция indirectly_movable_storable описывает взаимосвязь между типом indirectly_readable и типом indirectly_writable. В дополнение к концепции indirectly_movable, данная концепция указывает, что перемещение из типа indirectly_readable может быть выполнено через промежуточный объект.

Семантические требования

In и Out моделируют std::indirectly_movable_storable<In, Out> только если им предоставлено значение, на которое можно сослаться i типа In:

  • После определения std::iter_value_t<In> obj(ranges::iter_move(i));, значение obj равно значению, ранее обозначенному *i и
  • если std::iter_rvalue_reference_t<In> - это тип ссылки на правое значение, *i находится в допустимом, но неопределенном состоянии после инициализации obj.

Сохранение равенства

Выражения, объявленные в выражениях requires концепций стандартной библиотеки, должны быть сохраняющими равенство (если не указано иное).

См. также

indirectly_movable
(C++20)
определяет возможность перемещения значений из типа indirectly_readable в тип indirectly_writable
(концепция)
indirectly_copyable_storable
(C++20)
определяет возможность копирования значений из типа indirectly_readable в тип indirectly_writable и возможность выполнения копии через промежуточный объект
(концепция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/iterator/indirectly_movable_storable

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API