api([p=std::move(ptr)](){
p->bar();
});
p的类型是auto p = std::move(ptr)的p的类型.
auto的推导规则会忽略&&, p的类型就是ptr的类型.
所以这个lambda有这个成员变量: const std::unique_ptr p;
【 在 allegro 的大作中提到: 】
: 而加了移动的捕获变量的 lambda 就不满足了。
: 我觉得这句话是不对的.
: 这里lambda变得不可copyconstructable的原因是你的lambda有一个std::unique_ptr的成员变量.
: ...................
--
FROM 73.63.209.*