Thread overview
Nothrow front() when not empty()
Jan 06, 2016
Nordlöw
Jan 06, 2016
anonymous
Jan 06, 2016
Alex Parrill
January 06, 2016
At

https://github.com/D-Programming-Language/phobos/pull/3752

it would be nice if

    return !haystack.empty && haystack.front.unaryFun!pred

was made nothrow.

Is this possible somehow?
January 06, 2016
On 06.01.2016 14:52, Nordlöw wrote:
> At
>
> https://github.com/D-Programming-Language/phobos/pull/3752
>
> it would be nice if
>
>      return !haystack.empty && haystack.front.unaryFun!pred
>
> was made nothrow.
>
> Is this possible somehow?

----
try return !haystack.empty && pred(haystack.front);
catch (Exception e) assert(false);
----

You must be 100% sure that the code cannot actually throw an Exception, of course.

Alternatively, you could change `.front` to assert instead of throwing an Exception, considering it a programmer error when `.empty` is not checked before accessing `.front`.
January 06, 2016
On Wednesday, 6 January 2016 at 14:17:51 UTC, anonymous wrote:
> try return !haystack.empty && pred(haystack.front);

Might want to use std.exception.assumeWontThrow instead

    return assumeWontThrow(!haystack.empty && pred(haystack.front));

http://dlang.org/phobos/std_exception.html#.assumeWontThrow