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