Closed ghost closed 1 year ago
This will work as-is under Boost 1.81, but if you need to support earlier versions, you have to define the overloads of hash_value
in the corresponding namespace of the type. The easiest way to do it is to add a using declaration for your existing hash_value
:
#if BOOST_VERSION < 108100
using ::hash_value;
#endif
after each BOOST_DESCRIBE_STRUCT
, as in https://godbolt.org/z/M1n3Me7eY.
You can also put the common definition of hash_value
into a namespace of your own, it doesn't need to be global.
(Unrelated, unless you're on C++20, you can also add using boost::describe::operator==
and using boost::describe::operator!=
to generate the equality operators, as these are generally required to use the hash containers.)
ths
Hi. I'm trying to implement a hash_value() from this example, but I'm getting a compilation error
full gist