On Sat, Mar 23, 2013 at 6:08 PM, dsmith <[email protected]> wrote:
> 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;
> }
S is not a type here, but a template name. The type is S!(SomeArgs).
That's what you should pass to some_function:
void some_function(Args...)(S!(Args) s)
{
s.args = [a, b, c];
string args = s.arg_str;
}