20 std::weak_ptr<T> m_wptr;
23 WeakPtrKey(std::weak_ptr<T> wptr) : m_ptr(wptr.lock().get()), m_wptr(wptr) {}
25 WeakPtrKey(std::shared_ptr<T> sptr):m_ptr(sptr.get()),m_wptr(sptr) {}
27 constexpr inline bool operator<(
const WeakPtrKey<T> &other)
const {
28 return m_ptr < other.m_ptr;
32 constexpr inline bool operator==(
const WeakPtrKey<T> &other)
const {
33 return m_ptr == other.m_ptr;
41 inline constexpr std::size_t
hash()
const{
42 return reinterpret_cast<std::size_t
>(m_ptr);
45 inline std::weak_ptr<T> get_weak()
const {
return m_wptr;}
46 inline std::shared_ptr<T> lock()
const {
return m_wptr.lock();}