# Struct bitflags::__core::boxed::IntermediateBox [−] [src]

    pub struct IntermediateBox<T> where T: ?Sized {
        // some fields omitted
    }

Unstable (`placement_in`)

: placement box design is still being worked out.

`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).

## Trait Implementations

### `impl<T> Place<T> for IntermediateBox<T>`

#### `fn pointer(&mut self) -> *mut T`

Unstable (`placement_in`)

: placement box design is still being worked out.

### `impl<T> BoxPlace<T> for IntermediateBox<T>`

#### `fn make_place() -> IntermediateBox<T>`

Unstable (`placement_in`)

: placement box design is still being worked out.

### `impl<T> InPlace<T> for IntermediateBox<T>`

#### `type Owner = Box<T>`

Unstable (`placement_in`)

: placement box design is still being worked out.

#### `unsafe fn finalize(self) -> Box<T>`

Unstable (`placement_in`)

: placement box design is still being worked out.

### `impl<T> Drop for IntermediateBox<T> where T: ?Sized`

#### `fn drop(&mut self)`

Unstable (`placement_in`)

: placement box design is still being worked out.

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)