We have the general form of dynamic_cast:
dynamic_cast < new-type > ( expression )
I am specifically confused about the bold part of this rule (5a):
5: If expression is a pointer or reference to a polymorphic type Base, and new-type is a pointer or reference to the type Derived a run-time check is performed:
a) The most derived object pointed/identified by expression is examined. If, in that object, expression points/refers to a public base of Derived, and if only one object of Derived type is derived from the subobject pointed/identified by expression, then the result of the cast points/refers to that Derived object. (This is known as a "downcast".)
Can you please give an example where this part would not be satisfied?
The above extract comes from cppreference: cppreferenc
Base
toDerived
is ambiguous. – Peter