#include <functional>
#include <memory>
#include <utility>

int main() {
    auto owner = std::make_unique<int>(4);
    auto callback = [state = std::move(owner)](int input) {
        return input * (*state);
    };
    std::function<int(int)> wrapped{std::move(callback)};
    if (wrapped) {
        return wrapped(0);
    }
    return 0;
}
