Similar to std::unique_ptr's release function which allows the user to take control of the object, allow the user to take control of the map to unmap the file after the original wrapper goes out of scope.
This causes an issue when using something like libzip where data added to the zip file must remain valid until the archive is closed. Normally the pointer and size can be stored by the callee and released after the archive is closed, but this is not possible