std :: hash :: operator() - 哪里有异常保证?

时间:2017-09-27 15:39:45

标签: c++ exception hash language-lawyer

标准中的哪个部分指定了

std::hash<T>::operator()

不会抛出任何异常吗?

1 个答案:

答案 0 :(得分:1)

这包含在[unord.hash] / 4

之下
  

满足表达式h(k),其中hhash<Key>类型的对象且kKey类型的对象的要求,不得满足抛出异常,除非hash<Key>是用户定义的特殊化,它依赖于至少一个用户定义的类型。

因此,只要您使用fundamental types标准提供的特化之一,operator()就不会抛出。