Implementazione in fase di esecuzione dell'operatore dynamic_cast.Runtime implementation of the dynamic_cast operator.


PVOID __RTDynamicCast (  
   PVOID inptr,   
   LONG VfDelta,  
   PVOID SrcType,  
   PVOID TargetType,   
   BOOL isReference  
   ) throw(...)  


Puntatore a un oggetto polimorfico.Pointer to a polymorphic object.

Offset del puntatore a funzione virtuale nell'oggetto.Offset of virtual function pointer in object.

Tipo statico dell'oggetto puntato dal parametro inptr.Static type of object pointed to by the inptr parameter.

Risultato di cast desiderato.Intended result of cast.

true se l'input è un riferimento; false se l'input è un puntatore.true if input is a reference; false if input is a pointer.

Valore restituitoReturn Value

Puntatore al sotto-oggetto appropriato, in caso di esito positivo; in caso contrario, NULL.Pointer to the appropriate sub-object, if successful; otherwise, NULL.


bad_cast() se l'input a dynamic_cast<> è un riferimento e il cast ha esito negativo.bad_cast() if the input to dynamic_cast<> is a reference and the cast fails.


Converte inptr in un oggetto del tipo TargetType.Converts inptr to an object of type TargetType. Il tipo di inptr deve essere un puntatore se TargetType è un puntatore o un l-value se TargetType è un riferimento.The type of inptr must be a pointer if TargetType is a pointer, or an l-value if TargetType is a reference. TargetType deve essere un puntatore o un riferimento a un tipo di classe definito in precedenza oppure un puntatore a void.TargetType must be a pointer or a reference to a previously defined class type, or a pointer to void.


RoutineRoutine Intestazione obbligatoriaRequired header
__RTDynamicCast__RTDynamicCast rtti.hrtti.h