On Sat, 19 Jan 2013, Paul Pluzhnikov wrote:
> This patch adds lightweight checks for front()/back() on empty vector.

>        front()
> -      { return *begin(); }
> +      {
> +#if __google_stl_debug_vector
> +        if (empty()) __throw_logic_error("begin() on empty vector");

Isn't the error message wrong, then?  begin() on an empty vector
is perfectly fine, isn't it?  *begin() is the problem here, so
should this say

           if (empty()) __throw_logic_error("front() on empty vector");

instead?

> +#if __google_stl_debug_vector
> +        if (empty()) __throw_logic_error("back() on empty vector");
> +#endif

In the symmetric case you're already using back(), not end().

Gerald

Reply via email to