【发布时间】:2010-11-18 03:22:28
【问题描述】:
我有一个类用作 unordered_map 中的键。当我尝试编译代码时,它显示对std::hash<typeName>::operator()(typename) const 的未定义引用。我怎么去修呢?我需要重载哪些附加函数才能使用户定义的类型在 unordered_map 中使用?
我有一个 dateTime 结构,它存储日期和时间的信息。
报错信息如下:
In function 'std::__detail::_Hash_code_base<DateTime, std::pair<DateTime const, int>, std::_Select1st<std::pair<DateTime const, int> >, std::equal_to<DateTime>, std::hash<DateTime>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, false>::_M_hash_code(DateTime const&) const':
testing.cpp:(.text._ZNKSt8__detail15_Hash_code_baseI10DateTimeSt4pairIKS1_DeESt10_Select1stIS4_ESt8equal_toIS1_ESt4hashIS1_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE12_M_hash_codeERS3_[std::__detail::_Hash_code_base<DateTime, std::pair<DateTime const, int>, std::_Select1st<std::pair<DateTime const, int> >, std::equal_to<DateTime>, std::hash<DateTime>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, false>::_M_hash_code(DateTime const&) const]+0x23): undefined reference to 'std::hash<DateTime>::operator()(DateTime) const'
谢谢。
【问题讨论】:
-
您的问题严重缺乏代码、准确且完整的错误消息,以及有关您正在使用的编译器的信息。
-
如果有人知道如何在反引号内转义反引号,请随意(我在编辑中将它们更改为 ')。这些行太长,“缩进 4 个空格”无法使用。根据错误信息,编译器是某种 GCC。