Namespaces
Variants

std::reference_wrapper<T>:: reference_wrapper

From cppreference.net
Utilities library
Function objects
Function invocation
(C++17) (C++23)
Identity function object
(C++20)
Old binders and adaptors
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until C++20* )
( until C++17* ) ( until C++17* )
( until C++17* ) ( until C++17* )

( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until C++20* )
template < class U >
reference_wrapper ( U && x ) noexcept ( /*see below*/ ) ;
(1) (C++11 이후)
(C++20부터 constexpr)
reference_wrapper ( const reference_wrapper & other ) noexcept ;
(2) (C++11 이후)
(C++20부터 constexpr)

새로운 참조 래퍼를 생성합니다.

1) x T& 로 변환합니다. 변환은 T & t = std:: forward < U > ( x ) ; 와 같이 수행된 후, t 에 대한 참조를 저장합니다. 이 오버로드는 다음 조건에서만 오버로드 해결에 참여합니다: typename std:: decay < U > :: type reference_wrapper 와 동일한 타입이 아니고, 다음 표현식이 FUN ( std:: declval < U > ( ) ) 이 올바른 형식이며, 여기서 FUN 은 다음 가상 함수 집합을 나타냅니다:
void FUN(T&) noexcept;
void FUN(T&&) = delete;
2) 복사 생성자. other. get ( ) 에 대한 참조를 저장합니다.

목차

매개변수

x - 감쌀 객체
other - 다른 reference wrapper

예외

1)
noexcept 명세:
noexcept ( noexcept ( FUN ( std:: declval < U > ( ) ) ) )
여기서 FUN 은 위 설명에서 언급된 가상 함수들의 집합입니다.

예제

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 2993 C++11 삭제된 reference_wrapper(T&&) 생성자가 일부 경우에
오버로드 해결을 방해함
생성자 템플릿으로 대체됨