[phobos] Why is scoped offered by a function?
Andrei Alexandrescu
andrei at erdani.com
Sun Aug 8 08:40:45 PDT 2010
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
More information about the phobos
mailing list