英語版
このページの英語版を見る
dmd.mtype
D型を定義する。
Authors:
License:
ソースmtype.d
適用範囲 https://codecov.io/gh/dlang/dmd/src/master/src/dmd/mtype.d
- pure nothrow @nogc @safe bool
MODimplicitConv
(MODmodfrom
, MODmodto
); - modfrom が modto に暗黙的に変換できる場合は、0以外の値を返す
- pure nothrow @nogc @safe MATCH
MODmethodConv
(MODmodfrom
, MODmodto
); - 型 '() modfrom' のメソッドが型 '() modto' のメソッドを呼び出せる場合は、MATCH.exact または MATCH.constant を返す。
- pure nothrow @nogc @safe MOD
MODmerge
(MODmod1
, MODmod2
); - modビットをマージして共通のmodを生成する。
- nothrow @safe void
MODtoBuffer
(ref OutBufferbuf
, MODmod
); - 修飾子名を buf に格納する。
- pure nothrow const(char)*
MODtoChars
(MODmod
);
pure nothrow @safe stringMODtoString
(MODmod
); - Returns: 人間が読める形式で人間が読める形式で表現された
mod
、 トークンがmod
- pure nothrow @nogc @safe string
trustToString
(TRUSTtrust
); - trust から信頼フラグを1つ取り出し、 それを文字列表現で返す。
- pure nothrow @nogc @safe StorageClass
ModToStc
(uintmod
); - MODxxxx を STCxxx に変換する
- pure nothrow @nogc @safe bool
isSomeChar
(TYty
); - ty が char、wchar、または dchar の場合、true を返す
- enum
DotExpFlag
: int; - dotExp() ビットフラグ
- enum
Covariant
: int; - 2つの型が同値型かどうかをチェックした結果
distinct
- 型は異なる
yes
- 型が共変型である
no
- 引数はオーバーロードの範囲では一致するが、型は共変ではない
fwdref
- 前方参照があるため、共変性を決定できない
- abstract class
Type
: dmd.ast_node.ASTNode; -
- final const size_t
getUniqueID
(); - この型に対して一意な非ゼロのIDを返す。型が一意なIDを持たない(まだ持っていない)場合は0を返す。semantic() がまだ実行されていない場合は0が返される。
- final const const(char)*
toChars
();
final char*toPrettyChars
(boolQualifyTypes
= false); - 型の整形表示。
- static void
deinitialize
(); - コンパイラのグローバル状態を初期化解除する。これは、_init によって設定された状態を元の状態に復元するために使用できる。
- final const nothrow void
modToBuffer
(ref OutBufferbuf
); - この型の修飾子名を buf に格納する。
- final const nothrow char*
modToChars
(); - この型の修飾子名を返す。
- bool
isAssignable
(); - T が変更可能な場合、
与えられた T a, b; ビット単位の代入が可能か? a = b; ?
- bool
isBoolean
(); - T がブール値に変換できる場合は true を返す。
- final const nothrow Type
nullAttributes
(); - この型のコピーを返し、すべての属性をnullで初期化する。 異なる修飾子を持つ型を作成する際に役立つ。
- final void
fixTo
(Typet
); - 新しい型 'this' は t から型構築されるので、 cto、ito、sto、scto、wto ショートカットを埋める。
- final void
check
(); - 型構築のバグがないか確認する。
- final Type
addSTC
(StorageClassstc
); - 既存の型にSTCxxxxビットを適用する。 意味解析が実行される前に使用する。
- final Type
toBasetype
(); - これが他の型のシェルである場合、 その他の型を取得する。
- MATCH
implicitConvTo
(Typeto
); - 「this」が暗黙的に型「to」に変換できるかどうかを判断する。Returns:MATCH.nomatch、MATCH.convert、MATCH.constant、MATCH.exact
- MATCH
constConv
(Typeto
); - 'this' を 'to' に変換することが同一性操作であるか、 const 操作への変換であるか、または型が一致しないかを判断する。Returns:MATCH.exact 'this' == 'to' MATCH.constant 'to' は定数 MATCH.nomatch 変更可能または不変への変換
- MOD
deduceWild
(Typet
, boolisRef
); - MODビットを計算する。this の引数の型をワイルドカードのパラメータ型に一致させる。Parameters:
Type t
対応するパラメータ型 bool isRef
パラメータがref またはout Returns: MODビットMODビット - structalign_t
alignment
(); - この型で使用する整列を戻す。
- Expression
defaultInitLiteral
(const ref Locloc
); - デフォルトの初期化子をリテラルではなく、グローバルな"不変の変数"としたい場合にこれを使用する。
- const int
hasWild
(); - 型またはそのサブタイプがワイルドである場合は、0以外の値を返す。
- bool
hasVoidInitPointers
(); - 型がvoidに初期化されるポインタフィールドを持っているかどうかを検出する。 そのようなvoidフィールドを持つローカルスタック変数は、初期化されないままとなり、 ポインタバグの原因となる。Returns:そうであれば true
- bool
hasUnsafeBitpatterns
(); - @system メンバが存在するため、この型が安全でないかどうかを検出するReturns:そうであれば true を返す
- bool
hasInvariant
(); - Returns:型に不変条件がある場合は true を返す
- Type
nextOf
(); - これが何かの型である場合、その何かを返す。
- final Type
baseElemOf
(); - これが静的配列の型である場合は、その基本要素の型を返す。
- final uint
numberOfElems
(const ref Locloc
); - (多次元の可能性もある)静的配列の要素数を計算する。 または、他の型の場合は1を返す。Parameters:
Loc loc
エラーメッセージ用 Returns: 要素数、オーバーフローの場合は uint.max要素数、オーバーフローの場合は"uint.max" - final uinteger_t
sizemask
(); - 整数が収まるマスクを返す。
- bool
needsDestruction
(); - 型がスコープ外に出る際にデストラクタが必要な場合は true を返す。 これは値型のみに適用され、参照型には適用されない。
- bool
needsCopyOrPostblit
(); - 型がコピーされる際に、コピーコンストラクタまたはポストブライトが適用される必要がある場合は true。 値型のみに適用され、参照型には適用されない。
- bool
needsNested
(); - final inout pure nothrow @nogc inout(TypeFunction)
isPtrToFunction
(); - この型は関数へのポインタか?Returns:関数型である場合
- final inout pure nothrow @nogc inout(TypeFunction)
isFunction_Delegate_PtrToFunction
(); - この型は関数、デリゲート、または関数へのポインタか?Returns:関数型である場合、
- class
TypeError
: dmd.mtype.Type; - abstract class
TypeNext
: dmd.mtype.Type; -
- final @safe Type
nextOf
(); - TypeFunctionの場合、関数の戻り値の型が推測されるべきであり、semantic()がまだ関数上で実行されていない場合、nextOf()はNULLを返す可能性がある。 semantic()の実行後は、NULLではなくなる。
- class
TypeBasic
: dmd.mtype.Type; - class
TypeVector
: dmd.mtype.Type; - 基本型は以下のいずれかでなければならない。 byte[16],ubyte[16],short[8],ushort[8],int[4],uint[4],long[2],ulong[2],float[4],double[2] AVX の場合: byte[32],ubyte[32],short[16],ushort[16],int[8],uint[8],long[4],ulong[4],float[8],double[4]
- abstract class
TypeArray
: dmd.mtype.TypeNext; - class
TypeSArray
: dmd.mtype.TypeArray; - 静的配列、固定サイズのもの
- bool
isIncomplete
(); - C11 6.7.6.2-4 不完全配列型Returns:不完全型の場合に真
- bool
needsNested
();
- class
TypeDArray
: dmd.mtype.TypeArray; - 動的配列、次元なし
- class
TypeAArray
: dmd.mtype.TypeArray; - class
TypePointer
: dmd.mtype.TypeNext; - class
TypeReference
: dmd.mtype.TypeNext; - class
TypeFunction
: dmd.mtype.TypeNext; -
- bool
hasLazyParameters
(); - 遅延パラメータが存在する場合に true を返す。
- const pure nothrow @safe bool
isDstyleVariadic
(); - extern (D) U func(T t, ...) 可変長引数関数型をチェックし、_arguments[] を最初の引数として追加する。Returns:D言語のスタイルの可変長引数である場合は true
- Expressions*
resolveNamedArgs
(ArgumentListargumentList
, const(char)**pMessage
); - 変換する
argumentList
、名前付き引数を含む可能性があるものを パラメータリストの順番通りに引数のリストに変換する。Parameters:ArgumentList argumentList
関数引数の配列 const(char)** pMessage
エラーメッセージを格納するアドレス、またはnull Returns:順序が入れ替わった引数リスト、またはエラー時にnull - MATCH
constConv
(Typeto
); - TypeNext.constConvを拡張し、一致する属性もチェックする
- const pure nothrow @nogc @safe bool
iswild
(); - Returns:true 関数に一致する属性がある場合は または 、それ以外は 。isInOutQual isInOutParamfalse
- const pure nothrow @nogc @safe bool
attributesEqual
(scope const TypeFunctionother
, booltrustSystemEqualsDefault
= true); - Returns: xml-ph-0000@deepl.internal関数タイプが同じ属性(xml-ph-0001@deepl.internal、...)を持つかどうかthis 関数型が同じ属性(@safe など)を持つかどうか
other
- class
TypeDelegate
: dmd.mtype.TypeNext; - class
TypeTraits
: dmd.mtype.Type; - これは、TraitsExpを含むシェルであり、 型またはシンボルに解決できる。重要なのは、AliasDeclarationYが__traits() を使用できるようにすることである。https://issues.dlang.org/show_bug.cgi?id=7804を参照のこと。
- TraitsExp
exp
; - "式"を"型"または"シンボル"として解決する。
- RootObject
obj
; - 意味解析後のキャッシュされた型/シンボル。
- class
TypeMixin
: dmd.mtype.Type; - ミックスイン型を実装する。意味解析により、実際の型に変換される。
- abstract class
TypeQualified
: dmd.mtype.Type; - class
TypeIdentifier
: dmd.mtype.TypeQualified; - class
TypeInstance
: dmd.mtype.TypeQualified; - TypeIdentifier と似ているが、ルートとして TemplateInstance を使用する
- class
TypeTypeof
: dmd.mtype.TypeQualified; - class
TypeReturn
: dmd.mtype.TypeQualified; - class
TypeStruct
: dmd.mtype.Type; -
- Expression
defaultInitLiteral
(const ref Locloc
); - デフォルトの初期化子をリテラルにすることを好む場合、 グローバルな不変の変数ではなく、これを使用する。
- class
TypeEnum
: dmd.mtype.Type; - class
TypeClass
: dmd.mtype.Type; - class
TypeTuple
: dmd.mtype.Type; -
- this(Expressions*
exps
); - 式の型から TypeTuple 型を生成する。 exps[] がすでにタプル展開済みであると仮定する。
- @safe this();
- 0、1、または2つの型を含むタプル型とする。
- class
TypeSlice
: dmd.mtype.TypeNext; - これは、TypeTupleをスライスできるようにするためである
- class
TypeNull
: dmd.mtype.Type; - class
TypeNoreturn
: dmd.mtype.Type; - class
TypeTag
: dmd.mtype.Type; - D言語とは異なり、C言語では、 D言語のように個別にではなく、宣言子の中で構造体/共用体/列挙型のタグ名を宣言/定義できる。 シンボルテーブルに表示される順序は、"語彙"順でなければならない。 構文解析段階では、それが宣言であるか、既存の名前への参照であるかを決定するのに十分な情報が得られないため、 この型は必要な情報を収集し、それをsemantic()に委ねる。
- Loc
loc
; - 宣言の場所
- TOK
tok
; - TOK.struct_, TOK.union_, TOK.enum_
- structalign_t
packalign
; - 構造体/共用体のフィールドのアラインメント
- Identifier
id
; - タグ名 識別子
- Type
base
; - 列挙型の基本型、それ以外はnull
- Dsymbols*
members
; - 構造体のメンバ、存在しない場合はnull
- Type
resolved
; - このインスタンスを指す他のメンバが複数ある場合、semantic()の後の"型"
- MOD
mod
; - このインスタンスを指すもの、これは struct S { int a; } s1, *s2;型が解決された後に適用される修飾子(現時点では、MODFlags.const_のみ)
- struct
ParameterList
; - 関数の仮引数と可変長引数情報を表す。 長さ、インデックス、反復は深さ優先のタプル展開に基づいている。 https://dlang.org/spec/function.html#ParameterList
- Parameters*
parameters
; - 展開されていない(生の)形式パラメータ。タプルを含む場合がある。
- size_t
length
(); - 展開されたパラメータの数を返す。 計算量:O(N)。
- Parameter
opIndex
(size_ti
); - 指定されたインデックスの展開済みパラメータを返す。範囲外の場合はnullを返す。 計算量:O(i)。
- int
opApply
(scope Parameter.ForeachDgdg
); - 展開されたパラメータを繰り返し処理する。 計算量:O(N)。 長さを計算し、opIndexをN回呼び出すO(N + N^2/2)の複雑さを回避するために、こちらを推奨する。
- int
opApply
(scope Parameter.SemanticForeachDgdg
); - 展開されたパラメータを順に処理し、展開されていないパラメータと照合しながら 意味処理を行う
- const bool
opEquals
(ref scope ParameterListother
); - これを別の ParameterList と比較し(必要に応じてタプルを展開する)
- bool
hasDefaultArgs
(); - Returns:true パラメータにデフォルト引数があるかどうかを確認
- class
Parameter
: dmd.ast_node.ASTNode; -
- Type
isLazyArray
(); - パラメータが遅延配列のデリゲートであるかどうかを判断する。 そうであれば、それらのデリゲートの戻り値の型を返す。 そうでない場合は、NULL を返す。
- const pure nothrow @nogc @safe bool
isLazy
(); - Returns:関数パラメータが遅延しているかどうかを返す。
- const pure nothrow @nogc @safe bool
isReference
(); - Returns:関数パラメータが参照(out / ref)であるかどうか
- static size_t
dim
(Parameters*parameters
); - 引数の数を決定し、タプルを折りたたむ。
- static Parameter
getNth
(Parameters*parameters
, size_tnth
); - n番目のParameter を取得し、タプルで折りたたむ。
parameters
タプルを含めることができるため、その長さが増加する。 この関数では、nth
パラメータを、 すべてのタプルが推移的に含まれるようにparameters
平らにされたかのようにParameters:Parameters* parameters
Parameter の配列を反復処理する size_t nth
目的のパラメータのインデックス。 Returns: インデックスのパラメータインデックスのパラメータはnth
(タプルを考慮)、 または範囲外の場合はnull 。 - alias
ForeachDg
= int delegate(ulong paramidx, Parameter param); - パラメータのみを反復処理する場合のデリゲートの型
- alias
SemanticForeachDg
= int delegate(ulong oidx, Parameter oparam, ulong eidx, Parameter eparam); - 元のパラメータセットと型タプルの両方を反復処理する場合のデリゲートの型。 意味解析に役立つ。 'o' は 'original' を表し、'e' は 'expanded' を表す。
- static int
_foreach
(Parameters*parameters
, scope ForeachDgdg
);
static int_foreach
(Parameters*parameters
, scope SemanticForeachDgdg
); - 深さ優先一次探索で args のタプルを展開する。 各 Parameter に対して dg(void *ctx, size_t argidx, Parameter *arg) を呼び出す。 dg が 0 以外の値を返した場合は、そこで処理を中止してその値を返し、0 を返す。 この関数を使用することで、dim の計算と N 回の getNth の呼び出しの O(N + N^2/2) の複雑性を回避できる。
- const pure nothrow @nogc @safe bool
isCovariant
(boolreturnByRef
, const Parameterp
); - パラメータthis の共分散を計算し、
p
両者のストレージクラスの設定によって決定される。Parameters:bool returnByRef
関数が参照で返す場合は true Parameter p
比較対象のパラメータ Returns: true = xml-ph-0000@deepl.internal は、xml-ph-0000@deepl.internal の代わりに使用できる。true =this は false = nope の代わりに使用できるp
false = nope
- const(char*)[2]
toAutoQualChars
(Typet1
, Typet2
); - 必要に応じて修飾付きの2つの型を印刷する場合に使用する。Parameters:
Type t1
最初の型に型名を指定する Type t2
2番目の型に型名を適用する Returns: 2つの型名が同じでない場合は両方の型の完全修飾名、または2つの型名が同じ場合は両方の型の非修飾名。2つの型名が同じでない場合は両方の型の完全修飾名、 または2つの型名が同じ場合は両方の型の非修飾名。 - void
modifiersApply
(const TypeFunctiontf
, void delegate(string)dg
); - 各アクティブ修飾子(MODFlags.const_, MODFlags.immutable_, など)に対して、 作業パラメータ用の void* と属性の文字列表現を指定してfp を呼び出す。
- void
attributesApply
(const TypeFunctiontf
, void delegate(string)dg
, TRUSTformattrustFormat
= TRUSTformatDefault); - 各アクティブな属性(ref/const/nogc/etc)に対して、fp にvoid*をワークパラメータとして渡し、 属性の文字列表現を渡す。
- AggregateDeclaration
isAggregate
(Typet
); - 型がクラスまたは構造体の場合、そのシンボルを返し、 それ以外はnullを返す。
- bool
isIndexableNonAggregate
(Typet
); - 型 t がインデックス化またはスライス化できるかどうかを、それが 演算子オーバーロードを持つ集約型ではないことを前提にParameters:
Type t
型をチェックする Returns:型 t の式が配列式の e1 として使用できる場合は true を返す - pure nothrow @nogc @safe ScopeRef
buildScopeRef
(StorageClassstc
); - パラメータがどのように返されるかを計算する。 StorageClass が非常に幅広であるため、表現の縮小が必要であるParameters: パラメータのストレージクラス
StorageClass stc
パラメータのストレージクラスは Returns: 値のenum ScopeRef値の列挙型 - enum
ScopeRef
: int; - scope-return-refの可能性の分類
- pure nothrow @nogc @safe const(char)*
ScopeRefToChars
(ScopeRefsr
); - デバッグ用にわかりやすい文字列を入力してください。Parameters:
ScopeRef sr
値 Returns: 対応する文字列対応する文字列 - TypeVector
toBooleanVector
(TypeVectortv
); - 適切なベクトル型を作成し、
tv
ベクトル型の各要素に対して1つのブール値の結果を格納する。 ベクトル比較の結果は、 すべて1(比較結果が真)またはすべて0(比較結果が偽)のシングルまたはダブルワードマスクとなる。 このSIMDマスク型には同等のD型はないが、 最も近い同等品は同じ単位サイズと長さの整数ベクトルである。 "type"型Parameters:TypeVector tv
TypeVector からベクトルを構築する。 Returns: ベクトル比較演算の結果に適したベクトル型。ベクトル比較演算の結果に適したベクトル型。 - Result
VisitType
(Result)(Typet
); - Typeの静的型に基づいて関数にディスパッチする。
- pure @safe string
visitTYCase
(stringhandler
); - CTFE専用ヘルパー関数 VisitInitializer用。Parameters:
string handler
訪問ハンドラの名前を表す文字列 Returns:ケースの雛形コード - TypeIdentifier
getThrowable
(); - Returns:TypeIdentifier 対応するobject.Throwable
- TypeIdentifier
getException
(); - Returns:TypeIdentifierに対応するobject.Exception
Copyright © 1999-2024 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.109.1
ドキュメントのdmdのバージョン: 2.109.1
翻訳日付 :
HTML生成日時:
編集者: dokutoku