std::reference_wrapper is a class template that wraps a reference in a copy constructible and copy assignable object or reference to function of type T.
Instances of std::reference_wrapper are objects (they can be copied or stored in containers) but they are implicitly convertible to ‘T&’ so that they can be used as arguments with the functions that take the underlying type by reference.
Syntax:
CPP
Output:
template <class T> class reference_wrapper;
template parameter(T): type of the referred element and
this can be either function or object.
Example:
// C++ program to demonstrate the
// use of std::reference_wrapper
#include <iostream>
#include <functional>
using namespace std;
int main ()
{
char a = 'g', b = 'e', c = 'e', d = 'k', e = 's';
// creating an array of character "references":
reference_wrapper<char> ref[] = {a, b, c, d, e};
for (char& s : ref)
cout << s;
return 0;
}
geeks