2 // Testcase for tricky dynamic cast situations.
8 struct B : public A { };
9 struct C : public B { };
10 struct D : public B { };
11 struct E : public C, public D { };
13 struct B2 : public virtual A { };
14 struct C2 : public B2 { };
15 struct D2 : public B2 { };
16 struct E2 : public C2, public D2 { };
25 // ap points to base subobject of unique B; succeeds
26 if (dynamic_cast <B*> (ap) == 0)
30 // ap points to base subobject shared by two Bs; fails
31 if (dynamic_cast <B2*> (ap) != 0)