Struct alloc::boxed::IntermediateBox
[−]
[src]
pub struct IntermediateBox<T: ?Sized> {
// some fields omitted
}IntermediateBox represents uninitialized backing storage for Box.
FIXME (pnkfelix): Ideally we would just reuse Box<T> instead of
introducing a separate IntermediateBox<T>; but then you hit
issues when you e.g. attempt to destructure an instance of Box,
since it is a lang item and so it gets special handling by the
compiler. Easier just to make this parallel type for now.
FIXME (pnkfelix): Currently the box protocol only supports
creating instances of sized types. This IntermediateBox is
designed to be forward-compatible with a future protocol that
supports creating instances of unsized types; that is why the type
parameter has the ?Sized generalization marker, and is also why
this carries an explicit size. However, it probably does not need
to carry the explicit alignment; that is just a work-around for
the fact that the align_of intrinsic currently requires the
input type to be Sized (which I do not think is strictly
necessary).