関数オブジェクトって言わないのかな、良くしらんがw
つまり、

auto f1 = [](int x){ retrurn x;}
auto f2 = [&](int x){ reutrn x; }

この場合、f1の型は通常の関数ポインタ、f2の型はstd::functionになるということ。