On Thursday, 30 January 2025 at 01:38:07 UTC, Kyle Ingraham wrote:
Does D have a 'try' `std.conv:to` that does not throw if it fails? Something like:
```D
string input = "9";
int output;
auto parsed = input.tryTo!int(output);
```

You could try something like this:

```d
import std.typecons: Nullable, nullable;
import std.conv: to, ConvException;

Nullable!T tryTo(T, U)(U src)
{
    try
        return nullable(src.to!T);
    catch (ConvException e)
        return Nullable!T.init;
}

unittest
{
    assert("123".tryTo!int.get == 123);
    assert("hello".tryTo!int.empty);
}
```

Reply via email to