System.Variants.TCustomVariantType.RightPromotion

提供:RAD Studio API Documentation

Delphi

function RightPromotion(const V: TVarData; const Operator: TVarOp;
out RequiredVarType: TVarType): Boolean; virtual;

C++

virtual bool __fastcall RightPromotion(const TVarData &V, const int Operator, /* out */ System::Word &RequiredVarType);

プロパティ

種類 可視性 ソース ユニット 親
function protected
System.Variants.pas
System.Variants.hpp
System.Variants TCustomVariantType

説明

バイナリ演算の右側の引数を別の型に強制的にキャストするかどうかを示します。

RightPromotion メソッドをオーバーライドすると,バイナリ演算の右側の引数を暗黙にほかの型にキャストしてから演算を実行できます。RightPromotion が呼び出されるのは,バイナリ演算または比較演算で,右側のバリアントがこのバリアント型の場合です。

メモ:  2 つのカスタムバリアントが必要な演算では,左側の引数の RightPromotion メソッドが最初に呼び出されます。左側の引数の RightPromotion メソッドが false を返した場合,右側の引数の LeftPromotion メソッドが呼び出されます。

V は,演算の左側の引数に対する TVarData レコードです。

Operator は,演算の種類を示します。次の表に,演算子の種類を示します。



値 オペレーション

opAdd

加算

opSubtract

減算

opMultiply

乗算

opDivide

浮動小数点の除算

opIntDivide

整数除算

opModulus

剰余

opShiftRight

右へ移動

opShiftRight

右へ移動

opAnd

ビット論理積

opOr

ビット論理和

opXor

ビット排他的論理和

opCompare

任意の比較処理



RequiredVarType は,演算を実行する前に右側の引数をキャストするバリアント型コードを返します。右側の引数を変更せずに演算が実行される場合,RequiredVarType は,V の VType 項目を返します。

右側の引数が RequiredVarType にキャストできることを前提に,TCustomVariantType の下位クラスが(BinaryOp,CompareOp,または Compare メソッドを使って)演算を実行できる場合,RightPromotion は true を返します。TCustomVariantType の下位クラスが演算を実行できない場合は,false が返されます。

TCustomVariantType での RightPromotion は,RequiredVarType として VarType プロパティを返し,true を返します。

関連項目