|
Boost : |
From: Jeff Garland (jeff_at_[hidden])
Date: 2002-11-17 18:25:55
> > Given that there is lots of existing practice that doesn't meet
> > your 'well-defined' standard, it seems that the only option is
> > to introduce a separate function.
>
> The wonderful thing about leaving what() implementation-defined is that it
> can be tightened to be well-defined for all standard exception classes
> without breaking any code, as any code that depends on particular what()
> string is already broken. :-)
Yes I suppose, but I'm certain if I were a library vendor I
would be loath to break backward compatibility with the current
versions of things when a simple addition would work.
> > Of course, typeinfo might
> > be another way, but that's broken for cross-platform
> > developments :-(
>
> typeinfo::name() isn't a good general solution, although it's a very good
> default. In particular, I'd expect
>
> char const * errno_exception::what() const throw();
>
> to return f.ex. "ENOMEM" and not "errno_exception".
Possibly, but it doesn't really matter as long as it is
unique, and the same everywhere.
Jeff
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk