D - Bug: Overloading, overriding and out parameters.
- Andy Friesen (26/26) Nov 08 2003 class A
- Lars Ivar Igesund (7/33) Nov 09 2003 Look at Walter's answer to my message
class A { void foo(out int x) { x = -3; } void foo(out char c) { c = 13; } } class B : A { override void foo(out int x) { } this() { char c; foo(c); } } A.foo(out char) isn't found in the B constructor. The compiler errors out with the message 'cast(int)(c) is not an lvalue'. It works fine if the out keyword isn't there. -- andy
Nov 08 2003
Look at Walter's answer to my message "BUG?: opIndex in opApply" from the 6th of November. It probably isn't a bug, but something to do with the reference nature of 'out'. Lars Ivar Igesund "Andy Friesen" <andy ikagames.com> wrote in message news:bojt9e$b16$1 digitaldaemon.com...class A { void foo(out int x) { x = -3; } void foo(out char c) { c = 13; } } class B : A { override void foo(out int x) { } this() { char c; foo(c); } } A.foo(out char) isn't found in the B constructor. The compiler errors out with the message 'cast(int)(c) is not an lvalue'. It works fine if the out keyword isn't there. -- andy
Nov 09 2003