我觉得 api() 传 && 背离了函数指针这个语义啊。
如果你不传 &&,按说会报 p 不可复制的错误。
[p = std::move()]
这里,我觉得 [] 里面只能出现传值和 shared_ptr<>,其它的都不保险。这种回调通常是异步的,被捕获的变量跳出了当前生命周期。& 尤其不靠谱。
如果 std::function<> 被传给另外一个线程,经常也不保险。因为 [] 里面捕获的值可能会在另外一个线程里面析构。构造函数和析构函数不在同一个线程,危!
c++ lambda 坑略多。
【 在 milksea (肥了,又肥了 >>>_<<<) 的大作中提到: 】
: 这个不本质
--
FROM 60.188.58.*