我使用Eclipse作为IDE来开发C ++程序。
我宣布以下结构:
struct std::hash<SomeObject>;
但是,我收到了错误消息:
无法解析符号“哈希”
任何人都可以帮助我吗?
答案 0 :(得分:1)
您可能没有使用引入std::hash
类型的C ++ 11。您可以将支持标记(-std=c++11
)添加到编译器选项中,有关详细信息,请参阅this post。
即使找到符号,该行也不会按原样编译。
如果要声明一个实例,则需要为其指定一个名称,否则它会认为您正在声明一个类型。否则,您可以使用typedef
或using
来命名类型。
#include <functional>
// if you want to declare an instance
struct std::hash<SomeObject> aHashInstance;
// for types, one of:
typedef std::hash<SomeObject> MyHash;
using MyHash = std::hash<SomeObject>;