On 08/08/2010 01:19 AM, SHOO wrote:
Ok, I see.
IMHO the cause is not to be able to use default constructers for structs.
The usage of struct seems to have changed compared with old times.
Recently, structs are not only a set of simple data anymore, and rather
a role as the class instance seems to be importance than it.
The support from language specifications feels insufficient for it.
Hmm...

Well Walter and I have been very concerned about this all. Unfortunately things are not as simple as adding a language feature. It turns out that in very many situations, the default constructor as is defined today is extremely useful: it provides a well defined state for any struct object that is guaranteed to not allocate resources. Functions such as clear() exploit this, and in generic code it's very useful to be able to define a stack variable of any type knowing that there is no arbitrary code associated.

However, for this matter, you can ignore it. It is a problem to be
settled if you make a destructor that is more safe for non-initialized
data or throw AssertionError when using non-initialized data in runtime.
It is a problem which is more convenient.

I see. Probably we'll need to define Scoped as a separate type.


Andrei
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to