The 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.
As to why to do what you wrote I have no idea. These two code snippets are unrelated.
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.