4 ms·
The post I linked to mentions it explicitly.
by apankrat 6y ago
The post I linked to mentions it explicitly.
- gpderetta 6y agobut it doesn't mention why not to use it.
- apankrat 6y agoIt does, in the exact same sentence.
- gpderetta 6y agoYou mean this: "the goal here is to make a better version of C-style containers rather than to implement something C++-style and similar,"? But a goal is not a reason. I.e. why doing CONTAINER_OF( user_data, vip ); instead of container_of<&user_data::vip> vip_list; is preferable? How are they even meaningfully different?
- apankrat 6y agoThe reason is that the goal is not achievable using boost contraptions. At the very least it's not possible to use boost version without inheritance. As to why to do what you wrote I have no idea. These two code snippets are unrelated.
- gpderetta 6y agoof course it is possible to use boost intrusive without inheritance: it supports both hooks as base and hooks as members.
- apankrat 6y agoOh, well, good for it. If I were to pick the reason, it'd be simply that I don't like Boost. To me, Boost is an ultimate embodiment of all that went wrong with C++ when it evolved from being a better version of C into the multi-paradigm monstrosity that it is now. Just look at the man page linked above. How to get a clever little concept of intrusive containers and completely decimate it into a technically correct, but unpalatable formulistic piece of engineering that, above all else, is rid of any shred of elegance that made the original concept so great in the first place.