How to create an overwriteable struct that is always const?
    Jonathan M Davis 
    newsgroup.d at jmdavisprog.com
       
    Sun Jun  2 06:35:54 UTC 2019
    
    
  
On Saturday, June 1, 2019 8:23:58 PM MDT David Zhang via Digitalmars-d-learn 
wrote:
> On Saturday, 1 June 2019 at 16:30:12 UTC, Jonathan M Davis wrote:
> > If any member variable of a struct is const, then you can't
> > modify that member ever, and assignment isn't possible unless
> > you override opAssign so that it overwrites only the mutable
> > members. It's very rare that it makes sense to make any member
> > variables of a struct const or immutable, because then you
> > basically can't use assignment anymore.
> >
> > You could make all of the member variables private and provide
> > no functions that set any of them, then the only way to change
> > any of their values would be to construct a new value of that
> > type and assign it to the variable.
> >
> > - Jonathan M Davis
>
> Ideally, I'd like for member functions to be checked against
> modifying s also, not just externally.
If the member functions are const or inout, then they won't be able to
modify any members.
- Jonathan M Davis
    
    
More information about the Digitalmars-d-learn
mailing list