错误 c2338 C++ 标准不提供此类型的哈希

error c2338 C++ Standard doesn't provide a hash for this type

本文关键字:类型 哈希 c2338 C++ 标准 错误      更新时间:2023-10-16

所以我在 ClassA 中有一个无序映射,它是字符串和 ClassB 的类型,但是当我构建时,我收到 c2338 错误:C++ 标准没有提供此类型的哈希。

A.h 级

#include <unordered_map>
class ClassB;
ClassA
{
private:
    std::unordered_map<std::string, ClassB*> map;
}

B类 .h

class ClassB
{
private:
    size_t x, y, w, h;
    int id;
}

我在boost::gregorian::date上遇到了同样的问题。我需要一个快速(和肮脏)的解决方案,我最终使用了map<boost::gregorian::date, int>而不是unordered_map。可能会慢一点,但对我来说这不是问题。呵呵。