On Sunday, 2 February 2014 at 17:47:21 UTC, Andrej Mitrovic wrote:
On Sunday, 2 February 2014 at 17:40:47 UTC, TheFlyingFiddle wrote:
Why is std.array litered with @trusted delegates?

IIRC these were added in the last few releases to make code CTFE-able or to allow pure code to call such functions. A lot of array/string-processing code wasn't usable from CTFE/pure, this was one workaround to the problem.

Pretty sure @trusted only affect the use of @safe and never makes CTFE work.

TheFlyingFiddle, the question is about this chunk of code:

    _data.arr = return _data.arr.ptr[0 .. 0];

Does this code run the risk of corrupting memory? The purpose of @trusted is to allow code which has been reviewed to be safe to be used in @safe code. It can do everything @system code can, but should be reserved for code that doesn't rely on the caller to provide proper data.

Since the compiler can't validate @system code to be safe, it relies on a human to tell it what is safe, this is where @trusted comes in.

Reply via email to