| // https://issues.dlang.org/show_bug.cgi?id=7851 |
| /* |
| TEST_OUTPUT: |
| --- |
| fail_compilation/fail7851.d(38): Error: need `this` for `__mem_field_0` of type `int` |
| fail_compilation/fail7851.d(38): Error: need `this` for `__mem_field_1` of type `long` |
| fail_compilation/fail7851.d(38): Error: need `this` for `__mem_field_2` of type `float` |
| --- |
| */ |
| |
| |
| template TypeTuple(TList...) |
| { |
| alias TList TypeTuple; |
| } |
| |
| struct Tuple(Specs...) |
| { |
| TypeTuple!(int, long, float) mem; |
| |
| alias Identity!(mem[0]) _0; |
| alias Identity!(mem[1]) _1; |
| alias Identity!(mem[2]) _2; |
| |
| alias mem this; |
| |
| enum length = mem.length; |
| } |
| |
| private template Identity(alias T) |
| { |
| alias T Identity; |
| } |
| |
| |
| void main() { |
| alias Tuple!(int, long, float) TL; |
| foreach (i; TL) |
| { } |
| } |