Compose

compose a list of templates into a single template

Members

Aliases

Compose
alias Compose(Args...) = T!(U!(Args))
Undocumented in source.
Compose
alias Compose = Templates[0]
Undocumented in source.
T
alias T = Templates[0]
Undocumented in source.
U
alias U = Compose!(Templates[1..$])
Undocumented in source.

Examples

import std.range: ElementType;

alias ArrayOf (T) = T[];
alias Const (T) = const(T);

alias C0 = Compose!(ElementType, ArrayOf);
alias C1 = Compose!(ArrayOf, ElementType);
alias C2 = Compose!(ElementType, Const, C0);
alias C3 = Compose!(ArrayOf, Unqual, C2);

alias T = int[5];

static assert (is (C0!T == int[5]));
static assert (is (C1!T == int[]));
static assert (is (C2!T == const(int)));
static assert (is (C3!T == int[]));

Meta