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

Paul Backus snarwin at gmail.com
Tue Dec 14 14:05:28 UTC 2021


On Tuesday, 14 December 2021 at 12:53:29 UTC, Tejas wrote:
> On Tuesday, 14 December 2021 at 12:51:23 UTC, Stanislav Blinov 
> wrote:
>> On Tuesday, 14 December 2021 at 12:41:23 UTC, Tejas wrote:
>>> On Tuesday, 14 December 2021 at 12:25:30 UTC, Stanislav 
>>> Blinov wrote:
>>
>>>> Slap a @safe on that and it won't compile.
>>>
>>> That's what I did after reading your message, with the bonus 
>>> of slapping @safe on `S.__dtor` as well ;)
>>>
>>> ```d
>>> import std.stdio:writeln;
>>>
>>> struct S{
>>> 	@disable this();
>>> 	~this()@safe/*now @safe*/{
>>> 		writeln("dtor!");
>>> 	}
>>> }	
>>>
>>> void main()@safe/* now @safe*/{
>>> 	S s = void;
>>> }
>>> ```
>>>
>>> It defeated `@safe` ;_;
>>
>> Oh, right, S doesn't have any pointers. @safe only cares about 
>> void-initializing those.
>
> Should it be posted on [bug tracker](issues.dlang.org) ?

If you can find a way to actually cause UB in @safe code, you 
should post it on the bug tracker. However, this example does not 
qualify.


More information about the Digitalmars-d mailing list