30 template<
class T,
class Deleter = std::default_delete<T>>
31 class copy_ptr :
public std::unique_ptr<T, Deleter>
34 constexpr copy_ptr () noexcept :
std::unique_ptr<T,Deleter>() { }
35 constexpr copy_ptr (std::nullptr_t) noexcept : std::unique_ptr<T,Deleter>() { }
36 explicit copy_ptr (T* p) noexcept : std::unique_ptr<T,Deleter> (p) { }
39 template<
class U,
class E >
47 bool operator() (
const X& a,
const X& b)
const {
return *a < *b; }
49 bool operator() (
const std::shared_ptr<X>& a,
const std::shared_ptr<X>& b)
const {
return *a < *b; }
copy_ptr(copy_ptr< U, E > &&u) noexcept
copy_ptr(const copy_ptr &u)
constexpr copy_ptr() noexcept
copy_ptr & operator=(const copy_ptr &u)
constexpr copy_ptr(std::nullptr_t) noexcept
copy_ptr(copy_ptr &&u) noexcept
bool operator()(const X &a, const X &b) const