Uh... destructors?
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Wed Feb 23 07:46:43 PST 2011
On 2/23/11 9:42 AM, Steven Schveighoffer wrote:
> On Wed, 23 Feb 2011 10:35:26 -0500, Andrei Alexandrescu
> <SeeWebsiteForEmail at erdani.org> wrote:
>> free(p) affects data remotely outside the pure function.
>
> This is allowed however in the new pure regime:
>
> pure void foo(int *x) {(*x)++;}
>
> int x;
> foo(&x);
>
> Or do you mean something else?
>
> -Steve
At a level it's clear to me that a function cannot be at the same time
pure and unsafe. For example:
pure void foo(int *x) { free(x); (*x)++; }
This function essentially breaks any guarantee for the entire program,
so it would be quite difficult to claim it's pure.
Andrei
More information about the Digitalmars-d
mailing list