Where Online Learning is simpler!
The C and C++ Include Header Files
/usr/include/c++/11/ext/pb_ds/detail/container_base_dispatch.hpp
$ cat -n /usr/include/c++/11/ext/pb_ds/detail/container_base_dispatch.hpp 1 // -*- C++ -*- 2 3 // Copyright (C) 2005-2021 Free Software Foundation, Inc. 4 // 5 // This file is part of the GNU ISO C++ Library. This library is free 6 // software; you can redistribute it and/or modify it under the terms 7 // of the GNU General Public License as published by the Free Software 8 // Foundation; either version 3, or (at your option) any later 9 // version. 10 11 // This library is distributed in the hope that it will be useful, but 12 // WITHOUT ANY WARRANTY; without even the implied warranty of 13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 // General Public License for more details. 15 16 // Under Section 7 of GPL version 3, you are granted additional 17 // permissions described in the GCC Runtime Library Exception, version 18 // 3.1, as published by the Free Software Foundation. 19 20 // You should have received a copy of the GNU General Public License and 21 // a copy of the GCC Runtime Library Exception along with this program; 22 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23 //
. 24 25 // Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL. 26 27 // Permission to use, copy, modify, sell, and distribute this software 28 // is hereby granted without fee, provided that the above copyright 29 // notice appears in all copies, and that both that copyright notice 30 // and this permission notice appear in supporting documentation. None 31 // of the above authors, nor IBM Haifa Research Laboratories, make any 32 // representation about the suitability of this software for any 33 // purpose. It is provided "as is" without express or implied 34 // warranty. 35 36 /** 37 * @file container_base_dispatch.hpp 38 * Contains associative container dispatching. 39 */ 40 41 #ifndef PB_DS_ASSOC_CNTNR_BASE_DS_DISPATCHER_HPP 42 #define PB_DS_ASSOC_CNTNR_BASE_DS_DISPATCHER_HPP 43 44 #include
45 46 #define PB_DS_ASSERT_VALID(X) \ 47 _GLIBCXX_DEBUG_ONLY(X.assert_valid(__FILE__, __LINE__);) 48 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__) \ 53 ,__file,__line) 54 55 #define PB_DS_CHECK_KEY_EXISTS(_Key) \ 56 _GLIBCXX_DEBUG_ONLY(debug_base::check_key_exists(_Key, __FILE__, __LINE__);) 57 58 #define PB_DS_CHECK_KEY_DOES_NOT_EXIST(_Key) \ 59 _GLIBCXX_DEBUG_ONLY(debug_base::check_key_does_not_exist(_Key, \ 60 __FILE__, __LINE__);) 61 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) 66 #include
67 #include
68 #include
69 #include
70 #include
71 #include
72 #include
73 #include
74 #undef PB_DS_DATA_TRUE_INDICATOR 75 #undef PB_DS_V2F 76 #undef PB_DS_V2S 77 #undef PB_DS_EP2VP 78 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) 83 #include
84 #include
85 #include
86 #include
87 #include
88 #include
89 #include
90 #include
91 #undef PB_DS_DATA_FALSE_INDICATOR 92 #undef PB_DS_V2F 93 #undef PB_DS_V2S 94 #undef PB_DS_EP2VP 95 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 100 101 namespace __gnu_pbds 102 { 103 namespace detail 104 { 105 /// Specialization for list-update map. 106 template
107 struct container_base_dispatch
109 { 110 private: 111 typedef __gnu_cxx::typelist::at_index
at0; 112 typedef typename at0::type at0t; 113 typedef __gnu_cxx::typelist::at_index
at1; 114 typedef typename at1::type at1t; 115 116 public: 117 /// Dispatched type. 118 typedef lu_map
type; 119 }; 120 121 /// Specialization for list-update set. 122 template
123 struct container_base_dispatch
125 { 126 private: 127 typedef __gnu_cxx::typelist::at_index
at0; 128 typedef typename at0::type at0t; 129 typedef __gnu_cxx::typelist::at_index
at1; 130 typedef typename at1::type at1t; 131 132 public: 133 /// Dispatched type. 134 typedef lu_set
type; 135 }; 136 137 /// Specialization for PATRICIA trie map. 138 template
139 struct container_base_dispatch
140 { 141 private: 142 typedef __gnu_cxx::typelist::at_index
at1; 143 typedef typename at1::type at1t; 144 145 public: 146 typedef pat_trie_map
type; 147 }; 148 149 /// Specialization for PATRICIA trie set. 150 template
151 struct container_base_dispatch
153 { 154 private: 155 typedef __gnu_cxx::typelist::at_index
at1; 156 typedef typename at1::type at1t; 157 158 public: 159 /// Dispatched type. 160 typedef pat_trie_set
type; 161 }; 162 163 /// Specialization for R-B tree map. 164 template
165 struct container_base_dispatch
166 { 167 private: 168 typedef __gnu_cxx::typelist::at_index
at0; 169 typedef typename at0::type at0t; 170 typedef __gnu_cxx::typelist::at_index
at1; 171 typedef typename at1::type at1t; 172 173 public: 174 /// Dispatched type. 175 typedef rb_tree_map
type; 176 }; 177 178 /// Specialization for R-B tree set. 179 template
180 struct container_base_dispatch
182 { 183 private: 184 typedef __gnu_cxx::typelist::at_index
at0; 185 typedef typename at0::type at0t; 186 typedef __gnu_cxx::typelist::at_index
at1; 187 typedef typename at1::type at1t; 188 189 public: 190 typedef rb_tree_set
type; 191 }; 192 193 /// Specialization splay tree map. 194 template
195 struct container_base_dispatch
197 { 198 private: 199 typedef __gnu_cxx::typelist::at_index
at0; 200 typedef typename at0::type at0t; 201 typedef __gnu_cxx::typelist::at_index
at1; 202 typedef typename at1::type at1t; 203 204 public: 205 /// Dispatched type. 206 typedef splay_tree_map
type; 207 }; 208 209 /// Specialization splay tree set. 210 template
211 struct container_base_dispatch
213 { 214 private: 215 typedef __gnu_cxx::typelist::at_index
at0; 216 typedef typename at0::type at0t; 217 typedef __gnu_cxx::typelist::at_index
at1; 218 typedef typename at1::type at1t; 219 220 public: 221 /// Dispatched type. 222 typedef splay_tree_set
type; 223 }; 224 225 /// Specialization ordered-vector tree map. 226 template
227 struct container_base_dispatch
228 { 229 private: 230 typedef __gnu_cxx::typelist::at_index
at0; 231 typedef typename at0::type at0t; 232 typedef __gnu_cxx::typelist::at_index
at1; 233 typedef typename at1::type at1t; 234 235 public: 236 /// Dispatched type. 237 typedef ov_tree_map
type; 238 }; 239 240 /// Specialization ordered-vector tree set. 241 template
242 struct container_base_dispatch
244 { 245 private: 246 typedef __gnu_cxx::typelist::at_index
at0; 247 typedef typename at0::type at0t; 248 typedef __gnu_cxx::typelist::at_index
at1; 249 typedef typename at1::type at1t; 250 251 public: 252 /// Dispatched type. 253 typedef ov_tree_set
type; 254 }; 255 256 /// Specialization colision-chaining hash map. 257 template
258 struct container_base_dispatch
259 { 260 private: 261 typedef __gnu_cxx::typelist::at_index
at0; 262 typedef typename at0::type at0t; 263 typedef __gnu_cxx::typelist::at_index
at1; 264 typedef typename at1::type at1t; 265 typedef __gnu_cxx::typelist::at_index
at2; 266 typedef typename at2::type at2t; 267 typedef __gnu_cxx::typelist::at_index
at3; 268 typedef typename at3::type at3t; 269 typedef __gnu_cxx::typelist::at_index
at4; 270 typedef typename at4::type at4t; 271 272 public: 273 /// Dispatched type. 274 typedef cc_ht_map
type; 276 }; 277 278 /// Specialization colision-chaining hash set. 279 template
280 struct container_base_dispatch
282 { 283 private: 284 typedef __gnu_cxx::typelist::at_index
at0; 285 typedef typename at0::type at0t; 286 typedef __gnu_cxx::typelist::at_index
at1; 287 typedef typename at1::type at1t; 288 typedef __gnu_cxx::typelist::at_index
at2; 289 typedef typename at2::type at2t; 290 typedef __gnu_cxx::typelist::at_index
at3; 291 typedef typename at3::type at3t; 292 typedef __gnu_cxx::typelist::at_index
at4; 293 typedef typename at4::type at4t; 294 295 public: 296 /// Dispatched type. 297 typedef cc_ht_set
type; 299 }; 300 301 /// Specialization general-probe hash map. 302 template
303 struct container_base_dispatch
304 { 305 private: 306 typedef __gnu_cxx::typelist::at_index
at0; 307 typedef typename at0::type at0t; 308 typedef __gnu_cxx::typelist::at_index
at1; 309 typedef typename at1::type at1t; 310 typedef __gnu_cxx::typelist::at_index
at2; 311 typedef typename at2::type at2t; 312 typedef __gnu_cxx::typelist::at_index
at3; 313 typedef typename at3::type at3t; 314 typedef __gnu_cxx::typelist::at_index
at4; 315 typedef typename at4::type at4t; 316 typedef __gnu_cxx::typelist::at_index
at5; 317 typedef typename at5::type at5t; 318 319 public: 320 /// Dispatched type. 321 typedef gp_ht_map
type; 323 }; 324 325 /// Specialization general-probe hash set. 326 template
327 struct container_base_dispatch
329 { 330 private: 331 typedef __gnu_cxx::typelist::at_index
at0; 332 typedef typename at0::type at0t; 333 typedef __gnu_cxx::typelist::at_index
at1; 334 typedef typename at1::type at1t; 335 typedef __gnu_cxx::typelist::at_index
at2; 336 typedef typename at2::type at2t; 337 typedef __gnu_cxx::typelist::at_index
at3; 338 typedef typename at3::type at3t; 339 typedef __gnu_cxx::typelist::at_index
at4; 340 typedef typename at4::type at4t; 341 typedef __gnu_cxx::typelist::at_index
at5; 342 typedef typename at5::type at5t; 343 344 public: 345 /// Dispatched type. 346 typedef gp_ht_set
type; 348 }; 349 } // namespace detail 350 } // namespace __gnu_pbds 351 352 #endif
Contact us
|
About us
|
Term of use
|
Copyright © 2000-2025 MyWebUniversity.com ™