标签: c++ exception hash language-lawyer
标准中的哪个部分指定了
std::hash<T>::operator()
不会抛出任何异常吗?
答案 0 :(得分:1)
这包含在[unord.hash] / 4
满足表达式h(k),其中h是hash<Key>类型的对象且k是Key类型的对象的要求,不得满足抛出异常,除非hash<Key>是用户定义的特殊化,它依赖于至少一个用户定义的类型。
h(k)
h
hash<Key>
k
Key
因此,只要您使用fundamental types标准提供的特化之一,operator()就不会抛出。
operator()