Re: Why is `Appender._data` a pointer to its `Data`-store?

2020-10-17 Thread Steven Schveighoffer via Digitalmars-d-learn
On 10/17/20 12:00 AM, Paul Backus wrote: On Saturday, 17 October 2020 at 00:06:31 UTC, Steven Schveighoffer wrote: Appender is ref counted IIRC. It's not; it uses the GC. Oh yeah. In fact, it was me who did that (in 2010!). My point should have been that the appender is a pImpl to avoid

Re: Why is `Appender._data` a pointer to its `Data`-store?

2020-10-16 Thread Paul Backus via Digitalmars-d-learn
On Saturday, 17 October 2020 at 00:06:31 UTC, Steven Schveighoffer wrote: Appender is ref counted IIRC. -Steve It's not; it uses the GC.

Re: Why is `Appender._data` a pointer to its `Data`-store?

2020-10-16 Thread Steven Schveighoffer via Digitalmars-d-learn
On 10/16/20 5:40 PM, Per Nordlöw wrote: Why is `Appender`'s store `Data` put directly as     `private Data* _data;` instead of     `private Data _data;` ? Removing the pointer indirection would give better locality. If it's about optimizing for empty `Appender`s then a `Appender*` should

Why is `Appender._data` a pointer to its `Data`-store?

2020-10-16 Thread Per Nordlöw via Digitalmars-d-learn
Why is `Appender`'s store `Data` put directly as `private Data* _data;` instead of `private Data _data;` ? Removing the pointer indirection would give better locality. If it's about optimizing for empty `Appender`s then a `Appender*` should be used in those cases instead.