...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::derivation_value_traits
// In header: <boost/intrusive/derivation_value_traits.hpp> template<typename T, typename NodeTraits, link_mode_type LinkMode = safe_link> struct derivation_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) ; static const link_mode_type link_mode; };