Alias IntrusiveControlBlock

Alias to ControlBlock including qualifiers contained by Type.

alias IntrusiveControlBlock(Type, bool mutable = false) = impl;

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

Example


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
));