__RTDynamicCast

dynamic_cast 演算子のランタイム実装。

構文

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

パラメーター

inptr
ポリモーフィック型オブジェクトへのポインター。

VfDelta
オブジェクト内の仮想関数ポインターのオフセット。

SrcType
inptr パラメーターでポイントするオブジェクトのスタティック型。

TargetType
キャストの意図した結果。

isReference
入力が参照の場合は true、ポインターの場合は false

戻り値

成功した場合は適切なサブオブジェクトへのポインター、それ以外の場合は NULL

例外

dynamic_cast<> への入力が参照でありキャストに失敗した場合は bad_cast()

解説

inptrTargetType 型のオブジェクトに変換します。 inptr の型は、TargetType がポインターの場合はポインター、TargetType が参照の場合は左辺値である必要があります。 TargetType は、以前に定義されたクラス型への参照かポインター、または void 型へのポインターである必要があります。

要件

ルーチンによって返される値 必須ヘッダー
__RTDynamicCast <rttidata.h>