std:: basic_common_reference <std::reference_wrapper>
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Old binders and adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Non-member functions | ||||
|
(C++26)
(C++26)
|
||||
| Deduction guides (C++17) | ||||
| Helper classes | ||||
|
basic_common_reference
<std::reference_wrapper>
(C++23)
|
|
헤더 파일에 정의됨
<functional>
|
||
|
template
<
class
R,
class
T,
template
<
class
>
RQual,
template
<
class
>
TQual
>
|
(1) | (C++23부터) |
|
template
<
class
T,
class
R,
template
<
class
>
TQual,
template
<
class
>
RQual
>
|
(2) | (C++23부터) |
|
도우미 개념
|
||
|
template
<
class
R,
class
T,
class
RQ,
class
TQ
>
concept
/*ref-wrap-common-reference-exists-with*/
=
|
(3) | ( 설명 전용* ) |
reference_wrapper
의 공통 참조 타입(
R
로 표기)과 타입
T
의 공통 참조 타입(각각 cv 및 참조 한정자가 적용된
RQ
와
TQ
로 표기)은, lvalue 참조가 적용된
R
의 기반 타입과
TQ
의 공통 참조 타입과 동등합니다.
공통 참조 타입은
R
가 유일한
reference_wrapper
이고,
R
의 기본 타입에 lvalue 참조가 적용되었으며,
TQ
와
RQ
가 변환 가능해야 하는 공통 참조 타입을 가질 때만 정의됩니다.
설명 전용 상수 /*is-ref-wrapper*/ < R > 는 true 인 경우에만 R 이 std::reference_wrapper 의 특수화일 때 참입니다.
목차 |
멤버 타입
| 멤버 타입 | 정의 |
type
|
std:: common_reference_t < typename R :: type & , TQual < T >> ( 1,2 ) |
참고 사항
| 기능 테스트 매크로 | 값 | 표준 | 기능 |
|---|---|---|---|
__cpp_lib_common_reference_wrapper
|
202302L
|
(C++23) | std::common_reference_t 의 std::reference_wrapper 를 참조 타입으로 만들기 |
예제
#include <concepts> #include <functional> static_assert(std::same_as<std::common_reference_t<int&, std::reference_wrapper<int>>, int&>); static_assert(std::same_as<std::common_reference_t<std::reference_wrapper<int>&, int&>, int&>); static_assert(std::same_as<std::common_reference_t<int&, const std::reference_wrapper<int>&>, int&>); int main() {}
참고 항목
|
여러 타입들의 공통 참조 타입을 결정합니다
(클래스 템플릿) |