【发布时间】:2013-10-02 08:18:39
【问题描述】:
来自 cppreference 的This page 提到 std::hash 已专门用于 std::optional,但未指定对象脱离时的行为。我能想到不同的行为:
- 可以抛出
std::bad_optional_access,与std::optional::value保持一致 - 它可以为每个未参与的
std::optional<T>返回相同的哈希,这样两个未参与的对象将具有相同的哈希。 - 它可以返回一个
std::optional<std::hash<std::optional<T>>>
【问题讨论】:
-
最后一个很有趣,但实际上没有意义:-S 奇怪的是,这没有指定。再说一次,该语言尚未发布。 Boost 是如何做到的?
-
请注意,
optional已从 C++14 中删除。 -
@Simple 是吗?你碰巧有一个链接到报告的理由吗?我很想知道
-
我昨天在 isocpp.org 上看到
optional已从标准中删除并正在走向它自己的 TS,但我再也找不到那里的文章了。芝加哥会议的会议记录也尚未完成(通常会上传)。
标签: c++ hash standard-library optional c++14