www.digitalmars.com

D Programming Language 2.0

Last update Wed Jul 9 01:24:31 2008

object

Part of the D programming language runtime library. Forms the symbols available to all D programs. Includes Object, which is the root of the class object hierarchy.

Authors:
Walter Bright, Bartosz Milewski

This module is implicitly imported.

alias size_t;
An unsigned integral type large enough to span the memory space. Use for array indices and pointer offsets for maximal portability to architectures that have different memory address ranges. This is analogous to C's size_t.

alias ptrdiff_t;
A signed integral type large enough to span the memory space. Use for pointer differences and for size_t differences for maximal portability to architectures that have different memory address ranges. This is analogous to C's ptrdiff_t.

alias bit;
Standard boolean type.

class Object;
All D class objects inherit from Object.

string toString();
Convert Object to a human readable string.

hash_t toHash();
Compute hash function for Object.

int opCmp(Object o);
Compare with another Object obj.

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


bool opEquals(Object o);
Returns !=0 if this object does have the same contents as obj.

static Object factory(string classname);
Create instance of class specified by classname. The class must either have no constructors or have a default constructor.

Returns:
null if failed

struct Interface;
Information about an interface. When an object is accessed via an interface, an Interface* appears as the first entry in its vtbl.

ClassInfo classinfo;
.classinfo for this interface (not for containing class)

int offset;
offset to Interface 'this' from Object 'this'

class ClassInfo;
Runtime type information about a class. Can be retrieved for any class type or instance by using the .classinfo property. A pointer to this appears as the first entry in the class's vtbl[].

byte[] init;
class static initializer (init.length gives size in bytes of class)

string name;
class name

void*[] vtbl;
virtual function pointer table

Interface[] interfaces;
interfaces this class implements

ClassInfo base;
base class

static ClassInfo find(string classname);
Search all modules for ClassInfo corresponding to classname.

Returns:
null if not found

Object create();
Create instance of Object represented by 'this'.

Returns:
the object created, or null if the Object does does not have a default constructor

const(MemberInfo[]) getMembers(string name);
Search for all members with the name 'name'. If name[] is null, return all members.

struct OffsetTypeInfo;
Array of pairs giving the offset and type information for each member in an aggregate.

size_t offset;
Offset of member from start of object

TypeInfo ti;
TypeInfo for this member

class TypeInfo;
Runtime type information about a type. Can be retrieved for any type using a TypeidExpression.

hash_t getHash(in void* p);
Returns a hash of the instance of a type.

bool equals(in void* p1, in void* p2);
Compares two instances for equality.

int compare(in void* p1, in void* p2);
Compares two instances for <, ==, or >.

size_t tsize();
Returns size of the type.

void swap(void* p1, void* p2);
Swaps two instances of the type.

TypeInfo next();
Get TypeInfo for 'next' type, as defined by what kind of type this is,

null if none.

void[] init();
Return default initializer, null if default initialize to 0

uint flags();
Get flags for type: 1 means GC should scan for pointers

OffsetTypeInfo[] offTi();
Get type information on the contents of the type; null if not available

void destroy(void* p);
Run the destructor on the object and all its sub-objects

void postblit(void* p);
Run the postblit on the object and all its sub-objects

class Exception;
All recoverable exceptions should be derived from class Exception.

this(string msg);
Constructor; msg is a descriptive message for the exception.

class Error: object.Exception;
All irrecoverable exceptions should be derived from class Error.

this(string msg);
Constructor; msg is a descriptive message for the exception.