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 {
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 {
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 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 {
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 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 {
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 {
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 {
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 {
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 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;
}
}