#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);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Ym9vc3QvZnVuY3Rpb24uaHBwPgoKdGVtcGxhdGUgPGNsYXNzIFQ+ClQgZyhib29zdDo6ZnVuY3Rpb248VChUKT4gZiwgVCBhLCBUIGIpCnsKICAgIHN0ZDo6Y291dCA8PCBmKGEpIDw8ICIgIiA8PCBmKGIpIDw8ICdcbic7Cn0KCmRvdWJsZSBmKGRvdWJsZSB4KSB7IHJldHVybiAxK3g7IH0KCmludCBtYWluKCkKewogICAgZzxkb3VibGU+KGYsIDEuMSwgMi4yKTsKfQo=