On Sunday, 1 April 2018 at 22:44:45 UTC, Jonathan M Davis wrote:
Which doesn't work in @safe code and doesn't work when you have
an rvalue as you would when passing 42. Ultimately, using
pointers ultimately either requires explicitly allocating stuff
on the heap to be able to pass rvalues, or it has the same
restrictions that ref does in terms of passing rvalues. You can
certainly take that approach if you'd like, but overall, I
think that it's safe to say that using Nullable generally
causes fewer problems.
1). There's nothing wrong with @trusted.
2). Rvalue it trivially converted to lvalue on the stack using
local variable.
3). You haven't shown syntax for passing null. Pointer is
foo(null). Yours will probably be foo(nullable!int());
4). I certanly wouldn't like typing nullable(...) for each
optional parameter, I see it as a much bigger problem.