[#BloombergLP-bdlcc-SkipList_NodeCreationHelper]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlcc.adoc[bdlcc]::SkipList&lowbar;NodeCreationHelper
:relfileprefix: ../../
:mrdocs:

This component&hyphen;private structure is a scoped guard that initializes new nodes and releases them in case of exception&period;

== Synopsis

Declared in `&lt;bdlcc&lowbar;skiplist&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class KEY,
    class DATA&gt;
class SkipList&lowbar;NodeCreationHelper;
----

== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlcc/SkipList_NodeCreationHelper/2constructor.adoc[`SkipList&lowbar;NodeCreationHelper`]         [.small]#[constructor]#
| Create a new scoped guard object to assist in exception&hyphen;safe initialization of the specified `node`, which was allocated from the specified `poolManager`&period; Optionally specify a `basicAllocator` used to supply memory&period; If `basicAllocator` is 0, the currently installed default allocator is used&period;
| xref:BloombergLP/bdlcc/SkipList_NodeCreationHelper/2destructor.adoc[`&#126;SkipList&lowbar;NodeCreationHelper`] [.small]#[destructor]#
| Destroy this scoped guard&period; If the guard currently manages a node, destroy its data as necessary and return it to the pool&period;
| xref:BloombergLP/bdlcc/SkipList_NodeCreationHelper/construct.adoc[`construct`] 
| Attempt to copy&hyphen;construct the specified `key` and `data` into the node specified at construction&semi; then release the node from management&period; Note that if an exception is thrown during the invocation of either constructor, the node will remain under management and thus the destructor of this object will do the appropriate cleanup&period; The behavior is undefined if `construct` has already been invoked on this scoped guard object&period;
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
