You could use overloading:
int foo(int i)
{
return foo(i, [](int x) -> int { return x / 2; });
}
int foo(int i, std::function<int(int)> f)
{
return f(i);
}
You could use overloading:
int foo(int i)
{
return foo(i, [](int x) -> int { return x / 2; });
}
int foo(int i, std::function<int(int)> f)
{
return f(i);
}