std:: common_with
|
헤더 파일에 정의됨
<concepts>
|
||
|
template
<
class
T,
class
U
>
concept common_with
=
|
(C++20 이후) | |
common_with<T, U>
개념은 두 타입
T
와
U
가
공통 타입
(
std::common_type_t
에 의해 계산됨)을 공유하며, 둘 다 해당 타입으로 변환될 수 있음을 명시합니다.
목차 |
의미론적 요구사항
T와 U는 다음 조건을 만족할 때만
std
::
common_with
<
T, U
>
개념을 모델합니다:
등식 보존
표현식
t1
,
t2
,
u1
및
u2
가 주어졌을 때,
decltype
(
(
t1
)
)
와
decltype
(
(
t2
)
)
가 모두
T
이고,
decltype
(
(
u1
)
)
와
decltype
(
(
u2
)
)
가 모두
U
인 경우,
-
std::
common_type_t
<
T, U
>
(
t1
)
는
std::
common_type_t
<
T, U
>
(
t2
)
와 같으며, 이는
t1이t2와 같을 때 그리고 그 때에만 성립한다; 그리고 -
std::
common_type_t
<
T, U
>
(
u1
)
는
std::
common_type_t
<
T, U
>
(
u2
)
와 같으며, 이는
u1이u2와 같을 때 그리고 그 때에만 성립한다.
다시 말해, 공통 타입으로의 변환은 동등성 보존 을 해야 합니다.
동등성 보존
표준 라이브러리 개념의 requires expressions 에 선언된 표현식들은 equality-preserving 해야 합니다(다르게 명시된 경우를 제외하고).
참조문헌
- C++23 표준 (ISO/IEC 14882:2024):
-
-
18.4.6 Concept
common_with[concept.common]
-
18.4.6 Concept
- C++20 표준(ISO/IEC 14882:2020):
-
-
18.4.6 Concept
common_with[concept.common]
-
18.4.6 Concept
참고 항목
|
(C++11)
|
여러 타입들의 공통 타입을 결정합니다
(클래스 템플릿) |
|
여러 타입들의 공통 참조 타입을 결정합니다
(클래스 템플릿) |
|
|
(C++20)
|
두 타입이 공통 참조 타입을 가짐을 명시합니다
(컨셉) |