John Maddock wrote:
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/33c d9bf7-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?
I broke it, with changes to ContainerHash. Will fix.