41#ifndef PB_DS_ASSOC_CNTNR_BASE_DS_DISPATCHER_HPP 
   42#define PB_DS_ASSOC_CNTNR_BASE_DS_DISPATCHER_HPP 
   46#define PB_DS_ASSERT_VALID(X)                                           \ 
   47  _GLIBCXX_DEBUG_ONLY(X.assert_valid(__FILE__, __LINE__);) 
   49#define PB_DS_DEBUG_VERIFY(_Cond)                                       \ 
   50  _GLIBCXX_DEBUG_VERIFY_AT(_Cond,                                       \ 
   51                           _M_message(#_Cond" assertion from %1;:%2;")  \
 
   52                           ._M_string(__FILE__)._M_integer(__LINE__)    \
 
   55#define PB_DS_CHECK_KEY_EXISTS(_Key)                                    \ 
   56  _GLIBCXX_DEBUG_ONLY(debug_base::check_key_exists(_Key, __FILE__, __LINE__);) 
   58#define PB_DS_CHECK_KEY_DOES_NOT_EXIST(_Key)                            \ 
   59  _GLIBCXX_DEBUG_ONLY(debug_base::check_key_does_not_exist(_Key,        \ 
   62#define PB_DS_DATA_TRUE_INDICATOR 
   63#define PB_DS_V2F(X) (X).first 
   64#define PB_DS_V2S(X) (X).second 
   65#define PB_DS_EP2VP(X)& ((X)->m_value) 
   74#undef PB_DS_DATA_TRUE_INDICATOR 
   79#define PB_DS_DATA_FALSE_INDICATOR 
   80#define PB_DS_V2F(X) (X) 
   81#define PB_DS_V2S(X) Mapped_Data() 
   82#define PB_DS_EP2VP(X)& ((X)->m_value.first) 
   91#undef PB_DS_DATA_FALSE_INDICATOR 
   96#undef PB_DS_CHECK_KEY_DOES_NOT_EXIST 
   97#undef PB_DS_CHECK_KEY_EXISTS 
   98#undef PB_DS_DEBUG_VERIFY 
   99#undef PB_DS_ASSERT_VALID 
  106  template<
typename Key, 
typename Mapped, 
typename _Alloc, 
typename Policy_Tl>
 
  111      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0>       at0;
 
  112      typedef typename at0::type                                at0t;
 
  113      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1>       at1;
 
  114      typedef typename at1::type                                at1t;
 
  122  template<
typename Key, 
typename _Alloc, 
typename Policy_Tl>
 
  127      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0>       at0;
 
  128      typedef typename at0::type                                at0t;
 
  129      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1>       at1;
 
  130      typedef typename at1::type                                at1t;
 
  134      typedef lu_set<Key, null_type, at0t, _Alloc, at1t> 
type;
 
  138  template<
typename Key, 
typename Mapped, 
typename _Alloc, 
typename Policy_Tl>
 
  142      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1>       at1;
 
  143      typedef typename at1::type                                at1t;
 
  150  template<
typename Key, 
typename _Alloc, 
typename Policy_Tl>
 
  155      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1>       at1;
 
  156      typedef typename at1::type                                at1t;
 
  160      typedef pat_trie_set<Key, null_type, at1t, _Alloc> 
type;
 
  164  template<
typename Key, 
typename Mapped, 
typename _Alloc, 
typename Policy_Tl>
 
  168      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0>       at0;
 
  169      typedef typename at0::type                                at0t;
 
  170      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1>       at1;
 
  171      typedef typename at1::type                                at1t;
 
  179  template<
typename Key, 
typename _Alloc, 
typename Policy_Tl>
 
  184      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0>       at0;
 
  185      typedef typename at0::type                                at0t;
 
  186      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1>       at1;
 
  187      typedef typename at1::type                                at1t;
 
  190      typedef rb_tree_set<Key, null_type, at0t, at1t, _Alloc> type;
 
  194  template<
typename Key, 
typename Mapped, 
typename _Alloc, 
typename Policy_Tl>
 
  199      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0>       at0;
 
  200      typedef typename at0::type                                at0t;
 
  201      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1>       at1;
 
  202      typedef typename at1::type                                at1t;
 
  210  template<
typename Key, 
typename _Alloc, 
typename Policy_Tl>
 
  215      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0>       at0;
 
  216      typedef typename at0::type                                at0t;
 
  217      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1>       at1;
 
  218      typedef typename at1::type                                at1t;
 
  222      typedef splay_tree_set<Key, null_type, at0t, at1t, _Alloc> 
type;
 
  226  template<
typename Key, 
typename Mapped, 
typename _Alloc, 
typename Policy_Tl>
 
  230      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0>       at0;
 
  231      typedef typename at0::type                                at0t;
 
  232      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1>       at1;
 
  233      typedef typename at1::type                                at1t;
 
  241  template<
typename Key, 
typename _Alloc, 
typename Policy_Tl>
 
  246      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0>       at0;
 
  247      typedef typename at0::type                                at0t;
 
  248      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1>       at1;
 
  249      typedef typename at1::type                                at1t;
 
  253      typedef ov_tree_set<Key, null_type, at0t, at1t, _Alloc> 
type;
 
  257  template<
typename Key, 
typename Mapped, 
typename _Alloc, 
typename Policy_Tl>
 
  261      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0>       at0;
 
  262      typedef typename at0::type                                at0t;
 
  263      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1>       at1;
 
  264      typedef typename at1::type                                at1t;
 
  265      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 2>       at2;
 
  266      typedef typename at2::type                                at2t;
 
  267      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 3>       at3;
 
  268      typedef typename at3::type                                at3t;
 
  269      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 4>       at4;
 
  270      typedef typename at4::type                                at4t;
 
  274      typedef cc_ht_map<Key, Mapped, at0t, at1t, _Alloc, 
 
  279  template<
typename Key, 
typename _Alloc, 
typename Policy_Tl>
 
  284      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0>       at0;
 
  285      typedef typename at0::type                                at0t;
 
  286      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1>       at1;
 
  287      typedef typename at1::type                                at1t;
 
  288      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 2>       at2;
 
  289      typedef typename at2::type                                at2t;
 
  290      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 3>       at3;
 
  291      typedef typename at3::type                                at3t;
 
  292      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 4>       at4;
 
  293      typedef typename at4::type                                at4t;
 
  297      typedef cc_ht_set<Key, 
null_type, at0t, at1t, _Alloc,
 
  302  template<
typename Key, 
typename Mapped, 
typename _Alloc, 
typename Policy_Tl>
 
  306      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0>       at0;
 
  307      typedef typename at0::type                                at0t;
 
  308      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1>       at1;
 
  309      typedef typename at1::type                                at1t;
 
  310      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 2>       at2;
 
  311      typedef typename at2::type                                at2t;
 
  312      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 3>       at3;
 
  313      typedef typename at3::type                                at3t;
 
  314      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 4>       at4;
 
  315      typedef typename at4::type                                at4t;
 
  316      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 5>       at5;
 
  317      typedef typename at5::type                                at5t;
 
  321      typedef gp_ht_map<Key, Mapped, at0t, at1t, _Alloc, 
 
  322                        at3t::value, at4t, at5t, at2t>          
type;
 
  326  template<
typename Key, 
typename _Alloc, 
typename Policy_Tl>
 
  331      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0>       at0;
 
  332      typedef typename at0::type                                at0t;
 
  333      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1>       at1;
 
  334      typedef typename at1::type                                at1t;
 
  335      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 2>       at2;
 
  336      typedef typename at2::type                                at2t;
 
  337      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 3>       at3;
 
  338      typedef typename at3::type                                at3t;
 
  339      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 4>       at4;
 
  340      typedef typename at4::type                                at4t;
 
  341      typedef __gnu_cxx::typelist::at_index<Policy_Tl, 5>       at5;
 
  342      typedef typename at5::type                                at5t;
 
  346      typedef gp_ht_set<Key, 
null_type, at0t, at1t, _Alloc,
 
  347                        at3t::value, at4t, at5t, at2t>          
type;
 
GNU extensions for policy-based data structures for public use.
Represents no type, or absence of type, for template tricks.
Dispatch mechanism, primary template for associative types.
lu_map< Key, Mapped, at0t, _Alloc, at1t > type
Dispatched type.
lu_set< Key, null_type, at0t, _Alloc, at1t > type
Dispatched type.
pat_trie_set< Key, null_type, at1t, _Alloc > type
Dispatched type.
rb_tree_map< Key, Mapped, at0t, at1t, _Alloc > type
Dispatched type.
splay_tree_map< Key, Mapped, at0t, at1t, _Alloc > type
Dispatched type.
splay_tree_set< Key, null_type, at0t, at1t, _Alloc > type
Dispatched type.
ov_tree_map< Key, Mapped, at0t, at1t, _Alloc > type
Dispatched type.
ov_tree_set< Key, null_type, at0t, at1t, _Alloc > type
Dispatched type.
cc_ht_map< Key, Mapped, at0t, at1t, _Alloc, at3t::value, at4t, at2t > type
Dispatched type.
cc_ht_set< Key, null_type, at0t, at1t, _Alloc, at3t::value, at4t, at2t > type
Dispatched type.
gp_ht_map< Key, Mapped, at0t, at1t, _Alloc, at3t::value, at4t, at5t, at2t > type
Dispatched type.
gp_ht_set< Key, null_type, at0t, at1t, _Alloc, at3t::value, at4t, at5t, at2t > type
Dispatched type.
list-based (with updates) associative container. Skip to the lu, my darling.
Ordered-vector tree associative-container.