iter_swap(ranges::concat_view::iterator)
friend constexpr void iter_swap( const /*iterator*/& x, const /*iterator*/& y )
noexcept( /* see description */ ) requires ( /* see description */ );
|
(desde C++26) | |
Intercambia los objetos apuntados por los iteradores subyacentes de x y y. Equivalente a
std::visit
(
[&](const auto& it1, const auto& it2)
{
if constexpr (std::is_same_v<decltype(it1), decltype(it2)>)
ranges::iter_swap(it1, it2);
else
ranges::swap(*x, *y);
},
x.it_ ,
y.it_
);
La expresión en la cláusula requires es equivalente a
std::swappable_with<std::iter_reference_t</*iterator*/>,
std::iter_reference_t</*iterator*/>> &&
(... && std::indirectly_swappable<ranges::iterator_t<maybe-const <Const, Views>>>)
.
Si x.it_ .valueless_by_exception() || y.it_ .valueless_by_exception() es true, el comportamiento no está definido.
Esta función no es visible para la búsqueda ordinaria no calificada o calificada, y solo se puede encontrar mediante búsqueda dependiente de argumentos cuando concat_view::iterator <Const> es una clase asociada de los argumentos.
Parámetros
| x, y | - | iteradores |
Excepciones
Sea
its
un paquete de lvalues, donde cada valor es del tipo correspondiente en
const
ranges::
iterator_t
<
maybe-const
<
Const, Views
>>
.
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |
Véase también
|
(C++20)
|
intercambia los valores referenciados por dos objetos desreferenciables
(objeto de punto de personalización) |
|
intercambia los elementos apuntados por dos iteradores
(plantilla de función) |