[Boost-bugs] [Boost C++ Libraries] #6462: lexical_cast fails on Linux with Sun CC

Subject: [Boost-bugs] [Boost C++ Libraries] #6462: lexical_cast fails on Linux with Sun CC
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2012-01-29 11:26:20


#6462: lexical_cast fails on Linux with Sun CC
-------------------------------------+--------------------------------------
 Reporter: johnmaddock | Owner: nasonov
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: lexical_cast
  Version: Boost Development Trunk | Severity: Problem
 Keywords: |
-------------------------------------+--------------------------------------
 Lexical cast fails to build with sun's compiler on Linux:

 {{{
 sun.compile.c++
 /home/john/bin/boost/bin.v2/libs/numeric/conversion/test/bounds_test.test/sun-12.1/debug
 /stdlib-sun-stlport/bounds_test.o
 "../../../../boost/test/tree/test_case_counter.hpp", line 46: Warning:
 boost::unit_test::test_case_counter::visit hides the virtual function
 boost::unit_test::test_tree_visitor::visit(const
 boost::unit_test::test_unit&).
 "../../../../boost/test/impl/framework.ipp", line 200: Warning:
 boost::unit_test::ut_detail::name_filter::visit hides the virtual function
 boost::unit_test::test_tree_visitor::visit(const
 boost::unit_test::test_unit&).
 "../../../../boost/test/impl/framework.ipp", line 229: Warning:
 boost::unit_test::ut_detail::label_filter::visit hides the virtual
 function boost::unit_test::test_tree_visitor::visit(const
 boost::unit_test::test_case&).
 "../../../../boost/test/impl/framework.ipp", line 258: Warning:
 boost::unit_test::ut_detail::change_status::visit hides the virtual
 function boost::unit_test::test_tree_visitor::visit(const
 boost::unit_test::test_case&).
 "../../../../boost/test/impl/framework.ipp", line 314: Warning:
 boost::unit_test::ut_detail::remove_disabled::visit hides the virtual
 function boost::unit_test::test_tree_visitor::visit(const
 boost::unit_test::test_case&).
 "../../../../boost/test/impl/framework.ipp", line 477: Warning:
 boost::unit_test::framework_impl::visit hides the virtual function
 boost::unit_test::test_tree_visitor::visit(const
 boost::unit_test::test_unit&).
 "../../../../boost/test/impl/framework.ipp", line 601: Warning:
 collect_disabled::visit hides the virtual function
 boost::unit_test::test_tree_visitor::visit(const
 boost::unit_test::test_case&).
 "../../../../boost/test/impl/framework.ipp", line 690: Warning:
 apply_decorators::visit hides the virtual function
 boost::unit_test::test_tree_visitor::visit(const
 boost::unit_test::test_case&).
 "../../../../boost/test/impl/results_collector.ipp", line 202: Warning:
 boost::unit_test::results_collect_helper::visit hides the virtual function
 boost::unit_test::test_tree_visitor::visit(const
 boost::unit_test::test_unit&).
 "../../../../boost/test/impl/results_reporter.ipp", line 90:
 Warning:::results_reporter_impl::visit hides the virtual function
 boost::unit_test::test_tree_visitor::visit(const
 boost::unit_test::test_unit&).
 "../../../../boost/test/impl/unit_test_main.ipp", line 73: Warning:
 boost::unit_test::ut_detail::test_tree_reporter::visit hides the virtual
 function boost::unit_test::test_tree_visitor::visit(const
 boost::unit_test::test_unit&).
 "../../../../boost/lexical_cast.hpp", line 1845: Error: Ambiguous partial
 specialization for boost::detail::stream_char<std::string>,
 boost::detail::stream_char<boost::container::basic_string<boost::detail::CharT,
 boost::detail::Traits, boost::detail::Alloc>> and
 boost::detail::stream_char<std::basic_string<boost::detail::CharT,
 boost::detail::Traits, boost::detail::Alloc>>.
 "../../../../boost/lexical_cast.hpp", line 2060: Where: While
 instantiating "static boost::detail::lexical_cast_do_cast<long,
 std::string>::lexical_cast_impl(const std::string &)".
 "../../../../boost/lexical_cast.hpp", line 2060: Where: Instantiated
 from non-template code.
 "../../../../boost/lexical_cast.hpp", line 1846: Error: Ambiguous partial
 specialization for boost::detail::stream_char<std::string>,
 boost::detail::stream_char<boost::container::basic_string<boost::detail::CharT,
 boost::detail::Traits, boost::detail::Alloc>> and
 boost::detail::stream_char<std::basic_string<boost::detail::CharT,
 boost::detail::Traits, boost::detail::Alloc>>.
 "../../../../boost/lexical_cast.hpp", line 2060: Where: While
 instantiating "static boost::detail::lexical_cast_do_cast<long,
 std::string>::lexical_cast_impl(const std::string &)".
 "../../../../boost/lexical_cast.hpp", line 2060: Where: Instantiated
 from non-template code.
 "../../../../boost/lexical_cast.hpp", line 1854: Error: Ambiguous partial
 specialization for boost::detail::deduce_char_traits<char, long,
 std::string>, boost::detail::deduce_char_traits<boost::detail::CharT,
 boost::detail::Target,
 boost::container::basic_string<boost::detail::CharT,
 boost::detail::Traits, boost::detail::Alloc>> and
 boost::detail::deduce_char_traits<boost::detail::CharT,
 boost::detail::Target, std::basic_string<boost::detail::CharT,
 boost::detail::Traits, boost::detail::Alloc>>.
 "../../../../boost/lexical_cast.hpp", line 2060: Where: While
 instantiating "static boost::detail::lexical_cast_do_cast<long,
 std::string>::lexical_cast_impl(const std::string &)".
 "../../../../boost/lexical_cast.hpp", line 2060: Where: Instantiated
 from non-template code.
 "../../../../boost/lexical_cast.hpp", line 1854: Error: Ambiguous partial
 specialization for boost::detail::deduce_char_traits<char, long,
 std::string>, boost::detail::deduce_char_traits<boost::detail::CharT,
 boost::detail::Target,
 boost::container::basic_string<boost::detail::CharT,
 boost::detail::Traits, boost::detail::Alloc>> and
 boost::detail::deduce_char_traits<boost::detail::CharT,
 boost::detail::Target, std::basic_string<boost::detail::CharT,
 boost::detail::Traits, boost::detail::Alloc>>.
 "../../../../boost/lexical_cast.hpp", line 2060: Where: While
 instantiating "static boost::detail::lexical_cast_do_cast<long,
 std::string>::lexical_cast_impl(const std::string &)".
 "../../../../boost/lexical_cast.hpp", line 2060: Where: Instantiated
 from non-template code.
 "../../../../boost/lexical_cast.hpp", line 1878: Error: Ambiguous partial
 specialization for boost::detail::is_stdstring<std::string>,
 boost::detail::is_stdstring<boost::container::basic_string<boost::detail::CharT,
 boost::detail::Traits, boost::detail::Alloc>> and
 boost::detail::is_stdstring<std::basic_string<boost::detail::CharT,
 boost::detail::Traits, boost::detail::Alloc>>.
 "../../../../boost/lexical_cast.hpp", line 2060: Where: While
 instantiating "static boost::detail::lexical_cast_do_cast<long,
 std::string>::lexical_cast_impl(const std::string &)".
 "../../../../boost/lexical_cast.hpp", line 2060: Where: Instantiated
 from non-template code.
 5 Error(s) and 11 Warning(s) detected.


 }}}

 For reasons I don't understand it can't cope with partial specializations
 for both std::basic_string and boost::container::basic_string. Commenting
 out the latter fixes the issue BTW (there are quite a few traits class
 specialisations that need to be commented out though!).

 Not sure if this is a general STLPort issue (don't see why it should be),
 or a specific compiler issue.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/6462>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:08 UTC