<p>I was under the impression that alias this just was shorthand for<br>
Class Foo {<br>
int x;<br>
alias x this;<br>
}<br>
Foo foo =  new Foo<br>
foo = 9; // foo.x = 9<br>
Foo Foo = 9 // null.x =9;<br></p>
<p>Also, for opCast, doesnt that only work for going from Foo to int and not the other way around?  </p>
<p>-Mike </p>
<div class="gmail_quote">On Oct 18, 2010 3:55 PM, &quot;Steven Schveighoffer&quot; &lt;<a href="mailto:schveiguy@yahoo.com">schveiguy@yahoo.com</a>&gt; wrote:<br type="attribution">&gt; On Mon, 18 Oct 2010 15:47:40 -0400, Mike Chaten &lt;<a href="mailto:mchaten@gmail.com">mchaten@gmail.com</a>&gt; wrote:<br>
&gt; <br>&gt;&gt; In C++ it is possible to declare a class as follows<br>&gt;&gt; class Foo {<br>&gt;&gt; Foo(int x) { }<br>&gt;&gt; }<br>&gt;&gt; You can then use that constructor to implicitly convert int to Foo. E.g<br>
&gt;&gt; Foo x = 0; //equivalent to Foo(0)<br>&gt;&gt;<br>&gt;&gt; Is there a way in D to do an implicit or explicit conversion from an<br>&gt;&gt; integral type to a class?<br>&gt; <br>&gt; explicit cast == opCast<br>&gt; implicit cast == alias this<br>
&gt; <br>&gt; Look up those two features in the docs.<br>&gt; <br>&gt; -Steve<br></div>