fork download
  1. #include <iostream>
  2. #include <functional>
  3.  
  4. std::function< double( double, double ) > mult =
  5. []( double x, double y){return x*y;};
  6.  
  7. std::function< std::function< double(double) >(std::function< double(double, double) >, double) > funcYgivenX
  8. = [](std::function< double(double, double) > func2d, double inX)
  9. {
  10. return [func2d, inX]( double inY ){ std::cout << "x: " << inX << ", y: " << inY << std::endl; return func2d(inX, inY); };
  11. };
  12.  
  13. int main()
  14. {
  15. auto x = funcYgivenX(mult, 10);
  16. auto y = x(20);
  17. std::cout << "y: " << y << std::endl;
  18.  
  19. return 0;
  20. }
  21.  
  22.  
Success #stdin #stdout 0s 3276KB
stdin
Standard input is empty
stdout
x: 10, y: 20
y: 200