16 template<
template<
class,
class...>
class pointer_t,
class T,
class... args_t>
20 using original_pointer_type = pointer_t<T, args_t...>;
21 using super = original_pointer_type;
22 using element_type = T;
29 operator T&() noexcept;
30 operator const T&()
const noexcept;
36 template<
class... constructor_args_t>
40 using original_pointer_type::get;
41 using original_pointer_type::reset;
42 using original_pointer_type::operator bool;
43 using original_pointer_type::operator=;
46 template<
template<
class,
class...>
class pointer_t,
class T,
class... args_t>
51 using original_pointer_type =
typename super::original_pointer_type;
52 using element_type =
typename super::element_type;
53 using pointer =
typename super::pointer;
54 using reference =
typename super::reference;
56 typename super::reference get()
const noexcept;
62 template<
class... constructor_args_t>
66 template<
template<
class>
class pointer_t,
class T,
class... args_t>
74 template<
template<
class,
class...>
class pointer_t,
class T,
class... args_t>
75 struct hash<qx::details::smart_ptr_ref_adapter<pointer_t, T, args_t...>>
79 return hash<pointer_t<T, args_t...>>()(adaper);
83 template<
template<
class,
class...>
class pointer_t,
class T,
class... args_t>