std::hash(std::shared_ptr)
自 C++11 起
template<class T> struct hash<shared_ptr<T>>;
std::hash
对 std::shared_ptr<T>
的模板特化允许用户获取 std::shared_ptr<T>
类型对象的哈希值。
对于给定的 std::shared_ptr<T> p
,此特化确保
std::hash<std::shared_ptr<T>>()(p) == std::hash<T*>()(p.get()) // Until C++17
std::hash<std::shared_ptr<T>>()(p) == std::hash<typename std::shared_ptr<T>::element_type*>()(p.get()) // Since C++17