Deprecating this(this)

Steven Schveighoffer schveiguy at yahoo.com
Mon Apr 2 14:07:21 UTC 2018


On 4/1/18 10:34 AM, ag0aep6g wrote:
> On Sunday, 1 April 2018 at 13:37:43 UTC, Jonathan M Davis wrote:
>> One issue is that postblit constructors fundamentally don't work with 
>> const. The problem is that a postblit constructor works by copying the 
>> object and _then_ mutating it, and you can't mutate a const object.
> 
> I'm not so sure if that's fundamental. Can't we just say that the copy 
> is head-mutable at the time when the postblit function is called, and it 
> only becomes fully const after that?
> 
> The destination can't be const/immutable already, or you wouldn't be 
> able to write there anyway.

Yes, precisely what I had been arguing here: 
https://issues.dlang.org/show_bug.cgi?id=18417#c5, however 
const/immutable postblit was recently deprecated by: 
https://github.com/dlang/dmd/pull/8032

So I don't think D is going to allow const postblit any more. Maybe not 
even postblit any more.

-Steve


More information about the Digitalmars-d mailing list