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

class X {
public:
    template<typename T> bool InstanceOf() {
        cout << typeid(*this).name() << " " << typeid(T).name() << endl;
        return typeid(T) == typeid(*this);
    }
};

class A: public X {};

int main() {
	A a;
    cout << a.InstanceOf<X>();
	return 0;
}