Optional extra return value? Multiple return values with auto?
ReneSac
reneduani at yahoo.com.br
Mon Jul 23 20:25:54 PDT 2012
How I can return multiple values in D, but one of them being
optional? I tried the 'out' hack to achieve multiple return
values, but it didn't accepted a default argument: it needed a
lvalue in the calling function.
In Lua, for example, one can do:
function foo(input)
-- calculations --
return result, iterations_needed
end
a, stats = foo()
or, if you are only interested in the result:
a = foo() -- the second return is automatically discarded.
Do I really have to duplicate the function, in order to achieve
this?
Also, is there some way to use auto with multiple returns? Like:
bool bar(out ulong output){ output = 0 ; return true;}
auto check = bar(auto num); // error
Right now, I need to declarate num outside the function, and thus
I can't use the auto keyword.
More information about the Digitalmars-d-learn
mailing list