#include <iostream>

struct hoge{
	int A;
	char B;
	int C;
	double D;	
};


template<class T>
T* AddressOf(){
	return  reinterpret_cast<T*>((std::size_t)0);
}

int main(){

	std::cout<<"hoge::A "<<&(AddressOf<hoge>()->A)<<std::endl;
	std::cout<<"hoge::D "<<&(AddressOf<hoge>()->D)<<std::endl;

	//AddressOf<hoge>()->A = 0xdeedbeef;値を入れると死亡するのでやめましょう。

	return 0;
}