`in` parameters made useful

Andrei Alexandrescu SeeWebsiteForEmail at erdani.com
Thu Aug 20 22:19:16 UTC 2020

On 8/20/20 1:31 PM, IGotD- wrote:
> This is interesting on a general level as well and true for several 
> programming languages. Let the compiler optimize the parameter passing 
> unless the programmer explicitly ask for a certain way (copy object, 
> pointer/reference etc.).

This has been discussed a few times. If mutation is allowed, aliasing is 
a killer:

void fun(ref S a, const compiler_chooses S b) {
     ... mutate a, read b ...

S x;
fun(x, x); // oops

The problem now is that the semantics of fun depends on whether the 
compiler chose pass by value vs. pass by reference.

More information about the Digitalmars-d mailing list