we know that decltype() could be used to get type of variables, just like following:
int a = 0;
using a_t = decltype(a);
a_t b = -1; // it worked, and type of b is int
but it didn't work for this:
auto f = [](int a) -> int { return a + 1;}; // the type of callable should be int(int)?
std::function<decltype(f)> F(f); // error
std::function<int(int)> G(f); // worked
why? and is there any method to get function type(in the <>) of lambda expression?