Alias DestructorType

Destructor type of destructors of types Types ( void function(Evoid*)@destructor_attributes ).

alias DestructorType(Types...) = typeof(&impl!());

Example

static assert(is(DestructorType!long == void function(Evoid*)pure nothrow @safe @nogc));


static struct Struct{
	~this()nothrow @system{
	}
}
static assert(is(DestructorType!Struct == void function(Evoid*)nothrow @system));


version(D_BetterC)
	static extern(C)class Class{
		~this()pure @trusted{

		}
	}
else
	static class Class{
		~this()pure @trusted{

		}
	}

static assert(is(DestructorType!Class == void function(Evoid*)pure @safe));

//multiple types:
static assert(is(DestructorType!(Class, Struct, long) == void function(Evoid*)@system));

static assert(is(
	DestructorType!(Class, DestructorType!long, DestructorType!Struct) == DestructorType!(Class, Struct, long)
));