On Friday, 8 August 2025 at 23:52:31 UTC, Brother Bill wrote:
D language supports shadowing members, where the shadowed member has same name and different type on same type.

Why is this enabled, and when should one use this advanced technique?

Overload rules are probably more fundamental then your thinking. Theres a core idea that hidden under the name "overload set".

```d
import std;
void bar(int){"int".writeln;}
void bar(float){"float".writeln;}
ref bar(bool b){
  bool bar;
}
alias foo=bar;

void foobar(alias A)(){
  A(1);
  A(13.37);
  A=true;
}
unittest{
  foobar!foo;
}
```

whats foo? unhelpfully its an "overload set"; I have not seen a good explanation for what it is.

Reply via email to