Remix.run Logo
WalterBright 3 hours ago

For example, C and C++ still cannot compile this:

    int foo() { return bar(); }

    int bar() { return 3; }
vips7L 3 hours ago | parent [-]

Is it because bar is defined after foo?

WalterBright 2 hours ago | parent [-]

Yes.

It has deleterious consequences. One solution is to add a forward declaration, which is the kind of busywork a language is supposed to eliminate.

Another is to reverse the natural order of functions, with the implementation functions at the top and the interface of the module at the bottom.

After all, do you read a website from top to bottom or bottom to top?