名前空間
変種

std::reference_wrapper<T>::reference_wrapper

提供: cppreference.com
 
 
ユーティリティライブラリ
汎用ユーティリティ
日付と時間
関数オブジェクト
書式化ライブラリ (C++20)
(C++11)
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)
スワップと型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
一般的な語彙の型
(C++11)
(C++17)
(C++17)
(C++17)
(C++17)

初等文字列変換
(C++17)
(C++17)
 
関数オブジェクト
関数ラッパー
(C++11)
(C++11)
関数の部分適用
(C++20)
(C++11)
関数呼び出し
(C++17)
恒等関数オブジェクト
(C++20)
参照ラッパー
(C++11)(C++11)
演算子ラッパー
否定子
(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未満)
 
 
<tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody>
(1)
template< class U > reference_wrapper( U&& x ) noexcept(/*see below*/) ;
(C++20未満)
template< class U > constexpr reference_wrapper( U&& x ) noexcept(/*see below*/) ;
(C++20以上)
(2)
reference_wrapper( const reference_wrapper& other ) noexcept;
(C++20未満)
constexpr reference_wrapper( const reference_wrapper& other ) noexcept;
(C++20以上)

新しい参照ラッパーを構築します。

1) T& t = std::forward<U>(x); によって行われたかのように xT& に変換し、そして t への参照を格納します。 このオーバーロードは、typename std::decay<U>::typereference_wrapper と同じ型でなく、式 FUN(std::declval<U>()) が well-formed である場合にのみ、オーバーロード解決に参加します。 ただし FUN は以下のような架空の関数の集合を表します。
void FUN(T&) noexcept;
void FUN(T&&) = delete;
2) コピーコンストラクタ。 other.get() への参照を格納します。

引数

x - ラップするオブジェクト
other - 別の参照ラッパー

例外

1)
noexcept 指定:  
noexcept(noexcept(FUN(std::declval<U>())))
ただし FUN は上の説明で説明されている架空の関数の集合です。

Example

欠陥報告

以下の動作変更欠陥報告は以前に発行された C++ 標準に遡って適用されました。

DR 適用先 発行時の動作 正しい動作
LWG 2993 C++11 deleted reference_wrapper(T&&) constructor interferes with overload resolution in some cases replaced with a constructor template
Morty Proxy This is a proxified and sanitized view of the page, visit original site.