typedef void (*func_type)(); void SomeFunction(func_type & function) { function(); }
template<typename T> void SomeFunction(T & function) { function(); }