英語版
このページの英語版を見る
dmd.templatesem
テンプレートの意味論。
Authors:
License:
- void
templateDeclarationSemantic
(Scope*sc
, TemplateDeclarationtempdecl
); - テンプレートの意味解析を行う。Parameters:
Scope* sc
コンテキスト TemplateDeclaration tempdecl
テンプレート宣言 - MATCH
matchWithInstance
(Scope*sc
, TemplateDeclarationtd
, TemplateInstanceti
, ref Objectsdedtypes
, ArgumentListargumentList
, intflag
); - tiがこのTemplateDeclarationのインスタンスであるとする、 のパラメータの型を推論し、それらの型をdedtypes[]に格納する。 dedtypes[]に格納する。Parameters:
Scope* sc
コンテキスト TemplateDeclaration td
テンプレート TemplateInstance ti
tdのインスタンス Objects dedtypes
推論された型で埋める ArgumentList argumentList
テンプレート・インスタンスへの引数 int flag
1 - ダミー型のため、semantic()を行わない。 2 - matchArg()で型を変更しない。 Returns:マッチ・レベル。 - bool
evaluateConstraint
(TemplateDeclarationtd
, TemplateInstanceti
, Scope*sc
, Scope*paramscope
, Objects*dedargs
, FuncDeclarationfd
); - 制約が満たされるかチェックする。
- void
formatParamsWithTiargs
(ref TemplateParametersparameters
, ref Objectstiargs
, boolvariadic
, ref OutBufferbuf
); - テンプレートパラメータのテキスト表現と引数を buf に追加する。Parameters:
TemplateParameters parameters
テンプレートパラメータ Objects tiargs
対応するテンプレート引数 bool variadic
可変長引数リストの場合 OutBuffer buf
テキストの出力先 - Scope*
createScopeForTemplateParameters
(TemplateDeclarationtd
, TemplateInstanceti
, Scope*sc
); - TemplateInstanceのパラメータ用のスコープを作る
ti
のパラメータ用のスコープを作成する。paramsym が NULL の場合、新しい ScopeDsymbol が paramsym の代わりに使われる。 の代わりに使用される。Parameters:TemplateDeclaration td
のインスタンスである TemplateInstance ti
スコープを生成するパラメータの TemplateInstance。 Scope* sc
tiの親スコープ Returns:tiのパラメータの新しいスコープ - MATCH
leastAsSpecialized
(Scope*sc
, TemplateDeclarationtd
, TemplateDeclarationtd2
, ArgumentListargumentList
); - の部分的な特殊化順序を決定する
td
vstd2
.Parameters:Scope* sc
コンテキスト TemplateDeclaration td
最初のテンプレート TemplateDeclaration td2
番目のテンプレート ArgumentList argumentList
テンプレートへの引数 Returns:MATCH - tdは少なくともtd2と同じくらい特殊である。 MATCH.nomatch - td2はtdよりも特殊である。 - MATCHpair
deduceFunctionTemplateMatch
(TemplateDeclarationtd
, TemplateInstanceti
, Scope*sc
, ref FuncDeclarationfd
, Typetthis
, ArgumentListargumentList
); - 関数の引数を特定のテンプレート化された関数にマッチさせる。Parameters:
TemplateDeclaration td
テンプレート・インスタンスに対するテンプレート宣言 TemplateInstance ti
テンプレート・インスタンス ti
.tdtypesは、式/型から推測されるテンプレート引数に設定される。Scope* sc
インスタンス化スコープ FuncDeclaration fd
インスタンス化された関数宣言に設定される、部分的にインスタンス化された関数宣言 Type tthis
'this'引数 if !NULL ArgumentList argumentList
関数への引数。 Returns:初期テンプレート引数と推論されるテンプレート引数のペアにマッチする - RootObject
declareParameter
(TemplateDeclarationtd
, Scope*sc
, TemplateParametertp
, RootObjecto
); - テンプレート・パラメータtpを値oで宣言し、スコープscに設置する。
- void
functionResolve
(ref MatchAccumulatorm
, Dsymboldstart
, Locloc
, Scope*sc
, Objects*tiargs
, Typetthis
, ArgumentListargumentList
, void delegate(const(char)*) scopeerrorHelper
= null); - 関数の引数が与えられたら、どのテンプレート化された関数を展開するかを決定する。 を展開し、マッチした結果を返す。Parameters:
MatchAccumulator m
マッチング結果 Dsymbol dstart
オーバーロードされた関数テンプレートのルート。 Loc loc
インスタンス化の場所 Scope* sc
インスタンス化の範囲 Objects* tiargs
テンプレート引数の初期リスト Type tthis
もし!NULLなら、'this'ポインタ引数 ArgumentList argumentList
関数への引数 void delegate(const(char)*) scope errorHelper
NULLでない場合、エラーメッセージを送信するデリゲート
Copyright © 1999-2024 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
ドキュメントのdmdのバージョン: 2.109.1
翻訳日付 :
HTML生成日時:
編集者: dokutoku