On Thursday, 1 September 2016 at 10:50:18 UTC, Dominikus Dittes
Scherkl wrote:
On Thursday, 1 September 2016 at 10:43:50 UTC, Dominikus Dittes
Scherkl wrote:
I have never seen what benefit could be gained from having
overloads. I think they are a relict from languages without
static if.
I mean, overloads with same function signature except for the
condition. Of course if the overloads have different parameters
or return type, they may make sense. But they still uglyfy the
API, so I try to avoid them - instead I use default parameters
and template parameters what pretty much always works.
When you're specialising on type classes rather than concrete
types, you have no choice:
auto f(T)(T source) if (is(ElementType!T : int)) {...};
auto f(T)(T source) if (is(ElementType!T : Object)) {...};
There is nothing you can write in the template parameters list to
enable the same kind of specialisation.