std::experimental::ranges:: CommonReference
|
헤더 파일에 정의됨
<experimental/ranges/concepts>
|
||
|
template
<
class
T,
class
U
>
concept
bool
CommonReference
=
|
(ranges TS) | |
CommonReference<T, U>
개념은 두 타입
T
와
U
가
공통 참조 타입
(
ranges::common_reference_t
에 의해 계산됨)을 공유하며, 둘 다 이 타입으로 변환될 수 있음을 명시합니다.
CommonReference<T, U>
는 주어진 표현식
t
와
u
가
decltype
(
(
t
)
)
가
T
이고
decltype
(
(
u
)
)
가
U
인 경우에만 만족됩니다.
-
ranges::
common_reference_t
<
T, U
>
(
t
)
가
ranges::
common_reference_t
<
T, U
>
(
t
)
와 동일한 경우는 오직
t가 등식 보존 표현식인 경우에만 해당합니다; 그리고 -
ranges::
common_reference_t
<
T, U
>
(
u
)
가
ranges::
common_reference_t
<
T, U
>
(
u
)
와 동일한 경우는 오직
u가 등식 보존 표현식인 경우에만 해당합니다.
다시 말해, 공통 참조 타입으로의 변환은 원래 표현식의 동등성 보존 특성을 변경해서는 안 됩니다.
동등성 보존
표현식은 동일한 입력이 주어졌을 때 동일한 출력을 결과로 내놓는다면 등식 보존적(equality preserving) 입니다.
- 표현식의 입력은 피연산자들로 구성됩니다.
- 표현식의 출력은 결과와 표현식에 의해 수정된 모든 피연산자(있는 경우)로 구성됩니다.
동등성 보존이 요구되는 모든 표현식은 추가로 안정적(stable) 이어야 합니다: 동일한 입력 객체로 이러한 표현식을 두 번 평가할 때, 해당 입력 객체에 명시적인 수정이 개입되지 않는 한 동일한 출력을 가져야 합니다.
참고 항목
|
여러 타입들의 공통 참조 타입을 결정합니다
(클래스 템플릿) |
|
|
두 타입이 공통 타입을 공유함을 명시합니다
(컨셉트) |
|
|
여러 타입들의 공통 타입을 결정합니다
(클래스 템플릿) |