View source code
Display the source code in rt/lifetime.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

Function rt.lifetime._d_newitemU

Allocate an uninitialized non-array item.

extern(C) void* _d_newitemU (
  scope const(TypeInfo) _ti
) pure;

This is an optimization to avoid things needed for arrays like the _arrayPad(size).

- _d_newitemU leaves the item uninitialized - _d_newitemT zero initializes the item - _d_newitemiT uses a non-zero initializer from TypeInfo

Used to allocate struct instances on the heap.

struct Sz {int x = 0;}
struct Si {int x = 3;}

void main()
{
    new Sz(); // _d_newitemT(typeid(Sz))
    new Si(); // _d_newitemiT(typeid(Si))
}

Parameters

NameDescription
_ti TypeInfo of item to allocate

Returns

newly allocated item

Authors

Walter Bright, Sean Kelly, Steven Schveighoffer

License

Distributed under the Boost Software License 1.0. (See accompanying file LICENSE)