Purity and C functions

Denis Koroskin 2korden at gmail.com
Wed Jan 7 19:07:42 PST 2009


On Thu, 08 Jan 2009 06:00:35 +0300, dsimcha <dsimcha at yahoo.com> wrote:

> If someone wants to call C code from a pure D function, how can this be  
> done?
>  How does one tell DMD that the C function is, in fact, pure?

Purite can't be checked on extern functions. It these cases DMD should rely on programmer.
For example, you could define strstr as follows:

extern(C) pure invariant(char)* strstr(invariant(char)* str1, invariant(char)* str2);

This way it is truly pure.

I wonder what results you may get using "extern(C) pure int rand();" though. :p



More information about the Digitalmars-d mailing list