24 return d_func()->parent;
34 auto childParent = child->d_func()->parent.lock();
35 if ( childParent.get() == this )
39 childParent->removeChild( child );
42 d->children.insert( child );
44 auto tracker = this->weak_this<Base>();
45 child->d_func()->parent = tracker;
54 if ( child->d_func()->parent.lock().get() != this )
58 d->children.erase( child );
59 child->d_func()->parent.reset();
64 return d_func()->children;
std::weak_ptr< Base > WeakPtr
void removeChild(Ptr child)
const std::unordered_set< Ptr > & children() const
std::unique_ptr< BasePrivate > d_ptr
void addChild(Base::Ptr child)
std::shared_ptr< Base > Ptr