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