On Saturday, 1 December 2012 at 21:33:15 UTC, js.mdnq wrote:

By full signature overloading I assuming you also the return type?


Correct.

I don't see why it is so complicated in any case since a return type can just be seen as a ref argument:

int myfunc()

is basically the same as

void myfunc(ref int returnvalue)

The compiler has to check the return type already, so effectively it's already able to perform full function overloading, but instead of allowing it, the process is designed to prevent it, which I think is an unfortunate artificial limitation.

Here's the thread, if you want to read all about it

function overload on full signature?
http://forum.dlang.org/thread/tmqkejkytuitqhnem...@forum.dlang.org

Based on how the discussion went, my guess is that the problem has more to do with how the compiler is currently structured, making it more difficult than it should be, and that the D devs don't see enough benefit for implementing full function overloading at this time.

However at least some aspects of the problem will have to be tackled when attempting to fully implement "alias this", unless it's decided to keep things very limited and disallow multiple type conversions, but since that is something that C++ can do, I suspect it will at least be considered.

--rt

Reply via email to