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

Stanislav Blinov stanislav.blinov at gmail.com
Tue Dec 14 12:25:30 UTC 2021


On Tuesday, 14 December 2021 at 12:14:52 UTC, Tejas wrote:
> On Thursday, 11 November 2021 at 09:24:17 UTC, Atila Neves 
> wrote:

>> `@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;
> }
>
> ```


Why is this unfortunate? You void-initialize, it's on you now to 
ensure valid state, i.e. it's exactly the tongue-in-cheek 
"terrible idea" of Atila's ;)

Slap a @safe on that and it won't compile.


More information about the Digitalmars-d mailing list