Overloading based on attributes - is it a good idea?

Stefan Koch uplink.coder at googlemail.com
Wed May 29 13:44:22 UTC 2019


On Tuesday, 28 May 2019 at 16:08:38 UTC, Andrei Alexandrescu 
wrote:
> int fun(int) pure;
> int fun(int);
>
> pure int gun(int x)
> {
>    return fun(x);
> }
>
> This doesn't work, but on the face of it it's not ambiguous - 
> the second overload of fun() would not compile anyway.
>
> I was wondering whether allowing overloading on attributes in 
> general would be a good idea. I suspect templates and attribute 
> deduction make that difficult.

That's a problematic idea.
It means that adding an attribute on the caller can change the 
function that is called.
Which seems exceedingly brittle.
Arguing from a from a "principle of least surprise" standpoint.
This is undesirable.

-
Stefan


More information about the Digitalmars-d mailing list