Hi!

How to concatenate  a tuple of strings at compile time?

Appending to an enum or an immutable string in a static foreach doesn't work. (And shadowing the thing doesn't work either) a) Calling a function recursively doesn't work because I had to turn the tuple into an array which cannot be read at compile time. b)

a)
enum/immutable string connected;
static foreach(item; __traits(something))
  connected ~= item;

b)
string concat(string[] a, string b = "", index i = 0)
{
  if (s.length - 1 == index)
  {
     return b ~ a[$-1];
   } else {
     return concat(a,b[index],index+1);
   }
}
concat([__traits(something)]);

An internet search didn't reward any solution but probably I'm just missing something very trivial.
Any clues would be very appreciated. Thanks.

On a different note, what I want to achieve is to automatically generate a function call that hides the fact of a struct being initialized.

something like this:

struct X
{
  int a;
  string b;
}

class C
{
  X _x;

  this(int a, string b)
  {
    _x = X(a, b);
  }
}

Reply via email to