#include <iostream>
#include <functional>
using namespace std;

struct Block {
	function<int()> callback;
};

void set_callback(Block &block) {
	int x = 1;
	int y = 2;
	
	block.callback = [x=std::move(x), y=std::move(y)] {
		return x + y;
	};
}

void run_callback(const Block &block) {
	cout << "result: " << block.callback() << endl;
}

int main() {
	
	Block block;
	
	set_callback(block);
	
	run_callback(block);
	
	return 0;
}