错误c2338 C ++ Standard不为此类型提供哈希

时间:2014-02-13 02:46:55

标签: c++ unordered-map

所以我在ClassA中有一个无序的映射,它的类型是string和ClassB,但是当我构建时,我得到了c2338错误:C ++标准没有为这种类型提供散列。

ClassA.h

#include <unordered_map>

class ClassB;

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

ClassB .h

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

1 个答案:

答案 0 :(得分:-1)

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