On Saturday, 23 March 2013 at 17:08:27 UTC, dsmith 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;
}

for a start, you have a foreach sitting in a struct declaration, not in any constructor or method.

I think what you mean is:

struct S(T...) {
    T args
    string arg_str;

    this(T args) {
        foreach(i; args)
            arg_str ~ to!string(i);
    }
}

if you want the arg_str to be updated every time args are changed, you'll need to introduce a method (or property) for this.

Reply via email to