On 10/17/2013 03:56 PM, DDD wrote:
Hi I heard that you can pass a command line argument to make D safe.
Like 0 chance of memory corruption and such. I tried looking here
http://dlang.org/dmd-linux.html but I couldn't figure it out. If it
matters I'm on windows using the latest until a new version came out
~3weeks ago

An example to complement Adam D. Ruppe's answer:

/* @system is the default */
@system void can_do_anything()
{
    int a;
    int * p = &a;
}

/* Must be @trusted to be able to call function that are safe but not marked
 * as such. */
@trusted void bridge_between_safe_and_actually_safe()
{
    safe_but_not_marked_as_such();
}

@safe void safeD_function()
{
    int a;
    // CANNOT BE COMPILED:
    // int * p = &a;

    // Can call @trusted from @safe
    bridge_between_safe_and_actually_safe();
}

void safe_but_not_marked_as_such()
{}

void main()
{
    can_do_anything();
    bridge_between_safe_and_actually_safe();
    safeD_function();
}

Ali

P.S. There is also the D.learn newsgroup. ;)

Reply via email to