我一直试图在Bitsquid foundations library上与实体组件系统上的Bitsquid blog post一起测试哈希表,但是自从博客文章写完以来我的库已经改变了类型转换错误。
foundation::Hash < Entity > map;
struct Instance { int i; };
Instance MakeInstance(int index) { Instance inst = { index }; return inst; }
Instance Lookup(Entity e) { return MakeInstance(hash::get(map, e.id, 0)); }
错误:无法将参数1从'const Entity'转换为'unsigned int'
或有时我:模板参数'T'不明确
如果我改变&lt;实体&gt;例如,对于int,错误消失了。当我尝试一个常规的无序映射时,它说STL不知道如何散列到一个实体,所以我猜它是同样的问题,但错误在这个库中呈现的不同。
然而,了解问题与知道如何解决问题并不是一回事。我已经尝试过转换到uint64_t和int但是没有成功。我需要做什么?
PS:是的,我看过单元测试。