On Friday, 5 July 2013 at 23:04:28 UTC, Adam D. Ruppe wrote:
Maybe, but that would still be limited to a list of types. What would be ideal is if alias this or opImplicitCast existed, or implicit constructors like C++ has for function calls.... and could be a template:

T get(T)() { ...}

alias get this;

int a = v; // rewrites to v.get!(int)


Yes that would be much better.

What I always wanted to see, was full signature overloading rather than only the partial signature overloading we currently have.

eg

int get();
char get();

int a = get(); // calls int foo()
char b = get(); // calls char foo()

Technically there's no reason why this won't work. The cases where there's ambiguity are virtually identical to what we already experience with partial signature overloading. I have no idea why this has not been seen as useful in most other languages, it seems like a natural extension of the overloading concept. I think only Haskel does something like it.

--rt

Reply via email to