[#BloombergLP-ball-CategoryManager_RadixTree_ChildNodeGuard] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/ball.adoc[ball]::CategoryManager_RadixTree_ChildNodeGuard :relfileprefix: ../../ :mrdocs: RAII guard that removes a child node on exception during value emplacement. == Synopsis Declared in `<ball_categorymanager_radixtree.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_VALUE> class CategoryManager_RadixTree_ChildNodeGuard; ---- == Description This guard ensures exception safety by automatically removing a newly created child node from its parent if the value construction throws an exception. == Type Aliases [cols="1,4"] |=== | Name| Description | xref:BloombergLP/ball/CategoryManager_RadixTree_ChildNodeGuard/ChildIterator.adoc[`ChildIterator`] | Iterator over the child nodes of a radix tree node. | xref:BloombergLP/ball/CategoryManager_RadixTree_ChildNodeGuard/Node.adoc[`Node`] | `Node` is an alias for a node in the radix tree. |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/ball/CategoryManager_RadixTree_ChildNodeGuard/2constructor.adoc[`CategoryManager_RadixTree_ChildNodeGuard`] [.small]#[constructor]# | Create a guard managing the specified `child` in the specified `parent`. | xref:BloombergLP/ball/CategoryManager_RadixTree_ChildNodeGuard/2destructor.adoc[`~CategoryManager_RadixTree_ChildNodeGuard`] [.small]#[destructor]# | Destroy this guard. If `release()` has not been called, erase the child node from the parent (specified at construction). | xref:BloombergLP/ball/CategoryManager_RadixTree_ChildNodeGuard/release.adoc[`release`] | Release this guard so the child is not erased on destruction. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#