A std::unique_ptr is moved into a lambda via init-capture, then the lambda is assigned to a std::function (C++17). What happens at line X?
#include <memory>
#include <functional>
auto up = std::make_unique<int>(5);
auto lam = [p = std::move(up)]() { return *p; };
std::function<int()> f = std::move(lam); // line X