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