Namespaces
Variants

std::reference_wrapper<T>::reference_wrapper

cppreference.net에서
 
 
유틸리티 라이브러리
일반 유틸리티
관계 연산자 (C++20에서 폐지됨)
정수 비교 함수
(C++20)(C++20)(C++20)    
(C++20)
교환 및 타입 연산
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
공통 어휘 타입
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
함수 객체
함수 호출
(C++17)(C++23)
항등 함수 객체
(C++20)
투명 연산자 래퍼
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

예전 바인더와 어댑터
(C++17까지*)
(C++17까지*)
(C++17까지*)
(C++17까지*)  
(C++17까지*)
(C++17까지*)(C++17까지*)(C++17까지*)(C++17까지*)
(C++20까지*)
(C++20까지*)
(C++17까지*)(C++17까지*)
(C++17까지*)(C++17까지*)

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

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

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&&) 생성자가 일부 경우에
오버로드 해결을 방해함
생성자 템플릿으로 대체됨