cppreference のこのページstd::hashには、に特化した言及std::optionalがありますが、オブジェクトが解放されたときの動作は指定されていません。私はさまざまな行動を考えることができます:
std::bad_optional_access一貫性を保つために、をスローする可能性がありますstd::optional::value- 解放されたすべての に対して同じハッシュを返すことができ
std::optional<T>ます。このようにして、解放された 2 つのオブジェクトは同じハッシュを持つことになります。 - それは返すことができます
std::optional<std::hash<std::optional<T>>>