...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::node_cast_adaptor
// In header: <boost/intrusive/hashtable.hpp> template<typename F, typename SlistNodePtr, typename NodePtr> struct node_cast_adaptor { // types typedef unspecified base_t; typedef pointer_traits< SlistNodePtr >::element_type slist_node; typedef pointer_traits< NodePtr >::element_type node; // construct/copy/destruct template<typename ConvertibleToF, typename RealValuTraits> node_cast_adaptor(const ConvertibleToF &, const RealValuTraits *); // public member functions base_t::node_ptr operator()(const slist_node &); void operator()(SlistNodePtr); };