#include <functional>
#include <iostream>

int foo(double d) { std::cout << d << '\n'; return 0; }

char bar(double d) { std::cout << 2*d << '\n'; return '0'; }

int main() {
	std::function<void(double)> cb;
	
	cb = foo; cb(1.0);
	
	cb = bar; cb(2.0);
	
	return 0;
}