Spec-Zone.ru › C++

std::indirectly_swappable

Определено в заголовочном файле <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, где их ссылающиеся типы могут быть поменяны местами.

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

I1 и I2 моделируют indirectly_swappable только если все подчинённые концепции также моделируются.

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

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

См. также

indirectly_readable
(C++20)
определяет, что тип является косвенно читаемым путём применения оператора *
(концепция)
iter_swap
(C++20)
меняет местами значения, на которые ссылаются два дериференцируемых объекта
(объект точки кастомизации)

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

Spec-Zone.ru

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