Return a datum holding a "deep-copy" of this object, using the specified allocator to supply memory. This method creates an independent deep-copy of the data of this object, including any referenced data, with the exception of {User Defined Types}. For further information see {Deep Copying}.