#include <iostream>
#include <vector>
#include <boost/function.hpp>

template <class T>
T g(boost::function<T(T)> f, T a, T b)
{
    std::cout << f(a) << " " << f(b) << '\n';
}

double f(double x) { return 1+x; }

int main()
{
    g<double>(f, 1.1, 2.2);
}
