Forward reference not working in nested functions
Timon Gehr
timon.gehr at gmx.ch
Wed Dec 12 12:07:33 PST 2012
On 12/12/2012 09:03 PM, Timon Gehr wrote:
> On 12/12/2012 07:03 PM, H. S. Teoh wrote:
>> Is this a known bug or deliberate limitation?
>>
>> void func(T)(T data) {
>> void subfunc1() {
>> process(data);
>> if (recurse) subfunc2(); // Error: subfunc2 undefined
>> }
>>
>> void subfunc2() {
>> process(data);
>> if (recurse) subfunc1(); // Error: subfunc1 undefined
>> }
>>
>> subfunc1();
>> }
>>
>>
>> T
>>
>
> Both.
(A silly workaround is the following, but I do not know if this has been
documented since it has been discovered:
void func(T)(T data) {
void subfunc1()() {
process(data);
if (recurse) subfunc2(); // Ok.
}
void subfunc2() {
process(data);
if (recurse) subfunc1(); // Ok.
}
subfunc1();
}
)
More information about the Digitalmars-d
mailing list