>From: "Beman Dawes" <[EMAIL PROTECTED]> > My patience has been exhausted. The folks that care about configuring > lexical_cast for GCC 2.95.3 with the SGI library need come forward > immediately and tell us how to deal with this, or 1.30.0 will ship as is.
I've applied John Maddock's suggestion to my local copy of the version in CVS, and ran some tests. Preliminary results are good, and are listed at the end, here. I've tested it on Intel C++ 7.0, MSVC 6, and g++ 3.2 (MinGW). Could somebody test the attached files on g++ 2.95.x? Genny? There are also some other changes, and I list them below. The current version in the CVS is very restrictive with wide character support, meaning you can't use it with wide characters on platforms that would otherwise be able to handle it. This includes Intel C++ 7.0 (on Windows) and MSVC 6. The restriction was done to remedy the failing regression tests. However, with John's suggestion, you get a pass _and_ wide character support for those platforms that can handle it, regardless of whether they have intrinsic wchar_t. The changes are ----------------------- - Changed "#include <boost/type_traits.hpp>" to "#include <boost/type_traits/is_pointer.hpp>", as it's the only trait used. This removes a lot of includes, and therefore dependencies with the type traits. Kevlin has agreed to this suggestion. - Removed duplicate tests. Since tests for "const char *" and "char *" for source were merged to just using string literal for source, some tests ended up as duplicates. These duplicates have been removed, bringing the number of tests down from 171 to 137. This is also agreed to by Kevlin. - With wide character support in lexical_cast enabled for MSVC 6, three tests (of 137) fail. These are omitted for that compiler version, using BOOST_WORKAROUND and BOOST_TESTED_AT. They failing tests are related to that wchar_t is a typedef for unsigned short on MSVC 6. They are: BOOST_CHECK_THROW(lexical_cast<wchar_t>(123), boost::bad_lexical_cast); BOOST_CHECK_THROW(lexical_cast<wchar_t>(L"Test"), boost::bad_lexical_cast); BOOST_CHECK_THROW(lexical_cast<wchar_t>(std::wstring(L"Test")), boost::bad_lexical_cast); Test results for the attached files -------------------------------------------- Intel C++ 7.0 (strict mode, intrinsic wchar_t enabled) - 137/137 passes MSVC 6 (no intrinsic wchar_t) - 134/137 passes (3/137 omitted, the ones above, or they would fail) g++ 3.2 (MinGW) (Not proper wide character support) - 82/137 (the rest omitted by the wide character disabling) As mentioned, with the current version in CVS, Intel C++ 7.0 and MSVC 6 only gets pass on about half of total tests, since wide character support is disabled in lexical_cast for them, even though, as shown above, they handle it very well. However, not at least, it's a question of whether this version fares better on g++ 2.95.x. Regards, Terje
lexical_cast_test.cpp
Description: Binary data
lexical_cast.hpp
Description: Binary data
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost