I'm against it since we can do it better in library with same efficiency and better UFCS syntax: see<div><div><a href="https://github.com/timotheecour/dtools/blob/master/dtools/util/cast_funs.d">https://github.com/timotheecour/dtools/blob/master/dtools/util/cast_funs.d</a></div>
<div><br></div><div>to test it, nothing to install, just type: rdmd --main -unittest dtools/all.d</div><div><br></div><div>here's the unittest:</div><div>----</div><div>



<font face="Menlo">
<span style="color:#009695">version</span><span style="color:#444444">(</span><span style="color:#009695">unittest</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">stdio</span><span style="color:#444444">;</span><br>

<span style="color:#444444">    </span><span style="color:#009695">int</span><span style="color:#444444"> </span><span style="color:#444444">foo</span><span style="color:#444444">(</span><span style="color:#009695">int</span><span style="color:#444444"> </span><span style="color:#444444">x</span><span style="color:#444444">)</span><span style="color:#444444">{</span><br>

<span style="color:#444444">    </span><span style="color:#444444">    </span><span style="color:#009695">return</span><span style="color:#444444"> </span><span style="color:#444444">x</span><span style="color:#444444">;</span><span style="color:#444444">    </span><br>

<span style="color:#444444">    </span><span style="color:#444444">}</span><br>
<span style="color:#444444">}</span><br>
<span style="color:#009695">unittest</span><span style="color:#444444">{</span><br>
<span style="color:#444444">    </span><span style="color:#009695">double</span><span style="color:#444444"> </span><span style="color:#444444">c</span><span style="color:#444444">;</span><br>
<span style="font-style:italic;color:#999988">//</span><span style="font-style:italic;color:#999988">    </span><span style="font-style:italic;color:#999988">auto</span><span style="font-style:italic;color:#999988"> </span><span style="font-style:italic;color:#999988">b1</span><span style="font-style:italic;color:#999988">=</span><span style="font-style:italic;color:#999988">cast</span><span style="font-style:italic;color:#999988">(</span><span style="font-style:italic;color:#999988">int</span><span style="font-style:italic;color:#999988">)</span><span style="font-style:italic;color:#999988">c</span><span style="font-style:italic;color:#999988">.</span><span style="font-style:italic;color:#999988">foo</span><span style="font-style:italic;color:#999988">;</span><span style="font-style:italic;color:#999988">/</span><span style="font-style:italic;color:#999988">/</span><span style="font-style:italic;color:#999988">means</span><span style="font-style:italic;color:#999988"> </span><span style="font-style:italic;color:#999988">cast</span><span style="font-style:italic;color:#999988">(</span><span style="font-style:italic;color:#999988">int</span><span style="font-style:italic;color:#999988">)</span><span style="font-style:italic;color:#999988">(</span><span style="font-style:italic;color:#999988">c</span><span style="font-style:italic;color:#999988">.</span><span style="font-style:italic;color:#999988">foo</span><span style="font-style:italic;color:#999988">)</span><span style="font-style:italic;color:#999988">,</span><span style="font-style:italic;color:#999988"> </span><span style="font-style:italic;color:#999988">so</span><span style="font-style:italic;color:#999988"> </span><span style="font-style:italic;color:#999988">would</span><span style="font-style:italic;color:#999988"> </span><span style="font-style:italic;color:#999988">be</span><span style="font-style:italic;color:#999988"> </span><span style="font-style:italic;color:#999988">CT</span><span style="font-style:italic;color:#999988"> </span><span style="font-style:italic;color:#999988">error</span><br>

<span style="color:#444444">    </span><span style="color:#009695">auto</span><span style="color:#444444"> </span><span style="color:#444444">b2</span><span style="color:#444444">=</span><span style="color:#444444">(</span><span style="color:#009695">cast</span><span style="color:#444444">(</span><span style="color:#009695">int</span><span style="color:#444444">)</span><span style="color:#444444">c</span><span style="color:#444444">)</span><span style="color:#444444">.</span><span style="color:#444444">foo</span><span style="color:#444444">;</span><span style="font-style:italic;color:#999988">//</span><span style="font-style:italic;color:#999988">verbose</span><span style="font-style:italic;color:#999988"> </span><span style="font-style:italic;color:#999988">syntax</span><span style="font-style:italic;color:#999988">:</span><span style="font-style:italic;color:#999988"> </span><span style="font-style:italic;color:#999988">2</span><span style="font-style:italic;color:#999988"> </span><span style="font-style:italic;color:#999988">nested</span><span style="font-style:italic;color:#999988"> </span><span style="font-style:italic;color:#999988">parenthesis</span><br>

<span style="color:#444444">    </span><span style="color:#009695">auto</span><span style="color:#444444"> </span><span style="color:#444444">b3</span><span style="color:#444444">=</span><span style="color:#444444">c</span><span style="color:#444444">.</span><span style="color:#444444">Cast</span><span style="color:#444444">!</span><span style="color:#009695">int</span><span style="color:#444444">.</span><span style="color:#444444">foo</span><span style="color:#444444">;</span><span style="font-style:italic;color:#999988">//</span><span style="font-style:italic;color:#999988">simpler</span><span style="font-style:italic;color:#999988"> </span><span style="font-style:italic;color:#999988">syntax</span><br>

<br>
<span style="color:#444444">    </span><span style="color:#009695">int</span><span style="color:#444444"> </span><span style="color:#444444">a</span><span style="color:#444444">=</span><span style="color:#f57d00">1</span><span style="color:#444444">;</span><br>

<span style="color:#444444">    </span><span style="color:#009695">auto</span><span style="color:#444444"> </span><span style="color:#444444">b</span><span style="color:#444444">=</span><span style="color:#444444">(</span><span style="color:#444444">a</span><span style="color:#444444">+</span><span style="color:#444444">a</span><span style="color:#444444">)</span><span style="color:#444444">.</span><span style="color:#444444">Cast</span><span style="color:#444444">!</span><span style="color:#009695">double</span><span style="color:#444444">;</span><span style="color:#444444">    </span><br>

<span style="color:#444444">    </span><span style="color:#009695">static</span><span style="color:#444444"> </span><span style="color:#009695">assert</span><span style="color:#444444">(</span><span style="color:#009695">is</span><span style="color:#444444">(</span><span style="color:#009695">typeof</span><span style="color:#444444">(</span><span style="color:#444444">b</span><span style="color:#444444">)</span><span style="color:#444444">=</span><span style="color:#444444">=</span><span style="color:#009695">double</span><span style="color:#444444">)</span><span style="color:#444444">)</span><span style="color:#444444">;</span><br>

<span style="color:#444444">    </span><span style="color:#009695">static</span><span style="color:#444444"> </span><span style="color:#009695">assert</span><span style="color:#444444">(</span><span style="color:#009695">is</span><span style="color:#444444">(</span><span style="color:#009695">typeof</span><span style="color:#444444">(</span><span style="color:#444444">a</span><span style="color:#444444">.</span><span style="color:#444444">Cast</span><span style="color:#444444">!</span><span style="color:#444444">Immutable</span><span style="color:#444444">)</span><span style="color:#444444">=</span><span style="color:#444444">=</span><span style="color:#009695">immutable</span><span style="color:#444444">(</span><span style="color:#009695">int</span><span style="color:#444444">)</span><span style="color:#444444">)</span><span style="color:#444444">)</span><span style="color:#444444">;</span><br>

<span style="color:#444444">    </span><span style="color:#009695">static</span><span style="color:#444444"> </span><span style="color:#009695">assert</span><span style="color:#444444">(</span><span style="color:#009695">is</span><span style="color:#444444">(</span><span style="color:#009695">typeof</span><span style="color:#444444">(</span><span style="color:#444444">a</span><span style="color:#444444">.</span><span style="color:#444444">Cast</span><span style="color:#444444">!</span><span style="color:#444444">Const</span><span style="color:#444444">)</span><span style="color:#444444">=</span><span style="color:#444444">=</span><span style="color:#009695">const</span><span style="color:#444444">(</span><span style="color:#009695">int</span><span style="color:#444444">)</span><span style="color:#444444">)</span><span style="color:#444444">)</span><span style="color:#444444">;</span><br>

<span style="color:#444444">    </span><span style="color:#009695">static</span><span style="color:#444444"> </span><span style="color:#009695">assert</span><span style="color:#444444">(</span><span style="color:#009695">is</span><span style="color:#444444">(</span><span style="color:#009695">typeof</span><span style="color:#444444">(</span><span style="color:#f57d00">0U</span><span style="color:#444444">.</span><span style="color:#444444">Cast</span><span style="color:#444444">!</span><span style="color:#444444">Signed</span><span style="color:#444444">)</span><span style="color:#444444">=</span><span style="color:#444444">=</span><span style="color:#009695">int</span><span style="color:#444444">)</span><span style="color:#444444">)</span><span style="color:#444444">;</span><br>

<span style="color:#444444">    </span><span style="color:#009695">static</span><span style="color:#444444"> </span><span style="color:#009695">assert</span><span style="color:#444444">(</span><span style="color:#009695">is</span><span style="color:#444444">(</span><span style="color:#009695">typeof</span><span style="color:#444444">(</span><span style="color:#444444">a</span><span style="color:#444444">.</span><span style="color:#444444">Cast</span><span style="color:#444444">!</span><span style="color:#444444">Unsigned</span><span style="color:#444444">)</span><span style="color:#444444">=</span><span style="color:#444444">=</span><span style="color:#009695">uint</span><span style="color:#444444">)</span><span style="color:#444444">)</span><span style="color:#444444">;</span><br>

<span style="color:#444444">    </span><span style="color:#009695">static</span><span style="color:#444444"> </span><span style="color:#009695">assert</span><span style="color:#444444">(</span><span style="color:#009695">is</span><span style="color:#444444">(</span><span style="color:#009695">typeof</span><span style="color:#444444">(</span><span style="color:#444444">a</span><span style="color:#444444">.</span><span style="color:#444444">Cast</span><span style="color:#444444">!</span><span style="color:#444444">Const</span><span style="color:#444444">)</span><span style="color:#444444">=</span><span style="color:#444444">=</span><span style="color:#009695">const</span><span style="color:#444444">(</span><span style="color:#009695">int</span><span style="color:#444444">)</span><span style="color:#444444">)</span><span style="color:#444444">)</span><span style="color:#444444">;</span><br>

<span style="color:#444444">    </span><span style="color:#009695">static</span><span style="color:#444444"> </span><span style="color:#009695">assert</span><span style="color:#444444">(</span><span style="color:#009695">is</span><span style="color:#444444">(</span><span style="color:#009695">typeof</span><span style="color:#444444">(</span><span style="color:#444444">(</span><span style="color:#444444">a</span><span style="color:#444444">+</span><span style="color:#444444">a</span><span style="color:#444444">)</span><span style="color:#444444">.</span><span style="color:#444444">Cast</span><span style="color:#444444">!</span><span style="color:#444444">Unsigned</span><span style="color:#444444">)</span><span style="color:#444444">=</span><span style="color:#444444">=</span><span style="color:#009695">uint</span><span style="color:#444444">)</span><span style="color:#444444">)</span><span style="color:#444444">;</span><br>

<span style="color:#444444">}</span></font>

</div><div><div>----</div><div><br></div><div></div><br><div class="gmail_quote">On Fri, Jun 7, 2013 at 5:43 PM, Mrzlga <span dir="ltr"><<a href="mailto:bulletproofchest@gmail.com" target="_blank">bulletproofchest@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">"doing nothing but converting unsigned->signed" is a dubious statement.<br>
<br>
They are still screwing with the range, they are not just "doing nothing but converting unsigned->signed".<br>
And 'int' says something about the outcome.<br>
<br>
So I am really asking for:<br>
<br>
cast(signed int) x;   // make them poor programmers write this, lol<br>
<br>
That's not what I actually want, but at least it shows: We're making a signed conversion, AND we're screwing with the range to make it into an int.<br>
<br>
for further thought.<br>
</blockquote></div><br></div></div>