How to fake pure

Dom DiSc dominikus at scherkl.de
Tue Apr 8 14:23:32 UTC 2025


On Tuesday, 8 April 2025 at 14:00:56 UTC, Jonathan M Davis wrote:
>
> You basically have to lie to the compiler and cast the function 
> pointer to pure [...].
>
> That being said, core.memory has pureMalloc and pureFree which 
> do that for you already, including mucking around with errno to 
> ensure that it's not changed even though malloc and pure can 
> change it.

Oh, cool. Thank you very much.

> That being said, personally, I think that it's a mistake to try 
> to force pure like this [...]. We already have a variety of 
> compiler bugs related to doing stuff based on pure.
>
> - Jonathan M Davis

Yeah, maybe you're right, but I use pure more for myself - it 
tells me that a function doesn't depend on global state (beside 
allocation). And indeed, I use it only on small functions where I 
have the feeling to understand what they're doing...


More information about the Digitalmars-d-learn mailing list