Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
PrevUpHomeNext

Reference

Header <boost/intrusive/any_hook.hpp>
Header <boost/intrusive/avl_set.hpp>
Header <boost/intrusive/avl_set_hook.hpp>
Header <boost/intrusive/avltree.hpp>
Header <boost/intrusive/avltree_algorithms.hpp>
Header <boost/intrusive/bs_set_hook.hpp>
Header <boost/intrusive/circular_list_algorithms.hpp>
Header <boost/intrusive/circular_slist_algorithms.hpp>
Header <boost/intrusive/derivation_value_traits.hpp>
Header <boost/intrusive/hashtable.hpp>
Header <boost/intrusive/intrusive_fwd.hpp>
Header <boost/intrusive/linear_slist_algorithms.hpp>
Header <boost/intrusive/link_mode.hpp>
Header <boost/intrusive/list.hpp>
Header <boost/intrusive/list_hook.hpp>
Header <boost/intrusive/member_value_traits.hpp>
Header <boost/intrusive/options.hpp>
Header <boost/intrusive/parent_from_member.hpp>
Header <boost/intrusive/pointer_plus_bits.hpp>
Header <boost/intrusive/priority_compare.hpp>
Header <boost/intrusive/rbtree.hpp>
Header <boost/intrusive/rbtree_algorithms.hpp>
Header <boost/intrusive/set.hpp>
Header <boost/intrusive/set_hook.hpp>
Header <boost/intrusive/sg_set.hpp>
Header <boost/intrusive/sgtree.hpp>
Header <boost/intrusive/sgtree_algorithms.hpp>
Header <boost/intrusive/slist.hpp>
Header <boost/intrusive/slist_hook.hpp>
Header <boost/intrusive/splay_set.hpp>
Header <boost/intrusive/splay_set_hook.hpp>
Header <boost/intrusive/splaytree.hpp>
Header <boost/intrusive/splaytree_algorithms.hpp>
Header <boost/intrusive/treap.hpp>
Header <boost/intrusive/treap_algorithms.hpp>
Header <boost/intrusive/treap_set.hpp>
Header <boost/intrusive/trivial_value_traits.hpp>
Header <boost/intrusive/unordered_set.hpp>
Header <boost/intrusive/unordered_set_hook.hpp>
namespace boost {
  namespace intrusive {
    struct get_any_node_algo;
    template<class... Options> struct make_any_base_hook;

    template<class... Options> class any_base_hook;

    template<class... Options> struct make_any_member_hook;

    template<class... Options> class any_member_hook;

    template<typename BaseHook> struct any_to_slist_hook;
    template<typename BaseHook> struct any_to_list_hook;
    template<typename BaseHook> struct any_to_set_hook;
    template<typename BaseHook> struct any_to_avl_set_hook;
    template<typename BaseHook> struct any_to_bs_set_hook;
    template<typename BaseHook> struct any_to_unordered_set_hook;
  }
}
namespace boost {
  namespace intrusive {
    template<typename T, class... Options> class avl_set;

    template<typename T, class... Options> struct make_avl_set;

    template<typename T, class... Options> class avl_multiset;

    template<typename T, class... Options> struct make_avl_multiset;
    template<typename T, class... Options> 
      bool operator!=(const avl_set< T, Options...> & x, 
                      const avl_set< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>(const avl_set< T, Options...> & x, 
                     const avl_set< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator<=(const avl_set< T, Options...> & x, 
                      const avl_set< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>=(const avl_set< T, Options...> & x, 
                      const avl_set< T, Options...> & y);
    template<typename T, class... Options> 
      void swap(avl_set< T, Options...> & x, avl_set< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator!=(const avl_multiset< T, Options...> & x, 
                      const avl_multiset< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>(const avl_multiset< T, Options...> & x, 
                     const avl_multiset< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator<=(const avl_multiset< T, Options...> & x, 
                      const avl_multiset< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>=(const avl_multiset< T, Options...> & x, 
                      const avl_multiset< T, Options...> & y);
    template<typename T, class... Options> 
      void swap(avl_multiset< T, Options...> & x, 
                avl_multiset< T, Options...> & y);
  }
}
namespace boost {
  namespace intrusive {
    struct get_avl_set_node_algo;
    template<class... Options> struct make_avl_set_base_hook;

    template<class... Options> class avl_set_base_hook;

    template<class... Options> struct make_avl_set_member_hook;

    template<class... Options> class avl_set_member_hook;
  }
}
namespace boost {
  namespace intrusive {
    template<typename ValueTraits, typename Compare, typename SizeType, 
             bool ConstantTimeSize> 
      struct avl_setopt;
    template<typename T> struct avl_set_defaults;

    template<typename T, class... Options> class avltree;

    template<typename T, typename O1 = none, typename O2 = none, 
             typename O3 = none, typename O4 = none> 
      struct make_avltree_opt;
    template<typename T, class... Options> struct make_avltree;
    template<typename T, class... Options> 
      bool operator<(const avltree< T, Options...> & x, 
                     const avltree< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator==(const avltree< T, Options...> & x, 
                      const avltree< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator!=(const avltree< T, Options...> & x, 
                      const avltree< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>(const avltree< T, Options...> & x, 
                     const avltree< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator<=(const avltree< T, Options...> & x, 
                      const avltree< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>=(const avltree< T, Options...> & x, 
                      const avltree< T, Options...> & y);
    template<typename T, class... Options> 
      void swap(avltree< T, Options...> & x, avltree< T, Options...> & y);
  }
}
namespace boost {
  namespace intrusive {
    template<typename NodeTraits> class avltree_algorithms;
  }
}
namespace boost {
  namespace intrusive {
    struct get_bs_set_node_algo;
    template<class... Options> struct make_bs_set_base_hook;

    template<class... Options> class bs_set_base_hook;

    template<class... Options> struct make_bs_set_member_hook;

    template<class... Options> class bs_set_member_hook;
  }
}
namespace boost {
  namespace intrusive {
    template<typename NodeTraits> class circular_list_algorithms;
  }
}
namespace boost {
  namespace intrusive {
    template<typename NodeTraits> class circular_slist_algorithms;
  }
}
namespace boost {
  namespace intrusive {
    template<typename T, typename NodeTraits, 
             link_mode_type LinkMode = safe_link> 
      struct derivation_value_traits;
  }
}
namespace boost {
  namespace intrusive {
    template<typename ValueTraitsOrHookOption> struct unordered_bucket;
    template<typename ValueTraitsOrHookOption> struct unordered_bucket_ptr;
    template<typename ValueTraitsOrHookOption> 
      struct unordered_default_bucket_traits;
    template<typename T> struct uset_defaults;

    template<typename T, class... Options> class hashtable;

    template<typename T, bool UniqueKeys, typename O1 = none, 
             typename O2 = none, typename O3 = none, typename O4 = none, 
             typename O5 = none, typename O6 = none, typename O7 = none, 
             typename O8 = none, typename O9 = none, typename O10 = none> 
      struct make_hashtable_opt;
    template<typename T, class... Options> struct make_hashtable;
  }
}
namespace boost {
  namespace intrusive {
    template<typename NodeTraits> class linear_slist_algorithms;
  }
}
namespace boost {
  namespace intrusive {
    enum link_mode_type;
  }
}
namespace boost {
  namespace intrusive {
    template<typename ValueTraits, typename SizeType, bool ConstantTimeSize> 
      struct listopt;
    template<typename T> struct list_defaults;

    template<typename T, class... Options> class list;

    template<typename T, class... Options> struct make_list;
    template<typename T, class... Options> 
      bool operator<(const list< T, Options...> & x, 
                     const list< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator==(const list< T, Options...> & x, 
                      const list< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator!=(const list< T, Options...> & x, 
                      const list< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>(const list< T, Options...> & x, 
                     const list< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator<=(const list< T, Options...> & x, 
                      const list< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>=(const list< T, Options...> & x, 
                      const list< T, Options...> & y);
    template<typename T, class... Options> 
      void swap(list< T, Options...> & x, list< T, Options...> & y);
  }
}
namespace boost {
  namespace intrusive {
    struct get_list_node_algo;
    template<class... Options> struct make_list_base_hook;

    template<class... Options> class list_base_hook;

    template<class... Options> struct make_list_member_hook;

    template<class... Options> class list_member_hook;
  }
}
namespace boost {
  namespace intrusive {
    template<typename T, typename NodeTraits, 
             typename NodeTraits::node T::* PtrToMember, 
             link_mode_type LinkMode = safe_link> 
      struct member_value_traits;
  }
}
namespace boost {
  namespace intrusive {
    struct none;
    template<bool Enabled> struct constant_time_size;
    template<typename SizeType> struct size_type;
    template<typename Compare> struct compare;
    template<bool Enabled> struct floating_point;
    template<typename Equal> struct equal;
    template<typename Priority> struct priority;
    template<typename Hash> struct hash;
    template<typename ValueTraits> struct value_traits;
    template<typename Parent, typename MemberHook, 
             MemberHook Parent::* PtrToMember> 
      struct member_hook;
    template<typename Functor> struct function_hook;
    template<typename BaseHook> struct base_hook;
    template<typename VoidPointer> struct void_pointer;
    template<typename Tag> struct tag;
    template<link_mode_type LinkType> struct link_mode;
    template<bool Enabled> struct optimize_size;
    template<bool Enabled> struct linear;
    template<bool Enabled> struct cache_last;
    template<typename BucketTraits> struct bucket_traits;
    template<bool Enabled> struct store_hash;
    template<bool Enabled> struct optimize_multikey;
    template<bool Enabled> struct power_2_buckets;
    template<bool Enabled> struct cache_begin;
    template<bool Enabled> struct compare_hash;
    template<bool Enabled> struct incremental;
    template<typename Prev, typename Next> struct do_pack;

    template<typename Prev> struct do_pack<Prev, none>;

    template<typename DefaultOptions, typename O1 = none, typename O2 = none, 
             typename O3 = none, typename O4 = none, typename O5 = none, 
             typename O6 = none, typename O7 = none, typename O8 = none, 
             typename O9 = none, typename O10 = none, typename O11 = none> 
      struct pack_options;
    struct hook_defaults;
  }
}
namespace boost {
  namespace intrusive {
    template<typename Parent, typename Member> 
      Parent * get_parent_from_member(Member *, const Member Parent::*);
    template<typename Parent, typename Member> 
      const Parent * 
      get_parent_from_member(const Member *, const Member Parent::*);
  }
}
namespace boost {
  namespace intrusive {
    template<typename VoidPointer, std::size_t Alignment> 
      struct max_pointer_plus_bits;

    template<std::size_t Alignment> 
      struct max_pointer_plus_bits<void *, Alignment>;
    template<typename T, std::size_t NumBits> 
      struct pointer_plus_bits<T *, NumBits>;
  }
}
namespace boost {
  namespace intrusive {
    template<typename T> struct priority_compare;
  }
}
namespace boost {
  namespace intrusive {
    template<typename ValueTraits, typename Compare, typename SizeType, 
             bool ConstantTimeSize> 
      struct setopt;
    template<typename T> struct set_defaults;

    template<typename T, class... Options> class rbtree;

    template<typename T, typename O1 = none, typename O2 = none, 
             typename O3 = none, typename O4 = none> 
      struct make_rbtree_opt;
    template<typename T, class... Options> struct make_rbtree;
    template<typename T, class... Options> 
      bool operator<(const rbtree< T, Options...> & x, 
                     const rbtree< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator==(const rbtree< T, Options...> & x, 
                      const rbtree< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator!=(const rbtree< T, Options...> & x, 
                      const rbtree< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>(const rbtree< T, Options...> & x, 
                     const rbtree< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator<=(const rbtree< T, Options...> & x, 
                      const rbtree< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>=(const rbtree< T, Options...> & x, 
                      const rbtree< T, Options...> & y);
    template<typename T, class... Options> 
      void swap(rbtree< T, Options...> & x, rbtree< T, Options...> & y);
  }
}
namespace boost {
  namespace intrusive {
    template<typename NodeTraits> class rbtree_algorithms;
  }
}
namespace boost {
  namespace intrusive {
    template<typename T, class... Options> class set;

    template<typename T, class... Options> struct make_set;

    template<typename T, class... Options> class multiset;

    template<typename T, class... Options> struct make_multiset;
    template<typename T, class... Options> 
      bool operator!=(const set< T, Options...> & x, 
                      const set< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>(const set< T, Options...> & x, 
                     const set< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator<=(const set< T, Options...> & x, 
                      const set< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>=(const set< T, Options...> & x, 
                      const set< T, Options...> & y);
    template<typename T, class... Options> 
      void swap(set< T, Options...> & x, set< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator!=(const multiset< T, Options...> & x, 
                      const multiset< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>(const multiset< T, Options...> & x, 
                     const multiset< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator<=(const multiset< T, Options...> & x, 
                      const multiset< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>=(const multiset< T, Options...> & x, 
                      const multiset< T, Options...> & y);
    template<typename T, class... Options> 
      void swap(multiset< T, Options...> & x, multiset< T, Options...> & y);
  }
}
namespace boost {
  namespace intrusive {
    struct get_set_node_algo;
    template<class... Options> struct make_set_base_hook;

    template<class... Options> class set_base_hook;

    template<class... Options> struct make_set_member_hook;

    template<class... Options> class set_member_hook;
  }
}
namespace boost {
  namespace intrusive {
    template<typename T, class... Options> class sg_set;

    template<typename T, class... Options> struct make_sg_set;

    template<typename T, class... Options> class sg_multiset;

    template<typename T, class... Options> struct make_sg_multiset;
    template<typename T, class... Options> 
      bool operator!=(const sg_set< T, Options...> & x, 
                      const sg_set< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>(const sg_set< T, Options...> & x, 
                     const sg_set< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator<=(const sg_set< T, Options...> & x, 
                      const sg_set< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>=(const sg_set< T, Options...> & x, 
                      const sg_set< T, Options...> & y);
    template<typename T, class... Options> 
      void swap(sg_set< T, Options...> & x, sg_set< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator!=(const sg_multiset< T, Options...> & x, 
                      const sg_multiset< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>(const sg_multiset< T, Options...> & x, 
                     const sg_multiset< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator<=(const sg_multiset< T, Options...> & x, 
                      const sg_multiset< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>=(const sg_multiset< T, Options...> & x, 
                      const sg_multiset< T, Options...> & y);
    template<typename T, class... Options> 
      void swap(sg_multiset< T, Options...> & x, 
                sg_multiset< T, Options...> & y);
  }
}
namespace boost {
  namespace intrusive {
    template<typename ValueTraits, typename Compare, typename SizeType, 
             bool FloatingPoint> 
      struct sg_setopt;
    template<typename T> struct sg_set_defaults;

    template<typename T, class... Options> class sgtree;

    template<typename T, typename O1 = none, typename O2 = none, 
             typename O3 = none, typename O4 = none> 
      struct make_sgtree_opt;
    template<typename T, class... Options> struct make_sgtree;
    template<typename T, class... Options> 
      bool operator<(const sgtree< T, Options...> & x, 
                     const sgtree< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator==(const sgtree< T, Options...> & x, 
                      const sgtree< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator!=(const sgtree< T, Options...> & x, 
                      const sgtree< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>(const sgtree< T, Options...> & x, 
                     const sgtree< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator<=(const sgtree< T, Options...> & x, 
                      const sgtree< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>=(const sgtree< T, Options...> & x, 
                      const sgtree< T, Options...> & y);
    template<typename T, class... Options> 
      void swap(sgtree< T, Options...> & x, sgtree< T, Options...> & y);
  }
}
namespace boost {
  namespace intrusive {
    template<typename NodeTraits> class sgtree_algorithms;
  }
}
namespace boost {
  namespace intrusive {
    template<typename ValueTraits, typename SizeType, bool ConstantTimeSize, 
             bool Linear, bool CacheLast> 
      struct slistopt;
    template<typename Node, typename NodePtr, bool > struct root_plus_last;

    template<typename Node, typename NodePtr> 
      struct root_plus_last<Node, NodePtr, false>;

    template<typename T> struct slist_defaults;

    template<typename T, class... Options> class slist;

    template<typename T, class... Options> struct make_slist;
    template<typename T, class... Options> 
      bool operator<(const slist< T, Options...> & x, 
                     const slist< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator==(const slist< T, Options...> & x, 
                      const slist< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator!=(const slist< T, Options...> & x, 
                      const slist< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>(const slist< T, Options...> & x, 
                     const slist< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator<=(const slist< T, Options...> & x, 
                      const slist< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>=(const slist< T, Options...> & x, 
                      const slist< T, Options...> & y);
    template<typename T, class... Options> 
      void swap(slist< T, Options...> & x, slist< T, Options...> & y);
  }
}
namespace boost {
  namespace intrusive {
    struct get_slist_node_algo;
    template<class... Options> struct make_slist_base_hook;

    template<class... Options> class slist_base_hook;

    template<class... Options> struct make_slist_member_hook;

    template<class... Options> class slist_member_hook;
  }
}
namespace boost {
  namespace intrusive {
    template<typename T, class... Options> class splay_set;

    template<typename T, class... Options> struct make_splay_set;

    template<typename T, class... Options> class splay_multiset;

    template<typename T, class... Options> struct make_splay_multiset;
    template<typename T, class... Options> 
      bool operator!=(const splay_set< T, Options...> & x, 
                      const splay_set< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>(const splay_set< T, Options...> & x, 
                     const splay_set< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator<=(const splay_set< T, Options...> & x, 
                      const splay_set< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>=(const splay_set< T, Options...> & x, 
                      const splay_set< T, Options...> & y);
    template<typename T, class... Options> 
      void swap(splay_set< T, Options...> & x, splay_set< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator!=(const splay_multiset< T, Options...> & x, 
                      const splay_multiset< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>(const splay_multiset< T, Options...> & x, 
                     const splay_multiset< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator<=(const splay_multiset< T, Options...> & x, 
                      const splay_multiset< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>=(const splay_multiset< T, Options...> & x, 
                      const splay_multiset< T, Options...> & y);
    template<typename T, class... Options> 
      void swap(splay_multiset< T, Options...> & x, 
                splay_multiset< T, Options...> & y);
  }
}
namespace boost {
  namespace intrusive {
    struct get_splay_set_node_algo;
    template<class... Options> struct make_splay_set_base_hook;

    template<class... Options> class splay_set_base_hook;

    template<class... Options> struct make_splay_set_member_hook;

    template<class... Options> class splay_set_member_hook;
  }
}
namespace boost {
  namespace intrusive {
    template<typename ValueTraits, typename Compare, typename SizeType, 
             bool ConstantTimeSize> 
      struct splaysetopt;
    template<typename T> struct splay_set_defaults;

    template<typename T, class... Options> class splaytree;

    template<typename T, typename O1 = none, typename O2 = none, 
             typename O3 = none, typename O4 = none> 
      struct make_splaytree_opt;
    template<typename T, class... Options> struct make_splaytree;
    template<typename T, class... Options> 
      bool operator<(const splaytree< T, Options...> & x, 
                     const splaytree< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator==(const splaytree< T, Options...> & x, 
                      const splaytree< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator!=(const splaytree< T, Options...> & x, 
                      const splaytree< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>(const splaytree< T, Options...> & x, 
                     const splaytree< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator<=(const splaytree< T, Options...> & x, 
                      const splaytree< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>=(const splaytree< T, Options...> & x, 
                      const splaytree< T, Options...> & y);
    template<typename T, class... Options> 
      void swap(splaytree< T, Options...> & x, splaytree< T, Options...> & y);
  }
}
namespace boost {
  template<typename NodeTraits> class splaytree_algorithms;
  namespace intrusive {
    template<typename NodeTraits> struct splaydown_rollback;
  }
}
namespace boost {
  namespace intrusive {
    template<typename ValueTraits, typename Compare, typename PrioCompare, 
             typename SizeType, bool ConstantTimeSize> 
      struct treap_setopt;
    template<typename T> struct treap_set_defaults;

    template<typename T, class... Options> class treap;

    template<typename T, typename O1 = none, typename O2 = none, 
             typename O3 = none, typename O4 = none> 
      struct make_treap_opt;
    template<typename T, class... Options> struct make_trie;
    template<typename T, class... Options> 
      bool operator<(const treap< T, Options...> & x, 
                     const treap< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator==(const treap< T, Options...> & x, 
                      const treap< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator!=(const treap< T, Options...> & x, 
                      const treap< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>(const treap< T, Options...> & x, 
                     const treap< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator<=(const treap< T, Options...> & x, 
                      const treap< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>=(const treap< T, Options...> & x, 
                      const treap< T, Options...> & y);
    template<typename T, class... Options> 
      void swap(treap< T, Options...> & x, treap< T, Options...> & y);
  }
}
namespace boost {
  namespace intrusive {
    template<typename NodeTraits> class treap_algorithms;
  }
}
namespace boost {
  namespace intrusive {
    template<typename T, class... Options> class treap_set;

    template<typename T, class... Options> struct make_treap_set;

    template<typename T, class... Options> class treap_multiset;

    template<typename T, class... Options> struct make_treap_multiset;
    template<typename T, class... Options> 
      bool operator!=(const treap_set< T, Options...> & x, 
                      const treap_set< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>(const treap_set< T, Options...> & x, 
                     const treap_set< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator<=(const treap_set< T, Options...> & x, 
                      const treap_set< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>=(const treap_set< T, Options...> & x, 
                      const treap_set< T, Options...> & y);
    template<typename T, class... Options> 
      void swap(treap_set< T, Options...> & x, treap_set< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator!=(const treap_multiset< T, Options...> & x, 
                      const treap_multiset< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>(const treap_multiset< T, Options...> & x, 
                     const treap_multiset< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator<=(const treap_multiset< T, Options...> & x, 
                      const treap_multiset< T, Options...> & y);
    template<typename T, class... Options> 
      bool operator>=(const treap_multiset< T, Options...> & x, 
                      const treap_multiset< T, Options...> & y);
    template<typename T, class... Options> 
      void swap(treap_multiset< T, Options...> & x, 
                treap_multiset< T, Options...> & y);
  }
}
namespace boost {
  namespace intrusive {
    template<typename NodeTraits, link_mode_type LinkMode = normal_link> 
      struct trivial_value_traits;
  }
}
namespace boost {
  namespace intrusive {
    template<typename T, class... Options> class unordered_set;

    template<typename T, class... Options> struct make_unordered_set;

    template<typename T, class... Options> class unordered_multiset;

    template<typename T, class... Options> struct make_unordered_multiset;
  }
}
namespace boost {
  namespace intrusive {
    template<typename VoidPointer, bool StoreHash, bool OptimizeMultiKey> 
      struct unordered_node;

    template<typename VoidPointer> 
      struct unordered_node<VoidPointer, false, true>;
    template<typename VoidPointer> 
      struct unordered_node<VoidPointer, true, false>;

    template<typename VoidPointer, bool StoreHash, bool OptimizeMultiKey> 
      struct unordered_node_traits;
    template<typename NodeTraits> struct unordered_group_adapter;
    template<typename NodeTraits> struct unordered_algorithms;
    template<typename VoidPointer, bool StoreHash, bool OptimizeMultiKey> 
      struct get_uset_node_algo;
    template<class... Options> struct make_unordered_set_base_hook;

    template<class... Options> class unordered_set_base_hook;

    template<class... Options> struct make_unordered_set_member_hook;

    template<class... Options> class unordered_set_member_hook;
  }
}

PrevUpHomeNext