1 Linux Standard Base C++ Specification 3.2 2 3 Copyright © 2007 Linux Foundation 4 5 Permission is granted to copy, distribute and/or modify this 6 document under the terms of the GNU Free Documentation License, 7 Version 1.1; with no Invariant Sections, with no Front-Cover 8 Texts, and with no Back-Cover Texts. A copy of the license is 9 included in the section entitled "GNU Free Documentation 10 License". 11 12 Portions of the text may be copyrighted by the following 13 parties: 14 15 * The Regents of the University of California 16 * Free Software Foundation 17 * Ian F. Darwin 18 * Paul Vixie 19 * BSDI (now Wind River) 20 * Andrew G Morgan 21 * Jean-loup Gailly and Mark Adler 22 * Massachusetts Institute of Technology 23 * Apple Inc. 24 * Easy Software Products 25 * artofcode LLC 26 * Till Kamppeter 27 * Manfred Wassman 28 * Python Software Foundation 29 30 These excerpts are being used in accordance with their 31 respective licenses. 32 33 Linux is the registered trademark of Linus Torvalds in the U.S. 34 and other countries. 35 36 UNIX is a registered trademark of The Open Group. 37 38 LSB is a trademark of the Linux Foundation in the United States 39 and other countries. 40 41 AMD is a trademark of Advanced Micro Devices, Inc. 42 43 Intel and Itanium are registered trademarks and Intel386 is a 44 trademark of Intel Corporation. 45 46 PowerPC is a registered trademark and PowerPC Architecture is a 47 trademark of the IBM Corporation. 48 49 S/390 is a registered trademark of the IBM Corporation. 50 51 OpenGL is a registered trademark of Silicon Graphics, Inc. 52 __________________________________________________________ 53 54 Table of Contents 55 Foreword 56 Introduction 57 I. Introductory Elements 58 59 1. Scope 60 61 1.1. General 62 1.2. Module Specific Scope 63 64 2. Normative References 65 3. Requirements 66 67 3.1. Relevant Libraries 68 3.2. LSB Implementation Conformance 69 3.3. LSB Application Conformance 70 71 4. Definitions 72 5. Terminology 73 6. Documentation Conventions 74 75 II. Low Level System Information 76 77 7. C++ Class Representations 78 79 7.1. C++ Data Representation 80 81 8. Symbol Mapping 82 83 8.1. Symbol Mapping 84 85 III. Base Libraries 86 87 9. Libraries 88 89 9.1. Interfaces for libstdcxx 90 9.2. Interface Definitions for libstdcxx 91 92 A. GNU Free Documentation License (Informative) 93 94 A.1. PREAMBLE 95 A.2. APPLICABILITY AND DEFINITIONS 96 A.3. VERBATIM COPYING 97 A.4. COPYING IN QUANTITY 98 A.5. MODIFICATIONS 99 A.6. COMBINING DOCUMENTS 100 A.7. COLLECTIONS OF DOCUMENTS 101 A.8. AGGREGATION WITH INDEPENDENT WORKS 102 A.9. TRANSLATION 103 A.10. TERMINATION 104 A.11. FUTURE REVISIONS OF THIS LICENSE 105 A.12. How to use this License for your documents 106 107 List of Figures 108 7-1. Category 1 Virtual Table 109 7-2. Category 2 Virtual Table 110 7-3. Run-Time Type Information Prefix 111 7-4. Run-Time Type Information For Classes with no base class 112 7-5. Run-Time Type Information for Classes with a single base 113 class 114 115 7-6. Run-Time Type Information for classes with multiple 116 inheritance 117 118 7-7. Run-Time Type Information for pointer types 119 7-8. Run-Time Type Information for pointer to member types 120 121 List of Tables 122 2-1. Normative References 123 3-1. Standard Library Names 124 7-1. Class Components 125 9-1. libstdcxx Definition 126 9-2. libstdcxx - C++ Runtime Support Function Interfaces 127 9-3. libstdcxx - C++ Runtime Support Data Interfaces 128 9-4. libstdcxx - C++ type descriptors for built-in types Data 129 Interfaces 130 131 9-5. libstdcxx - C++ _Rb_tree Function Interfaces 132 9-6. Primary vtable for type_info 133 9-7. typeinfo for type_info 134 9-8. libstdcxx - Class type_info Function Interfaces 135 9-9. libstdcxx - Class type_info Data Interfaces 136 9-10. Primary vtable for __cxxabiv1::__enum_type_info 137 9-11. typeinfo for __cxxabiv1::__enum_type_info 138 9-12. libstdcxx - Class __cxxabiv1::__enum_type_info Function 139 Interfaces 140 141 9-13. libstdcxx - Class __cxxabiv1::__enum_type_info Data 142 Interfaces 143 144 9-14. Primary vtable for __cxxabiv1::__array_type_info 145 9-15. typeinfo for __cxxabiv1::__array_type_info 146 9-16. libstdcxx - Class __cxxabiv1::__array_type_info Function 147 Interfaces 148 149 9-17. libstdcxx - Class __cxxabiv1::__array_type_info Data 150 Interfaces 151 152 9-18. Primary vtable for __cxxabiv1::__class_type_info 153 9-19. typeinfo for __cxxabiv1::__class_type_info 154 9-20. libstdcxx - Class __cxxabiv1::__class_type_info Function 155 Interfaces 156 157 9-21. libstdcxx - Class __cxxabiv1::__class_type_info Data 158 Interfaces 159 160 9-22. Primary vtable for __cxxabiv1::__pbase_type_info 161 9-23. typeinfo for __cxxabiv1::__pbase_type_info 162 9-24. libstdcxx - Class __cxxabiv1::__pbase_type_info Function 163 Interfaces 164 165 9-25. libstdcxx - Class __cxxabiv1::__pbase_type_info Data 166 Interfaces 167 168 9-26. Primary vtable for __cxxabiv1::__pointer_type_info 169 9-27. typeinfo for __cxxabiv1::__pointer_type_info 170 9-28. libstdcxx - Class __cxxabiv1::__pointer_type_info 171 Function Interfaces 172 173 9-29. libstdcxx - Class __cxxabiv1::__pointer_type_info Data 174 Interfaces 175 176 9-30. Primary vtable for __cxxabiv1::__function_type_info 177 9-31. typeinfo for __cxxabiv1::__function_type_info 178 9-32. libstdcxx - Class __cxxabiv1::__function_type_info 179 Function Interfaces 180 181 9-33. libstdcxx - Class __cxxabiv1::__function_type_info Data 182 Interfaces 183 184 9-34. Primary vtable for __cxxabiv1::__si_class_type_info 185 9-35. typeinfo for __cxxabiv1::__si_class_type_info 186 9-36. libstdcxx - Class __cxxabiv1::__si_class_type_info 187 Function Interfaces 188 189 9-37. libstdcxx - Class __cxxabiv1::__si_class_type_info Data 190 Interfaces 191 192 9-38. Primary vtable for __cxxabiv1::__vmi_class_type_info 193 9-39. typeinfo for __cxxabiv1::__vmi_class_type_info 194 9-40. libstdcxx - Class __cxxabiv1::__vmi_class_type_info 195 Function Interfaces 196 197 9-41. libstdcxx - Class __cxxabiv1::__vmi_class_type_info Data 198 Interfaces 199 200 9-42. Primary vtable for __cxxabiv1::__fundamental_type_info 201 9-43. typeinfo for __cxxabiv1::__fundamental_type_info 202 9-44. libstdcxx - Class __cxxabiv1::__fundamental_type_info 203 Function Interfaces 204 205 9-45. libstdcxx - Class __cxxabiv1::__fundamental_type_info 206 Data Interfaces 207 208 9-46. Primary vtable for 209 __cxxabiv1::__pointer_to_member_type_info 210 211 9-47. typeinfo for __cxxabiv1::__pointer_to_member_type_info 212 9-48. libstdcxx - Class 213 __cxxabiv1::__pointer_to_member_type_info Function 214 Interfaces 215 216 9-49. libstdcxx - Class 217 __cxxabiv1::__pointer_to_member_type_info Data 218 Interfaces 219 220 9-50. Primary vtable for __gnu_cxx::stdio_sync_filebuf > 222 223 9-51. libstdcxx - Class __gnu_cxx::stdio_filebuf > Data Interfaces 225 226 9-52. Primary vtable for __gnu_cxx::stdio_sync_filebuf > 228 229 9-53. libstdcxx - Class __gnu_cxx::stdio_filebuf > Data Interfaces 231 232 9-54. libstdcxx - Class __gnu_cxx::__pool_alloc_base Function 233 Interfaces 234 235 9-55. libstdcxx - Class __gnu_cxx::stdio_sync_filebuf > Function Interfaces 237 238 9-56. libstdcxx - Class __gnu_cxx::stdio_sync_filebuf > Data Interfaces 240 241 9-57. libstdcxx - Class __gnu_cxx::stdio_sync_filebuf > Function Interfaces 243 244 9-58. libstdcxx - Class __gnu_cxx::stdio_sync_filebuf > Data Interfaces 246 247 9-59. Primary vtable for exception 248 9-60. typeinfo for exception 249 9-61. libstdcxx - Class exception Function Interfaces 250 9-62. libstdcxx - Class exception Data Interfaces 251 9-63. Primary vtable for bad_typeid 252 9-64. typeinfo for bad_typeid 253 9-65. libstdcxx - Class bad_typeid Function Interfaces 254 9-66. libstdcxx - Class bad_typeid Data Interfaces 255 9-67. Primary vtable for logic_error 256 9-68. typeinfo for logic_error 257 9-69. libstdcxx - Class logic_error Function Interfaces 258 9-70. libstdcxx - Class logic_error Data Interfaces 259 9-71. Primary vtable for range_error 260 9-72. typeinfo for range_error 261 9-73. libstdcxx - Class range_error Function Interfaces 262 9-74. libstdcxx - Class range_error Data Interfaces 263 9-75. Primary vtable for domain_error 264 9-76. typeinfo for domain_error 265 9-77. libstdcxx - Class domain_error Function Interfaces 266 9-78. libstdcxx - Class domain_error Data Interfaces 267 9-79. Primary vtable for length_error 268 9-80. typeinfo for length_error 269 9-81. libstdcxx - Class length_error Function Interfaces 270 9-82. libstdcxx - Class length_error Data Interfaces 271 9-83. Primary vtable for out_of_range 272 9-84. typeinfo for out_of_range 273 9-85. libstdcxx - Class out_of_range Function Interfaces 274 9-86. libstdcxx - Class out_of_range Data Interfaces 275 9-87. Primary vtable for bad_exception 276 9-88. typeinfo for bad_exception 277 9-89. libstdcxx - Class bad_exception Function Interfaces 278 9-90. libstdcxx - Class bad_exception Data Interfaces 279 9-91. Primary vtable for runtime_error 280 9-92. typeinfo for runtime_error 281 9-93. libstdcxx - Class runtime_error Function Interfaces 282 9-94. libstdcxx - Class runtime_error Data Interfaces 283 9-95. Primary vtable for overflow_error 284 9-96. typeinfo for overflow_error 285 9-97. libstdcxx - Class overflow_error Function Interfaces 286 9-98. libstdcxx - Class overflow_error Data Interfaces 287 9-99. Primary vtable for underflow_error 288 9-100. typeinfo for underflow_error 289 9-101. libstdcxx - Class underflow_error Function Interfaces 290 9-102. libstdcxx - Class underflow_error Data Interfaces 291 9-103. Primary vtable for invalid_argument 292 9-104. typeinfo for invalid_argument 293 9-105. libstdcxx - Class invalid_argument Function Interfaces 294 9-106. libstdcxx - Class invalid_argument Data Interfaces 295 9-107. Primary vtable for bad_cast 296 9-108. typeinfo for bad_cast 297 9-109. libstdcxx - Class bad_cast Function Interfaces 298 9-110. libstdcxx - Class bad_cast Data Interfaces 299 9-111. Primary vtable for bad_alloc 300 9-112. typeinfo for bad_alloc 301 9-113. libstdcxx - Class bad_alloc Function Interfaces 302 9-114. libstdcxx - Class bad_alloc Data Interfaces 303 9-115. libstdcxx - struct __numeric_limits_base Data Interfaces 304 9-116. libstdcxx - struct numeric_limits Data 305 Interfaces 306 307 9-117. libstdcxx - struct numeric_limits Data 308 Interfaces 309 310 9-118. libstdcxx - struct numeric_limits 311 Data Interfaces 312 313 9-119. libstdcxx - struct numeric_limits Data Interfaces 314 9-120. libstdcxx - struct numeric_limits Data 315 Interfaces 316 317 9-121. libstdcxx - struct numeric_limits Data Interfaces 318 9-122. libstdcxx - struct numeric_limits Data 319 Interfaces 320 321 9-123. libstdcxx - struct numeric_limits Data Interfaces 322 9-124. libstdcxx - struct numeric_limits Data 323 Interfaces 324 325 9-125. libstdcxx - struct numeric_limits Data Interfaces 326 9-126. libstdcxx - struct numeric_limits Data 327 Interfaces 328 329 9-127. libstdcxx - struct numeric_limits Data 330 Interfaces 331 332 9-128. libstdcxx - struct numeric_limits Data 333 Interfaces 334 335 9-129. libstdcxx - struct numeric_limits Data 336 Interfaces 337 338 9-130. libstdcxx - struct numeric_limits Data Interfaces 339 9-131. libstdcxx - struct numeric_limits Data Interfaces 340 9-132. typeinfo for ctype_base 341 9-133. libstdcxx - Class ctype_base Data Interfaces 342 9-134. Primary vtable for __ctype_abstract_base 343 9-135. libstdcxx - Class __ctype_abstract_base Data 344 Interfaces 345 346 9-136. Primary vtable for __ctype_abstract_base 347 9-137. libstdcxx - Class __ctype_abstract_base Data 348 Interfaces 349 350 9-138. Primary vtable for ctype 351 9-139. libstdcxx - Class ctype Function Interfaces 352 9-140. libstdcxx - Class ctype Data Interfaces 353 9-141. Primary vtable for ctype 354 9-142. typeinfo for ctype 355 9-143. libstdcxx - Class ctype Function Interfaces 356 9-144. libstdcxx - Class ctype Data Interfaces 357 9-145. Primary vtable for ctype_byname 358 9-146. typeinfo for ctype_byname 359 9-147. libstdcxx - Class ctype_byname Function Interfaces 360 9-148. libstdcxx - Class ctype_byname Data Interfaces 361 9-149. libstdcxx - Class ctype_byname Function 362 Interfaces 363 364 9-150. libstdcxx - Class ctype_byname Data Interfaces 365 9-151. libstdcxx - Class basic_string, 366 allocator > Function Interfaces 367 368 9-152. libstdcxx - Class basic_string, 369 allocator > Data Interfaces 370 371 9-153. libstdcxx - Class basic_string, allocator > Function 373 Interfaces 374 375 9-154. libstdcxx - Class basic_string, allocator > Data 377 Interfaces 378 379 9-155. VTT for basic_stringstream, 380 allocator > 381 382 9-156. libstdcxx - Class basic_stringstream, allocator > Function Interfaces 384 385 9-157. libstdcxx - Class basic_stringstream, allocator > Data Interfaces 387 388 9-158. VTT for basic_stringstream, allocator > 390 391 9-159. libstdcxx - Class basic_stringstream, allocator > Function 393 Interfaces 394 395 9-160. libstdcxx - Class basic_stringstream, allocator > Data 397 Interfaces 398 399 9-161. VTT for basic_istringstream, 400 allocator > 401 402 9-162. libstdcxx - Class basic_istringstream, allocator > Function Interfaces 404 405 9-163. libstdcxx - Class basic_istringstream, allocator > Data Interfaces 407 408 9-164. VTT for basic_istringstream, allocator > 410 411 9-165. libstdcxx - Class basic_istringstream, allocator > Function 413 Interfaces 414 415 9-166. libstdcxx - Class basic_istringstream, allocator > Data 417 Interfaces 418 419 9-167. VTT for basic_ostringstream, 420 allocator > 421 422 9-168. libstdcxx - Class basic_ostringstream, allocator > Function Interfaces 424 425 9-169. libstdcxx - Class basic_ostringstream, allocator > Data Interfaces 427 428 9-170. VTT for basic_ostringstream, allocator > 430 431 9-171. libstdcxx - Class basic_ostringstream, allocator > Function 433 Interfaces 434 435 9-172. libstdcxx - Class basic_ostringstream, allocator > Data 437 Interfaces 438 439 9-173. Primary vtable for basic_stringbuf, allocator > 441 442 9-174. typeinfo for basic_stringbuf, 443 allocator > 444 445 9-175. libstdcxx - Class basic_stringbuf, allocator > Function Interfaces 447 448 9-176. libstdcxx - Class basic_stringbuf, allocator > Data Interfaces 450 451 9-177. Primary vtable for basic_stringbuf, allocator > 453 454 9-178. typeinfo for basic_stringbuf, allocator > 456 457 9-179. libstdcxx - Class basic_stringbuf, allocator > Function 459 Interfaces 460 461 9-180. libstdcxx - Class basic_stringbuf, allocator > Data 463 Interfaces 464 465 9-181. VTT for basic_iostream > 466 9-182. libstdcxx - Class basic_iostream 467 > Function Interfaces 468 469 9-183. libstdcxx - Class basic_iostream 470 > Data Interfaces 471 472 9-184. VTT for basic_iostream > 473 9-185. libstdcxx - Class basic_iostream > Function Interfaces 475 476 9-186. libstdcxx - Class basic_iostream > Data Interfaces 478 479 9-187. VTT for basic_istream > 480 9-188. libstdcxx - Class basic_istream 481 > Function Interfaces 482 483 9-189. libstdcxx - Class basic_istream 484 > Data Interfaces 485 486 9-190. VTT for basic_istream > 487 9-191. libstdcxx - Class basic_istream > Function Interfaces 489 490 9-192. libstdcxx - Class basic_istream > Data Interfaces 492 493 9-193. VTT for basic_ostream > 494 9-194. libstdcxx - Class basic_ostream 495 > Function Interfaces 496 497 9-195. libstdcxx - Class basic_ostream 498 > Data Interfaces 499 500 9-196. VTT for basic_ostream > 501 9-197. libstdcxx - Class basic_ostream > Function Interfaces 503 504 9-198. libstdcxx - Class basic_ostream > Data Interfaces 506 507 9-199. VTT for basic_fstream > 508 9-200. libstdcxx - Class basic_fstream 509 > Function Interfaces 510 511 9-201. libstdcxx - Class basic_fstream 512 > Data Interfaces 513 514 9-202. VTT for basic_fstream > 515 9-203. libstdcxx - Class basic_fstream > Function Interfaces 517 518 9-204. libstdcxx - Class basic_fstream > Data Interfaces 520 521 9-205. VTT for basic_ifstream > 522 9-206. libstdcxx - Class basic_ifstream 523 > Function Interfaces 524 525 9-207. libstdcxx - Class basic_ifstream 526 > Data Interfaces 527 528 9-208. VTT for basic_ifstream > 529 9-209. libstdcxx - Class basic_ifstream > Function Interfaces 531 532 9-210. libstdcxx - Class basic_ifstream > Data Interfaces 534 535 9-211. VTT for basic_ofstream > 536 9-212. libstdcxx - Class basic_ofstream 537 > Function Interfaces 538 539 9-213. libstdcxx - Class basic_ofstream 540 > Data Interfaces 541 542 9-214. VTT for basic_ofstream > 543 9-215. libstdcxx - Class basic_ofstream > Function Interfaces 545 546 9-216. libstdcxx - Class basic_ofstream > Data Interfaces 548 549 9-217. Primary vtable for basic_streambuf > 551 552 9-218. typeinfo for basic_streambuf > 553 9-219. libstdcxx - Class basic_streambuf > Function Interfaces 555 556 9-220. libstdcxx - Class basic_streambuf > Data Interfaces 558 559 9-221. Primary vtable for basic_streambuf > 561 562 9-222. typeinfo for basic_streambuf > 564 565 9-223. libstdcxx - Class basic_streambuf > Function Interfaces 567 568 9-224. Primary vtable for basic_filebuf 569 > 570 571 9-225. typeinfo for basic_filebuf > 572 9-226. libstdcxx - Class basic_filebuf 573 > Function Interfaces 574 575 9-227. libstdcxx - Class basic_filebuf 576 > Data Interfaces 577 578 9-228. Primary vtable for basic_filebuf > 580 581 9-229. typeinfo for basic_filebuf 582 > 583 584 9-230. libstdcxx - Class basic_filebuf > Function Interfaces 586 587 9-231. libstdcxx - Class basic_filebuf > Data Interfaces 589 590 9-232. typeinfo for ios_base 591 9-233. libstdcxx - Class ios_base Function Interfaces 592 9-234. libstdcxx - Class ios_base Data Interfaces 593 9-235. Primary vtable for basic_ios > 594 9-236. libstdcxx - Class basic_ios > 595 Function Interfaces 596 597 9-237. libstdcxx - Class basic_ios > 598 Data Interfaces 599 600 9-238. libstdcxx - Class basic_ios > Function Interfaces 602 603 9-239. libstdcxx - Class basic_ios > Data Interfaces 605 606 9-240. Primary vtable for ios_base::failure 607 9-241. typeinfo for ios_base::failure 608 9-242. libstdcxx - Class ios_base::failure Function Interfaces 609 9-243. libstdcxx - Class ios_base::failure Data Interfaces 610 9-244. Primary vtable for __timepunct 611 9-245. typeinfo for __timepunct 612 9-246. libstdcxx - Class __timepunct Function Interfaces 613 9-247. libstdcxx - Class __timepunct Data Interfaces 614 9-248. Primary vtable for __timepunct 615 9-249. typeinfo for __timepunct 616 9-250. libstdcxx - Class __timepunct Function 617 Interfaces 618 619 9-251. libstdcxx - Class __timepunct Data Interfaces 620 9-252. typeinfo for messages_base 621 9-253. libstdcxx - Class messages_base Data Interfaces 622 9-254. Primary vtable for messages 623 9-255. libstdcxx - Class messages Function Interfaces 624 9-256. libstdcxx - Class messages Data Interfaces 625 9-257. Primary vtable for messages 626 9-258. libstdcxx - Class messages Function Interfaces 627 9-259. libstdcxx - Class messages Data Interfaces 628 9-260. Primary vtable for messages_byname 629 9-261. typeinfo for messages_byname 630 9-262. libstdcxx - Class messages_byname Function 631 Interfaces 632 633 9-263. libstdcxx - Class messages_byname Data Interfaces 634 9-264. Primary vtable for messages_byname 635 9-265. typeinfo for messages_byname 636 9-266. libstdcxx - Class messages_byname Function 637 Interfaces 638 639 9-267. libstdcxx - Class messages_byname Data 640 Interfaces 641 642 9-268. Primary vtable for numpunct 643 9-269. typeinfo for numpunct 644 9-270. libstdcxx - Class numpunct Function Interfaces 645 9-271. libstdcxx - Class numpunct Data Interfaces 646 9-272. Primary vtable for numpunct 647 9-273. typeinfo for numpunct 648 9-274. libstdcxx - Class numpunct Function Interfaces 649 9-275. libstdcxx - Class numpunct Data Interfaces 650 9-276. Primary vtable for numpunct_byname 651 9-277. typeinfo for numpunct_byname 652 9-278. libstdcxx - Class numpunct_byname Function 653 Interfaces 654 655 9-279. libstdcxx - Class numpunct_byname Data Interfaces 656 9-280. Primary vtable for numpunct_byname 657 9-281. typeinfo for numpunct_byname 658 9-282. libstdcxx - Class numpunct_byname Function 659 Interfaces 660 661 9-283. libstdcxx - Class numpunct_byname Data 662 Interfaces 663 664 9-284. Primary vtable for __codecvt_abstract_base 666 667 9-285. libstdcxx - Class __codecvt_abstract_base Data Interfaces 669 670 9-286. typeinfo for codecvt_base 671 9-287. libstdcxx - Class codecvt_base Data Interfaces 672 9-288. Primary vtable for codecvt 673 9-289. typeinfo for codecvt 674 9-290. Primary vtable for __codecvt_abstract_base 676 677 9-291. libstdcxx - Class codecvt 678 Function Interfaces 679 680 9-292. libstdcxx - Class codecvt Data 681 Interfaces 682 683 9-293. Primary vtable for codecvt 684 9-294. typeinfo for codecvt 685 9-295. libstdcxx - Class codecvt 686 Function Interfaces 687 688 9-296. libstdcxx - Class codecvt 689 Data Interfaces 690 691 9-297. Primary vtable for codecvt_byname 693 694 9-298. typeinfo for codecvt_byname 695 9-299. libstdcxx - Class codecvt_byname Function Interfaces 697 698 9-300. libstdcxx - Class codecvt_byname Data Interfaces 700 701 9-301. Primary vtable for codecvt_byname 703 704 9-302. typeinfo for codecvt_byname 705 9-303. Primary vtable for collate_byname 706 9-304. typeinfo for collate_byname 707 9-305. libstdcxx - Class codecvt_byname Function Interfaces 709 710 9-306. libstdcxx - Class codecvt_byname Data Interfaces 712 713 9-307. Primary vtable for collate 714 9-308. typeinfo for collate 715 9-309. libstdcxx - Class collate Function Interfaces 716 9-310. libstdcxx - Class collate Data Interfaces 717 9-311. Primary vtable for collate 718 9-312. typeinfo for collate 719 9-313. libstdcxx - Class collate Function Interfaces 720 9-314. libstdcxx - Class collate Data Interfaces 721 9-315. Primary vtable for collate_byname 722 9-316. typeinfo for collate_byname 723 9-317. libstdcxx - Class collate_byname Function 724 Interfaces 725 726 9-318. libstdcxx - Class collate_byname Data Interfaces 727 9-319. typeinfo for time_base 728 9-320. libstdcxx - Class time_base Data Interfaces 729 9-321. Primary vtable for time_get_byname > > 731 732 9-322. typeinfo for time_get_byname > > 734 735 9-323. libstdcxx - Class time_get_byname > > Function 737 Interfaces 738 739 9-324. libstdcxx - Class time_get_byname > > Data 741 Interfaces 742 743 9-325. Primary vtable for time_get_byname > > 745 746 9-326. typeinfo for time_get_byname > > 748 749 9-327. libstdcxx - Class time_get_byname > > 751 Function Interfaces 752 753 9-328. libstdcxx - Class time_get_byname > > 755 Data Interfaces 756 757 9-329. Primary vtable for time_put_byname > > 759 760 9-330. typeinfo for time_put_byname > > 762 763 9-331. libstdcxx - Class time_put_byname > > Function 765 Interfaces 766 767 9-332. libstdcxx - Class time_put_byname > > Data 769 Interfaces 770 771 9-333. Primary vtable for time_put_byname > > 773 774 9-334. typeinfo for time_put_byname > > 776 777 9-335. libstdcxx - Class time_put_byname > > 779 Function Interfaces 780 781 9-336. libstdcxx - Class time_put_byname > > 783 Data Interfaces 784 785 9-337. Primary vtable for time_get > > 787 788 9-338. libstdcxx - Class time_get > > Function 790 Interfaces 791 792 9-339. libstdcxx - Class time_get > > Data 794 Interfaces 795 796 9-340. Primary vtable for time_get > > 798 799 9-341. libstdcxx - Class time_get > > 801 Function Interfaces 802 803 9-342. libstdcxx - Class time_get > > 805 Data Interfaces 806 807 9-343. libstdcxx - Class time_put > > Function 809 Interfaces 810 811 9-344. libstdcxx - Class time_put > > Data 813 Interfaces 814 815 9-345. libstdcxx - Class time_put > > 817 Function Interfaces 818 819 9-346. libstdcxx - Class time_put > > 821 Data Interfaces 822 823 9-347. Primary vtable for moneypunct 824 9-348. libstdcxx - Class moneypunct Function 825 Interfaces 826 827 9-349. libstdcxx - Class moneypunct Data 828 Interfaces 829 830 9-350. Primary vtable for moneypunct 831 9-351. libstdcxx - Class moneypunct Function 832 Interfaces 833 834 9-352. libstdcxx - Class moneypunct Data Interfaces 835 9-353. Primary vtable for moneypunct 836 9-354. libstdcxx - Class moneypunct Function 837 Interfaces 838 839 9-355. libstdcxx - Class moneypunct Data 840 Interfaces 841 842 9-356. Primary vtable for moneypunct 843 9-357. libstdcxx - Class moneypunct Function 844 Interfaces 845 846 9-358. libstdcxx - Class moneypunct Data 847 Interfaces 848 849 9-359. Primary vtable for moneypunct_byname 850 9-360. typeinfo for moneypunct_byname 851 9-361. libstdcxx - Class moneypunct_byname 852 Function Interfaces 853 854 9-362. libstdcxx - Class moneypunct_byname Data 855 Interfaces 856 857 9-363. Primary vtable for moneypunct_byname 858 9-364. typeinfo for moneypunct_byname 859 9-365. libstdcxx - Class moneypunct_byname Function 860 Interfaces 861 862 9-366. libstdcxx - Class moneypunct_byname Data 863 Interfaces 864 865 9-367. Primary vtable for moneypunct_byname 866 9-368. typeinfo for moneypunct_byname 867 9-369. libstdcxx - Class moneypunct_byname 868 Function Interfaces 869 870 9-370. libstdcxx - Class moneypunct_byname Data 871 Interfaces 872 873 9-371. Primary vtable for moneypunct_byname 874 9-372. typeinfo for moneypunct_byname 875 9-373. libstdcxx - Class moneypunct_byname 876 Function Interfaces 877 878 9-374. libstdcxx - Class moneypunct_byname Data 879 Interfaces 880 881 9-375. typeinfo for money_base 882 9-376. libstdcxx - Class money_base Function Interfaces 883 9-377. libstdcxx - Class money_base Data Interfaces 884 9-378. Primary vtable for money_get > > 886 887 9-379. typeinfo for money_get > > 889 890 9-380. libstdcxx - Class money_get > > Function 892 Interfaces 893 894 9-381. libstdcxx - Class money_get > > Data 896 Interfaces 897 898 9-382. Primary vtable for money_get > > 900 901 9-383. typeinfo for money_get > > 903 904 9-384. libstdcxx - Class money_get > > 906 Function Interfaces 907 908 9-385. libstdcxx - Class money_get > > 910 Data Interfaces 911 912 9-386. Primary vtable for money_put > > 914 915 9-387. typeinfo for money_put > > 917 918 9-388. libstdcxx - Class money_put > > Function 920 Interfaces 921 922 9-389. libstdcxx - Class money_put > > Data 924 Interfaces 925 926 9-390. Primary vtable for money_put > > 928 929 9-391. typeinfo for money_put > > 931 932 9-392. libstdcxx - Class money_put > > 934 Function Interfaces 935 936 9-393. libstdcxx - Class money_put > > 938 Data Interfaces 939 940 9-394. libstdcxx - Class locale Function Interfaces 941 9-395. libstdcxx - Class locale Data Interfaces 942 9-396. Primary vtable for locale::facet 943 9-397. typeinfo for locale::facet 944 9-398. libstdcxx - Class locale::facet Function Interfaces 945 9-399. libstdcxx - Class locale::facet Data Interfaces 946 9-400. libstdcxx - facet functions Function Interfaces 947 9-401. 948 9-402. libstdcxx - Class __num_base Function Interfaces 949 9-403. libstdcxx - Class __num_base Data Interfaces 950 9-404. libstdcxx - Class num_get > > Function 952 Interfaces 953 954 9-405. libstdcxx - Class num_get > > Data 956 Interfaces 957 958 9-406. libstdcxx - Class num_get > > 960 Function Interfaces 961 962 9-407. libstdcxx - Class num_get > > 964 Data Interfaces 965 966 9-408. libstdcxx - Class num_put > > Function 968 Interfaces 969 970 9-409. libstdcxx - Class num_put > > Data 972 Interfaces 973 974 9-410. libstdcxx - Class num_put > > 976 Function Interfaces 977 978 9-411. libstdcxx - Class num_put > > 980 Data Interfaces 981 982 9-412. libstdcxx - Class __basic_file Function Interfaces 983 9-413. libstdcxx - Class _List_node_base Function Interfaces 984 9-414. libstdcxx - Class allocator Function Interfaces 985 9-415. libstdcxx - Class allocator Function Interfaces 986 __________________________________________________________ 987 988 Foreword 989 990 This is version 3.2 of the Linux Standard Base C++ 991 Specification. This specification is part of a family of 992 specifications under the general title "Linux Standard Base". 993 Developers of applications or implementations interested in 994 using the LSB trademark should see the Linux Foundation 995 Certification Policy for details. 996 __________________________________________________________ 997 998 Introduction 999 1000 The LSB defines a binary interface for application programs 1001 that are compiled and packaged for LSB-conforming 1002 implementations on many different hardware architectures. Since 1003 a binary specification shall include information specific to 1004 the computer processor architecture for which it is intended, 1005 it is not possible for a single document to specify the 1006 interface for all possible LSB-conforming implementations. 1007 Therefore, the LSB is a family of specifications, rather than a 1008 single one. 1009 1010 This document should be used in conjunction with the documents 1011 it references. This document enumerates the system components 1012 it includes, but descriptions of those components may be 1013 included entirely or partly in this document, partly in other 1014 documents, or entirely in other reference documents. For 1015 example, the section that describes system service routines 1016 includes a list of the system routines supported in this 1017 interface, formal declarations of the data structures they use 1018 that are visible to applications, and a pointer to the 1019 underlying referenced specification for information about the 1020 syntax and semantics of each call. Only those routines not 1021 described in standards referenced by this document, or 1022 extensions to those standards, are described in the detail. 1023 Information referenced in this way is as much a part of this 1024 document as is the information explicitly included here. 1025 1026 The specification carries a version number of either the form 1027 x.y or x.y.z. This version number carries the following 1028 meaning: 1029 1030 * The first number (x) is the major version number. All 1031 versions with the same major version number should share 1032 binary compatibility. Any addition or deletion of a new 1033 library results in a new version number. Interfaces marked 1034 as deprecated may be removed from the specification at a 1035 major version change. 1036 * The second number (y) is the minor version number. 1037 Individual interfaces may be added if all certified 1038 implementations already had that (previously undocumented) 1039 interface. Interfaces may be marked as deprecated at a 1040 minor version change. Other minor changes may be permitted 1041 at the discretion of the LSB workgroup. 1042 * The third number (z), if present, is the editorial level. 1043 Only editorial changes should be included in such versions. 1044 1045 Since this specification is a descriptive Application Binary 1046 Interface, and not a source level API specification, it is not 1047 possible to make a guarantee of 100% backward compatibility 1048 between major releases. However, it is the intent that those 1049 parts of the binary interface that are visible in the source 1050 level API will remain backward compatible from version to 1051 version, except where a feature marked as "Deprecated" in one 1052 release may be removed from a future release. 1053 1054 Implementors are strongly encouraged to make use of symbol 1055 versioning to permit simultaneous support of applications 1056 conforming to different releases of this specification. 1057 1058 I. Introductory Elements 1059 1060 Table of Contents 1061 1. Scope 1062 1063 1.1. General 1064 1.2. Module Specific Scope 1065 1066 2. Normative References 1067 3. Requirements 1068 1069 3.1. Relevant Libraries 1070 3.2. LSB Implementation Conformance 1071 3.3. LSB Application Conformance 1072 1073 4. Definitions 1074 5. Terminology 1075 6. Documentation Conventions 1076 __________________________________________________________ 1077 1078 Chapter 1. Scope 1079 1080 1.1. General 1081 1082 The Linux Standard Base (LSB) defines a system interface for 1083 compiled applications and a minimal environment for support of 1084 installation scripts. Its purpose is to enable a uniform 1085 industry standard environment for high-volume applications 1086 conforming to the LSB. 1087 1088 These specifications are composed of two basic parts: A common 1089 specification ("LSB-generic" or "generic LSB"), ISO/IEC 23360 1090 Part 1, describing those parts of the interface that remain 1091 constant across all implementations of the LSB, and an 1092 architecture-specific part ("LSB-arch" or "archLSB") describing 1093 the parts of the interface that vary by processor architecture. 1094 Together, the LSB-generic and the relevant 1095 architecture-specific part of ISO/IEC 23360 for a single 1096 hardware architecture provide a complete interface 1097 specification for compiled application programs on systems that 1098 share a common hardware architecture. 1099 1100 ISO/IEC 23360 Part 1, the LSB-generic document, should be used 1101 in conjunction with an architecture-specific part. Whenever a 1102 section of the LSB-generic specification is supplemented by 1103 architecture-specific information, the LSB-generic document 1104 includes a reference to the architecture part. 1105 Architecture-specific parts of ISO/IEC 23360 may also contain 1106 additional information that is not referenced in the 1107 LSB-generic document. 1108 1109 The LSB contains both a set of Application Program Interfaces 1110 (APIs) and Application Binary Interfaces (ABIs). APIs may 1111 appear in the source code of portable applications, while the 1112 compiled binary of that application may use the larger set of 1113 ABIs. A conforming implementation provides all of the ABIs 1114 listed here. The compilation system may replace (e.g. by macro 1115 definition) certain APIs with calls to one or more of the 1116 underlying binary interfaces, and may insert calls to binary 1117 interfaces as needed. 1118 1119 The LSB is primarily a binary interface definition. Not all of 1120 the source level APIs available to applications may be 1121 contained in this specification. 1122 __________________________________________________________ 1123 1124 1.2. Module Specific Scope 1125 1126 This is the C++ module of the Linux Standards Base (LSB). This 1127 module supplements the core interfaces by providing system 1128 interfaces, libraries, and a runtime environment for 1129 applications built using the C++ programming language. These 1130 interfaces provide low-level support for the core constructs of 1131 the language, and implement the standard base C++ libraries. 1132 1133 Interfaces described in this module are presented in terms of 1134 C++; the binary interfaces will use encoded or mangled versions 1135 of the names. 1136 __________________________________________________________ 1137 1138 Chapter 2. Normative References 1139 1140 The specifications listed below are referenced in whole or in 1141 part by this module of the Linux Standard Base. In this 1142 specification, where only a particular section of one of these 1143 references is identified, then the normative reference is to 1144 that section alone, and the rest of the referenced document is 1145 informative. 1146 1147 Table 2-1. Normative References 1148 Name Title URL 1149 ISO/IEC 23360 Part 1 ISO/IEC 23360:2005 Linux Standard Base - 1150 Part 1 Generic Specification http://www.linuxbase.org/spec/ 1151 ISO C (1999) ISO/IEC 9899: 1999, Programming Languages --C 1152 ISO POSIX (2003) 1153 1154 ISO/IEC 9945-1:2003 Information technology -- Portable 1155 Operating System Interface (POSIX) -- Part 1: Base Definitions 1156 1157 ISO/IEC 9945-2:2003 Information technology -- Portable 1158 Operating System Interface (POSIX) -- Part 2: System Interfaces 1159 1160 ISO/IEC 9945-3:2003 Information technology -- Portable 1161 Operating System Interface (POSIX) -- Part 3: Shell and 1162 Utilities 1163 1164 ISO/IEC 9945-4:2003 Information technology -- Portable 1165 Operating System Interface (POSIX) -- Part 4: Rationale 1166 1167 Including Technical Cor. 1: 2004 1168 http://www.unix.org/version3/ 1169 ISO/IEC 14882: 2003 C++ Language ISO/IEC 14882: 2003 1170 Programming languages --C++ 1171 Itanium(TM) C++ ABI Itanium(TM) C++ ABI (Revision 1.83) 1172 http://refspecs.linux-foundation.org/cxxabi-1.83.html 1173 __________________________________________________________ 1174 1175 Chapter 3. Requirements 1176 1177 3.1. Relevant Libraries 1178 1179 The libraries listed in Table 3-1 shall be available on a Linux 1180 Standard Base system, with the specified runtime names. 1181 1182 Table 3-1. Standard Library Names 1183 Library Runtime Name 1184 libstdcxx libstdc++.so.6 1185 1186 These libraries will be in an implementation-defined directory 1187 which the dynamic linker shall search by default. 1188 __________________________________________________________ 1189 1190 3.2. LSB Implementation Conformance 1191 1192 An implementation shall satisfy the following requirements: 1193 1194 * The implementation shall implement fully the architecture 1195 described in the hardware manual for the target processor 1196 architecture. 1197 * The implementation shall be capable of executing compiled 1198 applications having the format and using the system 1199 interfaces described in this document. 1200 * The implementation shall provide libraries containing the 1201 interfaces specified by this document, and shall provide a 1202 dynamic linking mechanism that allows these interfaces to 1203 be attached to applications at runtime. All the interfaces 1204 shall behave as specified in this document. 1205 * The map of virtual memory provided by the implementation 1206 shall conform to the requirements of this document. 1207 * The implementation's low-level behavior with respect to 1208 function call linkage, system traps, signals, and other 1209 such activities shall conform to the formats described in 1210 this document. 1211 * The implementation shall provide all of the mandatory 1212 interfaces in their entirety. 1213 * The implementation may provide one or more of the optional 1214 interfaces. Each optional interface that is provided shall 1215 be provided in its entirety. The product documentation 1216 shall state which optional interfaces are provided. 1217 * The implementation shall provide all files and utilities 1218 specified as part of this document in the format defined 1219 here and in other referenced documents. All commands and 1220 utilities shall behave as required by this document. The 1221 implementation shall also provide all mandatory components 1222 of an application's runtime environment that are included 1223 or referenced in this document. 1224 * The implementation, when provided with standard data 1225 formats and values at a named interface, shall provide the 1226 behavior defined for those values and data formats at that 1227 interface. However, a conforming implementation may consist 1228 of components which are separately packaged and/or sold. 1229 For example, a vendor of a conforming implementation might 1230 sell the hardware, operating system, and windowing system 1231 as separately packaged items. 1232 * The implementation may provide additional interfaces with 1233 different names. It may also provide additional behavior 1234 corresponding to data values outside the standard ranges, 1235 for standard named interfaces. 1236 __________________________________________________________ 1237 1238 3.3. LSB Application Conformance 1239 1240 An application shall satisfy the following requirements: 1241 1242 * Its executable files are either shell scripts or object 1243 files in the format defined for the Object File Format 1244 system interface. 1245 * Its object files participate in dynamic linking as defined 1246 in the Program Loading and Linking System interface. 1247 * It employs only the instructions, traps, and other 1248 low-level facilities defined in the Low-Level System 1249 interface as being for use by applications. 1250 * If it requires any optional interface defined in this 1251 document in order to be installed or to execute 1252 successfully, the requirement for that optional interface 1253 is stated in the application's documentation. 1254 * It does not use any interface or data format that is not 1255 required to be provided by a conforming implementation, 1256 unless: 1257 + If such an interface or data format is supplied by 1258 another application through direct invocation of that 1259 application during execution, that application is in 1260 turn an LSB conforming application. 1261 + The use of that interface or data format, as well as 1262 its source, is identified in the documentation of the 1263 application. 1264 * It shall not use any values for a named interface that are 1265 reserved for vendor extensions. 1266 1267 A strictly conforming application does not require or use any 1268 interface, facility, or implementation-defined extension that 1269 is not defined in this document in order to be installed or to 1270 execute successfully. 1271 __________________________________________________________ 1272 1273 Chapter 4. Definitions 1274 1275 For the purposes of this document, the following definitions, 1276 as specified in the ISO/IEC Directives, Part 2, 2001, 4th 1277 Edition, apply: 1278 1279 can 1280 1281 be able to; there is a possibility of; it is possible to 1282 cannot 1283 1284 be unable to; there is no possibilty of; it is not possible to 1285 may 1286 1287 is permitted; is allowed; is permissible 1288 need not 1289 1290 it is not required that; no...is required 1291 shall 1292 1293 is to; is required to; it is required that; has to; only...is 1294 permitted; it is necessary 1295 shall not 1296 1297 is not allowed [permitted] [acceptable] [permissible]; is 1298 required to be not; is required that...be not; is not to be 1299 should 1300 1301 it is recommended that; ought to 1302 should not 1303 1304 it is not recommended that; ought not to 1305 __________________________________________________________ 1306 1307 Chapter 5. Terminology 1308 1309 For the purposes of this document, the following terms apply: 1310 1311 archLSB 1312 The architectural part of the LSB Specification which 1313 describes the specific parts of the interface that are 1314 platform specific. The archLSB is complementary to the 1315 gLSB. 1316 1317 Binary Standard 1318 The total set of interfaces that are available to be 1319 used in the compiled binary code of a conforming 1320 application. 1321 1322 gLSB 1323 The common part of the LSB Specification that describes 1324 those parts of the interface that remain constant across 1325 all hardware implementations of the LSB. 1326 1327 implementation-defined 1328 Describes a value or behavior that is not defined by 1329 this document but is selected by an implementor. The 1330 value or behavior may vary among implementations that 1331 conform to this document. An application should not rely 1332 on the existence of the value or behavior. An 1333 application that relies on such a value or behavior 1334 cannot be assured to be portable across conforming 1335 implementations. The implementor shall document such a 1336 value or behavior so that it can be used correctly by an 1337 application. 1338 1339 Shell Script 1340 A file that is read by an interpreter (e.g., awk). The 1341 first line of the shell script includes a reference to 1342 its interpreter binary. 1343 1344 Source Standard 1345 The set of interfaces that are available to be used in 1346 the source code of a conforming application. 1347 1348 undefined 1349 Describes the nature of a value or behavior not defined 1350 by this document which results from use of an invalid 1351 program construct or invalid data input. The value or 1352 behavior may vary among implementations that conform to 1353 this document. An application should not rely on the 1354 existence or validity of the value or behavior. An 1355 application that relies on any particular value or 1356 behavior cannot be assured to be portable across 1357 conforming implementations. 1358 1359 unspecified 1360 Describes the nature of a value or behavior not 1361 specified by this document which results from use of a 1362 valid program construct or valid data input. The value 1363 or behavior may vary among implementations that conform 1364 to this document. An application should not rely on the 1365 existence or validity of the value or behavior. An 1366 application that relies on any particular value or 1367 behavior cannot be assured to be portable across 1368 conforming implementations. 1369 1370 Other terms and definitions used in this document shall have 1371 the same meaning as defined in Chapter 3 of the Base 1372 Definitions volume of ISO POSIX (2003). 1373 __________________________________________________________ 1374 1375 Chapter 6. Documentation Conventions 1376 1377 Throughout this document, the following typographic conventions 1378 are used: 1379 1380 function() 1381 1382 the name of a function 1383 command 1384 1385 the name of a command or utility 1386 CONSTANT 1387 1388 a constant value 1389 parameter 1390 1391 a parameter 1392 variable 1393 1394 a variable 1395 1396 Throughout this specification, several tables of interfaces are 1397 presented. Each entry in these tables has the following format: 1398 1399 name 1400 1401 the name of the interface 1402 (symver) 1403 1404 An optional symbol version identifier, if required. 1405 [refno] 1406 1407 A reference number indexing the table of referenced 1408 specifications that follows this table. 1409 1410 For example, 1411 1412 forkpty(GLIBC_2.0) [SUSv3] 1413 1414 refers to the interface named forkpty() with symbol version 1415 GLIBC_2.0 that is defined in the SUSv3 reference. 1416 1417 Note: Symbol versions are defined in the architecture 1418 specific parts of ISO/IEC 23360 only. 1419 1420 II. Low Level System Information 1421 1422 Table of Contents 1423 7. C++ Class Representations 1424 1425 7.1. C++ Data Representation 1426 1427 7.1.1. Class Representation 1428 1429 8. Symbol Mapping 1430 1431 8.1. Symbol Mapping 1432 1433 8.1.1. C++ Language 1434 __________________________________________________________ 1435 1436 Chapter 7. C++ Class Representations 1437 1438 7.1. C++ Data Representation 1439 1440 Support for the C++ language shall be as specified in 1441 Itanium(TM) C++ ABI. 1442 1443 Note: This document, although containing a few architecture 1444 specific matters, is written as a generic specification, to 1445 be usable by C++ implementations on a variety of 1446 architectures. 1447 1448 This section provides additional information to supplement 1449 Itanium(TM) C++ ABI. Many of the definitions in that document 1450 are made in terms of C++. This section provides addition 1451 explanations using C terms to avoid self-referential problems. 1452 __________________________________________________________ 1453 1454 7.1.1. Class Representation 1455 1456 An object file generated by the compilation process for a C++ 1457 program shall contain several closely related internal objects, 1458 or Class Components, to represent each C++ Class. Such objects 1459 are not a visible part of the source code. Table 7-1 describes 1460 these Class Components at a high level. 1461 1462 Table 7-1. Class Components 1463 Object Contains 1464 Class Data All non-static Class members 1465 Virtual Table Information needed to dispatch virtual functions, 1466 access virtual base class subobjects and to access the RTTI 1467 information 1468 RTTI Run-Time Type Information used by the typeid and 1469 dynamic_cast operators, and exception handlers 1470 Typeinfo Name String representation of Class name 1471 Construction Virtual Table Information needed during 1472 construction and destruction of Classes with non-trivial 1473 inheritance relationships. 1474 VTT A table of virtual table pointers which holds the addresses 1475 of construction and non-construction virtual tables. 1476 __________________________________________________________ 1477 1478 7.1.1.1. Virtual Table 1479 1480 Virtual tables are specified in Section 2.5.3 of Itanium(TM) 1481 C++ ABI. 1482 1483 Of the various categories of virtual table described in that 1484 specification, Category 1 (Leaf) is further described in Figure 1485 7-1 and Category 2 (Non-virtual bases only) is further 1486 described in Figure 7-2. LSB conforming systems shall support 1487 these categories. 1488 struct { 1489 ptrdiff_t baseobject; 1490 const char *typeinfo; 1491 fptr virtfuncs[0]; 1492 }; 1493 1494 Figure 7-1. Category 1 Virtual Table 1495 struct { 1496 unsigned long vcalloffset; 1497 ptrdiff_t baseobject; 1498 const char *typeinfo; 1499 fptr virtfuncs[0]; 1500 }; 1501 1502 Figure 7-2. Category 2 Virtual Table 1503 __________________________________________________________ 1504 1505 7.1.1.2. Run-Time Type Information 1506 1507 Each type used in a C++ program has a data structure associated 1508 with it that provide information about the type which is used 1509 at runtime. This Run Time Type Information (RTTI) is defined in 1510 section 2.9.5 in Itanium(TM) C++ ABI. Additional details about 1511 the layout of this data is provided here. 1512 struct { 1513 void *basevtable; 1514 char *name; 1515 }; 1516 1517 Figure 7-3. Run-Time Type Information Prefix 1518 struct { 1519 void *basevtable; 1520 char *name; 1521 void *basetypeinfo[0]; 1522 }; 1523 1524 Figure 7-4. Run-Time Type Information For Classes with no base 1525 class 1526 struct { 1527 void *basevtable; 1528 char *name; 1529 void *basetype; 1530 void *basetypeinfo[0]; 1531 }; 1532 1533 Figure 7-5. Run-Time Type Information for Classes with a single 1534 base class 1535 struct base_type_info { 1536 char *base_type; 1537 unsigned long offset_flags; 1538 }; 1539 1540 struct { 1541 void *basevtable; 1542 char *name; 1543 unsigned int flags; 1544 unsigned int base_count; 1545 struct base_type_info base_info[0]; 1546 }; 1547 1548 Figure 7-6. Run-Time Type Information for classes with multiple 1549 inheritance 1550 struct { 1551 void *basevtable; 1552 char *name; 1553 unsigned int flags; 1554 void *pointee; 1555 void *basetypeinfo[0]; 1556 }; 1557 1558 Figure 7-7. Run-Time Type Information for pointer types 1559 struct { 1560 void *basevtable; 1561 char *name; 1562 unsigned int flags; 1563 void *pointee; 1564 void *context; 1565 void *basetypeinfo[0]; 1566 }; 1567 1568 Figure 7-8. Run-Time Type Information for pointer to member 1569 types 1570 __________________________________________________________ 1571 1572 Chapter 8. Symbol Mapping 1573 1574 This chapter defines how names are mapped from the source 1575 symbol to the object symbol. 1576 __________________________________________________________ 1577 1578 8.1. Symbol Mapping 1579 1580 Symbols in a source program are translated by the compilation 1581 system into symbols that exist in the object file. The rules 1582 for this translation are defined here. 1583 __________________________________________________________ 1584 1585 8.1.1. C++ Language 1586 1587 External symbol names in a C++ object file shall be encoded 1588 according to the "name mangling" rules described in the 1589 Itanium(TM) C++ ABI. 1590 1591 III. Base Libraries 1592 1593 Table of Contents 1594 9. Libraries 1595 1596 9.1. Interfaces for libstdcxx 1597 1598 9.1.1. C++ Runtime Support 1599 9.1.2. C++ type descriptors for built-in types 1600 9.1.3. C++ _Rb_tree 1601 9.1.4. Class type_info 1602 9.1.5. Class __cxxabiv1::__enum_type_info 1603 9.1.6. Class __cxxabiv1::__array_type_info 1604 9.1.7. Class __cxxabiv1::__class_type_info 1605 9.1.8. Class __cxxabiv1::__pbase_type_info 1606 9.1.9. Class __cxxabiv1::__pointer_type_info 1607 9.1.10. Class __cxxabiv1::__function_type_info 1608 9.1.11. Class __cxxabiv1::__si_class_type_info 1609 9.1.12. Class __cxxabiv1::__vmi_class_type_info 1610 9.1.13. Class __cxxabiv1::__fundamental_type_info 1611 9.1.14. Class 1612 __cxxabiv1::__pointer_to_member_type_info 1613 1614 9.1.15. Class __gnu_cxx::stdio_filebuf > 1616 1617 9.1.16. Class __gnu_cxx::stdio_filebuf > 1619 1620 9.1.17. Class __gnu_cxx::__pool_alloc_base 1621 9.1.18. Class __gnu_cxx::stdio_sync_filebuf > 1623 1624 9.1.19. Class __gnu_cxx::stdio_sync_filebuf > 1626 1627 9.1.20. Class exception 1628 9.1.21. Class bad_typeid 1629 9.1.22. Class logic_error 1630 9.1.23. Class range_error 1631 9.1.24. Class domain_error 1632 9.1.25. Class length_error 1633 9.1.26. Class out_of_range 1634 9.1.27. Class bad_exception 1635 9.1.28. Class runtime_error 1636 9.1.29. Class overflow_error 1637 9.1.30. Class underflow_error 1638 9.1.31. Class invalid_argument 1639 9.1.32. Class bad_cast 1640 9.1.33. Class bad_alloc 1641 9.1.34. struct __numeric_limits_base 1642 9.1.35. struct numeric_limits 1643 9.1.36. struct numeric_limits 1644 9.1.37. struct numeric_limits 1645 9.1.38. struct numeric_limits 1646 9.1.39. struct numeric_limits 1647 9.1.40. struct numeric_limits 1648 9.1.41. struct numeric_limits 1649 9.1.42. struct numeric_limits 1650 9.1.43. struct numeric_limits 1651 9.1.44. struct numeric_limits 1652 9.1.45. struct numeric_limits 1653 9.1.46. struct numeric_limits 1654 9.1.47. struct numeric_limits 1655 9.1.48. struct numeric_limits 1656 9.1.49. struct numeric_limits 1657 9.1.50. struct numeric_limits 1658 9.1.51. Class ctype_base 1659 9.1.52. Class __ctype_abstract_base 1660 9.1.53. Class __ctype_abstract_base 1661 9.1.54. Class ctype 1662 9.1.55. Class ctype 1663 9.1.56. Class ctype_byname 1664 9.1.57. Class ctype_byname 1665 9.1.58. Class basic_string, 1666 allocator > 1667 1668 9.1.59. Class basic_string, allocator > 1670 1671 9.1.60. Class basic_stringstream, allocator > 1673 1674 9.1.61. Class basic_stringstream, allocator > 1676 1677 9.1.62. Class basic_istringstream, allocator > 1679 1680 9.1.63. Class basic_istringstream, allocator > 1682 1683 9.1.64. Class basic_ostringstream, allocator > 1685 1686 9.1.65. Class basic_ostringstream, allocator > 1688 1689 9.1.66. Class basic_stringbuf, allocator > 1691 1692 9.1.67. Class basic_stringbuf, allocator > 1694 1695 9.1.68. Class basic_iostream 1696 > 1697 1698 9.1.69. Class basic_iostream > 1700 1701 9.1.70. Class basic_istream 1702 > 1703 1704 9.1.71. Class basic_istream > 1706 1707 9.1.72. Class istreambuf_iterator > 1709 1710 9.1.73. Class istreambuf_iterator > 1712 1713 9.1.74. Class basic_ostream 1714 > 1715 1716 9.1.75. Class basic_ostream > 1718 1719 9.1.76. Class basic_fstream 1720 > 1721 1722 9.1.77. Class basic_fstream > 1724 1725 9.1.78. Class basic_ifstream 1726 > 1727 1728 9.1.79. Class basic_ifstream > 1730 1731 9.1.80. Class basic_ofstream 1732 > 1733 1734 9.1.81. Class basic_ofstream > 1736 1737 9.1.82. Class basic_streambuf > 1739 1740 9.1.83. Class basic_streambuf > 1742 1743 9.1.84. Class basic_filebuf 1744 > 1745 1746 9.1.85. Class basic_filebuf > 1748 1749 9.1.86. Class ios_base 1750 9.1.87. Class basic_ios > 1751 9.1.88. Class basic_ios > 1753 1754 9.1.89. Class ios_base::failure 1755 9.1.90. Class __timepunct 1756 9.1.91. Class __timepunct 1757 9.1.92. Class messages_base 1758 9.1.93. Class messages 1759 9.1.94. Class messages 1760 9.1.95. Class messages_byname 1761 9.1.96. Class messages_byname 1762 9.1.97. Class numpunct 1763 9.1.98. Class numpunct 1764 9.1.99. Class numpunct_byname 1765 9.1.100. Class numpunct_byname 1766 9.1.101. Class __codecvt_abstract_base 1768 1769 9.1.102. Class __codecvt_abstract_base 1771 1772 9.1.103. Class codecvt_base 1773 9.1.104. Class codecvt 1774 9.1.105. Class codecvt 1775 9.1.106. Class codecvt_byname 1777 1778 9.1.107. Class codecvt_byname 1780 1781 9.1.108. Class collate 1782 9.1.109. Class collate 1783 9.1.110. Class collate_byname 1784 9.1.111. Class collate_byname 1785 9.1.112. Class time_base 1786 9.1.113. Class time_get_byname 1788 > > 1789 1790 9.1.114. Class time_get_byname > > 1793 1794 9.1.115. Class time_put_byname 1796 > > 1797 1798 9.1.116. Class time_put_byname > > 1801 1802 9.1.117. Class time_get 1804 > > 1805 1806 9.1.118. Class time_get > > 1809 1810 9.1.119. Class time_put 1812 > > 1813 1814 9.1.120. Class time_put > > 1817 1818 9.1.121. Class moneypunct 1819 9.1.122. Class moneypunct 1820 9.1.123. Class moneypunct 1821 9.1.124. Class moneypunct 1822 9.1.125. Class moneypunct_byname 1823 9.1.126. Class moneypunct_byname 1824 9.1.127. Class moneypunct_byname 1825 9.1.128. Class moneypunct_byname 1826 9.1.129. Class money_base 1827 9.1.130. Class money_get 1829 > > 1830 1831 9.1.131. Class money_get > > 1834 1835 9.1.132. Class money_put 1837 > > 1838 1839 9.1.133. Class money_put > > 1842 1843 9.1.134. Class locale 1844 9.1.135. Class locale::facet 1845 9.1.136. facet functions 1846 9.1.137. Class __num_base 1847 9.1.138. Class num_get 1849 > > 1850 1851 9.1.139. Class num_get > > 1854 1855 9.1.140. Class num_put 1857 > > 1858 1859 9.1.141. Class num_put > > 1862 1863 9.1.142. Class gslice 1864 9.1.143. Class __basic_file 1865 9.1.144. Class _List_node_base 1866 9.1.145. Class valarray 1867 9.1.146. Class allocator 1868 9.1.147. Class allocator 1869 1870 9.2. Interface Definitions for libstdcxx 1871 __________________________________________________________ 1872 1873 Chapter 9. Libraries 1874 1875 An LSB-conforming implementation shall support some base 1876 libraries which provide interfaces for accessing the operating 1877 system, processor and other hardware in the system. 1878 __________________________________________________________ 1879 1880 9.1. Interfaces for libstdcxx 1881 1882 Table 9-1 defines the library name and shared object name for 1883 the libstdcxx library 1884 1885 Table 9-1. libstdcxx Definition 1886 Library: libstdcxx 1887 SONAME: libstdc++.so.6 1888 1889 Unless stated otherwise, all symbols are in the std:: 1890 namespace. 1891 1892 The behavior of the interfaces in this library is specified by 1893 the following specifications: 1894 1895 [CXXABI] Itanium(TM) C++ ABI 1896 [ISOCXX] ISO/IEC 14882: 2003 C++ Language 1897 [LSB] ISO/IEC 23360 Part 1 1898 __________________________________________________________ 1899 1900 9.1.1. C++ Runtime Support 1901 __________________________________________________________ 1902 1903 9.1.1.1. Interfaces for C++ Runtime Support 1904 1905 An LSB conforming implementation shall provide the generic 1906 methods for C++ Runtime Support specified in Table 9-2, with 1907 the full mandatory functionality as described in the referenced 1908 underlying specification. 1909 1910 Table 9-2. libstdcxx - C++ Runtime Support Function Interfaces 1911 __gnu_cxx::__atomic_add(int volatile*, int)(GLIBCXX_3.4) 1912 [CXXABI] 1913 __gnu_cxx::__exchange_and_add(int volatile*, int)(GLIBCXX_3.4) 1914 [CXXABI] 1915 __gnu_cxx::__verbose_terminate_handler()(CXXABI_1.3) [CXXABI] 1916 unexpected()(GLIBCXX_3.4) [ISOCXX] 1917 set_terminate(void (*)())(GLIBCXX_3.4) [ISOCXX] 1918 set_unexpected(void (*)())(GLIBCXX_3.4) [ISOCXX] 1919 set_new_handler(void (*)())(GLIBCXX_3.4) [ISOCXX] 1920 __throw_bad_cast()(GLIBCXX_3.4) [ISOCXX] 1921 __throw_bad_alloc()(GLIBCXX_3.4) [ISOCXX] 1922 __throw_bad_typeid()(GLIBCXX_3.4) [ISOCXX] 1923 uncaught_exception()(GLIBCXX_3.4) [ISOCXX] 1924 __throw_ios_failure(char const*)(GLIBCXX_3.4) [ISOCXX] 1925 __throw_logic_error(char const*)(GLIBCXX_3.4) [ISOCXX] 1926 __throw_range_error(char const*)(GLIBCXX_3.4) [ISOCXX] 1927 __throw_domain_error(char const*)(GLIBCXX_3.4) [ISOCXX] 1928 __throw_length_error(char const*)(GLIBCXX_3.4) [ISOCXX] 1929 __throw_out_of_range(char const*)(GLIBCXX_3.4) [ISOCXX] 1930 __throw_bad_exception()(GLIBCXX_3.4) [ISOCXX] 1931 __throw_runtime_error(char const*)(GLIBCXX_3.4) [ISOCXX] 1932 __throw_overflow_error(char const*)(GLIBCXX_3.4) [ISOCXX] 1933 __throw_underflow_error(char const*)(GLIBCXX_3.4) [ISOCXX] 1934 __throw_invalid_argument(char const*)(GLIBCXX_3.4) [ISOCXX] 1935 terminate()(GLIBCXX_3.4) [ISOCXX] 1936 operator delete[](void*)(GLIBCXX_3.4) [ISOCXX] 1937 operator delete[](void*, nothrow_t const&)(GLIBCXX_3.4) 1938 [ISOCXX] 1939 operator delete(void*)(GLIBCXX_3.4) [ISOCXX] 1940 operator delete(void*, nothrow_t const&)(GLIBCXX_3.4) [ISOCXX] 1941 __cxa_allocate_exception(CXXABI_1.3) [CXXABI] 1942 __cxa_bad_cast(CXXABI_1.3) [CXXABI] 1943 __cxa_bad_typeid(CXXABI_1.3) [CXXABI] 1944 __cxa_begin_catch(CXXABI_1.3) [CXXABI] 1945 __cxa_call_unexpected(CXXABI_1.3) [CXXABI] 1946 __cxa_current_exception_type(CXXABI_1.3) [CXXABI] 1947 __cxa_demangle(CXXABI_1.3) [CXXABI] 1948 __cxa_end_catch(CXXABI_1.3) [CXXABI] 1949 __cxa_free_exception(CXXABI_1.3) [CXXABI] 1950 __cxa_get_globals(CXXABI_1.3) [CXXABI] 1951 __cxa_get_globals_fast(CXXABI_1.3) [CXXABI] 1952 __cxa_guard_abort(CXXABI_1.3) [CXXABI] 1953 __cxa_guard_acquire(CXXABI_1.3) [CXXABI] 1954 __cxa_guard_release(CXXABI_1.3) [CXXABI] 1955 __cxa_pure_virtual(CXXABI_1.3) [CXXABI] 1956 __cxa_rethrow(CXXABI_1.3) [CXXABI] 1957 __cxa_throw(CXXABI_1.3) [CXXABI] 1958 __cxa_vec_cctor(CXXABI_1.3) [CXXABI] 1959 __cxa_vec_cleanup(CXXABI_1.3) [CXXABI] 1960 __cxa_vec_ctor(CXXABI_1.3) [CXXABI] 1961 __cxa_vec_delete(CXXABI_1.3) [CXXABI] 1962 __cxa_vec_delete2(CXXABI_1.3) [CXXABI] 1963 __cxa_vec_delete3(CXXABI_1.3) [CXXABI] 1964 __cxa_vec_dtor(CXXABI_1.3) [CXXABI] 1965 __cxa_vec_new(CXXABI_1.3) [CXXABI] 1966 __cxa_vec_new2(CXXABI_1.3) [CXXABI] 1967 __cxa_vec_new3(CXXABI_1.3) [CXXABI] 1968 __dynamic_cast(CXXABI_1.3) [CXXABI] 1969 __gxx_personality_v0(CXXABI_1.3) [CXXABI] 1970 1971 An LSB conforming implementation shall provide the generic data 1972 interfaces for C++ Runtime Support specified in Table 9-3, with 1973 the full mandatory functionality as described in the referenced 1974 underlying specification. 1975 1976 Table 9-3. libstdcxx - C++ Runtime Support Data Interfaces 1977 cin(GLIBCXX_3.4) [ISOCXX] 1978 cerr(GLIBCXX_3.4) [ISOCXX] 1979 clog(GLIBCXX_3.4) [ISOCXX] 1980 cout(GLIBCXX_3.4) [ISOCXX] 1981 wcin(GLIBCXX_3.4) [ISOCXX] 1982 wcerr(GLIBCXX_3.4) [ISOCXX] 1983 wclog(GLIBCXX_3.4) [ISOCXX] 1984 wcout(GLIBCXX_3.4) [ISOCXX] 1985 nothrow(GLIBCXX_3.4) [ISOCXX] 1986 __________________________________________________________ 1987 1988 9.1.2. C++ type descriptors for built-in types 1989 __________________________________________________________ 1990 1991 9.1.2.1. Interfaces for C++ type descriptors for built-in types 1992 1993 No external methods are defined for libstdcxx - C++ type 1994 descriptors for built-in types in this part of the 1995 specification. See also the relevant architecture specific part 1996 of this specification. 1997 1998 An LSB conforming implementation shall provide the generic data 1999 interfaces for C++ type descriptors for built-in types 2000 specified in Table 9-4, with the full mandatory functionality 2001 as described in the referenced underlying specification. 2002 2003 Table 9-4. libstdcxx - C++ type descriptors for built-in types 2004 Data Interfaces 2005 typeinfo for signed char const*(CXXABI_1.3) [CXXABI] 2006 typeinfo for bool const*(CXXABI_1.3) [CXXABI] 2007 typeinfo for char const*(CXXABI_1.3) [CXXABI] 2008 typeinfo for double const*(CXXABI_1.3) [CXXABI] 2009 typeinfo for long double const*(CXXABI_1.3) [CXXABI] 2010 typeinfo for float const*(CXXABI_1.3) [CXXABI] 2011 typeinfo for unsigned char const*(CXXABI_1.3) [CXXABI] 2012 typeinfo for int const*(CXXABI_1.3) [CXXABI] 2013 typeinfo for unsigned int const*(CXXABI_1.3) [CXXABI] 2014 typeinfo for long const*(CXXABI_1.3) [CXXABI] 2015 typeinfo for unsigned long const*(CXXABI_1.3) [CXXABI] 2016 typeinfo for short const*(CXXABI_1.3) [CXXABI] 2017 typeinfo for unsigned short const*(CXXABI_1.3) [CXXABI] 2018 typeinfo for void const*(CXXABI_1.3) [CXXABI] 2019 typeinfo for wchar_t const*(CXXABI_1.3) [CXXABI] 2020 typeinfo for long long const*(CXXABI_1.3) [CXXABI] 2021 typeinfo for unsigned long long const*(CXXABI_1.3) [CXXABI] 2022 typeinfo for signed char*(CXXABI_1.3) [CXXABI] 2023 typeinfo for bool*(CXXABI_1.3) [CXXABI] 2024 typeinfo for char*(CXXABI_1.3) [CXXABI] 2025 typeinfo for double*(CXXABI_1.3) [CXXABI] 2026 typeinfo for long double*(CXXABI_1.3) [CXXABI] 2027 typeinfo for float*(CXXABI_1.3) [CXXABI] 2028 typeinfo for unsigned char*(CXXABI_1.3) [CXXABI] 2029 typeinfo for int*(CXXABI_1.3) [CXXABI] 2030 typeinfo for unsigned int*(CXXABI_1.3) [CXXABI] 2031 typeinfo for long*(CXXABI_1.3) [CXXABI] 2032 typeinfo for unsigned long*(CXXABI_1.3) [CXXABI] 2033 typeinfo for short*(CXXABI_1.3) [CXXABI] 2034 typeinfo for unsigned short*(CXXABI_1.3) [CXXABI] 2035 typeinfo for void*(CXXABI_1.3) [CXXABI] 2036 typeinfo for wchar_t*(CXXABI_1.3) [CXXABI] 2037 typeinfo for long long*(CXXABI_1.3) [CXXABI] 2038 typeinfo for unsigned long long*(CXXABI_1.3) [CXXABI] 2039 typeinfo for signed char(CXXABI_1.3) [CXXABI] 2040 typeinfo for bool(CXXABI_1.3) [CXXABI] 2041 typeinfo for char(CXXABI_1.3) [CXXABI] 2042 typeinfo for double(CXXABI_1.3) [CXXABI] 2043 typeinfo for long double(CXXABI_1.3) [CXXABI] 2044 typeinfo for float(CXXABI_1.3) [CXXABI] 2045 typeinfo for unsigned char(CXXABI_1.3) [CXXABI] 2046 typeinfo for int(CXXABI_1.3) [CXXABI] 2047 typeinfo for unsigned int(CXXABI_1.3) [CXXABI] 2048 typeinfo for long(CXXABI_1.3) [CXXABI] 2049 typeinfo for unsigned long(CXXABI_1.3) [CXXABI] 2050 typeinfo for short(CXXABI_1.3) [CXXABI] 2051 typeinfo for unsigned short(CXXABI_1.3) [CXXABI] 2052 typeinfo for void(CXXABI_1.3) [CXXABI] 2053 typeinfo for wchar_t(CXXABI_1.3) [CXXABI] 2054 typeinfo for long long(CXXABI_1.3) [CXXABI] 2055 typeinfo for unsigned long long(CXXABI_1.3) [CXXABI] 2056 typeinfo name for signed char const*(CXXABI_1.3) [CXXABI] 2057 typeinfo name for bool const*(CXXABI_1.3) [CXXABI] 2058 typeinfo name for char const*(CXXABI_1.3) [CXXABI] 2059 typeinfo name for double const*(CXXABI_1.3) [CXXABI] 2060 typeinfo name for long double const*(CXXABI_1.3) [CXXABI] 2061 typeinfo name for float const*(CXXABI_1.3) [CXXABI] 2062 typeinfo name for unsigned char const*(CXXABI_1.3) [CXXABI] 2063 typeinfo name for int const*(CXXABI_1.3) [CXXABI] 2064 typeinfo name for unsigned int const*(CXXABI_1.3) [CXXABI] 2065 typeinfo name for long const*(CXXABI_1.3) [CXXABI] 2066 typeinfo name for unsigned long const*(CXXABI_1.3) [CXXABI] 2067 typeinfo name for short const*(CXXABI_1.3) [CXXABI] 2068 typeinfo name for unsigned short const*(CXXABI_1.3) [CXXABI] 2069 typeinfo name for void const*(CXXABI_1.3) [CXXABI] 2070 typeinfo name for wchar_t const*(CXXABI_1.3) [CXXABI] 2071 typeinfo name for long long const*(CXXABI_1.3) [CXXABI] 2072 typeinfo name for unsigned long long const*(CXXABI_1.3) 2073 [CXXABI] 2074 typeinfo name for signed char*(CXXABI_1.3) [CXXABI] 2075 typeinfo name for bool*(CXXABI_1.3) [CXXABI] 2076 typeinfo name for char*(CXXABI_1.3) [CXXABI] 2077 typeinfo name for double*(CXXABI_1.3) [CXXABI] 2078 typeinfo name for long double*(CXXABI_1.3) [CXXABI] 2079 typeinfo name for float*(CXXABI_1.3) [CXXABI] 2080 typeinfo name for unsigned char*(CXXABI_1.3) [CXXABI] 2081 typeinfo name for int*(CXXABI_1.3) [CXXABI] 2082 typeinfo name for unsigned int*(CXXABI_1.3) [CXXABI] 2083 typeinfo name for long*(CXXABI_1.3) [CXXABI] 2084 typeinfo name for unsigned long*(CXXABI_1.3) [CXXABI] 2085 typeinfo name for short*(CXXABI_1.3) [CXXABI] 2086 typeinfo name for unsigned short*(CXXABI_1.3) [CXXABI] 2087 typeinfo name for void*(CXXABI_1.3) [CXXABI] 2088 typeinfo name for wchar_t*(CXXABI_1.3) [CXXABI] 2089 typeinfo name for long long*(CXXABI_1.3) [CXXABI] 2090 typeinfo name for unsigned long long*(CXXABI_1.3) [CXXABI] 2091 typeinfo name for signed char(CXXABI_1.3) [CXXABI] 2092 typeinfo name for bool(CXXABI_1.3) [CXXABI] 2093 typeinfo name for char(CXXABI_1.3) [CXXABI] 2094 typeinfo name for double(CXXABI_1.3) [CXXABI] 2095 typeinfo name for long double(CXXABI_1.3) [CXXABI] 2096 typeinfo name for float(CXXABI_1.3) [CXXABI] 2097 typeinfo name for unsigned char(CXXABI_1.3) [CXXABI] 2098 typeinfo name for int(CXXABI_1.3) [CXXABI] 2099 typeinfo name for unsigned int(CXXABI_1.3) [CXXABI] 2100 typeinfo name for long(CXXABI_1.3) [CXXABI] 2101 typeinfo name for unsigned long(CXXABI_1.3) [CXXABI] 2102 typeinfo name for short(CXXABI_1.3) [CXXABI] 2103 typeinfo name for unsigned short(CXXABI_1.3) [CXXABI] 2104 typeinfo name for void(CXXABI_1.3) [CXXABI] 2105 typeinfo name for wchar_t(CXXABI_1.3) [CXXABI] 2106 typeinfo name for long long(CXXABI_1.3) [CXXABI] 2107 typeinfo name for unsigned long long(CXXABI_1.3) [CXXABI] 2108 __________________________________________________________ 2109 2110 9.1.3. C++ _Rb_tree 2111 __________________________________________________________ 2112 2113 9.1.3.1. Interfaces for C++ _Rb_tree 2114 2115 An LSB conforming implementation shall provide the generic 2116 methods for C++ _Rb_tree specified in Table 9-5, with the full 2117 mandatory functionality as described in the referenced 2118 underlying specification. 2119 2120 Table 9-5. libstdcxx - C++ _Rb_tree Function Interfaces 2121 _Rb_tree_decrement(_Rb_tree_node_base const*)(GLIBCXX_3.4) 2122 [LSB] 2123 _Rb_tree_decrement(_Rb_tree_node_base*)(GLIBCXX_3.4) [LSB] 2124 _Rb_tree_increment(_Rb_tree_node_base const*)(GLIBCXX_3.4) 2125 [LSB] 2126 _Rb_tree_increment(_Rb_tree_node_base*)(GLIBCXX_3.4) [LSB] 2127 _Rb_tree_black_count(_Rb_tree_node_base const*, 2128 _Rb_tree_node_base const*)(GLIBCXX_3.4) [LSB] 2129 _Rb_tree_rotate_left(_Rb_tree_node_base*, 2130 _Rb_tree_node_base*&)(GLIBCXX_3.4) [LSB] 2131 _Rb_tree_rotate_right(_Rb_tree_node_base*, 2132 _Rb_tree_node_base*&)(GLIBCXX_3.4) [LSB] 2133 _Rb_tree_rebalance_for_erase(_Rb_tree_node_base*, 2134 _Rb_tree_node_base&)(GLIBCXX_3.4) [LSB] 2135 _Rb_tree_insert_and_rebalance(bool, _Rb_tree_node_base*, 2136 _Rb_tree_node_base*, _Rb_tree_node_base&)(GLIBCXX_3.4) [LSB] 2137 __________________________________________________________ 2138 2139 9.1.4. Class type_info 2140 __________________________________________________________ 2141 2142 9.1.4.1. Class data for type_info 2143 2144 The virtual table for the std::type_info class is described by 2145 Table 9-6 2146 2147 Table 9-6. Primary vtable for type_info 2148 Base Offset 0 2149 Virtual Base Offset 0 2150 RTTI typeinfo for type_info 2151 vfunc[0]: type_info::~type_info() 2152 vfunc[1]: type_info::~type_info() 2153 vfunc[2]: type_info::__is_pointer_p() const 2154 vfunc[3]: type_info::__is_function_p() const 2155 vfunc[4]: type_info::__do_catch(type_info const*, void**, 2156 unsigned int) const 2157 vfunc[5]: type_info::__do_upcast(__cxxabiv1::__class_type_info 2158 const*, void**) const 2159 2160 The Run Time Type Information for the std::type_info class is 2161 described by Table 9-7 2162 2163 Table 9-7. typeinfo for type_info 2164 Base Vtable vtable for __cxxabiv1::__class_type_info 2165 Name typeinfo name for type_info 2166 __________________________________________________________ 2167 2168 9.1.4.2. Interfaces for Class type_info 2169 2170 An LSB conforming implementation shall provide the generic 2171 methods for Class std::type_info specified in Table 9-8, with 2172 the full mandatory functionality as described in the referenced 2173 underlying specification. 2174 2175 Table 9-8. libstdcxx - Class type_info Function Interfaces 2176 type_info::__do_catch(type_info const*, void**, unsigned int) 2177 const(GLIBCXX_3.4) [ISOCXX] 2178 type_info::__do_upcast(__cxxabiv1::__class_type_info const*, 2179 void**) const(GLIBCXX_3.4) [ISOCXX] 2180 type_info::__is_pointer_p() const(GLIBCXX_3.4) [ISOCXX] 2181 type_info::__is_function_p() const(GLIBCXX_3.4) [ISOCXX] 2182 type_info::~type_info()(GLIBCXX_3.4) [ISOCXX] 2183 type_info::~type_info()(GLIBCXX_3.4) [ISOCXX] 2184 type_info::~type_info()(GLIBCXX_3.4) [ISOCXX] 2185 2186 An LSB conforming implementation shall provide the generic data 2187 interfaces for Class std::type_info specified in Table 9-9, 2188 with the full mandatory functionality as described in the 2189 referenced underlying specification. 2190 2191 Table 9-9. libstdcxx - Class type_info Data Interfaces 2192 typeinfo for type_info(GLIBCXX_3.4) [CXXABI] 2193 typeinfo name for type_info(GLIBCXX_3.4) [CXXABI] 2194 vtable for type_info(GLIBCXX_3.4) [CXXABI] 2195 __________________________________________________________ 2196 2197 9.1.5. Class __cxxabiv1::__enum_type_info 2198 __________________________________________________________ 2199 2200 9.1.5.1. Class data for __cxxabiv1::__enum_type_info 2201 2202 The virtual table for the __cxxabiv1::__enum_type_info class is 2203 described by Table 9-10 2204 2205 Table 9-10. Primary vtable for __cxxabiv1::__enum_type_info 2206 Base Offset 0 2207 Virtual Base Offset 0 2208 RTTI typeinfo for __cxxabiv1::__enum_type_info 2209 vfunc[0]: __cxxabiv1::__enum_type_info::~__enum_type_info() 2210 vfunc[1]: __cxxabiv1::__enum_type_info::~__enum_type_info() 2211 vfunc[2]: type_info::__is_pointer_p() const 2212 vfunc[3]: type_info::__is_function_p() const 2213 vfunc[4]: type_info::__do_catch(type_info const*, void**, 2214 unsigned int) const 2215 vfunc[5]: type_info::__do_upcast(__cxxabiv1::__class_type_info 2216 const*, void**) const 2217 2218 The Run Time Type Information for the 2219 __cxxabiv1::__enum_type_info class is described by Table 9-11 2220 2221 Table 9-11. typeinfo for __cxxabiv1::__enum_type_info 2222 Base Vtable vtable for __cxxabiv1::__si_class_type_info 2223 Name typeinfo name for __cxxabiv1::__enum_type_info 2224 __________________________________________________________ 2225 2226 9.1.5.2. Interfaces for Class __cxxabiv1::__enum_type_info 2227 2228 An LSB conforming implementation shall provide the generic 2229 methods for Class __cxxabiv1::__enum_type_info specified in 2230 Table 9-12, with the full mandatory functionality as described 2231 in the referenced underlying specification. 2232 2233 Table 9-12. libstdcxx - Class __cxxabiv1::__enum_type_info 2234 Function Interfaces 2235 __cxxabiv1::__enum_type_info::~__enum_type_info()(CXXABI_1.3) 2236 [CXXABI] 2237 __cxxabiv1::__enum_type_info::~__enum_type_info()(CXXABI_1.3) 2238 [CXXABI] 2239 __cxxabiv1::__enum_type_info::~__enum_type_info()(CXXABI_1.3) 2240 [CXXABI] 2241 2242 An LSB conforming implementation shall provide the generic data 2243 interfaces for Class __cxxabiv1::__enum_type_info specified in 2244 Table 9-13, with the full mandatory functionality as described 2245 in the referenced underlying specification. 2246 2247 Table 9-13. libstdcxx - Class __cxxabiv1::__enum_type_info Data 2248 Interfaces 2249 typeinfo for __cxxabiv1::__enum_type_info(CXXABI_1.3) [CXXABI] 2250 typeinfo name for __cxxabiv1::__enum_type_info(CXXABI_1.3) 2251 [CXXABI] 2252 vtable for __cxxabiv1::__enum_type_info(CXXABI_1.3) [CXXABI] 2253 __________________________________________________________ 2254 2255 9.1.6. Class __cxxabiv1::__array_type_info 2256 __________________________________________________________ 2257 2258 9.1.6.1. Class data for __cxxabiv1::__array_type_info 2259 2260 The virtual table for the __cxxabiv1::__array_type_info class 2261 is described by Table 9-14 2262 2263 Table 9-14. Primary vtable for __cxxabiv1::__array_type_info 2264 Base Offset 0 2265 Virtual Base Offset 0 2266 RTTI typeinfo for __cxxabiv1::__array_type_info 2267 vfunc[0]: __cxxabiv1::__array_type_info::~__array_type_info() 2268 vfunc[1]: __cxxabiv1::__array_type_info::~__array_type_info() 2269 vfunc[2]: type_info::__is_pointer_p() const 2270 vfunc[3]: type_info::__is_function_p() const 2271 vfunc[4]: type_info::__do_catch(type_info const*, void**, 2272 unsigned int) const 2273 vfunc[5]: type_info::__do_upcast(__cxxabiv1::__class_type_info 2274 const*, void**) const 2275 2276 The Run Time Type Information for the 2277 __cxxabiv1::__array_type_info class is described by Table 9-15 2278 2279 Table 9-15. typeinfo for __cxxabiv1::__array_type_info 2280 Base Vtable vtable for __cxxabiv1::__si_class_type_info 2281 Name typeinfo name for __cxxabiv1::__array_type_info 2282 __________________________________________________________ 2283 2284 9.1.6.2. Interfaces for Class __cxxabiv1::__array_type_info 2285 2286 An LSB conforming implementation shall provide the generic 2287 methods for Class __cxxabiv1::__array_type_info specified in 2288 Table 9-16, with the full mandatory functionality as described 2289 in the referenced underlying specification. 2290 2291 Table 9-16. libstdcxx - Class __cxxabiv1::__array_type_info 2292 Function Interfaces 2293 __cxxabiv1::__array_type_info::~__array_type_info()(CXXABI_1.3) 2294 [CXXABI] 2295 __cxxabiv1::__array_type_info::~__array_type_info()(CXXABI_1.3) 2296 [CXXABI] 2297 __cxxabiv1::__array_type_info::~__array_type_info()(CXXABI_1.3) 2298 [CXXABI] 2299 2300 An LSB conforming implementation shall provide the generic data 2301 interfaces for Class __cxxabiv1::__array_type_info specified in 2302 Table 9-17, with the full mandatory functionality as described 2303 in the referenced underlying specification. 2304 2305 Table 9-17. libstdcxx - Class __cxxabiv1::__array_type_info 2306 Data Interfaces 2307 typeinfo for __cxxabiv1::__array_type_info(CXXABI_1.3) [CXXABI] 2308 typeinfo name for __cxxabiv1::__array_type_info(CXXABI_1.3) 2309 [CXXABI] 2310 vtable for __cxxabiv1::__array_type_info(CXXABI_1.3) [CXXABI] 2311 __________________________________________________________ 2312 2313 9.1.7. Class __cxxabiv1::__class_type_info 2314 __________________________________________________________ 2315 2316 9.1.7.1. Class data for __cxxabiv1::__class_type_info 2317 2318 The virtual table for the __cxxabiv1::__class_type_info class 2319 is described by Table 9-18 2320 2321 Table 9-18. Primary vtable for __cxxabiv1::__class_type_info 2322 Base Offset 0 2323 Virtual Base Offset 0 2324 RTTI typeinfo for __cxxabiv1::__class_type_info 2325 vfunc[0]: __cxxabiv1::__class_type_info::~__class_type_info() 2326 vfunc[1]: __cxxabiv1::__class_type_info::~__class_type_info() 2327 vfunc[2]: type_info::__is_pointer_p() const 2328 vfunc[3]: type_info::__is_function_p() const 2329 vfunc[4]: __cxxabiv1::__class_type_info::__do_catch(type_info 2330 const*, void**, unsigned int) const 2331 vfunc[5]: 2332 __cxxabiv1::__class_type_info::__do_upcast(__cxxabiv1::__class_ 2333 type_info const*, void**) const 2334 vfunc[6]: 2335 __cxxabiv1::__class_type_info::__do_upcast(__cxxabiv1::__class_ 2336 type_info const*, void const*, 2337 __cxxabiv1::__class_type_info::__upcast_result&) const 2338 2339 The Run Time Type Information for the 2340 __cxxabiv1::__class_type_info class is described by Table 9-19 2341 2342 Table 9-19. typeinfo for __cxxabiv1::__class_type_info 2343 Base Vtable vtable for __cxxabiv1::__si_class_type_info 2344 Name typeinfo name for __cxxabiv1::__class_type_info 2345 __________________________________________________________ 2346 2347 9.1.7.2. Interfaces for Class __cxxabiv1::__class_type_info 2348 2349 An LSB conforming implementation shall provide the generic 2350 methods for Class __cxxabiv1::__class_type_info specified in 2351 Table 9-20, with the full mandatory functionality as described 2352 in the referenced underlying specification. 2353 2354 Table 9-20. libstdcxx - Class __cxxabiv1::__class_type_info 2355 Function Interfaces 2356 __cxxabiv1::__class_type_info::~__class_type_info()(CXXABI_1.3) 2357 [CXXABI] 2358 __cxxabiv1::__class_type_info::~__class_type_info()(CXXABI_1.3) 2359 [CXXABI] 2360 __cxxabiv1::__class_type_info::~__class_type_info()(CXXABI_1.3) 2361 [CXXABI] 2362 __cxxabiv1::__class_type_info::__do_catch(type_info const*, 2363 void**, unsigned int) const(CXXABI_1.3) [CXXABI] 2364 __cxxabiv1::__class_type_info::__do_upcast(__cxxabiv1::__class_ 2365 type_info const*, void const*, 2366 __cxxabiv1::__class_type_info::__upcast_result&) 2367 const(CXXABI_1.3) [CXXABI] 2368 __cxxabiv1::__class_type_info::__do_upcast(__cxxabiv1::__class_ 2369 type_info const*, void**) const(CXXABI_1.3) [CXXABI] 2370 2371 An LSB conforming implementation shall provide the generic data 2372 interfaces for Class __cxxabiv1::__class_type_info specified in 2373 Table 9-21, with the full mandatory functionality as described 2374 in the referenced underlying specification. 2375 2376 Table 9-21. libstdcxx - Class __cxxabiv1::__class_type_info 2377 Data Interfaces 2378 typeinfo for __cxxabiv1::__class_type_info(CXXABI_1.3) [CXXABI] 2379 typeinfo name for __cxxabiv1::__class_type_info(CXXABI_1.3) 2380 [CXXABI] 2381 vtable for __cxxabiv1::__class_type_info(CXXABI_1.3) [CXXABI] 2382 __________________________________________________________ 2383 2384 9.1.8. Class __cxxabiv1::__pbase_type_info 2385 __________________________________________________________ 2386 2387 9.1.8.1. Class data for __cxxabiv1::__pbase_type_info 2388 2389 The virtual table for the __cxxabiv1::__pbase_type_info class 2390 is described by Table 9-22 2391 2392 Table 9-22. Primary vtable for __cxxabiv1::__pbase_type_info 2393 Base Offset 0 2394 Virtual Base Offset 0 2395 RTTI typeinfo for __cxxabiv1::__pbase_type_info 2396 vfunc[0]: __cxxabiv1::__pbase_type_info::~__pbase_type_info() 2397 vfunc[1]: __cxxabiv1::__pbase_type_info::~__pbase_type_info() 2398 vfunc[2]: type_info::__is_pointer_p() const 2399 vfunc[3]: type_info::__is_function_p() const 2400 vfunc[4]: __cxxabiv1::__pbase_type_info::__do_catch(type_info 2401 const*, void**, unsigned int) const 2402 vfunc[5]: type_info::__do_upcast(__cxxabiv1::__class_type_info 2403 const*, void**) const 2404 vfunc[6]: 2405 __cxxabiv1::__pbase_type_info::__pointer_catch(__cxxabiv1::__pb 2406 ase_type_info const*, void**, unsigned int) const 2407 2408 The Run Time Type Information for the 2409 __cxxabiv1::__pbase_type_info class is described by Table 9-23 2410 2411 Table 9-23. typeinfo for __cxxabiv1::__pbase_type_info 2412 Base Vtable vtable for __cxxabiv1::__si_class_type_info 2413 Name typeinfo name for __cxxabiv1::__pbase_type_info 2414 __________________________________________________________ 2415 2416 9.1.8.2. Interfaces for Class __cxxabiv1::__pbase_type_info 2417 2418 An LSB conforming implementation shall provide the generic 2419 methods for Class __cxxabiv1::__pbase_type_info specified in 2420 Table 9-24, with the full mandatory functionality as described 2421 in the referenced underlying specification. 2422 2423 Table 9-24. libstdcxx - Class __cxxabiv1::__pbase_type_info 2424 Function Interfaces 2425 __cxxabiv1::__pbase_type_info::~__pbase_type_info()(CXXABI_1.3) 2426 [CXXABI] 2427 __cxxabiv1::__pbase_type_info::~__pbase_type_info()(CXXABI_1.3) 2428 [CXXABI] 2429 __cxxabiv1::__pbase_type_info::~__pbase_type_info()(CXXABI_1.3) 2430 [CXXABI] 2431 __cxxabiv1::__pbase_type_info::__do_catch(type_info const*, 2432 void**, unsigned int) const(CXXABI_1.3) [CXXABI] 2433 __cxxabiv1::__pbase_type_info::__pointer_catch(__cxxabiv1::__pb 2434 ase_type_info const*, void**, unsigned int) const(CXXABI_1.3) 2435 [CXXABI] 2436 2437 An LSB conforming implementation shall provide the generic data 2438 interfaces for Class __cxxabiv1::__pbase_type_info specified in 2439 Table 9-25, with the full mandatory functionality as described 2440 in the referenced underlying specification. 2441 2442 Table 9-25. libstdcxx - Class __cxxabiv1::__pbase_type_info 2443 Data Interfaces 2444 typeinfo for __cxxabiv1::__pbase_type_info(CXXABI_1.3) [CXXABI] 2445 typeinfo name for __cxxabiv1::__pbase_type_info(CXXABI_1.3) 2446 [CXXABI] 2447 vtable for __cxxabiv1::__pbase_type_info(CXXABI_1.3) [CXXABI] 2448 __________________________________________________________ 2449 2450 9.1.9. Class __cxxabiv1::__pointer_type_info 2451 __________________________________________________________ 2452 2453 9.1.9.1. Class data for __cxxabiv1::__pointer_type_info 2454 2455 The virtual table for the __cxxabiv1::__pointer_type_info class 2456 is described by Table 9-26 2457 2458 Table 9-26. Primary vtable for __cxxabiv1::__pointer_type_info 2459 Base Offset 0 2460 Virtual Base Offset 0 2461 RTTI typeinfo for __cxxabiv1::__pointer_type_info 2462 vfunc[0]: 2463 __cxxabiv1::__pointer_type_info::~__pointer_type_info() 2464 vfunc[1]: 2465 __cxxabiv1::__pointer_type_info::~__pointer_type_info() 2466 vfunc[2]: __cxxabiv1::__pointer_type_info::__is_pointer_p() 2467 const 2468 vfunc[3]: type_info::__is_function_p() const 2469 vfunc[4]: __cxxabiv1::__pbase_type_info::__do_catch(type_info 2470 const*, void**, unsigned int) const 2471 vfunc[5]: type_info::__do_upcast(__cxxabiv1::__class_type_info 2472 const*, void**) const 2473 vfunc[6]: 2474 __cxxabiv1::__pointer_type_info::__pointer_catch(__cxxabiv1::__ 2475 pbase_type_info const*, void**, unsigned int) const 2476 2477 The Run Time Type Information for the 2478 __cxxabiv1::__pointer_type_info class is described by Table 2479 9-27 2480 2481 Table 9-27. typeinfo for __cxxabiv1::__pointer_type_info 2482 Base Vtable vtable for __cxxabiv1::__si_class_type_info 2483 Name typeinfo name for __cxxabiv1::__pointer_type_info 2484 __________________________________________________________ 2485 2486 9.1.9.2. Interfaces for Class __cxxabiv1::__pointer_type_info 2487 2488 An LSB conforming implementation shall provide the generic 2489 methods for Class __cxxabiv1::__pointer_type_info specified in 2490 Table 9-28, with the full mandatory functionality as described 2491 in the referenced underlying specification. 2492 2493 Table 9-28. libstdcxx - Class __cxxabiv1::__pointer_type_info 2494 Function Interfaces 2495 __cxxabiv1::__pointer_type_info::~__pointer_type_info()(CXXABI_ 2496 1.3) [CXXABI] 2497 __cxxabiv1::__pointer_type_info::~__pointer_type_info()(CXXABI_ 2498 1.3) [CXXABI] 2499 __cxxabiv1::__pointer_type_info::~__pointer_type_info()(CXXABI_ 2500 1.3) [CXXABI] 2501 __cxxabiv1::__pointer_type_info::__is_pointer_p() 2502 const(CXXABI_1.3) [CXXABI] 2503 __cxxabiv1::__pointer_type_info::__pointer_catch(__cxxabiv1::__ 2504 pbase_type_info const*, void**, unsigned int) const(CXXABI_1.3) 2505 [CXXABI] 2506 2507 An LSB conforming implementation shall provide the generic data 2508 interfaces for Class __cxxabiv1::__pointer_type_info specified 2509 in Table 9-29, with the full mandatory functionality as 2510 described in the referenced underlying specification. 2511 2512 Table 9-29. libstdcxx - Class __cxxabiv1::__pointer_type_info 2513 Data Interfaces 2514 typeinfo for __cxxabiv1::__pointer_type_info(CXXABI_1.3) 2515 [CXXABI] 2516 typeinfo name for __cxxabiv1::__pointer_type_info(CXXABI_1.3) 2517 [CXXABI] 2518 vtable for __cxxabiv1::__pointer_type_info(CXXABI_1.3) [CXXABI] 2519 __________________________________________________________ 2520 2521 9.1.10. Class __cxxabiv1::__function_type_info 2522 __________________________________________________________ 2523 2524 9.1.10.1. Class data for __cxxabiv1::__function_type_info 2525 2526 The virtual table for the __cxxabiv1::__function_type_info 2527 class is described by Table 9-30 2528 2529 Table 9-30. Primary vtable for __cxxabiv1::__function_type_info 2530 Base Offset 0 2531 Virtual Base Offset 0 2532 RTTI typeinfo for __cxxabiv1::__function_type_info 2533 vfunc[0]: 2534 __cxxabiv1::__function_type_info::~__function_type_info() 2535 vfunc[1]: 2536 __cxxabiv1::__function_type_info::~__function_type_info() 2537 vfunc[2]: type_info::__is_pointer_p() const 2538 vfunc[3]: __cxxabiv1::__function_type_info::__is_function_p() 2539 const 2540 vfunc[4]: type_info::__do_catch(type_info const*, void**, 2541 unsigned int) const 2542 vfunc[5]: type_info::__do_upcast(__cxxabiv1::__class_type_info 2543 const*, void**) const 2544 2545 The Run Time Type Information for the 2546 __cxxabiv1::__function_type_info class is described by Table 2547 9-31 2548 2549 Table 9-31. typeinfo for __cxxabiv1::__function_type_info 2550 Base Vtable vtable for __cxxabiv1::__si_class_type_info 2551 Name typeinfo name for __cxxabiv1::__function_type_info 2552 __________________________________________________________ 2553 2554 9.1.10.2. Interfaces for Class __cxxabiv1::__function_type_info 2555 2556 An LSB conforming implementation shall provide the generic 2557 methods for Class __cxxabiv1::__function_type_info specified in 2558 Table 9-32, with the full mandatory functionality as described 2559 in the referenced underlying specification. 2560 2561 Table 9-32. libstdcxx - Class __cxxabiv1::__function_type_info 2562 Function Interfaces 2563 __cxxabiv1::__function_type_info::~__function_type_info()(CXXAB 2564 I_1.3) [CXXABI] 2565 __cxxabiv1::__function_type_info::~__function_type_info()(CXXAB 2566 I_1.3) [CXXABI] 2567 __cxxabiv1::__function_type_info::~__function_type_info()(CXXAB 2568 I_1.3) [CXXABI] 2569 __cxxabiv1::__function_type_info::__is_function_p() 2570 const(CXXABI_1.3) [CXXABI] 2571 2572 An LSB conforming implementation shall provide the generic data 2573 interfaces for Class __cxxabiv1::__function_type_info specified 2574 in Table 9-33, with the full mandatory functionality as 2575 described in the referenced underlying specification. 2576 2577 Table 9-33. libstdcxx - Class __cxxabiv1::__function_type_info 2578 Data Interfaces 2579 typeinfo for __cxxabiv1::__function_type_info(CXXABI_1.3) 2580 [CXXABI] 2581 typeinfo name for __cxxabiv1::__function_type_info(CXXABI_1.3) 2582 [CXXABI] 2583 vtable for __cxxabiv1::__function_type_info(CXXABI_1.3) 2584 [CXXABI] 2585 __________________________________________________________ 2586 2587 9.1.11. Class __cxxabiv1::__si_class_type_info 2588 __________________________________________________________ 2589 2590 9.1.11.1. Class data for __cxxabiv1::__si_class_type_info 2591 2592 The virtual table for the __cxxabiv1::__si_class_type_info 2593 class is described by Table 9-34 2594 2595 Table 9-34. Primary vtable for __cxxabiv1::__si_class_type_info 2596 Base Offset 0 2597 Virtual Base Offset 0 2598 RTTI typeinfo for __cxxabiv1::__si_class_type_info 2599 vfunc[0]: 2600 __cxxabiv1::__si_class_type_info::~__si_class_type_info() 2601 vfunc[1]: 2602 __cxxabiv1::__si_class_type_info::~__si_class_type_info() 2603 vfunc[2]: type_info::__is_pointer_p() const 2604 vfunc[3]: type_info::__is_function_p() const 2605 vfunc[4]: __cxxabiv1::__class_type_info::__do_catch(type_info 2606 const*, void**, unsigned int) const 2607 vfunc[5]: 2608 __cxxabiv1::__class_type_info::__do_upcast(__cxxabiv1::__class_ 2609 type_info const*, void**) const 2610 vfunc[6]: 2611 __cxxabiv1::__si_class_type_info::__do_upcast(__cxxabiv1::__cla 2612 ss_type_info const*, void const*, 2613 __cxxabiv1::__class_type_info::__upcast_result&) const 2614 2615 The Run Time Type Information for the 2616 __cxxabiv1::__si_class_type_info class is described by Table 2617 9-35 2618 2619 Table 9-35. typeinfo for __cxxabiv1::__si_class_type_info 2620 Base Vtable vtable for __cxxabiv1::__si_class_type_info 2621 Name typeinfo name for __cxxabiv1::__si_class_type_info 2622 __________________________________________________________ 2623 2624 9.1.11.2. Interfaces for Class __cxxabiv1::__si_class_type_info 2625 2626 An LSB conforming implementation shall provide the generic 2627 methods for Class __cxxabiv1::__si_class_type_info specified in 2628 Table 9-36, with the full mandatory functionality as described 2629 in the referenced underlying specification. 2630 2631 Table 9-36. libstdcxx - Class __cxxabiv1::__si_class_type_info 2632 Function Interfaces 2633 __cxxabiv1::__si_class_type_info::~__si_class_type_info()(CXXAB 2634 I_1.3) [CXXABI] 2635 __cxxabiv1::__si_class_type_info::~__si_class_type_info()(CXXAB 2636 I_1.3) [CXXABI] 2637 __cxxabiv1::__si_class_type_info::~__si_class_type_info()(CXXAB 2638 I_1.3) [CXXABI] 2639 __cxxabiv1::__si_class_type_info::__do_upcast(__cxxabiv1::__cla 2640 ss_type_info const*, void const*, 2641 __cxxabiv1::__class_type_info::__upcast_result&) 2642 const(CXXABI_1.3) [CXXABI] 2643 2644 An LSB conforming implementation shall provide the generic data 2645 interfaces for Class __cxxabiv1::__si_class_type_info specified 2646 in Table 9-37, with the full mandatory functionality as 2647 described in the referenced underlying specification. 2648 2649 Table 9-37. libstdcxx - Class __cxxabiv1::__si_class_type_info 2650 Data Interfaces 2651 typeinfo for __cxxabiv1::__si_class_type_info(CXXABI_1.3) 2652 [CXXABI] 2653 typeinfo name for __cxxabiv1::__si_class_type_info(CXXABI_1.3) 2654 [CXXABI] 2655 vtable for __cxxabiv1::__si_class_type_info(CXXABI_1.3) 2656 [CXXABI] 2657 __________________________________________________________ 2658 2659 9.1.12. Class __cxxabiv1::__vmi_class_type_info 2660 __________________________________________________________ 2661 2662 9.1.12.1. Class data for __cxxabiv1::__vmi_class_type_info 2663 2664 The virtual table for the __cxxabiv1::__vmi_class_type_info 2665 class is described by Table 9-38 2666 2667 Table 9-38. Primary vtable for 2668 __cxxabiv1::__vmi_class_type_info 2669 Base Offset 0 2670 Virtual Base Offset 0 2671 RTTI typeinfo for __cxxabiv1::__vmi_class_type_info 2672 vfunc[0]: 2673 __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info() 2674 vfunc[1]: 2675 __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info() 2676 vfunc[2]: type_info::__is_pointer_p() const 2677 vfunc[3]: type_info::__is_function_p() const 2678 vfunc[4]: __cxxabiv1::__class_type_info::__do_catch(type_info 2679 const*, void**, unsigned int) const 2680 vfunc[5]: 2681 __cxxabiv1::__class_type_info::__do_upcast(__cxxabiv1::__class_ 2682 type_info const*, void**) const 2683 vfunc[6]: 2684 __cxxabiv1::__vmi_class_type_info::__do_upcast(__cxxabiv1::__cl 2685 ass_type_info const*, void const*, 2686 __cxxabiv1::__class_type_info::__upcast_result&) const 2687 2688 The Run Time Type Information for the 2689 __cxxabiv1::__vmi_class_type_info class is described by Table 2690 9-39 2691 2692 Table 9-39. typeinfo for __cxxabiv1::__vmi_class_type_info 2693 Base Vtable vtable for __cxxabiv1::__si_class_type_info 2694 Name typeinfo name for __cxxabiv1::__vmi_class_type_info 2695 __________________________________________________________ 2696 2697 9.1.12.2. Interfaces for Class __cxxabiv1::__vmi_class_type_info 2698 2699 An LSB conforming implementation shall provide the generic 2700 methods for Class __cxxabiv1::__vmi_class_type_info specified 2701 in Table 9-40, with the full mandatory functionality as 2702 described in the referenced underlying specification. 2703 2704 Table 9-40. libstdcxx - Class __cxxabiv1::__vmi_class_type_info 2705 Function Interfaces 2706 __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info()(CXX 2707 ABI_1.3) [CXXABI] 2708 __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info()(CXX 2709 ABI_1.3) [CXXABI] 2710 __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info()(CXX 2711 ABI_1.3) [CXXABI] 2712 __cxxabiv1::__vmi_class_type_info::__do_upcast(__cxxabiv1::__cl 2713 ass_type_info const*, void const*, 2714 __cxxabiv1::__class_type_info::__upcast_result&) 2715 const(CXXABI_1.3) [CXXABI] 2716 2717 An LSB conforming implementation shall provide the generic data 2718 interfaces for Class __cxxabiv1::__vmi_class_type_info 2719 specified in Table 9-41, with the full mandatory functionality 2720 as described in the referenced underlying specification. 2721 2722 Table 9-41. libstdcxx - Class __cxxabiv1::__vmi_class_type_info 2723 Data Interfaces 2724 typeinfo for __cxxabiv1::__vmi_class_type_info(CXXABI_1.3) 2725 [CXXABI] 2726 typeinfo name for __cxxabiv1::__vmi_class_type_info(CXXABI_1.3) 2727 [CXXABI] 2728 vtable for __cxxabiv1::__vmi_class_type_info(CXXABI_1.3) 2729 [CXXABI] 2730 __________________________________________________________ 2731 2732 9.1.13. Class __cxxabiv1::__fundamental_type_info 2733 __________________________________________________________ 2734 2735 9.1.13.1. Class data for __cxxabiv1::__fundamental_type_info 2736 2737 The virtual table for the __cxxabiv1::__fundamental_type_info 2738 class is described by Table 9-42 2739 2740 Table 9-42. Primary vtable for 2741 __cxxabiv1::__fundamental_type_info 2742 Base Offset 0 2743 Virtual Base Offset 0 2744 RTTI typeinfo for __cxxabiv1::__fundamental_type_info 2745 vfunc[0]: 2746 __cxxabiv1::__fundamental_type_info::~__fundamental_type_info() 2747 vfunc[1]: 2748 __cxxabiv1::__fundamental_type_info::~__fundamental_type_info() 2749 vfunc[2]: type_info::__is_pointer_p() const 2750 vfunc[3]: type_info::__is_function_p() const 2751 vfunc[4]: type_info::__do_catch(type_info const*, void**, 2752 unsigned int) const 2753 vfunc[5]: type_info::__do_upcast(__cxxabiv1::__class_type_info 2754 const*, void**) const 2755 2756 The Run Time Type Information for the 2757 __cxxabiv1::__fundamental_type_info class is described by Table 2758 9-43 2759 2760 Table 9-43. typeinfo for __cxxabiv1::__fundamental_type_info 2761 Base Vtable vtable for __cxxabiv1::__si_class_type_info 2762 Name typeinfo name for __cxxabiv1::__fundamental_type_info 2763 __________________________________________________________ 2764 2765 9.1.13.2. Interfaces for Class __cxxabiv1::__fundamental_type_info 2766 2767 An LSB conforming implementation shall provide the generic 2768 methods for Class __cxxabiv1::__fundamental_type_info specified 2769 in Table 9-44, with the full mandatory functionality as 2770 described in the referenced underlying specification. 2771 2772 Table 9-44. libstdcxx - Class 2773 __cxxabiv1::__fundamental_type_info Function Interfaces 2774 __cxxabiv1::__fundamental_type_info::~__fundamental_type_info() 2775 (CXXABI_1.3) [CXXABI] 2776 __cxxabiv1::__fundamental_type_info::~__fundamental_type_info() 2777 (CXXABI_1.3) [CXXABI] 2778 __cxxabiv1::__fundamental_type_info::~__fundamental_type_info() 2779 (CXXABI_1.3) [CXXABI] 2780 2781 An LSB conforming implementation shall provide the generic data 2782 interfaces for Class __cxxabiv1::__fundamental_type_info 2783 specified in Table 9-45, with the full mandatory functionality 2784 as described in the referenced underlying specification. 2785 2786 Table 9-45. libstdcxx - Class 2787 __cxxabiv1::__fundamental_type_info Data Interfaces 2788 typeinfo for __cxxabiv1::__fundamental_type_info(CXXABI_1.3) 2789 [CXXABI] 2790 typeinfo name for 2791 __cxxabiv1::__fundamental_type_info(CXXABI_1.3) [CXXABI] 2792 vtable for __cxxabiv1::__fundamental_type_info(CXXABI_1.3) 2793 [CXXABI] 2794 __________________________________________________________ 2795 2796 9.1.14. Class __cxxabiv1::__pointer_to_member_type_info 2797 __________________________________________________________ 2798 2799 9.1.14.1. Class data for __cxxabiv1::__pointer_to_member_type_info 2800 2801 The virtual table for the 2802 __cxxabiv1::__pointer_to_member_type_info class is described by 2803 Table 9-46 2804 2805 Table 9-46. Primary vtable for 2806 __cxxabiv1::__pointer_to_member_type_info 2807 Base Offset 0 2808 Virtual Base Offset 0 2809 RTTI typeinfo for __cxxabiv1::__pointer_to_member_type_info 2810 vfunc[0]: 2811 __cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member 2812 _type_info() 2813 vfunc[1]: 2814 __cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member 2815 _type_info() 2816 vfunc[2]: type_info::__is_pointer_p() const 2817 vfunc[3]: type_info::__is_function_p() const 2818 vfunc[4]: __cxxabiv1::__pbase_type_info::__do_catch(type_info 2819 const*, void**, unsigned int) const 2820 vfunc[5]: type_info::__do_upcast(__cxxabiv1::__class_type_info 2821 const*, void**) const 2822 vfunc[6]: 2823 __cxxabiv1::__pointer_to_member_type_info::__pointer_catch(__cx 2824 xabiv1::__pbase_type_info const*, void**, unsigned int) const 2825 2826 The Run Time Type Information for the 2827 __cxxabiv1::__pointer_to_member_type_info class is described by 2828 Table 9-47 2829 2830 Table 9-47. typeinfo for 2831 __cxxabiv1::__pointer_to_member_type_info 2832 Base Vtable vtable for __cxxabiv1::__si_class_type_info 2833 Name typeinfo name for 2834 __cxxabiv1::__pointer_to_member_type_info 2835 __________________________________________________________ 2836 2837 9.1.14.2. Interfaces for Class __cxxabiv1::__pointer_to_member_type_info 2838 2839 An LSB conforming implementation shall provide the generic 2840 methods for Class __cxxabiv1::__pointer_to_member_type_info 2841 specified in Table 9-48, with the full mandatory functionality 2842 as described in the referenced underlying specification. 2843 2844 Table 9-48. libstdcxx - Class 2845 __cxxabiv1::__pointer_to_member_type_info Function Interfaces 2846 __cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member 2847 _type_info()(CXXABI_1.3) [CXXABI] 2848 __cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member 2849 _type_info()(CXXABI_1.3) [CXXABI] 2850 __cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member 2851 _type_info()(CXXABI_1.3) [CXXABI] 2852 __cxxabiv1::__pointer_to_member_type_info::__pointer_catch(__cx 2853