iter_swap(ranges::cartesian_product_view::iterator)
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) | меняет местами значения, на которые ссылаются два разыменовываемых объекта (объект-точка настройки) |
| меняет местами элементы, на которые указывают два итератора (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/ranges/cartesian_product_view/iterator/iter_swap