El 11/02/2014 0:49, Matei David escribió:
However, things seemed to work ok if I don't wrap voids. So the main concern with my use case is that: ***intrusive containers should not cast node_ptr objects into other types of pointers (not even void*), and then attempt to cast them back***. They can cast other pointers (such as value_traits*) to void* and back, but not node_ptr-s. Please have this use case in mind when further developing boost::intrusive. The files I linked above can serve as a basic test case.
Matei, Thanks for your thorough explanation. I'm not sure this casting limitations could be acceptable in future Intrusive developments, but I agree that Intrusive should somehow be used with non-trivial pointers to solve problems like the one you're trying to solve. Right now I don't have enough time to carefully study your work in progress but I appreciate your effort and I'll try to fully understand all the details needed to support this special addressing.
I can help writing up this use case in slightly more detail if you think that would be useful for others.
Thanks. If you think it will be useful to support it in Intrusive, feel free to share your improvements in the mailing list. Best, Ion