<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 5, 2016 at 11:59 AM, Andrea Fontana via Digitalmars-d <span dir="ltr"><<a href="mailto:digitalmars-d@puremagic.com" target="_blank">digitalmars-d@puremagic.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">I asked this some time (years?) ago. Time for a second try :)<br>
<br>
Consider this:<br>
<br>
---<br>
<br>
T simple(T)() { return T.init; }<br>
<br>
<br>
void main()<br>
{<br>
        int test = simple!int(); // it compiles<br>
        int test2 = simple();    // it doesn't<br>
}<br>
<br>
---<br>
<br>
Is there any chance to implement this kind of deduction?<br>
Please notice that it doesn't break any existing code, I guess.<br>
<br>
For example using my json wrapper [1] this sounds a bit pedantic:<br>
<br>
----<br>
<a href="http://user.name" rel="noreferrer" target="_blank">user.name</a> = json.get!string("info/name");<br>
user.age  = json.get!int("info/age");<br>
----<br>
<br>
If return type deduction could be implemented it would be:<br>
<br>
----<br>
<a href="http://user.name" rel="noreferrer" target="_blank">user.name</a> = json.get("info/name");<br>
user.age  = json.get("info/age");<br>
----<br>
<br>
[1] <a href="https://code.dlang.org/packages/jsonwrap" rel="noreferrer" target="_blank">https://code.dlang.org/package<wbr>s/jsonwrap</a><span class="gmail-HOEnZb"><font color="#888888"><br>
<br>
Andrea<br>
</font></span></blockquote></div><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><a href="http://user.name/" rel="noreferrer" target="_blank" style="font-size:9.6px">user.name</a><span style="font-size:9.6px"> = json.get!(<a href="http://info.name">info.name</a>);</span><br style="font-size:9.6px"></div><div class="gmail_extra"><span style="font-size:9.6px"><br></span></div><div class="gmail_extra"><span style="font-size:9.6px">or</span></div><div class="gmail_extra"><span style="font-size:9.6px"><br></span></div><div class="gmail_extra"><span style="font-size:9.6px"><a href="http://user.name">user.name</a> = json!(<a href="http://info.name">info.name</a>);</span></div><div class="gmail_extra"><span style="font-size:9.6px"><br></span></div><div class="gmail_extra"><span style="font-size:9.6px"><br></span></div><div class="gmail_extra"><span style="font-size:9.6px">possible right now. No language changes. Shorter. No strings. compile time type verification.</span></div><div class="gmail_extra"><span style="font-size:9.6px"><br></span></div><div class="gmail_extra"><span style="font-size:9.6px">limitation:</span></div><div class="gmail_extra"><span style="font-size:9.6px">can't do runtime loading of unknown json structure (but then neither does your proposal).</span></div><div class="gmail_extra"><span style="font-size:9.6px"><br></span></div><div class="gmail_extra"><span style="font-size:9.6px">R</span></div><div class="gmail_extra"><span style="font-size:9.6px"><br></span></div><div class="gmail_extra"><span style="font-size:9.6px"><br></span></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div></div>