Struct std::boxed::IntermediateBox
[−]
[src]
pub struct IntermediateBox<T> where T: ?Sized {
// some fields omitted
}
: placement box design is still being worked out.
IntermediateBox
represents uninitialized backing storage for Box
`Box`.
FIXME (pnkfelix): Ideally we would just reuse Box<T>
`Boxinstead of introducing a separate
IntermediateBox; 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
`boxprotocol 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
?Sizedgeneralization 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).