
I was wondering if it would be interesting to provide some generic template classes making >easier this kind of optimization.
Yes, at least for me. You actually have more than one bit available as the OS generally reserves a huge area of virtual memory for the kernel. Typical example, Windows 32, maximum user pointer value is 0x80000000. Don't remember the values by heart for the other oses. On 64-bit OSes you really can use the large pointers to store data and therefore have very compact structures in memory. Correct me if I'm wrong but currently most OSes only allow several gigabytes of virtual memory for any given user process (something like 100-200 GB), that means there's room for expression! :D In addition, embedding a tag within a pointer is a technique to reduce the ABA problem occurrence on lockfree containers. It would be a nice to have IMHO, but there is a huge work of testing to make it safe and reliable. -- EA __________ Information from ESET NOD32 Antivirus, version of virus signature database 4403 (20090907) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com