object
D言語ランタイムライブラリの一部で、 全てのDプログラムでアクセスできるシンボルが定義されています。 クラスオブジェクト階層のルートである、Object クラスの定義を含みます。このモジュールは自動でimportされます。
- alias size_t;
- メモリ空間全域を表現できる十分なサイズの符号なし整数型。
配列の添え字やポインタのオフセットを格納するのにもっとも
ポータビリティのある型です。
つまり C の size_t と同様の役割を持った型です。
- alias ptrdiff_t;
- メモリ空間全域を表現できる十分なサイズの符号付き整数型。
ポインタ同士の差や、size_t同士の差を格納するのにもっとも
ポータビリティのある型です。
つまり C の ptrdiff_t と同様の役割を持った型です。
- alias bit;
- 標準のビット型です。bool 型として実装されています。
- class Object;
- 全てのDのクラスは Object から派生しています。
- void print();
- オブジェクトを人間に読める文字列形式へ変換し、標準出力に書き込みます。
- char[] toString();
- string toString();
- オブジェクトを人間に読める文字列形式へ変換します。
- hash_t toHash();
- Objectのハッシュ値計算関数です。
- int opCmp(Object o);
- thisオブジェクトと別のobjオブジェクトを比較します。
Returns:
this < obj < 0 this == obj 0 this > obj > 0
- int opEquals(Object o);
- thisオブジェクトがobjと同じ内容を持っているとき、非ゼロの値を返します。
- static Object factory(string classname);
- classname で指定された名前のクラスのインスタンスを作成します。
クラスは、コンストラクタをまったく持たないか、
デフォルトコンストラクタが実装されている必要があります。
Returns:
失敗すると null
- struct Interface;
- インターフェイスに関する情報です。
オブジェクトがインターフェイスとしてアクセスされる際には、
このInterface構造体へのポインタが、vtbl[] の先頭エントリに格納されています。
- ClassInfo classinfo;
- このインターフェイスの .classinfo です (実装クラスのclassinfoではありません)
- int offset;
- Object の 'this' から Interface の 'this' までのオフセットです
- class ClassInfo;
- クラスの実行時型情報です。任意のクラス型やインスタンスから、
.classinfo プロパティによって取得することが出来ます。
この構造体へのポインタが、クラスの vtbl[] の先頭エントリに格納されています
- byte[] init;
- クラスの静的初期化子
(init.length はクラスのバイト単位でのサイズです)
- string name;
- クラス名
- void*[] vtbl;
- 仮想関数ポインタテーブル
- Interface[] interfaces;
- このクラスの実装するインターフェイスの一覧
- ClassInfo base;
- 基底クラス
- static ClassInfo find(string classname);
- 指定されたクラス名に対応するClassInfoを全てのモジュールから検索
Returns:
見つからなかった場合は null
- Object create();
- 'this' の指すクラスのオブジェクトを生成
Returns:
生成したオブジェクトを返します。デフォルトコンストラクタを 持たないクラスであった場合、null を返します。
- struct OffsetTypeInfo;
- 集成体のメンバ毎の
オフセットと型情報をペアにした配列
- size_t offset;
- 該当メンバの、オブジェクト先頭からのオフセット
- TypeInfo ti;
- 該当メンバの TypeInfo
- class TypeInfo;
- 型の実行時型情報。
任意の型から、
TypeidExpression によって取得できます
- hash_t getHash(in void* p);
- 型のインスタンスのハッシュ値を返します
- int equals(in void* p1, in void* p2);
- 二つのインスタンスの同値性を比較します
- int compare(in void* p1, in void* p2);
- 二つのインスタンスの <, ==, > を比較します
- size_t tsize();
- 型のサイズを返します
- void swap(void* p1, void* p2);
- 型の二つのインスタンスをswapします
- TypeInfo next();
- '次' の型のTypeInfoを返します。この型が何の型であるかによって、'次'の意味は異なります
なければ null を返します。
- void[] init();
- デフォルトの初期化子を返します。ゼロ初期化の場合は null です。
- uint flags();
- 型のフラグを返します。現在のところ、1 が、GCがポインタを探すためにスキャンする型であることを示しています。
- OffsetTypeInfo[] offTi();
- 型の内容の情報を取得する。取得不可能な場合は null。
- size_t talign();
- 型のアラインメントサイズ
- class Exception;
- 回復可能な例外は全て Exception クラスから派生すべきです
- this(string msg);
- コンストラクタ。msg は例外を説明するメッセージです
- class Error: object.Exception;
- 回復不可能な例外は Error クラスから派生すべきです
- this(string msg);
- コンストラクタ。msg は例外を説明するメッセージです