I have multiple classes which overloads std::hash operator(). Let's say:
A.h
class A
{
...
}
namespace std
{
template<typename T>
struct hash;
}
A.cpp
template<> struct std::hash<A>
{
public:
virtual std::size_t operator()(const A& joint) const noexcept
{
..
}
And similar classes let's say class B
and class C
Now class B
uses A's hash like:
boost::hash_combine(h, std::hash<A>{}(b.getA())
Problem:
error: use of deleted function std::hash<A>::hash()
I tried: A.h
namespace std
{
template<typename T>
struct hash;
}
B.h
class B
{
friend struct std::hash<A>;
}