Discussion Thread: DIP 1033--Implicit Conversion of Expressions to Delegates--Final Review
Paul Backus
snarwin at gmail.com
Tue Nov 24 17:12:38 UTC 2020
On Tuesday, 24 November 2020 at 09:47:33 UTC, FeepingCreature
wrote:
>
> Could DIP1033 offer something like ...
>
> inout(T) get(DG : inout(T) delegate())(DG fallback) pure { ... }
>
> Where DG would carry callsite inference about nothrow and @safe
> ness of the converted expression?
As I understand it, with DIP 1033, a call to your example `get`
function like `myNullable.get(123)` will deduce `DG` to be `int`
(as it currently would), but it will instantiate successfully
instead of failing, because `int` will now have an implicit
conversion to `inout(int) delegate`. At runtime, the argument
will be evaluated eagerly unless you explicitly wrap it in a
delegate (e.g., with `() =>`).
More information about the Digitalmars-d
mailing list