Am Dienstag, 15. Mai 2007 21:28 schrieb Nicholas Clark:
> On Tue, May 15, 2007 at 12:10:09PM -0700, Mike Mattie wrote:
> > If someone remembers the magic to muzzle the compiler around free( from )
> > in memory.c please feel free to amend the patch.
>
> I remember being told that there's a trick involving a union. Something
> like
>
> union {
> void *out;
> const void *in;
> } launder;
>
> You assign to in, then read from out. Et voila, you launder the const away.
Well, there is of course ;) such a macro already:
include/parrot/parrot.h:#define const_cast(b) (__ptr_u.__c_ptr = (b),
__ptr_u.__ptr)
See usage in e.g.
$ grep const_cast src/string.c
> Nicholas Clark
leo