const-correct structs, best practices?

Steven Schveighoffer via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Aug 21 09:56:52 PDT 2015


On 8/21/15 12:31 PM, Nick Sabalausky wrote:
> On 08/21/2015 12:22 PM, Dicebot wrote:
>> On Friday, 21 August 2015 at 15:00:04 UTC, Nick Sabalausky wrote:
>>> Is there a good posting somewhere that summarizes the current best
>>> practices for making const-correct (ie works for all of
>>> mutable/const/immutable) structs?
>>
>> - mark methods const
>> - avoid reference type fields
>>
>> ;)
>
> What about inout?
>
> I have a struct that supports operator overloading, returning the
> struct's own type. After fiddling with that, I got a good laugh out of
> Meta's comment, and I think he may be right!
>

inout should work when returning a piece of the struct. I found it 
incredibly easy when instrumenting dcollections. Just use it like you 
would const.

Where you are going to run into problems is if you have things like 
ranges that need to partially cast to const.

-Steve


More information about the Digitalmars-d-learn mailing list