Aggregates & associations

Jason House jason.james.house at gmail.com
Wed Dec 19 07:11:46 PST 2007


Steven Schveighoffer Wrote:

> "Sean Kelly" wrote
> >A long time ago Walter mentioned that the "scope" attribute may be extended 
> >to indicate aggregation:
> >
> >     class Foo
> >     {
> >         Bar valA;
> >         scope Baz val2;
> >     }
> >
> > With the above, the size of Foo would be expanded to contain an instance 
> > of Baz and val2 would be initialized to reference this memory, very much 
> > like "scope" works in functions now.  But I didn't see any mention of this 
> > in the D 2.0 writeup so the idea may have been either discarded or 
> > forgotten.
> 
> I believe this type of behavior is not necessary.  Whether a member is an 
> aggregate or an association, it will be deleted when nothing references it 
> anymore, which is when it should be deleted.  The only thing this proposed 
> behavior can do is cause segfaults when something that still has a reference 
> to a scoped member tries to use it.

It has more value that that.  It's easy for me to imagine a scope class that includes one or more scope classes (such as a wrapper around an RAII object)



More information about the Digitalmars-d mailing list