template<class T> inline void swap(clone_ptr<T> & a, clone_ptr<T> & b) // never throws { a.swap(b); }
void attach_suboutput_ui( simparm::NodeHandle at ) { unadorned->attach_full_ui( config_node.attach_ui( at ) ); }
/// \brief A copy constructor which uses the clone method of cloneable_pointee_type clone_ptr(const clone_ptr &arg_clone_ptr ///< TODOCUMENT ) : ptr( detail::make_clone( *arg_clone_ptr ) ) { assert( typeid( *ptr.get() ) == typeid( *arg_clone_ptr.get() ) ); // Check the dynamic type returned by clone() }
inline bool operator==(const clone_ptr<T> &arg_clone_ptr_a, ///< TODOCUMENT const clone_ptr<T> &arg_clone_ptr_b ///< TODOCUMENT ) { return arg_clone_ptr_a.get() == arg_clone_ptr_b.get(); }
clone_ptr(clone_ptr<U> const & rh) : std::unique_ptr<T>(rh ? rh->clone() : nullptr){}
// This is the default constructor that takes his // value from cloning the content of the other // clone_ptr. clone_ptr(const clone_ptr & other) {value_ = other->clone();}