#include <iostream>
#include <typeinfo>
using namespace std;

struct mystruct{};

template<typename T>
struct map;

//partial specification
#define MAPPING(Key, Val)       \
template<>                      \
struct map<Key>                 \
{                               \
typedef Val mapping_type;	\
};

MAPPING(mystruct, int)

template<typename T>
void func(T t)
{
	typename map<T>::mapping_type i = 999;
	cout<<i<<endl;
}


int main() {
	// your code goes here
	mystruct ms;
	func(ms);

	return 0;
}