On Wednesday, August 29, 2012 04:40:17 anonymous wrote: > On Wednesday, 29 August 2012 at 02:07:19 UTC, Nick Sabalausky > > wrote: > > On Wed, 29 Aug 2012 03:16:20 +0200 > > > > "Tommi" <tommitiss...@hotmail.com> wrote: > >> On Wednesday, 29 August 2012 at 00:34:02 UTC, cal wrote: > >> > On Wednesday, 29 August 2012 at 00:21:29 UTC, Tommi wrote: > >> >> In this situation, I think, the most convenient and > >> >> sensible thing to do is to make a reference to the data, > >> >> and use that reference multiple times. We could make a > >> >> pointer, but then we'd be stuck with the nasty syntax of > >> > > >> >> dereferencing: > >> > This works currently: > >> > > >> > struct Test > >> > { > >> > > >> > void foo() const > >> > { > >> > > >> > writeln("FOO"); > >> > > >> > } > >> > > >> > } > >> > > >> > void main() > >> > { > >> > > >> > immutable(Test)* ptr = new immutable(Test); > >> > ptr.foo(); > >> > > >> > } > >> > >> Now, that's a surprise for someone coming from C++. But even > >> though ptr looks like a reference variable in your example, it > > > >> doesn't look like it at all in this example: > > I've been primarily a D guy for years, and even I'm surprised > > by that! > > O_O > > You didn't know that the dot operator does dereference? That's > quite a big one to miss for years.
Yeah. I'm a bit confused about what's so suprising about that code. - Jonathan M Davis