#include <iostream>
using namespace std;

template <class C,typename T, T C::*v>
struct getPointerType {
   typedef T type;
};

class Test {
	int value;
};

int main() {
	int Test::*member=nullptr;
	cout << typeid(getPointerType<Test, int, decltype(member)>::type) << std::endl;
	return 0;
}