
I'm having a problem compiling date-time on Linux/g++4.0 on the release candidate branch. Looks like a change in the Range library has broken the string_algo interface causing the issue. This date-time code is unchanged and compiles fine under a rather old version of the CVS head. I updated and compared string algorithms/date_time in my CVS head to the 1.34 release candidate and they are the same. However, Range is radically different in my 'old' CVS head compared to my current 1.34. No telling why this hasn't broken the regression tests.... Thorsten ideas? Jeff Detailed output.... ----------------------------------------------------------------------- set -e "g++-4.0" -c -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG -DBOOST_DATE_TIME_STATIC_LINK -DBOOST_ALL_NO_LIB -g -O0 -fno-inline -Wall -ftemplate-depth-255 -I"../../../bin/boost/libs/date_time/test" -I "/home/jeff/devTools/boost_rc_1_34" -o "../../../bin/boost/libs/date_time/test/testtime_input_facet.test/gcc/debug/testtime_input_facet.o" "posix_time/testtime_input_facet.cpp" "/usr/bin/objcopy" --set-section-flags .debug_str=contents,debug "../../../bin/boost/libs/date_time/test/testtime_input_facet.test/gcc/debug/testtime_input_facet.o" ...failed gcc-C++-action ../../../bin/boost/libs/date_time/test/testtime_input_facet.test/gcc/debug/testtime_input_facet.o... ...skipped <@boost!libs!date_time!test/testtime_input_facet.test/gcc/debug>testtime_input_facet for lack of <@boost!libs!date_time!test/testtime_input_facet.test/gcc/debug>testtime_input_facet.o... gcc-C++-action ../../../bin/boost/libs/date_time/test/testtime_facet.test/gcc/debug/testtime_facet.o /home/jeff/devTools/boost_rc_1_34/boost/range/const_iterator.hpp: In instantiation of ‘boost::range_const_iterator<const char*>’: /home/jeff/devTools/boost_rc_1_34/boost/algorithm/string/replace.hpp:653: instantiated from ‘void boost::algorithm::replace_all(SequenceT&, const Range1T&, const Range2T&) [with SequenceT = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, Range1T = const char*, Range2T = std::basic_string<char, std::char_traits<char>, std::allocator<char> >]’ /home/jeff/devTools/boost_rc_1_34/boost/date_time/time_facet.hpp:255: instantiated from ‘OutItrT boost::date_time::time_facet<time_type, CharT, OutItrT>::put(OutItrT, std::ios_base&, typename boost::date_time::date_facet<typename time_type::date_type, CharT, OutItrT>::char_type, const time_type&) const [with time_type = boost::posix_time::ptime, CharT = char, OutItrT = std::ostreambuf_iterator<char, std::char_traits<char> >]’ /home/jeff/devTools/boost_rc_1_34/boost/date_time/posix_time/posix_time_io.hpp:51: instantiated from ‘std::basic_ostream<_CharT, _Traits>& boost::posix_time::operator<<(std::basic_ostream<_CharT, _Traits>&, const boost::posix_time::ptime&) [with CharT = char, TraitsT = std::char_traits<char>]’ posix_time/testtime_facet.cpp:59: instantiated from here /home/jeff/devTools/boost_rc_1_34/boost/range/const_iterator.hpp:37: error: ‘const char*’ is not a class, struct, or union type ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /home/jeff/devTools/boost_rc_1_34/boost/algorithm/string/replace.hpp: In function ‘void boost::algorithm::replace_all(SequenceT&, const Range1T&, const Range2T&) [with SequenceT = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, Range1T = const char*, Range2T = std::basic_string<char, std::char_traits<char>, std::allocator<char> >]’: /home/jeff/devTools/boost_rc_1_34/boost/date_time/time_facet.hpp:255: instantiated from ‘OutItrT boost::date_time::time_facet<time_type, CharT, OutItrT>::put(OutItrT, std::ios_base&, typename boost::date_time::date_facet<typename time_type::date_type, CharT, OutItrT>::char_type, const time_type&) const [with time_type = boost::posix_time::ptime, CharT = char, OutItrT = std::ostreambuf_iterator<char, std::char_traits<char> >]’ /home/jeff/devTools/boost_rc_1_34/boost/date_time/posix_time/posix_time_io.hpp:51: instantiated from ‘std::basic_ostream<_CharT, _Traits>& boost::posix_time::operator<<(std::basic_ostream<_CharT, _Traits>&, const boost::posix_time::ptime&) [with CharT = char, TraitsT = std::char_traits<char>]’ posix_time/testtime_facet.cpp:59: instantiated from here /home/jeff/devTools/boost_rc_1_34/boost/algorithm/string/replace.hpp:653: error: no matching function for call to ‘first_finder(const char* const&)’ /home/jeff/devTools/boost_rc_1_34/boost/algorithm/string/replace.hpp: In function ‘void boost::algorithm::replace_all(SequenceT&, const Range1T&, const Range2T&) [with SequenceT = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, Range1T = const char*, Range2T = char [1]]’: /home/jeff/devTools/boost_rc_1_34/boost/date_time/time_facet.hpp:266: instantiated from ‘OutItrT boost::date_time::time_facet<time_type, CharT, OutItrT>::put(OutItrT, std::ios_base&, typename boost::date_time::date_facet<typename time_type::date_type, CharT, OutItrT>::char_type, const time_type&) const [with time_type = boost::posix_time::ptime, CharT = char, OutItrT = std::ostreambuf_iterator<char, std::char_traits<char> >]’ /home/jeff/devTools/boost_rc_1_34/boost/date_time/posix_time/posix_time_io.hpp:51: instantiated from ‘std::basic_ostream<_CharT, _Traits>& boost::posix_time::operator<<(std::basic_ostream<_CharT, _Traits>&, const boost::posix_time::ptime&) [with CharT = char, TraitsT = std::char_traits<char>]’ posix_time/testtime_facet.cpp:59: instantiated from here /home/jeff/devTools/boost_rc_1_34/boost/algorithm/string/replace.hpp:653: error: no matching function for call to ‘first_finder(const char* const&)’ /home/jeff/devTools/boost_rc_1_34/boost/algorithm/string/erase.hpp: In function ‘void boost::algorithm::erase_all(SequenceT&, const RangeT&) [with SequenceT = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, RangeT = const char*]’: /home/jeff/devTools/boost_rc_1_34/boost/date_time/time_facet.hpp:377: instantiated from ‘OutItrT boost::date_time::time_facet<time_type, CharT, OutItrT>::put(OutItrT, std::ios_base&, typename boost::date_time::date_facet<typename time_type::date_type, CharT, OutItrT>::char_type, const time_type&) const [with time_type = boost::posix_time::ptime, CharT = char, OutItrT = std::ostreambuf_iterator<char, std::char_traits<char> >]’ /home/jeff/devTools/boost_rc_1_34/boost/date_time/posix_time/posix_time_io.hpp:51: instantiated from ‘std::basic_ostream<_CharT, _Traits>& boost::posix_time::operator<<(std::basic_ostream<_CharT, _Traits>&, const boost::posix_time::ptime&) [with CharT = char, TraitsT = std::char_traits<char>]’ posix_time/testtime_facet.cpp:59: instantiated from here /home/jeff/devTools/boost_rc_1_34/boost/algorithm/string/erase.hpp:592: error: no matching function for call to ‘first_finder(const char* const&)’ /home/jeff/devTools/boost_rc_1_34/boost/algorithm/string/replace.hpp: In function ‘void boost::algorithm::replace_all(SequenceT&, const Range1T&, const Range2T&) [with SequenceT = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, Range1T = const char*, Range2T = const char*]’: /home/jeff/devTools/boost_rc_1_34/boost/date_time/time_facet.hpp:400: instantiated from ‘OutItrT boost::date_time::time_facet<time_type, CharT, OutItrT>::put(OutItrT, std::ios_base&, typename boost::date_time::date_facet<typename time_type::date_type, CharT, OutItrT>::char_type, const typename time_type::time_duration_type&) const [with time_type = boost::posix_time::ptime, CharT = char, OutItrT = std::ostreambuf_iterator<char, std::char_traits<char> >]’ /home/jeff/devTools/boost_rc_1_34/boost/date_time/posix_time/posix_time_io.hpp:190: instantiated from ‘std::basic_ostream<_CharT, _Traits>& boost::posix_time::operator<<(std::basic_ostream<_CharT, _Traits>&, const boost::posix_time::time_duration&) [with CharT = char, Traits = std::char_traits<char>]’ posix_time/testtime_facet.cpp:62: instantiated from here /home/jeff/devTools/boost_rc_1_34/boost/algorithm/string/replace.hpp:653: error: no matching function for call to ‘first_finder(const char* const&)’ /home/jeff/devTools/boost_rc_1_34/boost/range/const_iterator.hpp: At global scope: /home/jeff/devTools/boost_rc_1_34/boost/range/const_iterator.hpp: In instantiation of ‘boost::range_const_iterator<const wchar_t*>’: /home/jeff/devTools/boost_rc_1_34/boost/algorithm/string/replace.hpp:653: instantiated from ‘void boost::algorithm::replace_all(SequenceT&, const Range1T&, const Range2T&) [with SequenceT = std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, Range1T = const wchar_t*, Range2T = std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >]’