Listing 8

#include <functional>
#include <iostream>
using std::cout;
using std::tr1::bind; using namespace std::tr1::placeholders;

template <class Binder>
void show(Binder binder)
  { // apply bind object
  int i = 1;
  double d = 2.1;
  binder(i, d);
  }
void display(int val)
  { // bound function
  cout << val << '\n';
  }
int main()
  { // create and apply bind objects
  show(bind(display, 0.2));
  show(bind(display, _1));
  show(bind(display, _2));
  return 0;
  }