#define PRINT(x) ; Print(#x, ":", string(x))
#ifdef __cplusplus
#include<iostream>
#endif
template<typename T>
class A{
};
template<typename T>
class B : public A<T>{
};
template<typename T>
class C : public B<T>{
};
template<typename T>
void func(B<T> &it1){
printf("C++:1");
}
template<typename T>
void func(A<T> &it1){
printf("C++:2");
}
void OnStart(){
C<int> c;
func(c);
}
int main(){
OnStart();
return 0;
}