#include <cstdio>
template<class T> void func(T obj) { T obj2 = obj; obj2(10, 20); }
void test(int a, int b) { std::printf("%d + %d = %d\n", a, b, a + b); }
int main(void) {
//func<void(int, int)>(test); // error
func<void(*)(int, int)>(test);
return 0;
}