On Friday, 8 August 2014 at 18:51:49 UTC, ketmar wrote:
Why are void pointers better than ulong, if I may ask
there is at least one reason: GC. yes, it is conservative, but there's no reason to scan ulong[] for any pointers, so you may lost your objects if there is no other references to 'em.

And `ulong` is always 64 bits large, while pointer size depends on the system architecture (32 bits vs 64 bits). If you really, really must use an integral type instead of a pointer, use `size_t`, which is defined to have the same size as a pointer.

But as ketmar said, the GC may not see recognize it then. `void*` also has the advantage that you don't need to case if you assign to it, because pointers convert to `void*` implicitly. In your case, however, you likely are better off if you use `S*`, then you don't need to do any conversions at all.

Reply via email to