On 1/30/2014 3:18 PM, Antony Polukhin wrote:
2014-01-30 Edward Diener
On 1/30/2014 3:14 AM, Antony Polukhin wrote:
2014-01-30 Edward Diener
On 1/30/2014 12:24 AM, Antony Polukhin wrote:
Hi,
Some of the tests for Boost.LexicalCast fail on any MSVC compiler. Unfortunately currently I have no access to Windows.
Could someone please investigate the failures and tell me were to search the bug?
From where are the lexical_cast tests run in modular-boost ?
boost/libs/conversion/test/
I assume this is in the develop branch tests. Running the tests on my machine, with msvc-12.0 I see two failures.
First is:
lexical_cast_loopback_test.cpp(55): error in "test_round_conversion_double": check min_ == lexical_cast<T>(min_s) failed lexical_cast_loopback_test.cpp(55): error in "test_round_conversion_long_double": check min_ == lexical_cast<T>(min_s) failed
This looks like the roundtrip conversion with double and long double is not accurate enough.
It's a known and ancient error on MSVC.
Second is:
lexical_cast_containers_test.cpp C:\Programming\VersionControl\modular-boost\boost/intrusive/ detail/has_member_function_callable_with.hpp(200) : error C2228: left of '.select_on_container_copy_construction' must have class/struct/union type is 'boost::move_detail::add_rvalue_reference<U>::type'
C:\Programming\VersionControl\modular-boost\boost/intrusive/ detail/has_member_function_callable_with.hpp(276) : see reference to class template instantiation 'boost::container::container_ detail::has_member_function_callable_with_select_on_ container_copy_construction_impl
' being compiled with [ Fun=std::allocator<char> ] C:\Programming\VersionControl\modular-boost\boost/container/allocator_traits.hpp(262) : see reference to class template instantiation 'boost::container::container_detail::has_member_function_ callable_with_select_on_container_copy_construction
' being compiled with [ Alloc=std::allocator<char> ] C:\Programming\VersionControl\modular-boost\boost/container/string.hpp(76) : see reference to class template instantiation 'boost::container::allocator_traits<Allocator>' being compiled with [ Allocator=std::allocator<char> ]
C:\Programming\VersionControl\modular-boost\boost/container/string.hpp(473) : see reference to class template instantiation 'boost::container::container_detail::basic_string_base<Allocator>' being compiled with [ Allocator=std::allocator<char> ] lexical_cast_containers_test.cpp(35) : see reference to class template instantiation 'boost::container::basic_ string
' being compiled It looks like 'boost::move_detail::declval<F>()' is not resolving to anything but I will let you figure this out.
It's a Boost.Container library issue. I think maintainer knows about it: that issue sometimes appear in develop branch, and always get fixed in a few weeks.
Actually with the latest 'develop' change in 'intrusive' the second error no longer ococurs.
One thing I noticed. The tester must run 'b2 headers' after getting the conversion 'develop' branch and before running the tests. This is because of the hard link issue I have brought up a number of times on this mailing list.
Yep, that annoys sometimes.
Thanks a lot for helping! But regression tests still report a lot of errors on MSVC: http://www.boost.org/development/tests/develop/developer/conversion.html Could you please run same tests using Boost.Test from 'develop' branch? I think now that errors came from Boost.Test library.
I will try that and report back.