clarification: behavior of type_info::before
Code:
inline
bool
is( type_info const & derived, type_info const & base )
{
return base == derived || base.before( derived );
}
struct base { virtual ~base( void ){ } };
struct first : base { };
struct second : base { };
int
main( void )
{
assert( ( is( typeid( first ), typeid( base ) ) ) );
assert( ( is( typeid( second ), typeid( base ) ) ) );
assert( !( is( typeid( first ), typeid( second ) ) ) );
assert( !( is( typeid( second ), typeid( first ) ) ) ); // assersion fails!
}
am I missing something here?