NVlabs/timeloop

building error:noexcept(declval<const _Hash&>()(declval<const _Key&>()))>

plant310 opened this issue · 4 comments

hi,
I'm getting the following error while building timeloop. How can I resolve this?
/usr/include/c++/5/bits/hashtable_policy.h:85:34: error: no match for call to ‘(const std::hash<boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> > >) (const boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> >&)’
noexcept(declval<const _Hash&>()(declval<const _Key&>()))>

I am using gcc (Ubuntu 5.5.0-12ubuntu1~16.04) 5.5.0

In general specific boost versions are only happy with specific gcc versions. Can you make sure all your packages are up to date?
I'll also note that you seem to be running a really old (6-year old) distro. Could you please try a newer one? Things should work out of the box on newer distros.

which version of gcc do you have that works?

We've tested with gcc 5.3, 7.3, 9.3 and 11.2. It's not about the gcc version, it's about whether the boost version and build you have is happy with that gcc version. We haven't seen this issue in recent Ubuntu distros since the installed builds work well with each other, but I don't know if things have drifted apart in older distros. Hence my recommendation to try a newer distro.

Possibly stale, closing.