StrictExpressionList

Sometimes we don't want to auto expand expression ExpressionLists. That can be used to pass several lists into templates without breaking their boundaries.

template StrictExpressionList (
T...
) {}

Examples

Example

1 template Test(alias T1, alias T2)
2 {
3     static assert([T1.expand] == [1, 2]);
4     static assert([T2.expand] == [3, 4]);
5     enum Test = true;
6 }
7 
8 static assert(Test!(StrictExpressionList!(1, 2), StrictExpressionList!(3, 4)));

Meta