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.