On 2011-08-08 18:30:10 +0000, Kagamin <s...@here.lot> said:

Michel Fortin Wrote:

I recently had to use getopt. You use it like that:

        bool option;
        int counter;

        getopt(args,
                "option|o", &option,
                "counter|c", &counter);

The problem is that taking addresses of a stack variable is disabled in
SafeD, which means getopt doesn't work in SafeD, which puts SafeD in a
strange position.

const opts = getopt(args);
const option = opts.get!bool("option|o");
const counter = opts.get!int("counter|c"); // also reusable

Thanks for the tip.

That said it doesn't invalidate my complain about 'ref' and 'out' being unusable in conjunction with type tuple arguments. If you're going to write a function that forwards its parameters to another function, using a type tuple to make it generic will fail in the presence of 'ref' and 'out' parameters in the wrapped function.

--
Michel Fortin
michel.for...@michelf.com
http://michelf.com/

Reply via email to