Listing 3
#include <functional> #include <iostream> using std::cout; using std::tr1::reference_wrapper; using std::tr1::ref; using std::tr1::cref; int main() { // demonstrate difference between assigning to // reference and assigning to reference_wrapper int i0 = 1; int j0 = 1; int i1 = 2; int j1 = 2; int& ir0(i0); int& ir1(i1); ir0 = ir1; cout << "assignment to reference, " << "i0 is " << i0 << ", " << "i1 is " << i1 << '\n'; reference_wrapper<int> jr0 = ref(j0); reference_wrapper<int> jr1 = ref(j1); jr0 = jr1; cout << "assignment to reference_wrapper, " << "j0 is " << j0 << ", " << "j1 is " << j1 << '\n'; return 0; }