Best practices of using const

Yatheendra 3df4 at gmail.ru
Sat Jun 22 05:10:14 UTC 2019


It feels disingenous to want to call a caching object even 
"logically" const. There has to be a scaffolding-based but 
hopefully generic compromise. I haven't yet tested this belief, 
but I believe "physical" const is of good use wherever it can be 
applied.

On Friday, 21 June 2019 at 23:39:20 UTC, H. S. Teoh wrote:
> The problem with this is that you cannot use const(Wrapper).
>
> In particular, if you have a function that wants to document 
> that it does not mutate its argument, you cannot write:
>
> 	auto func(in Wrapper data) { ... }
>
> because const(Wrapper) does not allow lazy initialization.
> ...

IMHO, in parameters are a more important scenario than const in 
ranges (of course, same constraints).

Just for the heck of it, I'll try to get a snippet "working" but 
I see out parameters snaking all through the call chain!


More information about the Digitalmars-d-learn mailing list