GNU g++  v5.2.1
GNU Standard C++
Collaboration diagram for Traits:

Classes

struct  __gnu_pbds::container_traits< Cntnr >
 Container traits. More...
 
struct  __gnu_pbds::container_traits_base< _Tag >
 Primary template, container traits base. More...
 
struct  __gnu_pbds::container_traits_base< binary_heap_tag >
 Specialization, binary heap. More...
 
struct  __gnu_pbds::container_traits_base< binomial_heap_tag >
 Specialization, binomial heap. More...
 
struct  __gnu_pbds::container_traits_base< cc_hash_tag >
 Specialization, cc hash. More...
 
struct  __gnu_pbds::container_traits_base< gp_hash_tag >
 Specialization, gp hash. More...
 
struct  __gnu_pbds::container_traits_base< list_update_tag >
 Specialization, list update. More...
 
struct  __gnu_pbds::container_traits_base< ov_tree_tag >
 Specialization, ov tree. More...
 
struct  __gnu_pbds::container_traits_base< pairing_heap_tag >
 Specialization, pairing heap. More...
 
struct  __gnu_pbds::container_traits_base< pat_trie_tag >
 Specialization, pat trie. More...
 
struct  __gnu_pbds::container_traits_base< rb_tree_tag >
 Specialization, rb tree. More...
 
struct  __gnu_pbds::container_traits_base< rc_binomial_heap_tag >
 Specialization, rc binomial heap. More...
 
struct  __gnu_pbds::container_traits_base< splay_tree_tag >
 Specialization, splay tree. More...
 
struct  __gnu_pbds::container_traits_base< thin_heap_tag >
 Specialization, thin heap. More...
 
struct  __gnu_pbds::detail::bin_search_tree_traits< Key, Mapped, Cmp_Fn, Node_Update, Node, _Alloc >
 Binary search tree traits, primary template. More...
 
struct  __gnu_pbds::detail::bin_search_tree_traits< Key, null_type, Cmp_Fn, Node_Update, Node, _Alloc >
 Specialization. More...
 
struct  __gnu_pbds::detail::no_throw_copies< Key, Mapped >
 Primary template. More...
 
struct  __gnu_pbds::detail::no_throw_copies< Key, null_type >
 Specialization. More...
 
struct  __gnu_pbds::detail::stored_data< _Tv, _Th >
 Primary template for representation of stored data. More...
 
struct  __gnu_pbds::detail::stored_data< _Tv, null_type >
 Specialization for representation of stored data of just value type. More...
 
struct  __gnu_pbds::detail::stored_hash< _Th >
 Stored hash. More...
 
struct  __gnu_pbds::detail::stored_value< _Tv >
 Stored value. More...
 
struct  __gnu_pbds::detail::tree_metadata_helper< Node_Update, _BTp >
 Tree metadata helper. More...
 
struct  __gnu_pbds::detail::tree_metadata_helper< Node_Update, false >
 Specialization, false. More...
 
struct  __gnu_pbds::detail::tree_metadata_helper< Node_Update, true >
 Specialization, true. More...
 
struct  __gnu_pbds::detail::tree_node_metadata_dispatch< Key, Data, Cmp_Fn, Node_Update, _Alloc >
 Tree node metadata dispatch. More...
 
struct  __gnu_pbds::detail::tree_traits< Key, Mapped, Cmp_Fn, Node_Update, ov_tree_tag, _Alloc >
 Tree traits. More...
 
struct  __gnu_pbds::detail::tree_traits< Key, Mapped, Cmp_Fn, Node_Update, rb_tree_tag, _Alloc >
 Specialization. More...
 
struct  __gnu_pbds::detail::tree_traits< Key, Mapped, Cmp_Fn, Node_Update, splay_tree_tag, _Alloc >
 Specialization. More...
 
struct  __gnu_pbds::detail::tree_traits< Key, null_type, Cmp_Fn, Node_Update, ov_tree_tag, _Alloc >
 Specialization. More...
 
struct  __gnu_pbds::detail::tree_traits< Key, null_type, Cmp_Fn, Node_Update, rb_tree_tag, _Alloc >
 Specialization. More...
 
struct  __gnu_pbds::detail::tree_traits< Key, null_type, Cmp_Fn, Node_Update, splay_tree_tag, _Alloc >
 Specialization. More...
 
struct  __gnu_pbds::detail::trie_metadata_helper< Node_Update, _BTp >
 Trie metadata helper. More...
 
struct  __gnu_pbds::detail::trie_metadata_helper< Node_Update, false >
 Specialization, false. More...
 
struct  __gnu_pbds::detail::trie_metadata_helper< Node_Update, true >
 Specialization, true. More...
 
struct  __gnu_pbds::detail::trie_node_metadata_dispatch< Key, Data, Cmp_Fn, Node_Update, _Alloc >
 Trie node metadata dispatch. More...
 
struct  __gnu_pbds::detail::trie_traits< Key, Mapped, _ATraits, Node_Update, pat_trie_tag, _Alloc >
 Specialization. More...
 
struct  __gnu_pbds::detail::trie_traits< Key, null_type, _ATraits, Node_Update, pat_trie_tag, _Alloc >
 Specialization. More...
 
struct  __gnu_pbds::detail::type_base< Key, Mapped, _Alloc, Store_Hash >
 Primary template. More...
 
struct  __gnu_pbds::detail::type_base< Key, Mapped, _Alloc, false >
 Specialization of type_base for the case where the hash value is not stored alongside each value. More...
 
struct  __gnu_pbds::detail::type_base< Key, Mapped, _Alloc, true >
 Specialization of type_base for the case where the hash value is stored alongside each value. More...
 
struct  __gnu_pbds::detail::type_base< Key, null_type, _Alloc, false >
 Specialization of type_base for the case where the hash value is not stored alongside each value. More...
 
struct  __gnu_pbds::detail::type_base< Key, null_type, _Alloc, true >
 Specialization of type_base for the case where the hash value is stored alongside each value. More...
 
struct  __gnu_pbds::detail::type_dispatch< Key, Mapped, _Alloc, Store_Hash >
 Type base dispatch. More...
 
struct  __gnu_pbds::detail::types_traits< Key, Mapped, _Alloc, Store_Hash >
 Traits for abstract types. More...
 
struct  __gnu_pbds::null_node_update< _Tp1, _Tp2, _Tp3, _Tp4 >
 A null node updator, indicating that no node updates are required. More...
 
struct  __gnu_pbds::null_type
 Represents no type, or absence of type, for template tricks. More...
 

Enumerations

enum  { __gnu_pbds::detail::tree_node_metadata_dispatch< Key, Data, Cmp_Fn, Node_Update, _Alloc >::null_update = is_same<__node_u, __nnode_u>::value }
 
enum  { __gnu_pbds::detail::trie_node_metadata_dispatch< Key, Data, Cmp_Fn, Node_Update, _Alloc >::null_update = is_same<__node_u, __nnode_u>::value }
 
enum  {
  __gnu_pbds::container_traits_base< cc_hash_tag >::order_preserving = false,
  __gnu_pbds::container_traits_base< cc_hash_tag >::erase_can_throw = false,
  __gnu_pbds::container_traits_base< cc_hash_tag >::split_join_can_throw = false,
  __gnu_pbds::container_traits_base< cc_hash_tag >::reverse_iteration = false
}
 
enum  {
  __gnu_pbds::container_traits_base< gp_hash_tag >::order_preserving = false,
  __gnu_pbds::container_traits_base< gp_hash_tag >::erase_can_throw = false,
  __gnu_pbds::container_traits_base< gp_hash_tag >::split_join_can_throw = false,
  __gnu_pbds::container_traits_base< gp_hash_tag >::reverse_iteration = false
}
 
enum  {
  __gnu_pbds::container_traits_base< rb_tree_tag >::order_preserving = true,
  __gnu_pbds::container_traits_base< rb_tree_tag >::erase_can_throw = false,
  __gnu_pbds::container_traits_base< rb_tree_tag >::split_join_can_throw = false,
  __gnu_pbds::container_traits_base< rb_tree_tag >::reverse_iteration = true
}
 
enum  {
  __gnu_pbds::container_traits_base< splay_tree_tag >::order_preserving = true,
  __gnu_pbds::container_traits_base< splay_tree_tag >::erase_can_throw = false,
  __gnu_pbds::container_traits_base< splay_tree_tag >::split_join_can_throw = false,
  __gnu_pbds::container_traits_base< splay_tree_tag >::reverse_iteration = true
}
 
enum  {
  __gnu_pbds::container_traits_base< ov_tree_tag >::order_preserving = true,
  __gnu_pbds::container_traits_base< ov_tree_tag >::erase_can_throw = true,
  __gnu_pbds::container_traits_base< ov_tree_tag >::split_join_can_throw = true,
  __gnu_pbds::container_traits_base< ov_tree_tag >::reverse_iteration = false
}
 
enum  {
  __gnu_pbds::container_traits_base< pat_trie_tag >::order_preserving = true,
  __gnu_pbds::container_traits_base< pat_trie_tag >::erase_can_throw = false,
  __gnu_pbds::container_traits_base< pat_trie_tag >::split_join_can_throw = true,
  __gnu_pbds::container_traits_base< pat_trie_tag >::reverse_iteration = true
}
 
enum  {
  __gnu_pbds::container_traits_base< list_update_tag >::order_preserving = false,
  __gnu_pbds::container_traits_base< list_update_tag >::erase_can_throw = false,
  __gnu_pbds::container_traits_base< list_update_tag >::split_join_can_throw = false,
  __gnu_pbds::container_traits_base< list_update_tag >::reverse_iteration = false
}
 
enum  {
  __gnu_pbds::container_traits_base< pairing_heap_tag >::order_preserving = false,
  __gnu_pbds::container_traits_base< pairing_heap_tag >::erase_can_throw = false,
  __gnu_pbds::container_traits_base< pairing_heap_tag >::split_join_can_throw = false,
  __gnu_pbds::container_traits_base< pairing_heap_tag >::reverse_iteration = false
}
 
enum  {
  __gnu_pbds::container_traits_base< thin_heap_tag >::order_preserving = false,
  __gnu_pbds::container_traits_base< thin_heap_tag >::erase_can_throw = false,
  __gnu_pbds::container_traits_base< thin_heap_tag >::split_join_can_throw = false,
  __gnu_pbds::container_traits_base< thin_heap_tag >::reverse_iteration = false
}
 
enum  {
  __gnu_pbds::container_traits_base< binomial_heap_tag >::order_preserving = false,
  __gnu_pbds::container_traits_base< binomial_heap_tag >::erase_can_throw = false,
  __gnu_pbds::container_traits_base< binomial_heap_tag >::split_join_can_throw = false,
  __gnu_pbds::container_traits_base< binomial_heap_tag >::reverse_iteration = false
}
 
enum  {
  __gnu_pbds::container_traits_base< rc_binomial_heap_tag >::order_preserving = false,
  __gnu_pbds::container_traits_base< rc_binomial_heap_tag >::erase_can_throw = false,
  __gnu_pbds::container_traits_base< rc_binomial_heap_tag >::split_join_can_throw = false,
  __gnu_pbds::container_traits_base< rc_binomial_heap_tag >::reverse_iteration = false
}
 
enum  {
  __gnu_pbds::container_traits_base< binary_heap_tag >::order_preserving = false,
  __gnu_pbds::container_traits_base< binary_heap_tag >::erase_can_throw = false,
  __gnu_pbds::container_traits_base< binary_heap_tag >::split_join_can_throw = true,
  __gnu_pbds::container_traits_base< binary_heap_tag >::reverse_iteration = false
}
 
enum  {
  __gnu_pbds::container_traits< Cntnr >::order_preserving = base_type::order_preserving,
  __gnu_pbds::container_traits< Cntnr >::erase_can_throw = base_type::erase_can_throw,
  __gnu_pbds::container_traits< Cntnr >::split_join_can_throw = base_type::split_join_can_throw,
  __gnu_pbds::container_traits< Cntnr >::reverse_iteration = base_type::reverse_iteration
}
 

Variables

static null_type __gnu_pbds::detail::type_base< Key, null_type, _Alloc, false >::s_null_type
 
static null_type __gnu_pbds::detail::type_base< Key, null_type, _Alloc, true >::s_null_type
 

Detailed Description

Enumeration Type Documentation

template<typename Key, typename Data, typename Cmp_Fn, template< typename Node_CItr, typename Const_Iterator, typename Cmp_Fn_, typename _Alloc_ > class Node_Update, typename _Alloc>
anonymous enum
private
Enumerator
null_update 
template<typename Key, typename Data, typename Cmp_Fn, template< typename Node_CItr, typename Const_Iterator, typename Cmp_Fn_, typename _Alloc_ > class Node_Update, typename _Alloc>
anonymous enum
private
Enumerator
null_update 
anonymous enum
Enumerator
order_preserving 
erase_can_throw 
split_join_can_throw 
reverse_iteration 
anonymous enum
Enumerator
order_preserving 
erase_can_throw 
split_join_can_throw 
reverse_iteration 
anonymous enum
Enumerator
order_preserving 
erase_can_throw 
split_join_can_throw 
reverse_iteration 
anonymous enum
Enumerator
order_preserving 
erase_can_throw 
split_join_can_throw 
reverse_iteration 
anonymous enum
Enumerator
order_preserving 
erase_can_throw 
split_join_can_throw 
reverse_iteration 
anonymous enum
Enumerator
order_preserving 
erase_can_throw 
split_join_can_throw 
reverse_iteration 
anonymous enum
Enumerator
order_preserving 
erase_can_throw 
split_join_can_throw 
reverse_iteration 
anonymous enum
Enumerator
order_preserving 
erase_can_throw 
split_join_can_throw 
reverse_iteration 
anonymous enum
Enumerator
order_preserving 
erase_can_throw 
split_join_can_throw 
reverse_iteration 
anonymous enum
Enumerator
order_preserving 
erase_can_throw 
split_join_can_throw 
reverse_iteration 
anonymous enum
Enumerator
order_preserving 
erase_can_throw 
split_join_can_throw 
reverse_iteration 
anonymous enum
Enumerator
order_preserving 
erase_can_throw 
split_join_can_throw 
reverse_iteration 
template<typename Cntnr >
anonymous enum
Enumerator
order_preserving 

True only if Cntnr objects guarantee storing keys by order.

erase_can_throw 

True only if erasing a key can throw.

split_join_can_throw 

True only if split or join operations can throw.

reverse_iteration 

True only reverse iterators are supported.

Variable Documentation

template<typename Key , typename _Alloc >
null_type __gnu_pbds::detail::type_base< Key, null_type, _Alloc, false >::s_null_type
static
template<typename Key , typename _Alloc >
null_type __gnu_pbds::detail::type_base< Key, null_type, _Alloc, true >::s_null_type
static