Readonly class members

Alexander Panek a.panek at brainsware.org
Sun Sep 17 01:59:03 PDT 2006


It's a pretty neat concept, your suggesting, of course. Yet, it'd
introduce a new keyword to D, so efficiency and demand would have to be
there, realistically.

I disagree; I like the short list of keywords, and wouldbe glad if it
kept like this. Also, maybe there's another way to get some speed into
properties. Doesn't have to be a whole new ZOMGfeature.

Best regards,
Alex

On Thu, 2006-09-14 at 16:59 +0300, Georg Wrede wrote:
> > From time to time I wish that C++ would have a readonly 
> > specifier that  works like this:
> > 
> > class Obj {
> >     void f() {
> >         int m_size = 10;  //ok
> >     }
> > 
> >     readonly int m_size;
> > }
> > 
> > void func() {
> >     Obj o = new Obj;
> >     int v;
> > 
> >     v = o.m_size;  //ok
> >     o.m_size = 5;  //error
> > }
> 
> > 'm_size' can be accessed inside 'Obj' as normal, but outside the class
> > the variable cannot be modified. Of course, I could provide a read
> > property (that is, a function in C++) for accessing 'm_size' (in
> > addition to a write property), but when it's not necessary, this way is
> > simplier (and a little bit faster, etc.).
> > 
> > In D this, however, is not needed because you can use properties to wrap
> > member variables.
> > (Hopefully the properties will be extended to support the same methods
> > that can be applied to variables also... ;) ) 
> 
> Hmm. IMHO, this would be very easy to implement in the compiler. It 
> would make class definitions clearer, and in many cases would lessen the 
> need to write code.
> 
> Just off-hand I can imagine quite a few situations where I'd use this.




More information about the Digitalmars-d mailing list