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->();}