#include <iostream>

template<typename T>
unsigned long f(void *) { return 0; }

struct A { char c; };
struct B { char c[100]; };

typedef unsigned long ftype(void*);

int main() {
	std::cout << (ftype*)f<A> << std::endl;
	std::cout << (ftype*)f<B> << std::endl;
	return 0;
}