How to make workable something like this: struct S (T...) { T args; string arg_str; foreach(i; args) { arg_str ~ to!string(i); } } void some_function(S s) { // here ... Error: struct S(T...) is used as a type s.args = [a, b, c]; string args = s.arg_str; }