Arrays of structs

BBasile via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Aug 27 05:35:40 PDT 2015


On Thursday, 27 August 2015 at 11:45:14 UTC, anonymous wrote:
> On Thursday 27 August 2015 13:15, BBasile wrote:
>
>> https://github.com/BBasile/iz/blob/master/import/iz/types.d#L125 https://github.com/BBasile/iz/blob/master/import/iz/types.d#L150 https://github.com/BBasile/iz/blob/master/import/iz/types.d#L191
>
> Your use of @trusted is wrong and dangerous. @trusted functions 
> are supposed to be memory-safe, but you're marking unsafe 
> functions with it.
>
> Things like a @trusted `free` [1] are just plain wrong. `free` 
> isn't memory- safe.
>
> The problems with @trusted templates can be more subtle. Even 
> if the template body itself doesn't do anything unsafe, the 
> template arguments are being trusted, too. So if the template 
> ever calls any code from the arguments (including constructors, 
> destructors, postblits, ...), then it cannot be marked @trusted.
>
>
> [1] 
> https://github.com/BBasile/iz/blob/master/import/iz/types.d#L112

the pointer is checked before the call. Yes it can be dangling 
but free goes in pair with the newPtr funct. I plan to do better 
when Andrei's allocators will be released:
https://github.com/BBasile/phobos/blob/showcase-construct/std/experimental/allocator/showcase.d#L105

Anyway. I cheat a bit with attributes but as long as it's only 
for me...I know this kinds of functions are not phobos-level.


More information about the Digitalmars-d-learn mailing list