#include <functional>
#include <iostream>
#include <math.h>
using std::cout;
using std::tr1::reference_wrapper;
int main()
{ // demonstrate reference_wrapper as call wrapper
reference_wrapper<float(*const)(float)> wrap(cosf);
cout << "cosf(1.0) is " << cosf(1.0) << '\n';
cout << "wrap(1.0) is " << wrap(1.0) << '\n';
return 0;
}