Namespaces
Variants

iter_swap(ranges::concat_view::iterator)

cppreference.net에서 가져옴
 
 
범위 라이브러리
범위 어댑터
 
 
friend constexpr void iter_swap( const /*iterator*/& x, const /*iterator*/& y )
    noexcept( /* see description */ ) requires ( /* see description */ );
(C++26부터)

x와 y의 기본 반복자가 가리키는 객체를 교체합니다. 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_
);

와 동등합니다. requires 절의 표현식은 std::swappable_with<std::iter_reference_t</*iterator*/>,
                    std::iter_reference_t</*iterator*/>> &&
(... && std::indirectly_swappable<ranges::iterator_t<maybe-const <Const, Views>>>)
와 동등합니다.

x.it_ .valueless_by_exception() || y.it_ .valueless_by_exception()이 true인 경우 동작은 정의되지 않습니다.

이 함수는 일반적인 비한정 또는 한정 조회로는 볼 수 없으며, 인자 종속 조회를 통해서만 찾을 수 있습니다. 단, concat_view::iterator <Const>가 인자의 연관 클래스인 경우에만 가능합니다.

매개변수

x, y - iterators

예외

its 를 lvalue들의 팩으로 설정하며, 각 값은 const ranges:: iterator_t < maybe-const  < Const, Views >> 에서 해당하는 타입을 가집니다.

noexcept 명세:
noexcept ( noexcept ( ranges:: swap ( * x, * y ) ) && ... && noexcept ( ranges:: iter_swap ( its, its ) ) )

예제

참고 항목

(C++20)
역참조 가능한 두 객체가 참조하는 값을 교환
(customization point object)
두 반복자가 가리키는 요소를 교환
(function template)