IntrusiveControlBlock

Alias to ControlBlock including qualifiers contained by Type.

If mutable is true, then result type alias is mutable (can be shared).

Members

Aliases

IntrusiveControlBlock
alias IntrusiveControlBlock = impl
Undocumented in source.
PtrControlBlock
alias PtrControlBlock = typeof(intrusivControlBlock(Type.init))
Undocumented in source.
PtrControlBlock
alias PtrControlBlock = typeof(intrusivControlBlock(*cast(Type*)null))
Undocumented in source.
PtrControlBlock
alias PtrControlBlock = void*
Undocumented in source.
impl
alias impl = shared(Unconst!(PointerTarget!PtrControlBlock))
Undocumented in source.
impl
alias impl = PointerTarget!PtrControlBlock
Undocumented in source.

Imports

CopyTypeQualifiers (from std.traits)
public import std.traits : CopyTypeQualifiers, PointerTarget, Unconst;
Undocumented in source.
PointerTarget (from std.traits)
public import std.traits : CopyTypeQualifiers, PointerTarget, Unconst;
Undocumented in source.
Unconst (from std.traits)
public import std.traits : CopyTypeQualifiers, PointerTarget, Unconst;
Undocumented in source.

Examples

static class Foo{
	ControlBlock!int c;
}

static assert(is(
	IntrusiveControlBlock!(Foo) == ControlBlock!int
));
static assert(is(
	IntrusiveControlBlock!(const Foo) == const ControlBlock!int
));
static assert(is(
	IntrusiveControlBlock!(shared Foo) == shared ControlBlock!int
));
static assert(is(
	IntrusiveControlBlock!(const shared Foo) == const shared ControlBlock!int
));
static assert(is(
	IntrusiveControlBlock!(immutable Foo) == immutable ControlBlock!int
));



static class Bar{
	shared ControlBlock!int c;
}

static assert(is(
	IntrusiveControlBlock!(Bar) == shared ControlBlock!int
));
static assert(is(
	IntrusiveControlBlock!(const Bar) == const shared ControlBlock!int
));
static assert(is(
	IntrusiveControlBlock!(shared Bar) == shared ControlBlock!int
));
static assert(is(
	IntrusiveControlBlock!(const shared Bar) == const shared ControlBlock!int
));
static assert(is(
	IntrusiveControlBlock!(immutable Bar) == immutable ControlBlock!int
));



static assert(is(
	IntrusiveControlBlock!(long) == void
));

Meta