in the doc to executeShell (etc) it says:<div><br></div><div>Returns:<div>A struct which contains the fields int status and string output. (This will most likely change to become a std.typecons.Tuple!(int,"status",string,"output") in the future, but a compiler bug currently prevents this.)</div>
<div><br></div><div>However, it works for me when i replace </div><div>----</div><div><div><span class="Apple-tab-span" style="white-space:pre">        </span>struct ProcessOutput { int status; string output; }</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>return ProcessOutput(wait(p.pid), cast(string) a.data);</div>
<div><div>----</div><div>by:</div><div><br></div><div></div></div><div>return Tuple!(int, "status", string, "output")(wait(p.pid), cast(string) a.data); </div></div><div>(and import std.typecons in header)</div>
<div><br></div><div>I'd like to change to this 2nd version sooner rather than later (now?) because:</div><div>* doing it now is ok since std.process was just upgraded so not too much code will be broken if we do it right away</div>
<div>* in current situation, ReturnType!executeShell !is <span style="font-family:Menlo;color:rgb(68,68,68)">ReturnType</span><span style="font-family:Menlo;color:rgb(68,68,68)">!</span><span style="font-family:Menlo;color:rgb(68,68,68)">execute which sounds silly</span></div>
<div><br></div><div>For example I wanted to add a forwarding function usable as:</div><div>"command".executeShell.outputThrows.writeln;</div><div>but it will work with executeShell and not execute (unless we make it templated), see below:</div>
<div><br></div>



<font face="Menlo">
<span style="color:#009695">string</span><span style="color:#444444"> </span><span style="color:#444444">outputThrows</span><span style="color:#444444">(</span><span style="color:#444444">ReturnType</span><span style="color:#444444">!</span><span style="color:#444444">executeShell</span><span style="color:#444444"> </span><span style="color:#444444">ret</span><span style="color:#444444">)</span><span style="color:#444444">{</span><br>

<span style="color:#444444">    </span><span style="color:#009695">import</span><span style="color:#444444"> </span><span style="color:#444444">std</span><span style="color:#444444">.</span><span style="color:#444444">exception</span><span style="color:#444444">;</span><br>

<span style="color:#444444">    </span><span style="color:#444444">enforce</span><span style="color:#444444">(</span><span style="color:#444444">!</span><span style="color:#444444">ret</span><span style="color:#444444">.</span><span style="color:#444444">status</span><span style="color:#444444">,</span><span style="color:#444444">ret</span><span style="color:#444444">.</span><span style="color:#444444">output</span><span style="color:#444444">)</span><span style="color:#444444">;</span><br>

<span style="color:#444444">    </span><span style="color:#009695">return</span><span style="color:#444444"> </span><span style="color:#444444">ret</span><span style="color:#444444">.</span><span style="color:#444444">output</span><span style="color:#444444">;</span><br>
</font><div><span style="color:rgb(68,68,68);font-family:Menlo">}</span> </div><div><b style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)">Returns:</b><br style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)">
<span style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)">A </span><span class="d_inlinecode" style="font-family:Consolas,'Bitstream Vera Sans Mono','Andale Mono',Monaco,'DejaVu Sans Mono','Lucida Console',monospace;font-weight:bold;color:rgb(31,37,43);font-size:0px;background-color:rgb(31,37,43)">struct</span><span style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)"> which contains the fields </span><span class="d_inlinecode" style="font-family:Consolas,'Bitstream Vera Sans Mono','Andale Mono',Monaco,'DejaVu Sans Mono','Lucida Console',monospace;font-weight:bold;color:rgb(31,37,43);font-size:0px;background-color:rgb(31,37,43)">int status</span><span style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)"> and </span><span class="d_inlinecode" style="font-family:Consolas,'Bitstream Vera Sans Mono','Andale Mono',Monaco,'DejaVu Sans Mono','Lucida Console',monospace;font-weight:bold;color:rgb(31,37,43);font-size:0px;background-color:rgb(31,37,43)">string output</span><span style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)">. (This will most likely change to become a </span><span class="d_inlinecode" style="font-family:Consolas,'Bitstream Vera Sans Mono','Andale Mono',Monaco,'DejaVu Sans Mono','Lucida Console',monospace;font-weight:bold;color:rgb(31,37,43);font-size:0px;background-color:rgb(31,37,43)">std.typecons.Tuple!(int,"status",string,"output")</span><span style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)"> in the future, but a compiler bug currently prevents this.)</span></div>
</div><div><span style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)"><br></span></div><div><span style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)"><br>
</span></div><div><span style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)"><br></span></div><div><span style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)"><br>
</span></div>