| /* |
| TEST_OUTPUT: |
| ---- |
| fail_compilation/ice12727.d(16): Error: alias `ice12727.IndexTuple!(1, 0).IndexTuple` recursive alias declaration |
| fail_compilation/ice12727.d(23): Error: template instance `ice12727.IndexTuple!(1, 0)` error instantiating |
| fail_compilation/ice12727.d(27): instantiated from here: `Matrix!(float, 3)` |
| fail_compilation/ice12727.d(28): instantiated from here: `Vector!(float, 3)` |
| ---- |
| */ |
| |
| template IndexTuple(int e, int s = 0, T...) |
| { |
| static if (s == e) |
| alias IndexTuple = T; |
| else |
| alias IndexTuple = IndexTuple!(e); |
| } |
| |
| struct Matrix(T, int N = M) |
| { |
| pure decomposeLUP() |
| { |
| foreach (j; IndexTuple!(1)) {} |
| } |
| } |
| |
| alias Vector(T, int M) = Matrix!(T, M); |
| alias Vector3 = Vector!(float, 3); |