On Thursday, 15 February 2024 at 03:17:11 UTC, Jonathan M Davis
wrote:
On Wednesday, February 14, 2024 7:17:15 PM MST Basile B. via
Digitalmars-d- learn wrote:
From what I remember, it was that there was no reference to
the
source. Things got blitted and you had to fix the copy, already
blitted. Was that the only issue ?
There were probably some use cases where you needed access to
both the source and the destination so that you could do
something to the source as well, but the core problem was
simply that blitting and then mutating the copy to fix it
doesn't work with const or immutable objects, since it would
violate the type system to cast away const or immutable to fix
the copy. The only way to work properly with const or immutable
is to construct the object with the changes in the first place
rather than mutating the copy after the fact.
- Jonathan M Davis
That point was raised by Teoh too, which raises another question.
Did the "old" postblit exist before the introduction of type
qualifiers ? I think to D1 obviously.
That would suggest that the introduction of type qualifiers was
not perfectly executed, i.e some aspects were not mastered,
until, years after, someone said "wait a minute, there's
something wrong".