pub struct ManuallyDrop<T>where
T: ?Sized,{ /* private fields */ }
Expand description
A wrapper to inhibit the compiler from automatically calling T
’s
destructor. This wrapper is 0-cost.
ManuallyDrop<T>
is guaranteed to have the same layout and bit validity as
T
, and is subject to the same layout optimizations as T
. As a
consequence, it has no effect on the assumptions that the compiler makes
about its contents. For example, initializing a ManuallyDrop<&mut T>
with
mem::zeroed
is undefined behavior. If you need to handle uninitialized
data, use