Confused about const
Paul D. Anderson
paul.d.removethis.anderson at comcast.andthis.net
Sat Mar 20 10:33:16 PDT 2010
> Paul D. Anderson:
> > After further review, I now realize that the right way (for me) to do this is to add a .dup property.<
> Steven Schveighoffer has given you quite good answers.
> A dup is generally not enough, because what you dup can have other immutable references nested inside. Dup is not a deep copy.
> The summary of this topic is (until inout works) that if you can return a const value, then don't copy things. This is the preferred option, because one of the main purposes of const data is to not have to copy them.
> If you can't return a const, then don't mark the input values as const. The safety given by the not deep const of Java is only partial safety.
You're right that dup itself can have problems with pointers/references. My struct doesn't have 2nd-level references, so dup works fine for me.
More information about the Digitalmars-d-learn