Namespaces
Variants
Views
Actions

iter_swap(ranges::adjacent_view::iterator)

From cppreference.com
< cpp‎ | ranges‎ | adjacent view‎ | iterator
 
 
Ranges library
Range access
Range conversions
(C++23)
Range primitives



Dangling iterator handling
Range concepts
Views

Factories




Adaptors
Range generators
Range adaptor objects
Range adaptor closure objects
Helper items
 
 
friend constexpr void iter_swap( const /*iterator*/& x, const /*iterator*/& y )

  noexcept( /*see below*/ )

    requires std::indirectly_swappable<ranges::iterator_t<Base>>;
(since C++23)

Swaps the objects pointed to by two underlying arrays of iterators (denoted as current_).

Equivalent to:

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

The behavior is undefined if before the operation none of the iterators in x.current_ is equal to an iterator in y.current_.

This function is not visible to ordinary unqualified or qualified lookup, and can only be found by argument-dependent lookup when adjacent_view::iterator<Const> is an associated class of the arguments.

Contents

[edit] Parameters

x, y - iterators

[edit] Return value

(none)

[edit] Exceptions

noexcept specification:  
noexcept(std::ranges::iter_swap(declval<ranges::iterator_t<Base>>(),
                                declval<ranges::iterator_t<Base>>()))

[edit] See also

(C++20)
swaps the values referenced by two dereferenceable objects
(customization point object) [edit]
swaps the elements pointed to by two iterators
(function template) [edit]