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;
33 template<
class... constructor_args_t>
37 using original_pointer_type::get;
38 using original_pointer_type::reset;
39 using original_pointer_type::operator bool;
40 using original_pointer_type::operator=;
43 template<
template<
class,
class...>
class pointer_t,
class T,
class... args_t>
48 using original_pointer_type =
typename super::original_pointer_type;
49 using element_type =
typename super::element_type;
50 using pointer =
typename super::pointer;
51 using reference =
typename super::reference;
53 super::reference get()
const noexcept;
59 template<
class... constructor_args_t>
63 template<
template<
class>
class pointer_t,
class T,
class... args_t>
71 template<
template<
class,
class...>
class pointer_t,
class T,
class... args_t>
72 struct hash<qx::details::smart_ptr_ref_adapter<pointer_t, T, args_t...>>
76 return hash<pointer_t<T, args_t...>>()(adaper);
80 template<
template<
class,
class...>
class pointer_t,
class T,
class... args_t>