const->immutable array argument?

Kagamin spam at here.lot
Tue Sep 20 05:24:36 PDT 2011


bearophile Wrote:

> In this bug report I have asked for better error messages:
> http://d.puremagic.com/issues/show_bug.cgi?id=6696
> 
> But beside the error message, do you know why an immutable ref can't be given to a function with a const ref argument? foo() can't change the contents of the array a any way, so what's wrong in this code?
> 
> 
> void foo(const ref int[5] a) {}
> void main() {
>     immutable int[5] arr;
>     foo(arr); // Error?
> }

Looks like a bug. Seems like the compiler treats casted argument as an rvalue and you can't pass rvalue byref, can you?


More information about the Digitalmars-d-learn mailing list