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;
38 template<
class... constructor_args_t>
42 using original_pointer_type::get;
43 using original_pointer_type::reset;
44 using original_pointer_type::operator bool;
45 using original_pointer_type::operator=;
48 template<
template<
class,
class...>
class pointer_t,
class T,
class... args_t>
53 using original_pointer_type =
typename super::original_pointer_type;
54 using element_type =
typename super::element_type;
55 using pointer =
typename super::pointer;
56 using reference =
typename super::reference;
58 typename super::reference get()
const noexcept;
67 template<
class... constructor_args_t>
71 template<
template<
class>
class pointer_t,
class T,
class... args_t>
79 template<
template<
class,
class...>
class pointer_t,
class T,
class... args_t>
80 struct hash<qx::details::smart_ptr_ref_adapter<pointer_t, T, args_t...>>
84 return hash<pointer_t<T, args_t...>>()(adaper);
88 template<
template<
class,
class...>
class pointer_t,
class T,
class... args_t>