Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

reference_wrapper in C++

  • Last Updated : 03 Dec, 2019

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.


Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for foundation plus STL.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.
template <class T> class reference_wrapper;
template parameter(T): type of the referred element and
                        this can be  either function or object.


// 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;


My Personal Notes arrow_drop_up
Recommended Articles
Page :