System.Variants.TCustomVariantType.LeftPromotion
Delphi
function LeftPromotion(const V: TVarData; const Operator: TVarOp;
out RequiredVarType: TVarType): Boolean; virtual;
C++
virtual bool __fastcall LeftPromotion(const TVarData &V, const System::TVarOp Operator, /* out */ System::TVarType &RequiredVarType);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | protected | System.Variants.pas System.Variants.hpp |
System.Variants | TCustomVariantType |
説明
二項演算の左側の引数を別の型に強制的にキャストするかどうかを示します。
LeftPromotion メソッドをオーバーライドすると,二項演算の左側の引数を暗黙にほかの型にキャストしてから演算を実行できます。LeftPromotion が呼び出されるのは,二項演算または比較演算の右側の Variant がこの Variant 型であり,左側の引数が以下の場合です。
左側の引数が組み込み Variant 型
左側の引数がカスタム Variant 型で,右側の引数のこの Variant 型と一緒に使って問題がない
V は,演算の左側の引数に対する TVarData レコードです。
Operator は,演算の種類を示します。次の表に,演算子の種類を示します。
値 | オペレーション |
---|---|
opAdd |
加算 |
opSubtract |
減算 |
opMultiply |
乗算 |
opDivide |
浮動小数点の除算 |
opIntDivide |
整数除算 |
opModulus |
剰余 |
opShiftLeft |
左へ移動 |
opShiftRight |
右へ移動 |
opAnd |
ビット論理積 |
opOr |
ビット論理和 |
opXor |
ビット排他的論理和 |
opCompare |
任意の比較処理 |
RequiredVarType は,演算を実行する前に左側の引数をキャストする Variant 型コードを返します。左側の引数を変更せずに演算が実行される場合,RequiredVarType は,V の VType 項目を返します。
左側の引数が RequiredVarType にキャストできることを前提に,TCustomVariantType の下位クラスが(BinaryOp,CompareOp,または Compare メソッドを使って)演算を実行できる場合,LeftPromotion は true を返します。TCustomVariantType の下位クラスが演算を実行できない場合は,false が返されます。
TCustomVariantType での LeftPromotion は,RequiredVarType として VarType プロパティを返し,true を返します。