gccxml_gem 0.9-x86-cygwin

Sign up to get free protection for your applications and to get access to all the features.
Files changed (241) hide show
  1. data/Rakefile +75 -0
  2. data/bin/gccxml.exe +0 -0
  3. data/bin/gccxml_cc1plus.exe +0 -0
  4. data/gccxml.rb +50 -0
  5. data/share/doc/gccxml-0.9/Copyright.txt +55 -0
  6. data/share/doc/gccxml-0.9/gccxml.html +168 -0
  7. data/share/doc/gccxml-0.9/gccxml.txt +293 -0
  8. data/share/gccxml-0.9/Borland/5.5/Wrappers/algorithm +7 -0
  9. data/share/gccxml-0.9/Borland/5.5/Wrappers/algorithm.h +7 -0
  10. data/share/gccxml-0.9/Borland/5.5/Wrappers/bitset +7 -0
  11. data/share/gccxml-0.9/Borland/5.5/Wrappers/bitset.h +7 -0
  12. data/share/gccxml-0.9/Borland/5.5/Wrappers/cctype +1 -0
  13. data/share/gccxml-0.9/Borland/5.5/Wrappers/cfloat +1 -0
  14. data/share/gccxml-0.9/Borland/5.5/Wrappers/climits +1 -0
  15. data/share/gccxml-0.9/Borland/5.5/Wrappers/cmath +1 -0
  16. data/share/gccxml-0.9/Borland/5.5/Wrappers/complex +7 -0
  17. data/share/gccxml-0.9/Borland/5.5/Wrappers/complex.h +7 -0
  18. data/share/gccxml-0.9/Borland/5.5/Wrappers/cstddef +1 -0
  19. data/share/gccxml-0.9/Borland/5.5/Wrappers/cstdio +1 -0
  20. data/share/gccxml-0.9/Borland/5.5/Wrappers/cstdlib +1 -0
  21. data/share/gccxml-0.9/Borland/5.5/Wrappers/cstring +7 -0
  22. data/share/gccxml-0.9/Borland/5.5/Wrappers/cstring.h +7 -0
  23. data/share/gccxml-0.9/Borland/5.5/Wrappers/ctime +1 -0
  24. data/share/gccxml-0.9/Borland/5.5/Wrappers/cwchar +1 -0
  25. data/share/gccxml-0.9/Borland/5.5/Wrappers/cwctype +1 -0
  26. data/share/gccxml-0.9/Borland/5.5/Wrappers/deque +7 -0
  27. data/share/gccxml-0.9/Borland/5.5/Wrappers/deque.h +7 -0
  28. data/share/gccxml-0.9/Borland/5.5/Wrappers/exception +7 -0
  29. data/share/gccxml-0.9/Borland/5.5/Wrappers/exception.h +7 -0
  30. data/share/gccxml-0.9/Borland/5.5/Wrappers/fstream +7 -0
  31. data/share/gccxml-0.9/Borland/5.5/Wrappers/fstream.h +7 -0
  32. data/share/gccxml-0.9/Borland/5.5/Wrappers/function +7 -0
  33. data/share/gccxml-0.9/Borland/5.5/Wrappers/function.h +7 -0
  34. data/share/gccxml-0.9/Borland/5.5/Wrappers/functional +7 -0
  35. data/share/gccxml-0.9/Borland/5.5/Wrappers/gccxml_typeinfo.h +146 -0
  36. data/share/gccxml-0.9/Borland/5.5/Wrappers/iomanip +7 -0
  37. data/share/gccxml-0.9/Borland/5.5/Wrappers/iomanip.h +7 -0
  38. data/share/gccxml-0.9/Borland/5.5/Wrappers/ios +7 -0
  39. data/share/gccxml-0.9/Borland/5.5/Wrappers/ios.h +7 -0
  40. data/share/gccxml-0.9/Borland/5.5/Wrappers/iosfwd +7 -0
  41. data/share/gccxml-0.9/Borland/5.5/Wrappers/iosfwd.h +7 -0
  42. data/share/gccxml-0.9/Borland/5.5/Wrappers/iostream +7 -0
  43. data/share/gccxml-0.9/Borland/5.5/Wrappers/iostream.h +7 -0
  44. data/share/gccxml-0.9/Borland/5.5/Wrappers/istream +7 -0
  45. data/share/gccxml-0.9/Borland/5.5/Wrappers/istream.h +7 -0
  46. data/share/gccxml-0.9/Borland/5.5/Wrappers/iterator +7 -0
  47. data/share/gccxml-0.9/Borland/5.5/Wrappers/iterator.h +7 -0
  48. data/share/gccxml-0.9/Borland/5.5/Wrappers/limits +7 -0
  49. data/share/gccxml-0.9/Borland/5.5/Wrappers/limits.h +7 -0
  50. data/share/gccxml-0.9/Borland/5.5/Wrappers/list +7 -0
  51. data/share/gccxml-0.9/Borland/5.5/Wrappers/list.h +7 -0
  52. data/share/gccxml-0.9/Borland/5.5/Wrappers/locale +7 -0
  53. data/share/gccxml-0.9/Borland/5.5/Wrappers/locale.h +7 -0
  54. data/share/gccxml-0.9/Borland/5.5/Wrappers/map +7 -0
  55. data/share/gccxml-0.9/Borland/5.5/Wrappers/map.h +7 -0
  56. data/share/gccxml-0.9/Borland/5.5/Wrappers/memory +7 -0
  57. data/share/gccxml-0.9/Borland/5.5/Wrappers/memory.h +7 -0
  58. data/share/gccxml-0.9/Borland/5.5/Wrappers/new +7 -0
  59. data/share/gccxml-0.9/Borland/5.5/Wrappers/new.h +7 -0
  60. data/share/gccxml-0.9/Borland/5.5/Wrappers/numeric +7 -0
  61. data/share/gccxml-0.9/Borland/5.5/Wrappers/numeric.h +7 -0
  62. data/share/gccxml-0.9/Borland/5.5/Wrappers/ostream +7 -0
  63. data/share/gccxml-0.9/Borland/5.5/Wrappers/ostream.h +7 -0
  64. data/share/gccxml-0.9/Borland/5.5/Wrappers/queue +7 -0
  65. data/share/gccxml-0.9/Borland/5.5/Wrappers/queue.h +7 -0
  66. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/codecvt +1 -0
  67. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/collate +1 -0
  68. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/ctype +1 -0
  69. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/iosbase +1 -0
  70. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/iotraits +1 -0
  71. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/iterator +1 -0
  72. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/lochelp +1 -0
  73. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/locimpl +1 -0
  74. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/locvector +1 -0
  75. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/messages +1 -0
  76. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/money +1 -0
  77. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/numbrw +1 -0
  78. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/numeral +1 -0
  79. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/rwdispatch.h +1 -0
  80. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/rwlocale +1 -0
  81. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/rwstderr_macros.h +64 -0
  82. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/string_ref +1 -0
  83. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/time +1 -0
  84. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/traits +1 -0
  85. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/tree +1 -0
  86. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/usefacet +1 -0
  87. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/valimp +1 -0
  88. data/share/gccxml-0.9/Borland/5.5/Wrappers/rw/vendor +1 -0
  89. data/share/gccxml-0.9/Borland/5.5/Wrappers/set +7 -0
  90. data/share/gccxml-0.9/Borland/5.5/Wrappers/set.h +7 -0
  91. data/share/gccxml-0.9/Borland/5.5/Wrappers/sstream +7 -0
  92. data/share/gccxml-0.9/Borland/5.5/Wrappers/sstream.h +7 -0
  93. data/share/gccxml-0.9/Borland/5.5/Wrappers/stack +7 -0
  94. data/share/gccxml-0.9/Borland/5.5/Wrappers/stack.h +7 -0
  95. data/share/gccxml-0.9/Borland/5.5/Wrappers/stdexcept +7 -0
  96. data/share/gccxml-0.9/Borland/5.5/Wrappers/stdexcept.h +7 -0
  97. data/share/gccxml-0.9/Borland/5.5/Wrappers/streambuf +7 -0
  98. data/share/gccxml-0.9/Borland/5.5/Wrappers/streambuf.h +7 -0
  99. data/share/gccxml-0.9/Borland/5.5/Wrappers/string +7 -0
  100. data/share/gccxml-0.9/Borland/5.5/Wrappers/string.h +7 -0
  101. data/share/gccxml-0.9/Borland/5.5/Wrappers/strstream +7 -0
  102. data/share/gccxml-0.9/Borland/5.5/Wrappers/strstream.h +7 -0
  103. data/share/gccxml-0.9/Borland/5.5/Wrappers/typeinfo +7 -0
  104. data/share/gccxml-0.9/Borland/5.5/Wrappers/typeinfo.h +7 -0
  105. data/share/gccxml-0.9/Borland/5.5/Wrappers/utility +7 -0
  106. data/share/gccxml-0.9/Borland/5.5/Wrappers/utility.h +7 -0
  107. data/share/gccxml-0.9/Borland/5.5/Wrappers/valarray +7 -0
  108. data/share/gccxml-0.9/Borland/5.5/Wrappers/valarray.h +7 -0
  109. data/share/gccxml-0.9/Borland/5.5/Wrappers/vector +7 -0
  110. data/share/gccxml-0.9/Borland/5.5/Wrappers/vector.h +7 -0
  111. data/share/gccxml-0.9/Borland/5.5/except.h +154 -0
  112. data/share/gccxml-0.9/Borland/5.5/gccxml_fstream.h +431 -0
  113. data/share/gccxml-0.9/Borland/5.5/gccxml_new.h +166 -0
  114. data/share/gccxml-0.9/Borland/5.5/gccxml_valarray.h +786 -0
  115. data/share/gccxml-0.9/Borland/5.5/gccxml_vector.h +1457 -0
  116. data/share/gccxml-0.9/Borland/5.5/io.h +352 -0
  117. data/share/gccxml-0.9/Borland/5.5/oaidl.h +7006 -0
  118. data/share/gccxml-0.9/Borland/5.5/propidl.h +1477 -0
  119. data/share/gccxml-0.9/Borland/5.5/rw/locimpl.h +477 -0
  120. data/share/gccxml-0.9/Borland/5.5/rw/rwlocale.h +619 -0
  121. data/share/gccxml-0.9/Borland/5.5/stdarg.h +55 -0
  122. data/share/gccxml-0.9/Borland/5.5/valarray.cc +2883 -0
  123. data/share/gccxml-0.9/GCC/2.95/algorithm +76 -0
  124. data/share/gccxml-0.9/GCC/2.95/bitset +17 -0
  125. data/share/gccxml-0.9/GCC/2.95/cctype +24 -0
  126. data/share/gccxml-0.9/GCC/2.95/clocale +14 -0
  127. data/share/gccxml-0.9/GCC/2.95/cmath +33 -0
  128. data/share/gccxml-0.9/GCC/2.95/complex +38 -0
  129. data/share/gccxml-0.9/GCC/2.95/csetjmp +13 -0
  130. data/share/gccxml-0.9/GCC/2.95/csignal +14 -0
  131. data/share/gccxml-0.9/GCC/2.95/cstdarg +12 -0
  132. data/share/gccxml-0.9/GCC/2.95/cstddef +13 -0
  133. data/share/gccxml-0.9/GCC/2.95/cstdio +55 -0
  134. data/share/gccxml-0.9/GCC/2.95/cstdlib +66 -0
  135. data/share/gccxml-0.9/GCC/2.95/cstring +34 -0
  136. data/share/gccxml-0.9/GCC/2.95/ctime +24 -0
  137. data/share/gccxml-0.9/GCC/2.95/cwchar +65 -0
  138. data/share/gccxml-0.9/GCC/2.95/cwctype +31 -0
  139. data/share/gccxml-0.9/GCC/2.95/deque +19 -0
  140. data/share/gccxml-0.9/GCC/2.95/exception +20 -0
  141. data/share/gccxml-0.9/GCC/2.95/fstream +23 -0
  142. data/share/gccxml-0.9/GCC/2.95/functional +64 -0
  143. data/share/gccxml-0.9/GCC/2.95/gccxml_bitset +1066 -0
  144. data/share/gccxml-0.9/GCC/2.95/iomanip +20 -0
  145. data/share/gccxml-0.9/GCC/2.95/iosfwd +20 -0
  146. data/share/gccxml-0.9/GCC/2.95/iostream +27 -0
  147. data/share/gccxml-0.9/GCC/2.95/iterator +39 -0
  148. data/share/gccxml-0.9/GCC/2.95/list +19 -0
  149. data/share/gccxml-0.9/GCC/2.95/map +20 -0
  150. data/share/gccxml-0.9/GCC/2.95/memory +21 -0
  151. data/share/gccxml-0.9/GCC/2.95/new +13 -0
  152. data/share/gccxml-0.9/GCC/2.95/numeric +15 -0
  153. data/share/gccxml-0.9/GCC/2.95/pthread.h +16 -0
  154. data/share/gccxml-0.9/GCC/2.95/queue +20 -0
  155. data/share/gccxml-0.9/GCC/2.95/set +20 -0
  156. data/share/gccxml-0.9/GCC/2.95/sstream +24 -0
  157. data/share/gccxml-0.9/GCC/2.95/stack +19 -0
  158. data/share/gccxml-0.9/GCC/2.95/std/bastring.cc +524 -0
  159. data/share/gccxml-0.9/GCC/2.95/std/complext.h +397 -0
  160. data/share/gccxml-0.9/GCC/2.95/std/dcomplex.h +92 -0
  161. data/share/gccxml-0.9/GCC/2.95/std/fcomplex.h +88 -0
  162. data/share/gccxml-0.9/GCC/2.95/std/gslice_array.h +170 -0
  163. data/share/gccxml-0.9/GCC/2.95/std/indirect_array.h +157 -0
  164. data/share/gccxml-0.9/GCC/2.95/std/ldcomplex.h +96 -0
  165. data/share/gccxml-0.9/GCC/2.95/std/mask_array.h +154 -0
  166. data/share/gccxml-0.9/GCC/2.95/std/slice_array.h +156 -0
  167. data/share/gccxml-0.9/GCC/2.95/std/std_valarray.h +728 -0
  168. data/share/gccxml-0.9/GCC/2.95/std/straits.h +162 -0
  169. data/share/gccxml-0.9/GCC/2.95/std/valarray_meta.h +1035 -0
  170. data/share/gccxml-0.9/GCC/2.95/stdexcept +17 -0
  171. data/share/gccxml-0.9/GCC/2.95/stl_alloc.h +1057 -0
  172. data/share/gccxml-0.9/GCC/2.95/stl_bvector.h +836 -0
  173. data/share/gccxml-0.9/GCC/2.95/stl_deque.h +1699 -0
  174. data/share/gccxml-0.9/GCC/2.95/stl_list.h +843 -0
  175. data/share/gccxml-0.9/GCC/2.95/stl_tree.h +1331 -0
  176. data/share/gccxml-0.9/GCC/2.95/stl_vector.h +828 -0
  177. data/share/gccxml-0.9/GCC/2.95/string +26 -0
  178. data/share/gccxml-0.9/GCC/2.95/strstream +23 -0
  179. data/share/gccxml-0.9/GCC/2.95/typeinfo +11 -0
  180. data/share/gccxml-0.9/GCC/2.95/utility +25 -0
  181. data/share/gccxml-0.9/GCC/2.95/valarray +52 -0
  182. data/share/gccxml-0.9/GCC/2.95/vector +19 -0
  183. data/share/gccxml-0.9/GCC/2.96/sstream +305 -0
  184. data/share/gccxml-0.9/GCC/3.0/pthread.h +16 -0
  185. data/share/gccxml-0.9/GCC/3.1/pthread.h +16 -0
  186. data/share/gccxml-0.9/GCC/3.2/bits/fstream.tcc +500 -0
  187. data/share/gccxml-0.9/GCC/3.2/bits/istream.tcc +1207 -0
  188. data/share/gccxml-0.9/GCC/3.2/bits/locale_facets.h +1810 -0
  189. data/share/gccxml-0.9/GCC/3.2/bits/locale_facets.tcc +2397 -0
  190. data/share/gccxml-0.9/GCC/3.2/bits/messages_members.h +108 -0
  191. data/share/gccxml-0.9/GCC/3.2/bits/ostream.tcc +713 -0
  192. data/share/gccxml-0.9/GCC/3.2/bits/sstream.tcc +241 -0
  193. data/share/gccxml-0.9/GCC/3.2/bits/stl_deque.h +1682 -0
  194. data/share/gccxml-0.9/GCC/3.2/bits/stl_list.h +989 -0
  195. data/share/gccxml-0.9/GCC/3.2/bits/stl_tree.h +1462 -0
  196. data/share/gccxml-0.9/GCC/3.2/bits/stl_vector.h +1085 -0
  197. data/share/gccxml-0.9/GCC/3.2/bits/valarray_meta.h +1063 -0
  198. data/share/gccxml-0.9/GCC/3.2/fstream +579 -0
  199. data/share/gccxml-0.9/GCC/3.2/pthread.h +16 -0
  200. data/share/gccxml-0.9/GCC/3.2/sstream +384 -0
  201. data/share/gccxml-0.9/GCC/3.3/bits/fstream.tcc +530 -0
  202. data/share/gccxml-0.9/GCC/3.3/bits/list.tcc +378 -0
  203. data/share/gccxml-0.9/GCC/3.3/bits/locale_facets.h +2050 -0
  204. data/share/gccxml-0.9/GCC/3.3/bits/messages_members.h +108 -0
  205. data/share/gccxml-0.9/GCC/3.3/bits/sstream.tcc +243 -0
  206. data/share/gccxml-0.9/GCC/3.3/bits/stl_deque.h +1603 -0
  207. data/share/gccxml-0.9/GCC/3.3/bits/stl_list.h +1167 -0
  208. data/share/gccxml-0.9/GCC/3.3/bits/stl_tree.h +1462 -0
  209. data/share/gccxml-0.9/GCC/3.3/bits/stl_vector.h +992 -0
  210. data/share/gccxml-0.9/GCC/3.3/bits/valarray_meta.h +1135 -0
  211. data/share/gccxml-0.9/GCC/3.3/fstream +842 -0
  212. data/share/gccxml-0.9/GCC/3.3/gccxml_builtins.h +22 -0
  213. data/share/gccxml-0.9/GCC/3.3/sstream +638 -0
  214. data/share/gccxml-0.9/GCC/3.4/gccxml_builtins.h +91 -0
  215. data/share/gccxml-0.9/GCC/4.0/gccxml_builtins.h +128 -0
  216. data/share/gccxml-0.9/GCC/4.1/bits/gthr-default.h +618 -0
  217. data/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h +131 -0
  218. data/share/gccxml-0.9/GCC/4.2/gccxml_builtins.h +131 -0
  219. data/share/gccxml-0.9/GCC/find_flags +105 -0
  220. data/share/gccxml-0.9/Intel/find_flags +56 -0
  221. data/share/gccxml-0.9/Intel/pthread.h +16 -0
  222. data/share/gccxml-0.9/MIPSpro/7.3/exception +9 -0
  223. data/share/gccxml-0.9/MIPSpro/7.3/gccxml_mpro_internals.h +21 -0
  224. data/share/gccxml-0.9/MIPSpro/7.3/iomanip +161 -0
  225. data/share/gccxml-0.9/MIPSpro/7.3/ostream +9 -0
  226. data/share/gccxml-0.9/MIPSpro/7.3/stddef.h +9 -0
  227. data/share/gccxml-0.9/MIPSpro/7.3/stl_config.h +9 -0
  228. data/share/gccxml-0.9/MIPSpro/7.3/stl_locale.h +17 -0
  229. data/share/gccxml-0.9/MIPSpro/7.3/stl_monetary.h +14 -0
  230. data/share/gccxml-0.9/MIPSpro/7.3/stl_numeric_facets.h +13 -0
  231. data/share/gccxml-0.9/MIPSpro/7.3/stl_threads.h +11 -0
  232. data/share/gccxml-0.9/MIPSpro/7.3/string +18 -0
  233. data/share/gccxml-0.9/MIPSpro/find_flags +137 -0
  234. data/share/gccxml-0.9/Sun/5.8/adaptation.patch +168 -0
  235. data/share/gccxml-0.9/Sun/README +8 -0
  236. data/share/gccxml-0.9/Sun/adapt_headers.sh +24 -0
  237. data/share/gccxml-0.9/Sun/find_flags +69 -0
  238. data/share/gccxml-0.9/gccxml_config +2 -0
  239. data/share/gccxml-0.9/gccxml_find_flags +93 -0
  240. data/share/man/man1/gccxml.1 +246 -0
  241. metadata +324 -0
@@ -0,0 +1,579 @@
1
+ // File based streams -*- C++ -*-
2
+
3
+ // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
4
+ // Free Software Foundation, Inc.
5
+ //
6
+ // This file is part of the GNU ISO C++ Library. This library is free
7
+ // software; you can redistribute it and/or modify it under the
8
+ // terms of the GNU General Public License as published by the
9
+ // Free Software Foundation; either version 2, or (at your option)
10
+ // any later version.
11
+
12
+ // This library is distributed in the hope that it will be useful,
13
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ // GNU General Public License for more details.
16
+
17
+ // You should have received a copy of the GNU General Public License along
18
+ // with this library; see the file COPYING. If not, write to the Free
19
+ // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
20
+ // USA.
21
+
22
+ // As a special exception, you may use this file as part of a free software
23
+ // library without restriction. Specifically, if other files instantiate
24
+ // templates or use macros or inline functions from this file, or you compile
25
+ // this file and link it with other files to produce an executable, this
26
+ // file does not by itself cause the resulting executable to be covered by
27
+ // the GNU General Public License. This exception does not however
28
+ // invalidate any other reasons why the executable file might be covered by
29
+ // the GNU General Public License.
30
+
31
+ //
32
+ // ISO C++ 14882: 27.8 File-based streams
33
+ //
34
+
35
+ /** @file fstream
36
+ * This is a Standard C++ Library header. You should @c #include this header
37
+ * in your programs, rather than any of the "st[dl]_*.h" implementation files.
38
+ */
39
+
40
+ #ifndef _CPP_FSTREAM
41
+ #define _CPP_FSTREAM 1
42
+
43
+ #pragma GCC system_header
44
+
45
+ #include <istream>
46
+ #include <ostream>
47
+ #include <locale> // For codecvt
48
+ #include <bits/basic_file.h>
49
+ #include <bits/gthr.h>
50
+
51
+ namespace std
52
+ {
53
+ template<typename _CharT, typename _Traits>
54
+ class basic_filebuf : public basic_streambuf<_CharT, _Traits>
55
+ {
56
+ public:
57
+ // Types:
58
+ typedef _CharT char_type;
59
+ typedef _Traits traits_type;
60
+ typedef typename traits_type::int_type int_type;
61
+ typedef typename traits_type::pos_type pos_type;
62
+ typedef typename traits_type::off_type off_type;
63
+
64
+ // Non-standard Types:
65
+ typedef basic_streambuf<char_type, traits_type> __streambuf_type;
66
+ typedef basic_filebuf<char_type, traits_type> __filebuf_type;
67
+ typedef __basic_file<char> __file_type;
68
+ typedef typename traits_type::state_type __state_type;
69
+ typedef codecvt<char_type, char, __state_type> __codecvt_type;
70
+ typedef typename __codecvt_type::result __res_type;
71
+ typedef ctype<char_type> __ctype_type;
72
+
73
+ friend class ios_base; // For sync_with_stdio.
74
+
75
+ protected:
76
+ // Data Members:
77
+ // MT lock inherited from libio or other low-level io library.
78
+ __c_lock _M_lock;
79
+
80
+ // External buffer.
81
+ __file_type _M_file;
82
+
83
+ // Current and beginning state type for codecvt.
84
+ __state_type _M_state_cur;
85
+ __state_type _M_state_beg;
86
+
87
+ // Set iff _M_buf is allocated memory from _M_allocate_internal_buffer.
88
+ bool _M_buf_allocated;
89
+
90
+ // XXX Needed?
91
+ bool _M_last_overflowed;
92
+
93
+ // The position in the buffer corresponding to the external file
94
+ // pointer.
95
+ char_type* _M_filepos;
96
+
97
+ public:
98
+ // Constructors/destructor:
99
+ basic_filebuf();
100
+
101
+ virtual
102
+ ~basic_filebuf()
103
+ {
104
+ this->close();
105
+ _M_last_overflowed = false;
106
+ }
107
+
108
+ // Members:
109
+ bool
110
+ is_open() const { return _M_file.is_open(); }
111
+
112
+ __filebuf_type*
113
+ open(const char* __s, ios_base::openmode __mode);
114
+
115
+ __filebuf_type*
116
+ close();
117
+
118
+ protected:
119
+ void
120
+ _M_allocate_internal_buffer();
121
+
122
+ void
123
+ _M_destroy_internal_buffer();
124
+
125
+ // Overridden virtual functions:
126
+ virtual streamsize
127
+ showmanyc();
128
+
129
+ // Stroustrup, 1998, p. 628
130
+ // underflow() and uflow() functions are called to get the next
131
+ // charater from the real input source when the buffer is empty.
132
+ // Buffered input uses underflow()
133
+
134
+ // The only difference between underflow() and uflow() is that the
135
+ // latter bumps _M_in_cur after the read. In the sync_with_stdio
136
+ // case, this is important, as we need to unget the read character in
137
+ // the underflow() case in order to maintain synchronization. So
138
+ // instead of calling underflow() from uflow(), we create a common
139
+ // subroutine to do the real work.
140
+ int_type
141
+ _M_underflow_common(bool __bump);
142
+
143
+ virtual int_type
144
+ underflow();
145
+
146
+ virtual int_type
147
+ uflow();
148
+
149
+ virtual int_type
150
+ pbackfail(int_type __c = _Traits::eof());
151
+
152
+ // NB: For what the standard expects of the overflow function,
153
+ // see _M_really_overflow(), below. Because basic_streambuf's
154
+ // sputc/sputn call overflow directly, and the complications of
155
+ // this implementation's setting of the initial pointers all
156
+ // equal to _M_buf when initializing, it seems essential to have
157
+ // this in actuality be a helper function that checks for the
158
+ // eccentricities of this implementation, and then call
159
+ // overflow() if indeed the buffer is full.
160
+ virtual int_type
161
+ overflow(int_type __c = _Traits::eof());
162
+
163
+ // Stroustrup, 1998, p 648
164
+ // The overflow() function is called to transfer characters to the
165
+ // real output destination when the buffer is full. A call to
166
+ // overflow(c) outputs the contents of the buffer plus the
167
+ // character c.
168
+ // 27.5.2.4.5
169
+ // Consume some sequence of the characters in the pending sequence.
170
+ int_type
171
+ _M_really_overflow(int_type __c = _Traits::eof());
172
+
173
+ // Convert internal byte sequence to external, char-based
174
+ // sequence via codecvt.
175
+ void
176
+ _M_convert_to_external(char_type*, streamsize, streamsize&, streamsize&);
177
+
178
+ virtual __streambuf_type*
179
+ setbuf(char_type* __s, streamsize __n);
180
+
181
+ virtual pos_type
182
+ seekoff(off_type __off, ios_base::seekdir __way,
183
+ ios_base::openmode __mode = ios_base::in | ios_base::out);
184
+
185
+ virtual pos_type
186
+ seekpos(pos_type __pos,
187
+ ios_base::openmode __mode = ios_base::in | ios_base::out);
188
+
189
+ virtual int
190
+ sync()
191
+ {
192
+ bool __testput = this->_M_out_cur && this->_M_out_beg < this->_M_out_end;
193
+
194
+ // Make sure that the internal buffer resyncs its idea of
195
+ // the file position with the external file.
196
+ if (__testput)
197
+ {
198
+ // Need to restore current position after the write.
199
+ off_type __off = this->_M_out_cur - this->_M_out_end;
200
+ _M_really_overflow(); // _M_file.sync() will be called within
201
+ if (__off)
202
+ _M_file.seekoff(__off, ios_base::cur);
203
+ }
204
+ else
205
+ _M_file.sync();
206
+ _M_last_overflowed = false;
207
+ return 0;
208
+ }
209
+
210
+ virtual void
211
+ imbue(const locale& __loc);
212
+
213
+ virtual streamsize
214
+ xsgetn(char_type* __s, streamsize __n)
215
+ {
216
+ streamsize __ret = 0;
217
+ // Clear out pback buffer before going on to the real deal...
218
+ if (this->_M_pback_init)
219
+ {
220
+ while (__ret < __n && this->_M_in_cur < this->_M_in_end)
221
+ {
222
+ *__s = *this->_M_in_cur;
223
+ ++__ret;
224
+ ++__s;
225
+ ++this->_M_in_cur;
226
+ }
227
+ this->_M_pback_destroy();
228
+ }
229
+ if (__ret < __n)
230
+ __ret += __streambuf_type::xsgetn(__s, __n - __ret);
231
+ return __ret;
232
+ }
233
+
234
+ virtual streamsize
235
+ xsputn(const char_type* __s, streamsize __n)
236
+ {
237
+ this->_M_pback_destroy();
238
+ return __streambuf_type::xsputn(__s, __n);
239
+ }
240
+
241
+ void
242
+ _M_output_unshift();
243
+
244
+ // These three functions are used to clarify internal buffer
245
+ // maintenance. After an overflow, or after a seekoff call that
246
+ // started at beg or end, or possibly when the stream becomes
247
+ // unbuffered, and a myrid other obscure corner cases, the
248
+ // internal buffer does not truly reflect the contents of the
249
+ // external buffer. At this point, for whatever reason, it is in
250
+ // an indeterminate state.
251
+ void
252
+ _M_set_indeterminate(void)
253
+ {
254
+ if (this->_M_mode & ios_base::in)
255
+ this->setg(this->_M_buf, this->_M_buf, this->_M_buf);
256
+ if (this->_M_mode & ios_base::out)
257
+ this->setp(this->_M_buf, this->_M_buf);
258
+ this->_M_filepos = this->_M_buf;
259
+ }
260
+
261
+ void
262
+ _M_set_determinate(off_type __off)
263
+ {
264
+ bool __testin = this->_M_mode & ios_base::in;
265
+ bool __testout = this->_M_mode & ios_base::out;
266
+ if (__testin)
267
+ this->setg(this->_M_buf, this->_M_buf, this->_M_buf + __off);
268
+ if (__testout)
269
+ this->setp(this->_M_buf, this->_M_buf + __off);
270
+ this->_M_filepos = this->_M_buf + __off;
271
+ }
272
+
273
+ bool
274
+ _M_is_indeterminate(void)
275
+ {
276
+ bool __ret = false;
277
+ // Don't return true if unbuffered.
278
+ if (this->_M_buf)
279
+ {
280
+ if (this->_M_mode & ios_base::in)
281
+ __ret = this->_M_in_beg == this->_M_in_cur && this->_M_in_cur == this->_M_in_end;
282
+ if (this->_M_mode & ios_base::out)
283
+ __ret = this->_M_out_beg == this->_M_out_cur && this->_M_out_cur == this->_M_out_end;
284
+ }
285
+ return __ret;
286
+ }
287
+ };
288
+
289
+ // Explicit specializations.
290
+ template<>
291
+ basic_filebuf<char>::int_type
292
+ basic_filebuf<char>::_M_underflow_common(bool __bump);
293
+
294
+ #ifdef _GLIBCPP_USE_WCHAR_T
295
+ template<>
296
+ basic_filebuf<wchar_t>::int_type
297
+ basic_filebuf<wchar_t>::_M_underflow_common(bool __bump);
298
+ #endif
299
+
300
+ // Generic definitions.
301
+ template <typename _CharT, typename _Traits>
302
+ typename basic_filebuf<_CharT, _Traits>::int_type
303
+ basic_filebuf<_CharT, _Traits>::underflow()
304
+ { return _M_underflow_common(false); }
305
+
306
+ template <typename _CharT, typename _Traits>
307
+ typename basic_filebuf<_CharT, _Traits>::int_type
308
+ basic_filebuf<_CharT, _Traits>::uflow()
309
+ { return _M_underflow_common(true); }
310
+
311
+
312
+ // 27.8.1.5 Template class basic_ifstream
313
+ /**
314
+ * Derivation of general input streams, specific to files.
315
+ */
316
+ template<typename _CharT, typename _Traits>
317
+ class basic_ifstream : public basic_istream<_CharT, _Traits>
318
+ {
319
+ public:
320
+ // Types:
321
+ typedef _CharT char_type;
322
+ typedef _Traits traits_type;
323
+ typedef typename traits_type::int_type int_type;
324
+ typedef typename traits_type::pos_type pos_type;
325
+ typedef typename traits_type::off_type off_type;
326
+
327
+ // Non-standard types:
328
+ typedef basic_filebuf<char_type, traits_type> __filebuf_type;
329
+ typedef basic_istream<char_type, traits_type> __istream_type;
330
+
331
+ private:
332
+ __filebuf_type _M_filebuf;
333
+
334
+ public:
335
+ // Constructors/Destructors:
336
+ /** Default constructor. Create an input file stream. */
337
+ basic_ifstream()
338
+ : __istream_type(NULL), _M_filebuf()
339
+ { this->init(&_M_filebuf); }
340
+
341
+ /**
342
+ * @brief Create an input file stream.
343
+ * @param s Null terminated string specifying filename.
344
+ * @param mode Open file in specified mode (see std::ios_base).
345
+ *
346
+ * Tip: When using std::string to hold the filename, you must use
347
+ * .c_str() before passing it to this constructor.
348
+ */
349
+ explicit
350
+ basic_ifstream(const char* __s, ios_base::openmode __mode = ios_base::in)
351
+ : __istream_type(NULL), _M_filebuf()
352
+ {
353
+ this->init(&_M_filebuf);
354
+ this->open(__s, __mode);
355
+ }
356
+
357
+ ~basic_ifstream()
358
+ { }
359
+
360
+ // Members:
361
+ /**
362
+ * @brief Get a pointer to the file stream's buffer.
363
+ * @return Pointer to basic_filebuf.
364
+ */
365
+ __filebuf_type*
366
+ rdbuf() const
367
+ { return const_cast<__filebuf_type*>(&_M_filebuf); }
368
+
369
+ bool
370
+ is_open() { return _M_filebuf.is_open(); }
371
+
372
+ void
373
+ open(const char* __s, ios_base::openmode __mode = ios_base::in)
374
+ {
375
+ if (!_M_filebuf.open(__s, __mode | ios_base::in))
376
+ this->setstate(ios_base::failbit);
377
+ }
378
+
379
+ /** Close the file. */
380
+ void
381
+ close()
382
+ {
383
+ if (!_M_filebuf.close())
384
+ this->setstate(ios_base::failbit);
385
+ }
386
+ };
387
+
388
+
389
+ // 27.8.1.8 Template class basic_ofstream
390
+ /**
391
+ * Derivation of general output streams, specific to files.
392
+ */
393
+ template<typename _CharT, typename _Traits>
394
+ class basic_ofstream : public basic_ostream<_CharT,_Traits>
395
+ {
396
+ public:
397
+ // Types:
398
+ typedef _CharT char_type;
399
+ typedef _Traits traits_type;
400
+ typedef typename traits_type::int_type int_type;
401
+ typedef typename traits_type::pos_type pos_type;
402
+ typedef typename traits_type::off_type off_type;
403
+
404
+ // Non-standard types:
405
+ typedef basic_filebuf<char_type, traits_type> __filebuf_type;
406
+ typedef basic_ostream<char_type, traits_type> __ostream_type;
407
+
408
+ private:
409
+ __filebuf_type _M_filebuf;
410
+
411
+ public:
412
+ // Constructors:
413
+ /** Default constructor for output file_stream. */
414
+ basic_ofstream()
415
+ : __ostream_type(NULL), _M_filebuf()
416
+ { this->init(&_M_filebuf); }
417
+
418
+ /**
419
+ * @brief Create an output stream.
420
+ * @param s Null terminated string specifying filename.
421
+ * @param mode Open file in specified mode (see std::ios_base).
422
+ *
423
+ * Tip: When using std::string to hold the filename, you must use
424
+ * .c_str() before passing it to this constructor.
425
+ */
426
+ explicit
427
+ basic_ofstream(const char* __s,
428
+ ios_base::openmode __mode = ios_base::out|ios_base::trunc)
429
+ : __ostream_type(NULL), _M_filebuf()
430
+ {
431
+ this->init(&_M_filebuf);
432
+ this->open(__s, __mode);
433
+ }
434
+
435
+ ~basic_ofstream()
436
+ { }
437
+
438
+ // Members:
439
+ /**
440
+ * @brief Get a pointer to the file stream's buffer.
441
+ * @return Pointer to basic_filebuf.
442
+ */
443
+ __filebuf_type*
444
+ rdbuf() const
445
+ { return const_cast<__filebuf_type*>(&_M_filebuf); }
446
+
447
+ /**
448
+ * @brief Query to see if file stream is open.
449
+ * @return True if stream is open.
450
+ */
451
+ bool
452
+ is_open() { return _M_filebuf.is_open(); }
453
+
454
+ /**
455
+ * @brief Specify a file to open for output.
456
+ * @param s Null terminated string specifying filename.
457
+ * @param mode Mode in which to open file (see std::ios_base).
458
+ *
459
+ * Tip: When using std::string to hold the filename, you must use
460
+ * .c_str() before passing it to this constructor.
461
+ */
462
+ void
463
+ open(const char* __s,
464
+ ios_base::openmode __mode = ios_base::out | ios_base::trunc)
465
+ {
466
+ if (!_M_filebuf.open(__s, __mode | ios_base::out))
467
+ this->setstate(ios_base::failbit);
468
+ }
469
+
470
+ /** Close the file stream. */
471
+ void
472
+ close()
473
+ {
474
+ if (!_M_filebuf.close())
475
+ this->setstate(ios_base::failbit);
476
+ }
477
+ };
478
+
479
+
480
+ // 27.8.1.11 Template class basic_fstream
481
+ /**
482
+ * Derivation of general input/output streams, specific to files.
483
+ */
484
+ template<typename _CharT, typename _Traits>
485
+ class basic_fstream : public basic_iostream<_CharT, _Traits>
486
+ {
487
+ public:
488
+ // Types:
489
+ typedef _CharT char_type;
490
+ typedef _Traits traits_type;
491
+ typedef typename traits_type::int_type int_type;
492
+ typedef typename traits_type::pos_type pos_type;
493
+ typedef typename traits_type::off_type off_type;
494
+
495
+ // Non-standard types:
496
+ typedef basic_filebuf<char_type, traits_type> __filebuf_type;
497
+ typedef basic_ios<char_type, traits_type> __ios_type;
498
+ typedef basic_iostream<char_type, traits_type> __iostream_type;
499
+
500
+ private:
501
+ __filebuf_type _M_filebuf;
502
+
503
+ public:
504
+ // Constructors/destructor:
505
+ /** Default constructor. Create a file stream. */
506
+ basic_fstream()
507
+ : __iostream_type(NULL), _M_filebuf()
508
+ { this->init(&_M_filebuf); }
509
+
510
+ /**
511
+ * @brief Create an input/output stream.
512
+ * @param s Null terminated string specifying filename.
513
+ * @param mode Open file in specified mode (see std::ios_base).
514
+ *
515
+ * Tip: When using std::string to hold the filename, you must use
516
+ * .c_str() before passing it to this constructor.
517
+ */
518
+ explicit
519
+ basic_fstream(const char* __s,
520
+ ios_base::openmode __mode = ios_base::in | ios_base::out)
521
+ : __iostream_type(NULL), _M_filebuf()
522
+ {
523
+ this->init(&_M_filebuf);
524
+ this->open(__s, __mode);
525
+ }
526
+
527
+ ~basic_fstream()
528
+ { }
529
+
530
+ // Members:
531
+ /**
532
+ * @brief Get a pointer to the file stream's buffer.
533
+ * @return Pointer to basic_filebuf.
534
+ */
535
+ __filebuf_type*
536
+ rdbuf() const
537
+ { return const_cast<__filebuf_type*>(&_M_filebuf); }
538
+
539
+ /**
540
+ * @brief Query to see if file stream is open.
541
+ * @return True if stream is open.
542
+ */
543
+ bool
544
+ is_open() { return _M_filebuf.is_open(); }
545
+
546
+ /**
547
+ * @brief Specify a file to open for input and/or output.
548
+ * @param s Null terminated string specifying filename.
549
+ * @param mode Mode in which to open file (see std::ios_base).
550
+ *
551
+ * Tip: When using std::string to hold the filename, you must use
552
+ * .c_str() before passing it to this constructor.
553
+ */
554
+ void
555
+ open(const char* __s,
556
+ ios_base::openmode __mode = ios_base::in | ios_base::out)
557
+ {
558
+ if (!_M_filebuf.open(__s, __mode))
559
+ this->setstate(ios_base::failbit);
560
+ }
561
+
562
+ /** Close the file stream. */
563
+ void
564
+ close()
565
+ {
566
+ if (!_M_filebuf.close())
567
+ this->setstate(ios_base::failbit);
568
+ }
569
+ };
570
+ } // namespace std
571
+
572
+ #ifdef _GLIBCPP_NO_TEMPLATE_EXPORT
573
+ # define export
574
+ #endif
575
+ #ifdef _GLIBCPP_FULLY_COMPLIANT_HEADERS
576
+ # include <bits/fstream.tcc>
577
+ #endif
578
+
579
+ #endif
@@ -0,0 +1,16 @@
1
+ #ifndef GCCXML_PTHREAD_H
2
+ #define GCCXML_PTHREAD_H
3
+
4
+ /* Some pthread.h files use __thread, which is a keyword for GCC 3.3.
5
+ Change the name for the duration of including pthread.h. */
6
+ #ifndef __thread
7
+ # define __thread gccxml__thread
8
+ # define gccxml__thread gccxml__thread
9
+ #endif
10
+ #include_next <pthread.h>
11
+ #ifdef gccxml__thread
12
+ # undef gccxml__thread
13
+ # undef __thread
14
+ #endif
15
+
16
+ #endif