#include <functional>
#include <iostream>

using namespace std;

void Callback(int &value)
{
	value = 42;
}

template <typename Method, typename ...Params>
void CallMethod(Method method, Params&& ...params)
{
	method(std::forward<Params>(params)...);
}

int main()
{
	int value = 0;
	CallMethod(&Callback, value);
	
	cout << "Value: " << value << endl;
	
	return 0;
}