Enum std.bitmanip.member taggedClassRef
This string mixin generator allows one to create tagged class reference inside structs and classes.
A tagged class reference uses the bits known to be zero in a normal class reference to store extra information. For example, a pointer to an integer must be 4-byte aligned, so there are 2 bits that are always known to be zero. One can store a 2-bit integer there.
The example above creates a tagged reference to an Object in the struct A. This expects the same parameters
as
, except the first argument which must be a class type instead of a pointer type.
taggedPointer
Warning: Don't use
with references to garbage collected objects, as it will result in
undefined behaviour. See http://dlang.org/garbage.html for details.
taggedClassRef
Declaration
enum taggedClassRef(T, string name, Ts...) = createTaggedReference!(createStoreName!(T, name, 0, Ts), T, 8, name, Ts).result;
Example
struct A { int a; mixin(taggedClassRef!( Object, "o", uint, "i", 2)); } A obj; obj.o = new Object(); obj.i = 3;
Authors
Walter Bright, Andrei Alexandrescu, Jonathan M Davis, Alex Rønne Petersen, Damian Ziemba Amaury SECHET