Sometimes it *is* initialized!
#![feature(const_fn)]
#![feature(const_int_ops)]
#![feature(const_fn_union)]
+#![feature(const_manually_drop_new)]
#![feature(custom_attribute)]
#![feature(doc_cfg)]
#![feature(doc_spotlight)]
}
impl<T> MaybeUninit<T> {
+ /// Create a new `MaybeUninit` initialized with the given value.
+ ///
+ /// Note that dropping a `MaybeUninit` will never call `T`'s drop code.
+ /// It is your responsibility to make sure `T` gets dropped if it got initialized.
+ #[unstable(feature = "maybe_uninit", issue = "53491")]
+ pub const fn new(val: T) -> MaybeUninit<T> {
+ MaybeUninit { value: ManuallyDrop::new(val) }
+ }
+
/// Create a new `MaybeUninit` in an uninitialized state.
///
/// Note that dropping a `MaybeUninit` will never call `T`'s drop code.