Namespaces
Variants

iter_swap(ranges::cartesian_product_view::iterator)

С ru.cppreference.net
 
 
Библиотека диапазонов
Адаптеры диапазонов
 
 
friend constexpr void iter_swap( const /*iterator*/& x, const /*iterator*/& y )
    noexcept (/* see description */)
    requires (std::indirectly_swappable<
        ranges::iterator_t</*maybe-const*/<Const, First>>> and ... and
            std::indirectly_swappable<ranges::iterator_t</*maybe-const*/<Const, Vs>>>);
(начиная с C++23)

Применяет ranges::iter_swap к сохранённым базовым итераторам. Формально, для каждого целого числа 0 ≤ i ≤ sizeof...(Vs) выполняет ranges::iter_swap(std::get<i>(x.current_), std::get<i>(y.current_)), где current_ является базовым кортежем итераторов.

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

Параметры

x, y - итераторы на элементы для обмена

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

(нет)

Исключения

Спецификация исключений эквивалентна логическому И выражения noexcept ( ranges:: iter_swap ( std :: get < i > ( x. current_ ) , std :: get < i > ( y. current_ ) ) ) для каждого целого числа 0 ≤ i ≤ sizeof... ( Vs ) .

Смотрите также

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