<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I made two, but not as cool as yours: <a href="http://dpaste.dzfl.pl/32536704" target="_blank">http://dpaste.dzfl.pl/32536704</a> </blockquote><div><br></div><div>I like this one :)</div><div><br></div><div>I think this part:</div>
<div><br></div><div><div>static T readArgs(T)(string[] args)</div><div>{</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>T ret;</div><div><span class="Apple-tab-span" style="white-space:pre">       </span>pragma(msg, "getopt(args"~buildGetOptArguments!(T, "ret")~");");</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span>mixin("getopt(args"~buildGetOptArguments!(T, "ret")~");");</div><div><span class="Apple-tab-span" style="white-space:pre">     </span></div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span>return ret;</div><div>}</div></div><div> </div><div><br></div><div>Could be slightly simplified somewhat. Try passing 'ret' as an alias. That way, buildGetOptArguments should be able to create the "ret" string by itself, like this:</div>
<div><br></div><div><br></div><div>private static string buildGetOptArguments(T, alias instance)()</div><div>{</div><div>    enum string instanceName = instance.stringof; // for example</div><div>...</div><div><br></div><div>
And I'd have buildGetOptArguments return the "getopt(args" ... ")" part also.</div><div>Which gives:</div><div><br></div><div><div><div>T readArgs(T)(string[] args)</div><div>{</div><div><span class="Apple-tab-span" style="white-space:pre">      </span>T ret;</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span>pragma(msg, buildGetOptArguments!(T, ret));</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>mixin(buildGetOptArguments!(T, ret)~";");</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>return ret;</div><div>}</div></div></div><div><br></div><div><br></div><div><br></div>
</div>