Struct copy constructor with inout
dhs
dhs at email.com
Tue Nov 14 18:30:58 UTC 2023
On Tuesday, 14 November 2023 at 16:51:07 UTC, Paul Backus wrote:
>
> There's no assignment. The value is constructed in-place, in
> `ss2`'s memory.
>
> The reason the compiler allows you to construct a `const(S2)`
> value inside of an `S2` variable is that `const(S2)` implicitly
> converts to `S2`.
On Tuesday, 14 November 2023 at 16:58:25 UTC, Steven
Schveighoffer wrote:
>
> That being said, I still consider this a bug, if the inout
> version works, the const version should work as well. I don't
> see the difference.
>
Ok so to summarize:
- "inout" and "const" behaving differently here is probably
wrong, and
- in structs without reference fields, a const constructor can be
used to construct mutable values, due to "implicit qualifier
conversions".
Thanks.
More information about the Digitalmars-d-learn
mailing list