Sometimes we don't want to auto expand expression ExpressionLists. That can be used to pass several lists into templates without breaking their boundaries.
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)));
See Implementation
Sometimes we don't want to auto expand expression ExpressionLists. That can be used to pass several lists into templates without breaking their boundaries.