std:: convertible_to
|
헤더 파일에 정의됨
<concepts>
|
||
|
template
<
class
From,
class
To
>
concept convertible_to
=
|
(C++20 이후) | |
convertible_to
<
From, To
>
개념은
std::
declval
<
From
>
(
)
와 동일한 타입과 값 범주를 가진 표현식이
To
타입으로 암시적 및 명시적 변환이 가능해야 함을 지정하며, 두 변환 형태가 동일한 결과를 생성해야 합니다.
목차 |
의미론적 요구사항
convertible_to
<
From, To
>
는 다음 조건이 충족될 때만 모델됩니다:
fun
함수가 타입
std::
add_rvalue_reference_t
<
From
>
(
)
로 주어지고, 표현식
fun
(
)
가
등식 보존(equality-preserving)
인 경우입니다.
-
다음 중 하나에 해당하는 경우:
-
To가 객체 타입도 아니고 객체에 대한 참조 타입도 아니거나, - static_cast < To > ( fun ( ) ) 가 [ ] ( ) - > To { return fun ( ) ; } ( ) 와 동일하고,
-
-
다음 중 하나가 참입니다:
- std:: add_rvalue_reference_t < From > 객체 참조 타입이 아니거나,
- std:: add_rvalue_reference_t < From > 비-const 한정 타입에 대한 rvalue 참조이며, 위의 두 표현식 중 하나를 실행한 후 fun ( ) 가 참조하는 객체의 결과 상태는 유효하지만 지정되지 않거나,
- fun ( ) 가 참조하는 객체는 위의 두 표현식에 의해 수정되지 않습니다.
동등성 보존
표준 라이브러리 개념의 requires expressions 에 선언된 표현식들은 equality-preserving 해야 합니다(다르게 명시된 경우를 제외하고).
참조문헌
- C++23 표준 (ISO/IEC 14882:2024):
-
-
18.4.4 Concept
convertible_to[concept.convertible]
-
18.4.4 Concept
- C++20 표준(ISO/IEC 14882:2020):
-
-
18.4.4 Concept
convertible_to[concept.convertible]
-
18.4.4 Concept
참고 항목
|
(C++11)
(C++20)
|
한 타입이 다른 타입으로 변환 가능한지 검사합니다
(클래스 템플릿) |