Generality creep
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Thu Mar 28 17:04:58 UTC 2019
On 3/28/19 9:16 AM, ag0aep6g wrote:
> On 28.03.19 14:05, Andrei Alexandrescu wrote:
>> Then some ranges are not meant to be assignable.
>
> Should Phobos be compatible with those ranges?
A variety of algorithm and data structures in Phobos are relying on
assignment. Presumably a good part of them can be converted with ease to
use single assignment, but not all.
The overall message is we got bogged down on the "wrong" side of
generality - cross-cutting and nonscalable code additions to support
unprincipled and low-impact corner cases.
Part of that is we've been cagey about defining copy and assignment
semantics of ranges in a simple and comprehensive manner. It seems to me
going with these is the right thing:
* Input ranges are copyable and assignable, and have pointer semantics
(all copies refer to the same underlying position, and advancing one
advances all others).
* Forward ranges are copyable and assignable, but distinct copies refer
to distinct positions in the range such that advancing one does not
advance the others.
* We don't support other semantics.
More information about the Digitalmars-d
mailing list