On Monday, 3 June 2019 at 07:13:44 UTC, Rnd wrote:
I know 'new' is not needed to create instances of structs but can one use 'new'?
Yes. It can be used with any value type to allocate a block of memory on the GC heap and return a pointer to that memory:
struct Foo { ... } Foo* f = new Foo; int* i = new int;
If yes, when should one use 'new'?
Whenever you need to allocate something from the GC heap. In my experience, it's rare to need it with value types in D. I tend to use it primarily with classes and arrays.