std::ref, std::cref
Aus 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. |
definiert in Header <functional>
|
||
template< class T > std::reference_wrapper<T> ref(T& t); |
(1) | (seit C++11) |
template< class T > std::reference_wrapper<T> ref( std::reference_wrapper<T> t ); |
(2) | (seit C++11) |
template< class T > std::reference_wrapper<const T> cref( const T& t ); |
(3) | (seit C++11) |
template< class T > std::reference_wrapper<const T> cref( std::reference_wrapper<T> t ) |
(4) | (seit C++11) |
Funktionsschablonen
ref
und cref
sind Hilfsfunktionen, die ein Objekt vom Typ std::reference_wrapper erzeugen, mit Template-Argument Abzug der Template-Argument des Ergebnisses zu bestimmen .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.
Inhaltsverzeichnis |
[Bearbeiten] Parameter
t | - | lvalue Verweis auf Objekt, umhüllt oder eine Instanz std::reference_wrapper muss
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. |
[Bearbeiten] Rückgabewert
1) std::reference_wrapper<T>(t)
2) ref(t.get())
3) std::reference_wrapper<const T>(t)
4) cref(t.get())
[Bearbeiten] Ausnahmen
[Bearbeiten] Beispiel
#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
[Bearbeiten] Siehe auch
(C++11) |
CopyConstructible und CopyAssignable Referenz-Wrapper 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. (Klassen-Template) |