aboutsummaryrefslogtreecommitdiff
path: root/challenge-171/deadmarshal/cpp/ch-2.cpp
blob: ff23f617ed42528d2685cb053fab68eee6cc1ab2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include<functional>

std::function<int(int)> f = [](auto n){return n + 2;};
std::function<int(int)> g = [](auto n){return n * 2;};

template<typename F, typename G>
auto compose(F f, G g)
{
  return [f,g](auto n){return f(g(n));};
}

int main()
{
  std::cout << compose(f, g)(5) << '\n';
  return 0;
}