
On Mon, 24 May 2004 10:15:43 -0400, Howard Hinnant <hinnant@twcny.rr.com> wrote:
On May 23, 2004, at 5:33 AM, Gennaro Prota wrote: [...]
Since I test for BOOST_NO_STD_LOCALE before #including it may well be that <locale> is not getting included :) But why everything works with CW 9.2 instead? Can you please confirm that _MSL_NO_LOCALE is defined for version 8.3 and not for 9.2?
That is correct, for building/using the std::lib in a DLL configuration. When linking statically to the std::lib, _MSL_NO_LOCALE is not defined for either release. When _MSL_NO_LOCALE is defined, that means that facets (such as ctype) don't exist as well. In a nutshell, chapter 22 disappears, along with everything that appears in the <locale> synopsis.
I've committed a quick fix now. I'm not proud of it, but let's see if it works first. Among other things, I've simply *disabled* the wchar_t tests when BOOST_NO_STD_LOCALE is defined. I don't like this at all: it implies we have different sets of tests for different platforms and even let libraries that do not support <locale> appear better (in the regression logs) than libraries that support it with some failures. Is there any boost policy for this? Maybe I should put the wchar_t tests in a separate file and mark that one as unusable for platforms with no <locale> support? Still, for Metrowerks that would be a problem, because the library, in general, *does* support locale; it just disables it in some configurations. Genny.