On Friday, 16 October 2020 at 19:55:53 UTC, wilcro wrote:
The web page "Programming in D for C Programmers" (https://dlang.org/articles/ctod.html#forwardfunc) states that forward declarations are neither required nor permitted, and that the following construct is allowable:

void myfunc()
{
    forwardfunc();
}

void forwardfunc()
{
    ... //do stuff
}


However, the following code will cause a compiler error:

import std.stdio: writeln;

void main()
{

    void myfunc() {

forwardfunc(); // onlineapp.d(8): Error: undefined identifier forwardfunc
    }

    void forwardfunc() {

        writeln("foo");
    }

    myfunc();

}


Evidently, I am misunderstanding something very elemental here; thanks for any enlightenment regarding this.

I think it might be just because you havent defined the function yet at that point.

Reply via email to