On Saturday, 30 January 2016 at 05:57:34 UTC, H. S. Teoh wrote:
A common idiom that we use is to write an attributed unittest to verify that the function itself is @safe/etc.. This way, if instantiated with safe/etc. types, the template will also be safe/etc., but if instantiated with an unsafe type, it will correspondingly be unsafe (instead of failing to compile if you wrote @safe on the template). The unittest ensures that you do not accidentally introduce un-@safe code into the template and cause *all* instantiations to become un-@safe.

        auto mySafeCode(T)(T t) { ... }

        @safe unittest
        {
                auto x = mySafeCode(safeValue);
        }


T

Seems sound. Thanks!

Reply via email to