Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
August 21, 2015 const-correct structs, best practices? | ||||
---|---|---|---|---|
| ||||
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? |
August 21, 2015 Re: const-correct structs, best practices? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nick Sabalausky | 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?
Prepare for pain.
|
August 21, 2015 Re: const-correct structs, best practices? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nick Sabalausky | 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
;)
|
August 21, 2015 Re: const-correct structs, best practices? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dicebot | 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!
|
August 21, 2015 Re: const-correct structs, best practices? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nick Sabalausky | 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
|
Copyright © 1999-2021 by the D Language Foundation