22 #ifndef __uniquePtr_hpp__
23 #define __uniquePtr_hpp__
42 typename Deleter = std::default_delete<T>
46 public std::unique_ptr<T, Deleter>
53 using uniquePtrType::unique_ptr;
56 template<
typename... Args>
66 auto p = this->release();
77 "uniquePtr is empty, and you are trying to get its reference. \n" <<
78 "Type name is "<<
typeid(T).name()<<
"\n";
90 "uniquePtr is empty, and you are trying to get its reference. \n" <<
91 "Type name is "<<
typeid(T).name()<<
"\n";
94 return const_cast<T&
>(*this->get());
99 template<
class T,
class... Args>
102 return uniquePtr<T>(
new T(std::forward<Args>(args)...));