How to create an overwriteable struct that is always const?

David Zhang straivers98 at gmail.com
Sun Jun 2 02:23:58 UTC 2019


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.


More information about the Digitalmars-d-learn mailing list