Behaviour of alias this changed

H. S. Teoh hsteoh at quickfur.ath.cx
Tue May 8 10:57:20 PDT 2012


On Tue, May 08, 2012 at 01:52:14PM -0400, Jonathan M Davis wrote:
> On Tuesday, May 08, 2012 10:30:53 H. S. Teoh wrote:
> > On Tue, May 08, 2012 at 10:15:00AM -0700, Ali Çehreli wrote:
> > > On 05/08/2012 10:11 AM, H. S. Teoh wrote:
> > > >I have some code along these lines:
> > > > struct S {
> > > > 
> > > > short[4] data;
> > > > alias this data;
> > > > 
> > > > string toString() { ... }
> > > > 
> > > > }
> > > > ...
> > > > S s;
> > > > writeln(to!string(s));
[...]
> > I tried that, it didn't help. Declaring string toString() const
> > {...} still has data.toString being called instead of S.toString.
> 
> There's also @safe, pure, and nothrow. As I understand it, toString
> will eventually need to have all 4 of those attributes. pure doesn't
> work very well for toString yet though, since most of the
> string-related conversion functions can't be pure yet due to impure
> low level constructs that they use.
[...]

Yes, it would be nice to finally make toString const @safe pure and
nothrow.

But the question still stands: what to do with the different behaviour
of alias this in git dmd?


T

-- 
Famous last words: I wonder what will happen if I do *this*...


More information about the Digitalmars-d mailing list