On Wednesday, 22 February 2023 at 20:20:46 UTC, Dark Hole wrote:
```d
template Foo(T, alias T[] Array) {
    // ...
}
// ...
Bar[] arr;
Foo!(Bar, arr);
```

This is valid D, but it doesn't work. It gives error "Error: template instance `Foo!(Bar, arr)` does not match template declaration `Foo(T, alias T[] Array)`".

Of course, there is some ways to avoid this error (e.g. check Array type in if), but I don't undestand why this code doesn't compiles.

Pretty sure this is just a bug. There are a lot of edge-case bugs like this where template instantiation doesn't work the way it's supposed to.

I've submitted a bug report for this on issues.dlang.org: https://issues.dlang.org/show_bug.cgi?id=23733

Reply via email to