Spec-Zone.ru › C++

iter_swap(ranges::adjacent_view::iterator)

friend constexpr void iter_swap( const /*iterator*/& x, const /*iterator*/& y )
    noexcept( /*see below*/ )
        requires std::indirectly_swappable<ranges::iterator_t<Base>>;
(начиная с C++23)

Меняет местами объекты, на которые указывают два базовых массива итераторов (обозначенных как current_).

Эквивалентно:

for (std::size_t i{}; i != N; ++i)
{
    std::ranges::iter_swap(x.current_[i], y.current_[i]);
}

Поведение не определено, если до выполнения операции ни один из итераторов в x.current_ не равен итератору в y.current_.

Эта функция не видна при обычном неквалифицированном или квалифицированном поиске и может быть найдена только посредством поиска с учетом аргументов, если adjacent_view::iterator<Const> является ассоциированным классом аргументов.

Параметры

x, y - итераторы

Возвращаемое значение

(нет)

Исключения

noexcept спецификация:
noexcept(std::ranges::iter_swap(declval<ranges::iterator_t<Base>>(),
                                declval<ranges::iterator_t<Base>>()))

См. также

ranges::iter_swap
(C++20)
меняет местами значения, на которые ссылаются два разыменовываемых объекта
(объект-точка настройки)
iter_swap
меняет местами элементы, на которые указывают два итератора
(шаблон функции)

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

Spec-Zone.ru

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