std::ref, std::cref
提供:cppreference.com
< cpp | utility | functional
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| Defined in header <functional>
|
||
| template< class T > std::reference_wrapper<T> ref(T& t); |
(1) | (C + + 11以来) |
| template< class T > std::reference_wrapper<T> ref( std::reference_wrapper<T> t ); |
(2) | (C + + 11以来) |
| template< class T > std::reference_wrapper<const T> cref( const T& t ); |
(3) | (C + + 11以来) |
| template< class T > std::reference_wrapper<const T> cref( std::reference_wrapper<T> t ) |
(4) | (C + + 11以来) |
関数テンプレート
refとcref結果のテンプレート引数を決定するために、テンプレート引数推論を用いて、型std::reference_wrapperのオブジェクトを生成するヘルパー関数です.Original:
Function templates
ref and cref are helper functions that generate an object of type std::reference_wrapper, using template argument deduction to determine the template argument of the result.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
目次 |
[編集] パラメータ
| t | - | ラップされている必要オブジェクトまたはstd::reference_wrapperのインスタンスへの左辺値参照
Original: lvalue reference to object that needs to be wrapped or an instance of std::reference_wrapper The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[編集] 値を返します
1) std::reference_wrapper<T>(t)
2) ref(t.get())
3) std::reference_wrapper<const T>(t)
4) cref(t.get())
[編集] 型の例外
[編集] 例
#include <functional> #include <iostream> void f(int& n1, int& n2, const int& n3) { std::cout << "In function: " << n1 << ' ' << n2 << ' ' << n3 << '\n'; ++n1; // increments the copy of n1 stored in the function object ++n2; // increments the main()'s n2 // ++n3; // compile error } int main() { int n1 = 1, n2 = 2, n3 = 3; std::function<void()> bound_f = std::bind(f, n1, std::ref(n2), std::cref(n3)); n1 = 10; n2 = 11; n3 = 12; std::cout << "Before function: " << n1 << ' ' << n2 << ' ' << n3 << '\n'; bound_f(); std::cout << "After function: " << n1 << ' ' << n2 << ' ' << n3 << '\n'; }
Output:
Before function: 10 11 12 In function: 1 11 12 After function: 10 12 12
[編集] も参照してください
| (C++11) |
CopyConstructibleとCopyAssignable参照ラッパー Original: CopyConstructible and CopyAssignable reference wrapper The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (クラステンプレート) |