Article: Why Const Sucks
Jonathan M Davis
newsgroup.d at jmdavisprog.com
Tue Mar 6 18:54:23 UTC 2018
On Tuesday, March 06, 2018 10:47:36 H. S. Teoh via Digitalmars-d-announce
wrote:
> On Tue, Mar 06, 2018 at 01:31:39PM -0500, Steven Schveighoffer via
Digitalmars-d-announce wrote:
> > On 3/6/18 10:39 AM, Jonathan M Davis wrote:
> > > Yeah. If you're dealing with generic code rather than a specific
> > > range type that you know is implicitly saved when copied, you have
> > > to use save so often that it's painful, and almost no one does it.
> > > e.g.
> > >
> > > equal(lhs.save, rhs.save)
> > >
> > > or
> > >
> > > immutable result = range.save.startsWith(needle.save);
> >
> > Yep. The most frustrating thing about .save to me is that .save is
> > nearly always implemented as:
> >
> > auto save() { return this; }
> >
> > This just screams "I really meant just copying".
>
> Yeah, and also:
>
> auto save() {
> auto copy = this;
> copy.blah = blah.dup;
> return this;
> }
>
> Which just screams "I'm really just a postblit in disguise".
That's exactly what it is. It's a postblit constructor that you have to call
manually and which works for classes and dynamic arrays in addition to
structs.
- Jonathan M Davis
More information about the Digitalmars-d-announce
mailing list