#include <iostream>
#include <functional>

using func_t1 = std::function<double( double )>;
using func_t2 = std::function<double( double, double )>;

double f2( double x, double y )
{
    std::cout << "f2(" << x << "," << y << ")" << std::endl;
    return x + y;
}

int main()
{
	using namespace std::placeholders;
    double fixed = 123;
    func_t1 fa = [fixed]( double x ) { return f2( x, fixed ); };
    func_t1 fb = std::bind( f2, _1, fixed );
    fa( 1 );
    fb( 2 );
}