...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::intrusive::member_value_traits
// In header: <boost/intrusive/member_value_traits.hpp> template<typename T, typename NodeTraits, typename NodeTraits::node T::* PtrToMember, link_mode_type LinkMode = safe_link> struct member_value_traits { // types typedef NodeTraits node_traits; typedef T value_type; typedef node_traits::node node; typedef node_traits::node_ptr node_ptr; typedef node_traits::const_node_ptr const_node_ptr; typedef boost::pointer_to_other< node_ptr, T >::type pointer; typedef boost::pointer_to_other< node_ptr, const T >::type const_pointer; typedef std::iterator_traits< pointer >::reference reference; typedef std::iterator_traits< const_pointer >::reference const_reference; // public static functions static node_ptr to_node_ptr(reference); static const_node_ptr to_node_ptr(const_reference); static pointer to_value_ptr(node_ptr); static const_pointer to_value_ptr(const_node_ptr); // public data members static const link_mode_type link_mode; };