, :
template<class T>
int generate_type_id() {
static int value = 0;
return value++;
}
template<class T>
int type_id() {
static int value = generate_type_id<T>();
return value;
}
, , :
type_id<int>();
type_id<Foo>();
type_id< map<string, pair<int, Bar> >();
, , , #include , , . , , , . .