How to create a function declaration?

Marcio Faustino m.faustino.remove at gmail.com
Fri Jan 12 09:47:21 PST 2007


> You're writing forward declarations. Seriously, D doesn't need them;
> forward references are allowed ;).
>
> A function declaration without definition is for when you put the
> definition in a different file, not to put it later in the same file.
> It's mostly useful to link to libraries designed to link to C, though
> Phobos also uses it in object.d to link to definitions in internal/object.d.
> It *could* also be useful to link to closed-source D libraries, but I
> haven't seen any yet...

So, how can I do something like this:

/*[ my_printf.d ]**************************************************************/
module my_printf;

extern (C) int printf(char* format, ...) {
	return 0;    // Just to test.
}
/******************************************************************************/
/*[ test.d ]*******************************************************************/
import my_printf;

void main() {
	//printf("test\0");            // Error.
	my_printf.printf("test\0");    // Ok.
}
/******************************************************************************/

Because the line with "Error" uncommented, the compiler says:
«test.d(5): Error: object.printf at /home/marcio/dmd/src/phobos/object.d(14)
conflicts with my_printf.printf at my_printf.d(3)»


More information about the Digitalmars-d-learn mailing list