Boost logo

Boost :

From: John Maddock (jz.maddock_at_[hidden])
Date: 2022-06-03 18:13:53


I can't spot where, but something has changed in the last couple of days
that has broken building quickbook:
https://app.circleci.com/pipelines/github/boostorg/math/635/workflows/33cd9bf7-d055-4713-aab5-2e6d81b6e5dc/jobs/629

../../../boost/container_hash/hash.hpp:654:30: error: call of overloaded 'hash_value(const boost::filesystem::path&)' is ambiguous
   654 | return hash_value( val );
       | ~~~~~~~~~~^~~~~~~
../../../boost/container_hash/hash.hpp:382:9: note: candidate: 'typename boost::enable_if_<((boost::hash_detail::is_range<T>::value && (! boost::hash_detail::is_contiguous_range<T>::value)) && (! boost::hash_detail::is_unordered_range<T>::value)), long unsigned int>::type boost::hash_value(const T&) [with T = boost::filesystem::path; typename boost::enable_if_<((boost::hash_detail::is_range<T>::value && (! boost::hash_detail::is_contiguous_range<T>::value)) && (! boost::hash_detail::is_unordered_range<T>::value)), long unsigned int>::type = long unsigned int]'
   382 | hash_value( T const& v )
       | ^~~~~~~~~~
In file included from /root/boost-local/boost/tools/quickbook/src/files.hpp:18,
                  from /root/boost-local/boost/tools/quickbook/src/files.cpp:10:
../../../boost/filesystem/path.hpp:1183:82: note: candidate: 'typename boost::enable_if<boost::is_same<T, boost::filesystem::path>, long unsigned int>::type boost::filesystem::hash_value(const T&) [with T = boost::filesystem::path; typename boost::enable_if<boost::is_same<T, boost::filesystem::path>, long unsigned int>::type = long unsigned int]'
  1183 | inline typename boost::enable_if< boost::is_same< T, path >, std::size_t >::type hash_value(T const& p) BOOST_NOEXCEPT

In point of fact, those two overloads do look genuinely ambiguous to me,
so I'm not sure why this compiled before, or what changed to make it
fail now?
Ideas?

Thanks, John.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk