
Hi to all, I've uploaded to SVN a new version of Boost.Intrusive that uses the new option specification syntax discussed some time ago in this mailing list: using namespace boost::intrusive; class MyClass : public list_base_hook < void_pointer<offset_ptr<void> > , link_mode<auto_unlink> > { //... }; typedef list<MyClass, constant_time_size<false> > IntrusiveList; The new syntax is more verbose, but easier for common uses: class MyClass : unordered_set_base_hook<> { friend operator==(...); friend hash_value(...); }; //We don't need to specify default hash and equality functors typedef unordered_set<MyClass> MyHashSet; I've uploaded the new documentation here: http://igaztanaga.drivehq.com/intrusive Documentation is still lacking but I think it's fairly adapted to the new syntax. Apart from the new syntax, new features: -> Added stateful value traits. -> Fixed bug in 64 bit platforms (thanks Glenn!). -> Added support for custom bucket traits in unordered containers. -> Added option to use masks instead of modulo operations to determine the bucket number from the hash value (provided bucket length is always power of two). -> Changed all recursive functions from red-black tree algorithms with non-recursive ones (thanks Steven!). Interface change is a big change in the library, so I expect complaints from users. But I think the new syntax is much easier to use, specially as new options are added (unordered containers now receive upt o 7 options!). And the time to do breaking changes is before the library is officially released. Suggestions, improvements and comments are welcome ;-) Regards, Ion P.S.: If users prefer the old syntax, we can go back again to the old way. Just be polite ;-)