D 1.0   D 2.0
About Japanese Translation

Last update Sun Dec 19 23:27:21 2010

object

D言語ランタイムライブラリの一部で 全てのDプログラムでアクセスできるシンボルが定義されています。 クラスオブジェクト階層のルートである、Object クラスの定義を含みます。

Source:
object_.d

License:
Boost License 1.0.

Authors:
Walter Bright, Sean Kelly

このモジュールは自動でimportされます。

class Object;
全てのDのクラスは Object から派生しています

string toString();
オブジェクトを人間に読める文字列形式へ変換します

hash_t toHash();
Objectのハッシュ値計算関数です

int opCmp(Object o);
thisオブジェクトと別のobjオブジェクトを比較します

Returns:
this < obj < 0
this == obj 0
this > obj > 0


equals_t opEquals(Object o);
thisオブジェクトがobjと同じ内容を持っているとき、非ゼロの値を返します

static Object factory(string classname);
classname で指定された名前のクラスのインスタンスを作成します。 クラスは、コンストラクタをまったく持たないか、 デフォルトコンストラクタが実装されている必要があります。

Returns:
失敗すると null

bool opEquals(Object lhs, Object rhs);
lhsrhs が等しいときに true を返します。

struct Interface;
インターフェイスに関する情報です オブジェクトがインターフェイスとしてアクセスされる際には、 このInterface構造体へのポインタが、vtbl[] の先頭エントリに格納されています。

TypeInfo_Class classinfo;
このインターフェイスの .classinfo です (実装クラスのclassinfoではありません)

ptrdiff_t offset;
Object の 'this' から Interface の 'this' までのオフセットです

alias Classinfo;
クラスの実行時型情報です。任意のクラス型やインスタンスから、 .classinfo プロパティによって取得することが出来ます。 このオブジェクトへのポインタが、クラスの vtbl[] の先頭エントリに格納されています。

struct OffsetTypeInfo;
集成体のメンバ毎の オフセットと型情報をペアにした配列

size_t offset;
該当メンバの、オブジェクト先頭からのオフセット

TypeInfo ti;
該当メンバの TypeInfo

class TypeInfo;
型の実行時型情報。 任意の型から、 TypeidExpression によって取得できます

hash_t getHash(in void* p);
型のインスタンスのハッシュ値を返します

equals_t equals(in void* p1, in void* p2);
二つのインスタンスの同値性を比較します

int compare(in void* p1, in void* p2);
二つのインスタンスの <, ==, > を比較します

size_t tsize();
型のサイズを返します。

void swap(void* p1, void* p2);
型のインスタンス2つをswapします

TypeInfo next();
'次' の型のTypeInfoを返します。この型が何の型であるかによって、'次'の意味は異なります。

なければ null を返します。

void[] init();
デフォルトの初期化子を返します。ゼロ初期化の場合は null です

uint flags();
型のフラグを返します。現在のところ、1 が、GCがポインタを探すためにスキャンする型であることを示しています。

OffsetTypeInfo[] offTi();
型の内容の情報を取得します。取得不可能な場合は null

size_t talign();
型のアラインメントサイズ

void destroy(void* p);
オブジェクトとそのサブオブジェクト全てに対しデストラクタを呼び出します。

void postblit(void* p);
オブジェクトとそのサブオブジェクト全てに対し postblit を呼び出します。

class TypeInfo_Class: object.TypeInfo;
クラスに関する実行時型情報。 オブジェクトのインスタンスから、 .classinfo プロパティで取得できます。

byte[] init;
静的初期化子 (init.length でクラスインスタンスのサイズがバイト単位でわかります)

string name;
クラス名

void*[] vtbl;
仮想関数ポインタテーブル

Interface[] interfaces;
このクラスの実装するインターフェイス

TypeInfo_Class base;
基底クラス

static TypeInfo_Class find(in char[] classname);
classname に対応する TypeInfo_Class を全てのモジュールから検索します。

Returns:
見つからなければ null

Object create();
'this' の表すクラスのオブジェクトを作成します。

const(MemberInfo[]) getMembers(in char[] name);
'name' という名前のメンバを探します。 name[] が null ならば全てのメンバを返します。

class Throwable;


void rt_setTraceHandler(TraceHandler h);
デフォルトのトレースハンドラを、ユーザー定義のものに置き換えます。

Params:
TraceHandler h 新しいトレースハンドラ。null にするとデフォルトのハンドラに設定されます。

TraceHandler rt_getTraceHandler();
現在のトレースハンドラを返します

Throwable.TraceInfo _d_traceContext(void* ptr = null);
例外が構築されるときに、この関数が実行されます。 ユーザー定義のハンドラが指定されている場合は、そのハンドラが呼び出されます。 それ以外の場合は何も生成されません。

Params:
void* ptr トレースを生成した箇所へのポインタか、または null です。 null は、 トレースハンドラの内部でトレースが生成されるべきであることを示します。

Returns:
ハンドラが設定されていない場合null、されている場合 現在の呼び出しコンテキストを表すオブジェクトを返します。

void _moduleCtor();
全てのモジュールを初期化します。

void _checkModCtors();
モジュールコンストラクタの循環をチェックし、 モジュールコンストラクタの実行順を確定します。

void _moduleTlsCtor();
スレッドローカルグローバルデータの静的コンストラクタを実行します。

void _moduleDtor();
全てのモジュールを破棄します。

alias IMonitor;


size_t capacity(T)(T[] arr);
(プロパティ) 配列の現在の容量を取得します。容量とは、 メモリの再割り当てなしで追加できる最大の要素数です。

size_t reserve(T)(ref T[] arr, size_t newcapacity);
配列の容量を設定します。 容量とは、 メモリの再割り当てなしで追加できる最大の要素数です。

返値は新しい容量です (指定した値より大きい可能性があります。)

void assumeSafeAppend(T)(T[] arr);
この配列へのappendが安全であるという仮定をランタイムに伝えます。 この関数を呼び出した後のarrへのappendは、 たとえ構造のメモリ領域を参照しているスライス等が残っていたとしても、in-placeの上書きで実現されます。

この配列への将来のappendのときに領域を再利用したいときに使います。 この関数を使うのは、arrの後ろに有効な要素が残っていないことを確信できるときに限って下さい。 残っている要素があると、この配列へのappendによって破壊されてしまうことがあります。 (※訳注: a=b=[1,2,3,4,5]; a=a[0..2]; assumeSafeAppend(a); a~=6; すると b=[1,2,6,4,5] になっちゃう的なことだと思う。)

この関数の読み出し後、 この配列の後ろに配置されているデータを参照すると未定義動作となります。

bool _ArrayEq(T1, T2)(T1[] a1, T2[] a2);
異なる型の二つの配列の各要素が等しいかどうか調べるためのヘルパ関数です。