mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 21:21:48 +03:00
57 lines
693 B
D
57 lines
693 B
D
|
|
|
|
template AliasSeq(T...) { alias AliasSeq = T; }
|
|
|
|
template staticMap(alias F, T...)
|
|
{
|
|
alias A = AliasSeq!();
|
|
static foreach (t; T)
|
|
A = AliasSeq!(A, F!t);
|
|
alias staticMap = A;
|
|
}
|
|
|
|
template Qual(alias T)
|
|
{
|
|
alias Qual = T;
|
|
}
|
|
|
|
void test1()
|
|
{
|
|
int x = 3;
|
|
int y = 4;
|
|
|
|
alias XY = staticMap!(Qual, x, y);
|
|
assert(XY[0] == 3);
|
|
assert(XY[1] == 4);
|
|
}
|
|
|
|
/**********************************************/
|
|
|
|
struct T
|
|
{
|
|
int k,i = 2;
|
|
}
|
|
|
|
struct S
|
|
{
|
|
int x;
|
|
T t;
|
|
alias ti = t.i;
|
|
}
|
|
|
|
void test2()
|
|
{
|
|
T t = T(1, 2);
|
|
S s;
|
|
assert(s.ti == 2);
|
|
}
|
|
|
|
/**********************************************/
|
|
|
|
int main()
|
|
{
|
|
test1();
|
|
test2();
|
|
|
|
return 0;
|
|
}
|