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
My question is why it doesn't works and if there's a workaround
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
On Mon, 29 Sep 2014 16:07:49 +
AsmMan via Digitalmars-d-learn digitalmars-d-learn@puremagic.com
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
I had just forget out and ref are same as pointers... thanks guys
On Mon, 29 Sep 2014 20:22:41 +
AsmMan via Digitalmars-d-learn digitalmars-d-learn@puremagic.com
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