On Tuesday, 26 November 2019 at 03:06:52 UTC, Omar wrote:
the page here https://dlang.org/spec/function.html
suggests you can implement a function in a different file, and a different tutorial somewhere else mentioned the endeavour of no-bodied-functions as a way of presenting a black-box type of interface.

This is not a common pattern in d; the only reason it's used in c and c++ is that those languages don't have a real module system. However, the way it's done is with .di (d interface) files. Consider:

test.di:
module test;

void print_stuff();

main.d:
import test;

void main() {
        print_stuff();
}


test.d:
module test;
void print_stuff() {
        import std.stdio;
        writeln("I'm stuff");
}


You can verify the compiler is reading from test.di by putting test.d in a different directory from main.d and test.di.

Reply via email to