Re: out parameter with default value
On Mon, 29 Sep 2014 20:22:41 + AsmMan via Digitalmars-d-learn wrote: > I had just forget out and ref are same as pointers... thanks guys yeah, that syntactic sugar can be confusing sometimes. ;-) signature.asc Description: PGP signature
Re: out parameter with default value
I had just forget out and ref are same as pointers... thanks guys
Re: out parameter with default value
On Mon, 29 Sep 2014 16:07:49 + AsmMan via Digitalmars-d-learn wrote: > but it doesn't? > > void f(out int c = 1) 'cause `out int c` is actually `int* c`. you can't assign int(1) to pointer. signature.asc Description: PGP signature
Re: out parameter with default value
On Monday, 29 September 2014 at 16:09:11 UTC, AsmMan wrote: My question is why it doesn't works and if there's a workaround For the same reason `ref` wouldn't work in this place: It doesn't accept rvalues. A workaround might be to create a global variable that is initialized to the value you want, and use this as the default value. But this probably isn't what you look for, because you're most likely going to overwrite it, so the next time the function gets called, it will have a different value.
Re: out parameter with default value
My question is why it doesn't works and if there's a workaround
out parameter with default value
Why it does works: void f(out int c) { if(some_cond) c = 10; } but it doesn't? void f(out int c = 1) { if(some_cond) c = 10; } it give compiler error: Error: constant 1 is not an lvalue