On Tuesday, 24 July 2012 at 03:25:55 UTC, ReneSac wrote:
How I can return multiple values in D, but one of them being optional?

One of the ways to to it is to return a tuple with your arguments, where the last item of the tuple is a Nullable of the optional element:


import std.stdio, std.typecons;

Tuple!(int, double, Nullable!int) foo(bool b) {
    if (b)
        return tuple(5, 1.5, Nullable!int(1));
    else
        return tuple(10, 2.5, Nullable!int());
}

void main() {
    writeln(foo(false)[2]); // enforcement failed
}


Bye,
bearophile

Reply via email to