CMS 3D CMS Logo

Public Member Functions

extstd::clone_ptr< T > Struct Template Reference

#include <clone_ptr.h>

Inheritance diagram for extstd::clone_ptr< T >:
unique_ptr

List of all members.

Public Member Functions

template<typename... Args>
 clone_ptr (Args &&...args) noexcept
 clone_ptr (clone_ptr const &rh)
 clone_ptr (clone_ptr &&rh) noexcept
template<typename U >
 clone_ptr (clone_ptr< U > &&rh) noexcept
template<typename U >
 clone_ptr (clone_ptr< U > const &rh)
clone_ptroperator= (clone_ptr &&rh) noexcept
clone_ptroperator= (clone_ptr const &rh)
template<typename U >
clone_ptroperator= (clone_ptr< U > const &rh)
template<typename U >
clone_ptroperator= (clone_ptr< U > &&rh) noexcept

Detailed Description

template<typename T>
struct extstd::clone_ptr< T >

Definition at line 12 of file clone_ptr.h.


Constructor & Destructor Documentation

template<typename T>
template<typename... Args>
extstd::clone_ptr< T >::clone_ptr ( Args &&...  args) [inline, explicit]

Definition at line 15 of file clone_ptr.h.

: std::unique_ptr<T>(std::forward<Args>(args)...){}
template<typename T>
extstd::clone_ptr< T >::clone_ptr ( clone_ptr< T > const &  rh) [inline]

Definition at line 17 of file clone_ptr.h.

: std::unique_ptr<T>(rh? rh->clone() : nullptr){}
template<typename T>
extstd::clone_ptr< T >::clone_ptr ( clone_ptr< T > &&  rh) [inline]

Definition at line 18 of file clone_ptr.h.

: std::unique_ptr<T>(std::move(rh)) {}
template<typename T>
template<typename U >
extstd::clone_ptr< T >::clone_ptr ( clone_ptr< U > const &  rh) [inline]

Definition at line 31 of file clone_ptr.h.

: std::unique_ptr<T>(rh ? rh->clone() : nullptr){}
template<typename T>
template<typename U >
extstd::clone_ptr< T >::clone_ptr ( clone_ptr< U > &&  rh) [inline]

Definition at line 33 of file clone_ptr.h.

: std::unique_ptr<T>(std::move(rh)) {}

Member Function Documentation

template<typename T>
clone_ptr& extstd::clone_ptr< T >::operator= ( clone_ptr< T > const &  rh) [inline]

Definition at line 20 of file clone_ptr.h.

Referenced by extstd::clone_ptr< Bounds >::operator=().

                                                {
      if (&rh!=this) this->reset(rh? rh->clone() : nullptr);
      return *this;
    }
template<typename T>
template<typename U >
clone_ptr& extstd::clone_ptr< T >::operator= ( clone_ptr< U > &&  rh) [inline]

Definition at line 41 of file clone_ptr.h.

                                                       {
      if (&rh!=this) std::unique_ptr<T>::operator=(std::move(rh));
      return *this;
    }
template<typename T>
template<typename U >
clone_ptr& extstd::clone_ptr< T >::operator= ( clone_ptr< U > const &  rh) [inline]

Definition at line 36 of file clone_ptr.h.

                                                   {
      if (&rh!=this) this->reset(rh? rh->clone() : nullptr);
      return *this;
    }
template<typename T>
clone_ptr& extstd::clone_ptr< T >::operator= ( clone_ptr< T > &&  rh) [inline]

Definition at line 24 of file clone_ptr.h.

                                                    {
      if (&rh!=this) std::unique_ptr<T>::operator=(std::move(rh));
      return *this;
    }