英語版
このページの英語版を見る
dmd.opover
演算子オーバーロードを処理する。
仕様 演算子オーバーロード
Authors:
License:
ソース opover.d
- @safe bool
isCommutative
(EXPop
); - バイナリ op のオペランドが演算子のオーバーロードに合うように反転できるかどうかを判定する。 演算子オーバーロードに適合させる。
- Objects*
opToArg
(Scope*sc
, EXPop
); - 演算子をテンプレート化された引数リストに変換するヘルパー関数
- Expression
op_overload
(Expressione
, Scope*sc
, EXP*pop
= null); - 演算子オーバーロード。 演算子オーバーロードをチェックする。 を関数呼び出しに置き換える。Parameters:
Expression e
演算子を持つ式 Scope* sc
コンテキスト EXP* pop
がNULLでない場合、実際にオーバーロードされた演算子に設定される、 に設定される。 e
.op.オペランドを逆にして オーバーロードにマッチするReturns:null 演算子オーバーロードでない場合、 そうでない場合は "式"である。 - Expression
build_overload
(const ref Locloc
, Scope*sc
, Expressionethis
, Expressionearg
, Dsymbold
); - この参照と引数から関数呼び出しを構築するユーティリティ。
- Dsymbol
search_function
(ScopeDsymbolad
, Identifierfuncid
); - 集約広告から関数funcidを検索する。
- bool
inferForeachAggregate
(Scope*sc
, boolisForeach
, ref Expressionfeaggr
, out Dsymbolsapply
); - ForeachAggregateを見て、何がforeachされているかを把握する。Parameters:
Scope* sc
コンテキスト bool isForeach
foreachの場合はtrue、foreach_reverseの場合はfalseを指定する。 Expression feaggr
フォアアグリゲート Dsymbol sapply
を関数opApply/opApplyReverse、またはデリゲート、またはNULLに設定する。 オーバーロードの解決は行われない。 Returns:feaggrが意味解析で更新される。 失敗した場合はfalseとなり、エラーとなる。 - bool
inferApplyArgTypes
(ForeachStatementfes
, Scope*sc
, ref Dsymbolsapply
); - foreachパラメータの配列と集約型が与えられる、 最適なopApplyオーバーロードを見つける、 パラメータ型がない場合は、集約型から推測する。 パラメータ型が欠けている場合は、集約型から推論を試みる。Parameters:
ForeachStatement fes
foreach文 Scope* sc
コンテキスト Dsymbol sapply
null または opApply または delegate の場合、オーバーロード解決が行われていない。 sapplyでオーバーロード解決を行う。 Returns:エラーの場合はfalse
Copyright © 1999-2024 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
ドキュメントのdmdのバージョン: 2.109.1
翻訳日付 :
HTML生成日時:
編集者: dokutoku