On Mon, Sep 5, 2016 at 11:59 AM, Andrea Fontana via Digitalmars-d < digitalmars-d@puremagic.com> wrote:
> I asked this some time (years?) ago. Time for a second try :) > > Consider this: > > --- > > T simple(T)() { return T.init; } > > > void main() > { > int test = simple!int(); // it compiles > int test2 = simple(); // it doesn't > } > > --- > > Is there any chance to implement this kind of deduction? > Please notice that it doesn't break any existing code, I guess. > > For example using my json wrapper [1] this sounds a bit pedantic: > > ---- > user.name = json.get!string("info/name"); > user.age = json.get!int("info/age"); > ---- > > If return type deduction could be implemented it would be: > > ---- > user.name = json.get("info/name"); > user.age = json.get("info/age"); > ---- > > [1] https://code.dlang.org/packages/jsonwrap > > Andrea > user.name = json.get!(info.name); or user.name = json!(info.name); possible right now. No language changes. Shorter. No strings. compile time type verification. limitation: can't do runtime loading of unknown json structure (but then neither does your proposal). R