lambda里会出现这种情况:
using Callback = std::function;
vector foo_list;
Callback foo_callback = [&foo_list](Foo foo) {
foo_list.emplace_back(std::move(foo));
}
这是因为下面的函数被认为是同一个函数?
void f(const Foo& foo);
void f(Foo foo);
总觉得上面的用法怪怪的。是不是直接声明为下面这个较好?由caller决定传foo时要
不要move。
using Callback = std::function;