delete_children_if
n.delete_children_if([](node_ptr &nx) {
parent->delete_children_if([&](node_ptr &child) { return child == node; });