TypeInfo for highest type in hierarhy (class) when passed base type

Voitech via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Mar 16 01:03:09 PDT 2016


How to handle this situation:
module typeTest;

class A{

	void a(){}
}

class B:A{
	int b(){
		return 1;
	}

}

class C:B,D{
	string c(){
		return "";
	}
	override int d() {
		return 0;		
	}
}

interface D{
	int d();
}
TypeInfo __typeInfo(T)(T t){
	return typeid(T);
}

unittest{
	A a= new A;
	A b= new B;
	A c = new C;

	TypeInfo aInfo=__typeInfo(a);
	TypeInfo bInfo=__typeInfo(b);
	TypeInfo cInfo=__typeInfo(c);

	assert(aInfo!=bInfo); //fails
	assert(aInfo!=cInfo);//fails
	assert(bInfo!=cInfo);//fails

}


More information about the Digitalmars-d-learn mailing list