From: "William E. Kempf" <[EMAIL PROTECTED]> > > Peter Dimov said: > > From: "William E. Kempf" <[EMAIL PROTECTED]> > >> In fact, > >> in most cases they are user supplied, instead of implementation > >> supplied. > > > > User supplied what() strings? In most cases? > > Every standard exception from logic_error or domain_error down are > constructable only through a constructor that takes a string and sets the > value to be returned by what(). (User exceptions derived from these are > obviously open to not follow this lead.)
I see, ambiguous usage of "user". Let's rephrase: in most cases the what() string is supplied by the throw point, not the catch point, right? I.e. library authors decide what to return from what(), library users do not. > > Yes, you hit the nail on the head. "Strict specification of what's > > returned from what()" is indeed what is needed. > > To elaborate on what I meant, the solution I gave required only that > what() return a unique value for which localized strings can be looked up, > while Dave's suggestion requires a much more complex specification of what > may be returned from what() (as in, specific formatting will be required > so the lookup mechanism can extract the needed data for formatting). Yes, I understand that. In both cases you need strict specification, either to build the appropriate string table, or to interpret the what() string. > >> The main problem I see with this approach is that any existing code > >> that expects what() to return a human readable (albiet unlocalized) > >> string will now be getting a string that's not easy to decipher. > > > > A string cannot be said to be human readable if it's not localized. > > Would you consider a string in Bulgarian human-readable? > > Certainly, to a Bulgarian. > > But what was meant was that I'd prefer to leave what() as is, with > non-localized but readable strings, and provide a seperate key() for use > in retrieving a localized message. I understood that, too. My point was that "non-localized but readable strings" is meaningless, unless you define what "readable" means. Readable to a Bulgarian? Readable to at least 26% of the audience? Readable to whoever we consider important? Please do understand that I'm just trying to provide some perspective here. Of course I know what the intuitive meaning of "readable but non-localized" is - English text. English-speaking countries have earned that right, WRT computers. Still, an international standard should be, well, international. There's also the additional problem that the current what(), if left as-is, does not guarantee, and often does not produce, an useful readable string, even if we accept the above "readability" definition. >From a technical point of view, it's obviously easier to just leave what() as is (i.e. of questionable utility outside of toy programs), introduce another function, and get it right this time. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost