std::ref, std::cref
De 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) | (ya que C + +11) |
| template< class T > std::reference_wrapper<T> ref( std::reference_wrapper<T> t ); |
(2) | (ya que C + +11) |
| template< class T > std::reference_wrapper<const T> cref( const T& t ); |
(3) | (ya que C + +11) |
| template< class T > std::reference_wrapper<const T> cref( std::reference_wrapper<T> t ) |
(4) | (ya que C + +11) |
Plantillas de función y
ref cref son funciones auxiliares que generan un objeto de tipo std::reference_wrapper, con deducción argumento de plantilla para determinar el argumento de plantilla del resultado .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.
Contenido |
[editar] Parámetros
| t | - | lvalue referencia al objeto que debe ser envuelto o una instancia de 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. |
[editar] Valor de retorno
1) std::reference_wrapper<T>(t)
2) ref(t.get())
3) std::reference_wrapper<const T>(t)
4) cref(t.get())
[editar] Excepciones
[editar] Ejemplo
#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
[editar] Ver también
| (C++11) |
CopyConstructible y CopyAssignable envoltura de referencia 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. (clase de plantilla) |