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