Chapter 8. The reference_wrapper Class Template

These are only aliases. Their real names areStuhldreher, Miller, Crowley, and Layden.

— Story on Notre Dame football victory over ArmyGRANTLAND RICE

The class template reference_wrapper creates objects that act like references but can be copied. Ordinary references can’t be copied.

Example 8.1. Copying References (funobjref/refcopy.cpp)

#include <functional>using std::tr1::reference_wrapper;class ref  { // simple class containing referencepublic :  ref(int& i) : member(i) {}private :  int& member;  };class refwrap  { // simple class containing reference_wrapperpublic :  refwrap(int& i) : member(i) {}private :  reference_wrapper<int> member;  };void f()  { // demonstrate copying  int i, j;  ref r0(i); ...

Get The C++ Standard Library Extensions A Tutorial and Reference now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.