英語版
このページの英語版を見る
dmd.dcast
キャスト式の意味解析。
Authors:
License:
出典 dcast.d
- Expression
implicitCastTo
(Expressione
, Scope*sc
, Typet
); - 式を暗黙的に型にキャストしようとする
t
.このルーチンはe
.マッチング・レベルをチェックする、 implicitConvTo を使用する。Parameters:Expression e
キャストされる式 Scope* sc
現在のスコープ Type t
期待される結果の型 Returns:結果としてキャストされる式(変異するe
)、あるいはErrorExp 暗黙の変換が不可能な場合。 - MATCH
implicitConvTo
(Expressione
, Typet
); - 式を型に暗黙的に変換できるかどうかをチェックする。 型に変換できるかどうかをチェックする。
t
.implicitCastTo とは異なり、このルーチンは実際のキャストを行わない、 MATCH レベルまでの変換が可能かどうかをチェックするだけである。Parameters:Expression e
キャストされる式 Type t
期待される結果の型 Returns:MATCH とe
.typeとt
. - MATCH
cimplicitConvTo
(Expressione
, Typet
); - implicitConvTo()と同じである。 Dよりもかなり寛容である。 C11 6.3および6.5.16.1。Parameters:
Expression e
キャストされる式 Type t
期待される結果の型 Returns:MATCH とe
.typeとt
. - Type
toStaticArrayType
(SliceExpe
); - Expression
castTo
(Expressione
, Scope*sc
, Typet
, Typeatt
= null); - 明示的にキャストする。 式が間接表現を持たないと仮定する。
e
式は間接表現を持たないと仮定する。 (パラメータ'att'は、'alias this'の再帰を止めるために使われる)。 - Expression
inferType
(Expressione
, Typet
, intflag
= 0); - 型推論の対象を設定する。 t ターゲット型 フラグ1:推論に失敗してもエラーを表示しない。
- Expression
scaleFactor
(BinExpbe
, Scope*sc
); - ポインタとの加減算をスケールする。
- Type
typeMerge
(Scope*sc
, EXPop
, ref Expressionpe1
, ref Expressionpe2
); - e1 とe2 の型を共通のサブセットにマージする。パラメータe1 とe2 は、必要に応じてその場で書き換える。Parameters:
Scope* sc
現在のスコープ EXP op
以下のような演算子 e1 op
e2.実際には、EXP.question または二項演算子のいずれかである。Expression pe1
演算のLHSは、次のように書き換えられる。 Expression pe2
演算の右辺は次のように書き換えられる。 Returns:成功の場合は結果の型、エラーの場合はnull 。 - Expression
typeCombine
(BinExpbe
, Scope*sc
); - 葉を共通の型にする。Returns:成功の場合はnull、エラーの場合はErrorExpを返す。
- Expression
integralPromotions
(Expressione
, Scope*sc
); - 積分プロモーション(convertchk)を行う。
を変換しない。 - void
fix16997
(Scope*sc
, UnaExpue
); - これは、単項 + - ~ の非プロモーション動作から、Cのような積分プロモーション動作への移行を提供する。 の非プロモーション動作からCのような積分プロモーション動作への移行を提供する。Parameters:
Scope* sc
コンテキスト UnaExp ue
NegExp、UAddExp、またはComExpをルールに従って修正する。 - bool
arrayTypeCompatibleWithoutCasting
(Typet1
, Typet2
); - 両方の型がキャストなしで等価比較できる配列であるかどうかを確認する。 であるかどうかを調べる。等しい場合は真を返す。 これは、イミュータブルな配列とミュータブルな配列の比較を可能にするためである。 配列と変更可能な配列を比較できるようにするためである。
- @trusted IntRange
getIntRange
(Expressione
); - Expression
specialNoreturnCast
(ExpressiontoBeCasted
, Typeto
); - noreturn型の式を他の型に "キャスト"するヘルパー関数。 noreturnは暗黙のうちに他の型に変換可能である。 しかし、dmdバックエンドはnoreturn式からの素朴なキャストを好まない。 (特にassert(0))を嫌うので、この関数は生成する:(assert(0), value) の代わりに cast(
to
)(assert(0)). value 現在のところto
.initになっているが、読み取ることができないので、もっとシンプルにできるだろう。Parameters:Expression toBeCasted
キャストするnoreturn型の式 Type to
式をキャストする型。 Returns:CommaExp。失敗するとErrorExpが返される。
Copyright © 1999-2024 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
ドキュメントのdmdのバージョン: 2.109.1
翻訳日付 :
HTML生成日時:
編集者: dokutoku