#include <functional>
#include <iostream>

int main() {
    std::function<int(int)> operation{};
    if (!operation) {
        std::cout << "empty\n";
    }
    int factor{4};
    operation = [factor](int input) {
        return input * factor;
    };
    auto copied = operation;
    factor = 0;
    operation = [factor](int input) {
        return input * factor;
    };
    if (operation) {
        std::cout << operation(6) << '\n';
    }
    if (copied) {
        std::cout << copied(6) << '\n';
    }
    return 0;
}
