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> |