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>>()))

См. также

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

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

Spec-Zone.ru

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