Suppose that I have an "out" parameter in a function:

    int foo(in int i, out int j)
    {
        j = /* something */;
        return /* whatever */;
    }

Is there any way to mark that out parameter as optional, i.e. so that it only gets written to/used if a corresponding parameter is passed to the function?

The goal would be to be able to write e.g.

    int i, j;
    foo(i);     // no need to worry about j
    foo(i, j);  // this time j gets written to

It would be easy to write a wrapper function,

    int foo(in int i)
    {
        int j;
        return foo(i, j);
    }

... but I'm wondering if there is a way to make the out parameter optional without doing this.

The use-case I'm thinking of is e.g. for a reporting variable that can be used to track some kind of function behaviour, but which one doesn't necessarily always want to bother measuring.

Reply via email to