...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::interprocess::iunordered_set_index_aux
// In header: <boost/interprocess/indexes/iunordered_set_index.hpp> template<typename MapConfig> struct iunordered_set_index_aux { // types typedef MapConfig::segment_manager_base segment_manager_base; typedef segment_manager_base::void_pointer void_pointer; typedef bi::make_unordered_set_base_hook< bi::void_pointer< void_pointer > >::type derivation_hook; typedef MapConfig::template intrusive_value_type< derivation_hook >::type value_type; typedef MapConfig::intrusive_compare_key_type intrusive_compare_key_type; typedef std::equal_to< value_type > value_equal; typedef MapConfig::char_type char_type; typedef bi::make_unordered_set< value_type, bi::hash< hash_function >, bi::equal< equal_function > >::type index_t; typedef index_t::bucket_type bucket_type; typedef allocator< bucket_type, segment_manager_base > allocator_type; // member classes/structs/unions struct allocator_holder { // construct/copy/destruct allocator_holder(segment_manager_base *); allocator_type alloc; bucket_type init_bucket; }; struct equal_function { // public member functions bool operator()(const intrusive_compare_key_type &, const value_type &) const; bool operator()(const value_type &, const intrusive_compare_key_type &) const; bool operator()(const value_type &, const value_type &) const; }; struct hash_function { // public member functions std::size_t operator()(const value_type &) const; std::size_t operator()(const intrusive_compare_key_type &) const; }; };