__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()
。
解説
inptr
を TargetType
型のオブジェクトに変換します。 inptr
の型は、TargetType
がポインターの場合はポインター、TargetType
が参照の場合は左辺値である必要があります。 TargetType
は、以前に定義されたクラス型への参照かポインター、または void 型へのポインターである必要があります。
要件
ルーチンによって返される値 | 必須ヘッダー |
---|---|
__RTDynamicCast |
<rttidata.h> |