Listing 5

#include <functional>
#include <iostream>
#include <math.h>
using std::cout;
using std::tr1::function;

int main()
  {  // demonstrate class template function
  function<float(float)> wrap;
  wrap = cosl;  // long cosl(long)
  cout << "using cosl, wrap(1.0) is " << wrap(1.0) << '\n';
  wrap = sinf;  // float sinf(float)
  cout << "using sinf, wrap(1.0) is " << wrap(1.0) << '\n';
  return 0;
  }