Spec-Zone.ru › C++

std::indirectly_copyable_storable

Определён в заголовке <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 и Out моделируют std::indirectly_copyable_storable<In, Out>, только если для разыменовываемого значения i типа In:

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

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

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

См. также

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

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

Spec-Zone.ru

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