id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 10354,inconsistent declaration of do_length in boost/detail/utf8_codecvt_facet.hpp due to missing BOOST_WORKAROUND,Juan Alday ,Beman Dawes,"First, the output when trying to build boost in AIX using xlC xlC_r -c -DBOOST_ALL_NO_LIB=1 -DNDEBUG -qcpluscmt -O3 -qstrict -q64 -qfuncsect -qeh -qrtti -I""."" -o ""bin.v2/libs/filesystem/build/vacpp-11/release/... utf8_codecvt_facet.o"" ""libs/filesystem/src/utf8_codecvt_facet.cpp"" ""./boost/detail/utf8_codecvt_facet.ipp"", line 173.5: 1540-0400 (S) ""boost::archive::detail::utf8_codecvt_facet::do_length(const std::mbstate_t &, const char *, const char *, std::size_t) const"" has a conflicting declaration. ""./boost/detail/utf8_codecvt_facet.hpp"", line 174.17: 1540-0424 (I) ""do_length"" is declared on line 174 of ""./boost/detail/utf8_codecvt_facet.hpp"". The problem is that there is a mismatch in the declaration of the function between * boost/detail/utf8_codecvt_facet.hpp * boost/detail/utf8_codecvt_facet.ipp {{{ #!cpp // boost/detail/utf8_codecvt_facet.hpp virtual int do_length( const std::mbstate_t &, const char * from, const char * from_end, std::size_t max_limit ) const }}} {{{ #!cpp // boost/detail/utf8_codecvt_facet.ipp int utf8_codecvt_facet::do_length( BOOST_CODECVT_DO_LENGTH_CONST std::mbstate_t &, const char * from, const char * from_end, std::size_t max_limit ) const #if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) throw() #endif }}} The solution is to add BOOST_CODECVT_DO_LENGTH_CONST and the BOOST_WORKAROUND macro in boost/detail/utf8_codecvt_facet.hpp Also, unless BOOST_DETECT_OUTDATED_WORKAROUNDS is defined, BOOST_WORKAROUND will always evaluate to 1 for any version of xlC, adding a throw() declaration. Maybe it should be replaced with {{{ #!cpp #if BOOST_WORKAROUND(__IBMCPP__, <=600) }}} Last, I've filed this in filesystem component following what was done for https://svn.boost.org/trac/boost/ticket/7660 since there is no specific entry for boost/detail in the component list. It fits as well in serialization, program_options, etc. ",Bugs,reopened,To Be Determined,filesystem,Boost 1.56.0,Problem,,,