#include <iostream>
#include<map>
using namespace std;
int mytest(int a,string b)
{
cout<<"a: "<<a<<",b:"<<b<<endl;
return 0;
}
typedef int(*func)(int,string);
using func1=int(*)(int,string);
template<class T>
struct MyMap
{
typedef map<int,T> mapType;
};
template<class T>
using MMap = map<int,T>;
void test()
{
typedef int t1;
t1 a=10;
t1 b=5;
using t2=int;
t2 a1=3;
func f=mytest;
func1 f1=mytest;
f(10,"hello");
f1(10,"hello");
MyMap<int>::mapType mm1;
MyMap<double>::mapType mm2;
MyMap<string>::mapType mm3;
MMap<int> mm4;
MMap<double> mm5;
MMap<string> mm6;
}
int main() {
test();
return 0;
}