Le 29/01/11 14:43, Jim a écrit :
I'm a bit troubled with the class/struct dichotomy. I would prefer them both to 
use the same keyword. Heap/stack allocation could be specified during 
instantiation instead. Why? Now you need to choose one over the other. Not even 
C++ has this limitation.

Think about containers for example, should they be classes or structs? Do you 
want them on the stack or on the heap?

I guess it's possible to define the entire container as a mixin now. That would 
let you have both heap and stack containers share definition, but generally I 
think that the dichotomy should be abolished.

The difference between class and struct in D is more than heap or stack allocation. Having a common keyword for them would unwisely mask their fundamental differences (inheritance/polymorphism, reference/value semantics, etc.).

Perhaps the suggestion is in fact one that has already been made but for which I can't remember the conclusion: how about abandoning 'new' in favor of more specific keywords/library templates that control whether the instantiation occur on the heap or on the stack?

Reply via email to