On Friday, 13 February 2026 at 15:12:16 UTC, monkyyy wrote:
On Friday, 13 February 2026 at 14:56:43 UTC, user1234 wrote:
On Friday, 13 February 2026 at 14:54:44 UTC, monkyyy wrote:
Template specialization rules can apply. I think its only a bug if the order of the declarations effect behavior(which they do often)

No, order doesn't change which element of set is selected.

Not my point, specialization overrides generic cases; an empty list is less generic then a vartatic one.

```d
import std;
void f(int i:0)(){"0".writeln;}
void f(int i:3)(){"3".writeln;}
void f(int i)(){"?".writeln;}
unittest{
  static foreach(I;0..5){
    f!I;
}}
```

Id rather make different rules based off "first match", its a mess, but the rules are consistent.

ah... misunderstanding. I meant that if you declare the variadic `f` before the "no param one", the "no param one" is still selected, which illustrates that order of declaration is not part of the game.

Reply via email to