foreach on a tuple using aliases

Steven Schveighoffer schveiguy at gmail.com
Mon Aug 6 12:13:04 UTC 2018


On 8/5/18 10:48 AM, Alex wrote:
> void main()
> {
>      Foo foo;
>      assert(isFoo!foo);
>      static struct X { int i; Foo foo; }
>      X x;
>      static foreach(i, item; typeof(x).tupleof)
>          static if(is(typeof(item) == Foo))  // line A
>              static assert(isFoo!item);      // line B
>          else
>              static assert(!isFoo!item);
> }

I did try static foreach, but it doesn't work.

The difference here is you are using typeof(x).tupleof, whereas I want 
x.tupleof.

Note that in my real code, I do more than just the static assert, I want 
to use item as a reference to the real field in x.

-Steve


More information about the Digitalmars-d-learn mailing list