Small Locale Fixes #3 25-Jan-95 --------------------- X3J16/95-0025 by Nathan Myers, myersn@roguewave.com WG21/N0625 Rogue Wave Software 1. locale::name() overconstrained The member locale::name() is defined to return a reference to const string. This overconstrains implementations, which might better construct the name on demand. Therefore, I propose to change the return value to simply "string". 2. Wrong character types used. In several places in the locale specification the wrong type of character is used to instantiate a template. In particular: a. std::messages::do_open() should take a const char* argument, rather than a basic_string, because that argument represents an external environment name, not a message string. b. std::collate members should take arguments of type const charT* (where charT is the template parameter) rather than const char*. This is almost an editorial matter. 3. money_base::part::symbol non-portable The value of money_base::part::symbol is defined as equal to '$'. This character is not necessarily part of the source character set available for character constants. Therefore, I propose replacing the assigned value with something portable. My recommendation is '?', subject to approval by those who know about portable source character sets.