On Monday, 16 August 2021 at 19:30:19 UTC, JG wrote:
On Sunday, 15 August 2021 at 21:53:14 UTC, Carl Sturtivant
wrote:
On Sunday, 15 August 2021 at 07:10:17 UTC, JG wrote:
[...]
What you are asking for are reference variables. C++ has them:
the example here illustrates the behavior you want.
https://www.geeksforgeeks.org/references-in-c/
[...]
Thanks for the links and code. Looking at the assembly as
suggested by others it seems that after optimization this not
too bad.
The problem is not optimization. The semantics of the code are
different when you use the `Ref!int` solution versus simply
`int`. You'll see this in template instantiations, as in the
`writeln` example.
`writeln` is a template and `writeln!int` is something different
from `writeln!(Ref!int)`. When you force the template
instantiation to `writeln!int` -- e.g. with an explicit cast,
https://d.godbolt.org/z/6fKbMh731 -- the `Ref!int` output is the
same as with `int`.
Regardless, I haven't seen a performance measurement, and it is
most likely completely irrelevant for the performance of your
program.
-Johan