Template Class impl_ptr
Defined in File spimpl.h
Inheritance Relationships
Base Type
public spimpl::unique_impl_ptr< T, details::default_deleter_t< T > >(Template Class unique_impl_ptr)
Class Documentation
-
template<class T, class Deleter = details::default_deleter_t<T>, class Copier = details::default_copier_t<T>>
class impl_ptr : public spimpl::unique_impl_ptr<T, details::default_deleter_t<T>> Public Types
-
using pointer = typename base_type::pointer
-
using const_pointer = typename base_type::const_pointer
-
using reference = typename base_type::reference
-
using const_reference = typename base_type::const_reference
-
using element_type = typename base_type::element_type
-
using deleter_type = typename base_type::deleter_type
-
using unique_ptr_type = typename base_type::unique_ptr_type
-
using is_default_manageable = details::is_default_manageable<T, deleter_type, copier_type>
Public Functions
- inline SPIMPL_CONSTEXPR impl_ptr () SPIMPL_NOEXCEPT
- inline SPIMPL_CONSTEXPR impl_ptr (std::nullptr_t) SPIMPL_NOEXCEPT
- template<class D, class C> inline impl_ptr (pointer p, D &&d, C &&c, typename std::enable_if< std::is_convertible< D, deleter_type >::value &&std::is_convertible< C, copier_type >::value, typename base_type::dummy_t_ >::type=typename base_type::dummy_t_()) SPIMPL_NOEXCEPT
- template<class U> inline impl_ptr (U *u, typename std::enable_if< std::is_convertible< U *, pointer >::value &&is_default_manageable::value, dummy_t_ >::type=dummy_t_()) SPIMPL_NOEXCEPT
- impl_ptr (impl_ptr &&r) SPIMPL_NOEXCEPT=default
- template<class U> inline impl_ptr (std::unique_ptr< U > &&u, typename std::enable_if< std::is_convertible< U *, pointer >::value &&is_default_manageable::value, dummy_t_ >::type=dummy_t_()) SPIMPL_NOEXCEPT
- template<class U, class D, class C> inline impl_ptr (std::unique_ptr< U, D > &&u, C &&c, typename std::enable_if< std::is_convertible< U *, pointer >::value &&std::is_convertible< D, deleter_type >::value, dummy_t_ >::type=dummy_t_()) SPIMPL_NOEXCEPT
- template<class U, class D, class C> inline impl_ptr (impl_ptr< U, D, C > &&u, typename std::enable_if< std::is_convertible< U *, pointer >::value &&std::is_convertible< D, deleter_type >::value, dummy_t_ >::type=dummy_t_()) SPIMPL_NOEXCEPT
- impl_ptr & operator= (impl_ptr &&r) SPIMPL_NOEXCEPT=default
-
template<class U, class D, class C>
inline std::enable_if<std::is_convertible<U*, pointer>::value && std::is_convertible<D, deleter_type>::value && std::is_convertible<C, copier_type>::value, impl_ptr&>::type operator=(const impl_ptr<U, D, C> &u)
- template<class U> inline std::enable_if< std::is_convertible< U *, pointer >::value &&is_default_manageable::value, impl_ptr & >::type operator= (std::unique_ptr< U > &&u) SPIMPL_NOEXCEPT
- template<class U, class D, class C> inline std::enable_if< std::is_convertible< U *, pointer >::value &&std::is_convertible< D, deleter_type >::value &&std::is_convertible< C, copier_type >::value, impl_ptr & >::type operator= (impl_ptr< U, D, C > &&u) SPIMPL_NOEXCEPT
- inline void swap (impl_ptr &u) SPIMPL_NOEXCEPT
- inline const std::remove_reference< copier_type >::type & get_copier () const SPIMPL_NOEXCEPT
- inline std::remove_reference< copier_type >::type & get_copier () SPIMPL_NOEXCEPT
-
using pointer = typename base_type::pointer