https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78710

--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Nicolai Josuttis from comment #0)
> stoi("hello") currently throws an exception where what() only outputs "stoi"
> (nothing else).

The type of the exception is significant too. It can either throw
std::invalid_argument("stoi") or std::out_of_range("stoi").


> Some component (either __stoa() or __throw_invalid_argument())
> should extend the message at least a bit.
> E.g. __stoa() might call
>        std::__throw_invalid_argument("invalid argument for " + __name)

This makes it (very slightly) more likely to throw std::bad_alloc than to throw
what we actually want to throw. It's probably a reasonable trade-off to get a
better what() message though.

Reply via email to