This page from cppreference提到std::hash
已經專門用於std::optional
,但沒有指定當對象脫離時的行爲。我能想到的不同行爲:什麼是脫離std ::可選<T>對象的散列?
- 它可以拋出一個
std::bad_optional_access
,要符合std::optional::value
- 它可以返回相同的哈希值每脫開
std::optional<T>
,這樣2脫離對象將具有相同的哈希值。 - 它可以返回一個
std::optional<std::hash<std::optional<T>>>
最後一個很有趣,但實際上沒有意義:-S奇怪,但沒有指定。然後,語言還沒有發佈。 Boost如何做到這一點? –
請注意'可選'已從C++ 14中刪除。 – Simple
@簡單它是?你有沒有理由鏈接到報告?我很想知道 – nijansen