【问题标题】:std::hash::operator() - where is exception guarantee?std::hash::operator() - 异常保证在哪里?
【发布时间】:2017-09-27 15:39:45
【问题描述】:

标准在哪里指定

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

不会抛出任何异常?

【问题讨论】:

    标签: c++ exception hash language-lawyer


    【解决方案1】:

    这在 [unord.hash]/4 中涵盖

    满足表达式h(k)(其中hhash&lt;Key&gt; 类型的对象,kKey 类型的对象)的要求,除非hash&lt;Key&gt; 是用户,否则不应抛出异常- 定义的专业化,至少依赖于一种用户定义的类型。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-07
      • 2015-08-28
      • 1970-01-01
      • 1970-01-01
      • 2018-02-22
      • 2016-03-10
      相关资源
      最近更新 更多