Namespaces
Variants

std::experimental::ranges:: CommonReference

From cppreference.net
헤더 파일에 정의됨 <experimental/ranges/concepts>
template < class T, class U >

concept bool CommonReference =
Same < ranges:: common_reference_t < T, U > , ranges:: common_reference_t < U, T >> &&
ConvertibleTo < T, ranges:: common_reference_t < T, U >> &&

ConvertibleTo < U, ranges:: common_reference_t < T, U >> ;
(ranges TS)

CommonReference<T, U> 개념은 두 타입 T U 공통 참조 타입 ( ranges::common_reference_t 에 의해 계산됨)을 공유하며, 둘 다 이 타입으로 변환될 수 있음을 명시합니다.

CommonReference<T, U> 는 주어진 표현식 t u decltype ( ( t ) ) T 이고 decltype ( ( u ) ) U 인 경우에만 만족됩니다.

다시 말해, 공통 참조 타입으로의 변환은 원래 표현식의 동등성 보존 특성을 변경해서는 안 됩니다.

동등성 보존

표현식은 동일한 입력이 주어졌을 때 동일한 출력을 결과로 내놓는다면 등식 보존적(equality preserving) 입니다.

  • 표현식의 입력은 피연산자들로 구성됩니다.
  • 표현식의 출력은 결과와 표현식에 의해 수정된 모든 피연산자(있는 경우)로 구성됩니다.

동등성 보존이 요구되는 모든 표현식은 추가로 안정적(stable) 이어야 합니다: 동일한 입력 객체로 이러한 표현식을 두 번 평가할 때, 해당 입력 객체에 명시적인 수정이 개입되지 않는 한 동일한 출력을 가져야 합니다.

참고 항목

여러 타입들의 공통 참조 타입을 결정합니다
(클래스 템플릿)
두 타입이 공통 타입을 공유함을 명시합니다
(컨셉트)
여러 타입들의 공통 타입을 결정합니다
(클래스 템플릿)