from what i got Classes are always reference types and structs are value types in D. i am wondering why that is. for me the main difference between classes and structs is not how they are allocated, but that one has inhertiance, and the other hasn't. Supporting inheritance has some overhead, so at least the split between classes and structs makes sense to me.

I like garbage collection, but in many cases it's just unnecessary (like in the example below) or hurts performance on a bigger scale.

{
FileReader reader = new .... // Annoy the garbage collector for no reason?
  auto blob = reader.read();
  delete reader;
}

Since garbage collection is a very nice feature that I wouldn't wanna miss for certain scenarios I think D should give us the opportunity to determine how an object is allocated. In the example above putting it on the stack is probably a good idea. Having a self managed reference to the heap can be good too if manual memory management is wanted. Or of course let the GC manage it ( i love it for prototyping code and also as a D beginner it is beneficial that i just dont need to care about memory management).

Could somebody explain to me if this is seen as a problem why/whynot and how I should address that kind of issues in my code?

Reply via email to