$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Peter Dimov (pdimov_at_[hidden])
Date: 2002-11-18 07:49:35
From: "Robert Ramey" <ramey_at_[hidden]>
> From: "Jeff Garland"
>
> >> In general, libary code should make no presumptions as to the language
> >> of the user. That means no embedded messages.
>
> >Yes, we need to provide locale indexed message strings. No debate on
that.
> >Sounds like another requirement for boost::exception.
>
> >In my view it [boost::exception] needs to be enhanced to support
developers needs.
>
> OUCH - that's totally the wrong conclusion. so now inside a library you
want
> to have the messages coded in english, spanish, german, quichua, etc each
> in their respectiv character sets? oh and unicode too? That job would
never end
> and be pointless besides.
Mostly agreed, however...
> Take the string out by and use the enums as keys.
... strings make much better keys than enums (or other integral values).
It's easy(-ier) to make strings unique by using prefixes, or by using the
C++ identifier that corresponds to the enum value. Integral constants
inevitably lead to collisions unless managed by some central authority.
In a perfect world std::exception::what() would be guaranteed to be unique,
and its possible values would be dutifully documented by derived class
authors, so I can just pass the result of what() to a message table. The C++
Standard regrettably failed to address this point... to be fair, it's
terribly easy to overlook when everyone speaks English.