Namespaces
Variants

iter_swap (ranges::concat_view:: iterator )

From cppreference.net
Ranges library
Range adaptors
friend constexpr void iter_swap ( const /*iterator*/ & x, const /*iterator*/ & y )
noexcept ( /* 설명 참조 */ ) requires ( /* 설명 참조 */ ) ;
(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 인 경우, 동작은 정의되지 않습니다.

이 함수는 일반적인 unqualified 또는 qualified lookup 으로는 보이지 않으며, argument-dependent lookup 에 의해서만 찾을 수 있습니다. 이는 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)