Consider a class hierarchy with single inheritance, as follows:
struct A {
virtual ~A() = default;
}
struct B : public A {
virtual ~B() = default;
};
and
A* p = new B();
then how can I get the type_info object of the base class of B?
Or, in other words, how do I enumerate the chain of base classes
starting with a pointer to an object? Of course I mean a GCC-internals
-aware way. The following short document:
http://www.codesourcery.com/public/cxx-abi/abi.html#rtti
says that
"For similar reasons, we only keep direct base information about
a class type. Indirect base information can be found by chasing
type_info pointers (and care should be taken to determine
ambiguous base class types)."
Namely, where do you keep the "direct base information about
a class type" and what data structures from libstdc++ should I
become familiar with? And the last question: is the format
expected to stable in terms of GCC development?
Best regards
Piotr Wyderski