OK, here's chapter and verse on how the config macros are supposed to work:
BOOST_NO_STRINGSTREAM: implies that std::stringstream is not available, when not defined does not imply that new style (or wide character) streams are available. BOOST_NO_INTRINSIC_WCHAR_T: whcar_t is either not defined, or is a typedef, if it's typedef we can still use wide character streams - check for BOOST_NO_CWCHAR to see if whar_t is present or not (and include cwchar in case it's a typedef). BOOST_NO_STD_LOCALE: defined if there is no std::locale and hence no new style streams. So I think the initial check should be: #if defined(BOOST_NO_STRINGSTREAM) || \ defined(BOOST_NO_STD_WSTRING) || \ defined(BOOST_NO_STD_LOCALE) || \ defined(BOOST_NO_CWCHAR) # define DISABLE_WIDE_CHAR_SUPPORT #endif #ifdef BOOST_NO_INTRINSIC_WCHAR_T # include <cwchar> #endif and then at the end we need: #if defined(BOOST_NO_STRINGSTREAM) std::strstream stream; #elif defined(BOOST_NO_STD_LOCALE) std::stringstream stream; #else std::basic_stringstream<char_type> stream; #endif I don't have gcc 2.95 available to test with though: and frankly this may be too big a change at this stage, hope this helps though... John. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost