#include <iostream>
#include <functional>

typedef int (*FPtr)(int);

int add(std::function<int (int)> f, int x, int y) {
  return f(x) + f(y);
}

int func3(int a, int x) {
  return a*x;
}

int main()
{
  std::cout << add(std::bind(func3, std::placeholders::_1, 4), 2, 3) << std::endl;
} 
