The allocator is global, so no need to pass it in to the constructor
Non-singleton allocator, must be passed in
Gets the owned pointer. Use with caution.
Move from another smart pointer
"Truthiness" cast
Release ownership
Releases ownership and transfers it to the returned Unique object.
A unique pointer similar to C++'s std::unique_ptr.