Challenge: write a reference counted slice that works as much as possible like a built-in slice

Tejas notrealemail at gmail.com
Tue Dec 14 12:14:52 UTC 2021


On Thursday, 11 November 2021 at 09:24:17 UTC, Atila Neves wrote:
> On Wednesday, 10 November 2021 at 13:52:26 UTC, deadalnix wrote:
>> On Tuesday, 9 November 2021 at 18:33:01 UTC, Atila Neves wrote:
>>> I think that C++'s greatest gift to the world was the 
>>> destructor. We have those too! Let's use them.
>>>
>>
>> Indeed, but I have unfortunate news. We broke the gift. In D, 
>> object can be destroyed without being constructed first.
>>
>> Consider: https://godbolt.org/z/EdW75jWGn
>>
>> This is the first problem we need to fix here, if we don't 
>> want to have to plaster our code with runtime checks.
>
> `@disable this();`, but you knew that. It's true that requiring 
> a programmer to do something to prevent bugs is a terrible 
> idea. Sigh.

Sorry for reviving this thread, was just sifting through...
The following code also outputs `dtor!`, unfortunately :(

```d

import std.stdio:writeln;

struct S{
	@disable this();
	~this(){
		writeln("dtor!");
	}
}	

void main(){
	S s = void;
}

```

Compiler :
LDC - the LLVM D compiler (1.25.0):
   based on DMD v2.095.1 and LLVM 11.1.0


More information about the Digitalmars-d mailing list