Nothrow front() when not empty()

anonymous via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Jan 6 06:17:51 PST 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`.


More information about the Digitalmars-d-learn mailing list