mptr

Attribute: Set the policy for storing and retrieving the method pointer (mptr).

Each class involved in method dispatch (either because it occurs as a virtual parameter, or is derived from a class or an interface that occurs as a virtual parameter) has an associated mptr. The first step of method dispatch consists in retrieving the mptr for each virtual argument.

Two policies are supported: "deallocator": store the mptr in the deprecated deallocator field of ClassInfo. This is the default, and delivers the best performance. $(NOTE:) This policy is incompatible with classes that implement the deprecated operator delete.

"hash": store the mptr in a hash table. The mptr is obtained by applying a perfect hash function to the class' vptr. This policy is only slightly slower than the deallocator policy.

struct mptr {}

Members

Variables

index
string index;
Undocumented in source.

Examples

@mptr("hash")
string fight(virtual!Character, virtual!Creature, virtual!Device);

Meta