英語版
このページの英語版を見る
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 titdのインスタンス Objects dedtypes推論された型で埋める ArgumentList argumentListテンプレート・インスタンスへの引数 int flag1 - ダミー型のため、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* sctiの親スコープ Returns:tiのパラメータの新しいスコープ - MATCH
leastAsSpecialized(Scope*sc, TemplateDeclarationtd, TemplateDeclarationtd2, ArgumentListargumentList); - の部分的な特殊化順序を決定する
tdvstd2.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 errorHelperNULLでない場合、エラーメッセージを送信するデリゲート
Copyright © 1999-2025 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
サイト全体のドキュメントのdmdのバージョン: 2.109.1
最新のdmdのバージョン: 2.111.0 ダウンロード
翻訳日付:
HTML生成日時:
編集者: dokutoku