digitalmars.D - Purity and C functions
- dsimcha (2/2) Jan 07 2009 If someone wants to call C code from a pure D function, how can this be ...
- Denis Koroskin (6/9) Jan 07 2009 Purite can't be checked on extern functions. It these cases DMD should r...
- Walter Bright (3/5) Jan 07 2009 If you declare as pure functions that are impure, you'll get undefined
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?
Jan 07 2009
On Thu, 08 Jan 2009 06:00:35 +0300, dsimcha <dsimcha 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
Jan 07 2009
Denis Koroskin wrote:I wonder what results you may get using "extern(C) pure int rand();" though. :pIf you declare as pure functions that are impure, you'll get undefined behavior.
Jan 07 2009