Function core::1.0.0 · source · [−]
pub unsafe fn uninitialized<T>() -> T
Bypasses Rust’s normal memory-initialization checks by pretending to
produce a value of type
T, while doing nothing at all.
This function is deprecated. Use
The reason for deprecation is that the function basically cannot be used
correctly: it has the same effect as
assume_init documentation explains,
the Rust compiler assumes that values are properly initialized.
As a consequence, calling e.g.
mem::uninitialized::<bool>() causes immediate
undefined behavior for returning a
bool that is not definitely either
false. Worse, truly uninitialized memory like what gets returned here
is special in that the compiler knows that it does not have a fixed value.
This makes it undefined behavior to have uninitialized data in a variable even
if that variable has an integer type.
(Notice that the rules around uninitialized integers are not finalized yet, but
until they are, it is advisable to avoid them.)