Namespaces
Variants

std::ranges:: iter_move

From cppreference.net
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
(C++20)
(C++20)
(C++20)
Utilities
(C++20)
Iterator adaptors
Range access
(C++11) (C++14)
(C++14) (C++14)
(C++11) (C++14)
(C++14) (C++14)
(C++17) (C++20)
(C++17)
(C++17)
헤더에 정의됨 <iterator>
inline namespace /* unspecified */ {

inline constexpr /* unspecified */ iter_move = /* unspecified */ ;

}
(C++20부터)
(커스터마이제이션 포인트 객체)
호출 시그니처
template < class T >

requires /* see below */

constexpr decltype ( auto ) iter_move ( T && t ) noexcept ( /* see below */ ) ;
(C++20부터)

주어진 반복자로부터 rvalue 참조 또는 prvalue 임시 객체를 획득합니다.

A ranges :: iter_move ( t ) 표현식 동등 합니다:

  1. iter_move ( t ) , 만약 t 가 클래스 또는 열거형 타입을 가지고, 표현식이 평가되지 않은 피연산자 로 취급될 때 유효하며, 여기서 iter_move 오버로드 해결 인수 의존적 탐색 으로 찾은 후보들만으로 수행되는 경우.
  2. 그렇지 않으면, std :: move ( * t ) , 만약 * t 가 유효하고 lvalue인 경우.
  3. 그렇지 않으면, * t , 만약 * t 가 유효하고 rvalue인 경우.

다른 모든 경우에, ranges::iter_move 에 대한 호출은 형식에 맞지 않으며, 이는 템플릿 인스턴스화의 직접적인 맥락에서 ranges :: iter_move ( e ) 가 나타날 때 치환 실패 를 초래할 수 있습니다.

만약 ranges :: iter_move ( e ) * e 와 같지 않다면, 프로그램의 형식이 잘못되었으며 진단이 필요하지 않습니다.

커스터마이제이션 포인트 객체

ranges::iter_move 이름은 커스터마이제이션 포인트 객체 를 나타내며, 이는 함수 객체 의 리터럴 리터럴 semiregular 클래스 타입의 상수입니다. 자세한 내용은 CustomizationPointObject 를 참조하십시오.

예제

참고 항목

(C++20)
조정된 기반 반복자를 역참조한 결과를 해당 rvalue 참조 타입으로 변환합니다
(함수)
(C++20)
기반 반복자를 역참조한 결과를 해당 rvalue 참조 타입으로 변환합니다
(함수)