Namespaces
Variants

std::experimental::ranges:: reference_t, std::experimental::ranges:: rvalue_reference_t, std::experimental::ranges:: iter_common_reference_t

From cppreference.net
template < class T >
concept bool /*dereferenceable*/ = requires ( T & t ) { { * t } - > auto && ; } ;
( 설명 전용* )
template < /*dereferenceable*/ T >
using reference_t = decltype ( * declval < T & > ( ) ) ;
(1) (ranges TS)
template < /*dereferenceable*/ T >

requires requires ( T & t ) { { ranges:: iter_move ( t ) } - > auto && ; }

using rvalue_reference_t = decltype ( ranges:: iter_move ( declval < T & > ( ) ) ) ;
(2) (ranges TS)
template < Readable T >

using iter_common_reference_t = ranges:: common_reference_t < ranges :: reference_t < T > ,

ranges :: value_type_t < T > & > ;
(3) (ranges TS)
1) 역참조 가능한 타입 T 참조 타입 을 획득합니다.
2) 역참조 가능한 타입 T rvalue reference type 을 획득합니다. 즉, ranges::iter_move 의 반환 타입입니다.
3) Readable 타입의 공통 참조 타입 을 계산합니다. 이것은 해당 타입의 참조 타입과 값 타입에 대한 lvalue 참조의 공통 참조 타입입니다.

참고 사항

- > auto && 제약 조건은 표현식의 타입이 void 가 아님을 검사합니다.