47   std::unique_ptr<T> p_ = std::unique_ptr<T>(
nullptr);
 
   54     : p_(x.p_ ? std::make_unique<T>(*x.p_) : 
nullptr)  {}
 
   59     if (x.p_) p_ = std::make_unique<T>(*x.p_);
 
   68   operator bool()
 const {
return p_.operator bool();}
 
   70   T& operator*()
 const {
return p_.operator*();}
 
   72   T* operator->()
 const {
return p_.operator->();}
 
A wrapper around a unique_ptr that clones the value on copy.
GEneric Tool for Finite Element Methods.