passenger 1.0.5 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of passenger might be problematic. Click here for more details.

Files changed (2123) hide show
  1. data/DEVELOPERS.TXT +33 -2
  2. data/INSTALL +4 -2
  3. data/LICENSE +11 -10
  4. data/README +23 -4
  5. data/Rakefile +179 -54
  6. data/benchmark/ApplicationPool.cpp +52 -0
  7. data/bin/passenger-config +18 -0
  8. data/bin/passenger-install-apache2-module +79 -14
  9. data/bin/passenger-make-enterprisey +14 -2
  10. data/bin/passenger-memory-stats +25 -2
  11. data/bin/passenger-spawn-server +20 -5
  12. data/bin/passenger-status +96 -0
  13. data/bin/passenger-stress-test +339 -0
  14. data/debian/compat +1 -0
  15. data/debian/control +21 -0
  16. data/debian/postinst +24 -0
  17. data/debian/prerm +2 -0
  18. data/doc/ApplicationPool algorithm.txt +66 -32
  19. data/doc/Architectural overview.html +1 -1
  20. data/doc/Security of user switching support.html +1 -1
  21. data/doc/Users guide.html +867 -243
  22. data/doc/Users guide.txt +830 -191
  23. data/doc/cxxapi/ApplicationPoolServer_8h-source.html +655 -524
  24. data/doc/cxxapi/ApplicationPool_8h-source.html +196 -173
  25. data/doc/cxxapi/Application_8h-source.html +430 -384
  26. data/doc/cxxapi/Configuration_8h-source.html +167 -132
  27. data/doc/cxxapi/DummySpawnManager_8h-source.html +110 -105
  28. data/doc/cxxapi/Exceptions_8h-source.html +229 -173
  29. data/doc/cxxapi/Hooks_8h-source.html +49 -44
  30. data/doc/cxxapi/Logging_8h-source.html +121 -88
  31. data/doc/cxxapi/MessageChannel_8h-source.html +501 -482
  32. data/doc/cxxapi/SpawnManager_8h-source.html +559 -518
  33. data/doc/cxxapi/StandardApplicationPool_8h-source.html +696 -537
  34. data/doc/cxxapi/System_8h-source.html +251 -0
  35. data/doc/cxxapi/Utils_8h-source.html +270 -163
  36. data/doc/cxxapi/annotated.html +40 -24
  37. data/doc/cxxapi/classClient-members.html +22 -17
  38. data/doc/cxxapi/classClient.html +22 -17
  39. data/doc/cxxapi/classDirectoryMapper-members.html +38 -0
  40. data/doc/cxxapi/classDirectoryMapper.html +203 -0
  41. data/doc/cxxapi/classHooks-members.html +33 -0
  42. data/doc/cxxapi/classHooks.html +43 -0
  43. data/doc/cxxapi/classPassenger_1_1Application-members.html +22 -17
  44. data/doc/cxxapi/classPassenger_1_1Application.html +38 -33
  45. data/doc/cxxapi/classPassenger_1_1ApplicationPool-members.html +24 -18
  46. data/doc/cxxapi/classPassenger_1_1ApplicationPool.html +94 -35
  47. data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer-members.html +23 -18
  48. data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer.html +53 -44
  49. data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.map +1 -1
  50. data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.md5 +1 -1
  51. data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.png +0 -0
  52. data/doc/cxxapi/classPassenger_1_1Application_1_1Session-members.html +28 -21
  53. data/doc/cxxapi/classPassenger_1_1Application_1_1Session.html +91 -56
  54. data/doc/cxxapi/classPassenger_1_1BusyException-members.html +33 -0
  55. data/doc/cxxapi/classPassenger_1_1BusyException.html +47 -0
  56. data/doc/cxxapi/classPassenger_1_1ConfigurationException-members.html +22 -17
  57. data/doc/cxxapi/classPassenger_1_1ConfigurationException.html +25 -22
  58. data/doc/cxxapi/classPassenger_1_1DummySpawnManager-members.html +22 -17
  59. data/doc/cxxapi/classPassenger_1_1DummySpawnManager.html +27 -22
  60. data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +22 -17
  61. data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +25 -20
  62. data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.map +1 -1
  63. data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.md5 +1 -1
  64. data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.png +0 -0
  65. data/doc/cxxapi/classPassenger_1_1FileSystemException-members.html +38 -0
  66. data/doc/cxxapi/classPassenger_1_1FileSystemException.html +61 -0
  67. data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.map +1 -0
  68. data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.md5 +1 -0
  69. data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.png +0 -0
  70. data/doc/cxxapi/classPassenger_1_1IOException-members.html +22 -17
  71. data/doc/cxxapi/classPassenger_1_1IOException.html +26 -21
  72. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.map +1 -1
  73. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.md5 +1 -1
  74. data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.png +0 -0
  75. data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +22 -17
  76. data/doc/cxxapi/classPassenger_1_1MessageChannel.html +44 -21
  77. data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +22 -17
  78. data/doc/cxxapi/classPassenger_1_1SpawnException.html +26 -23
  79. data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +24 -19
  80. data/doc/cxxapi/classPassenger_1_1SpawnManager.html +64 -43
  81. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool-members.html +26 -19
  82. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool.html +89 -37
  83. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.map +1 -1
  84. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.md5 +1 -1
  85. data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.png +0 -0
  86. data/doc/cxxapi/classPassenger_1_1SystemException-members.html +22 -17
  87. data/doc/cxxapi/classPassenger_1_1SystemException.html +32 -22
  88. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.map +1 -0
  89. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.md5 +1 -0
  90. data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.png +0 -0
  91. data/doc/cxxapi/classPassenger_1_1TempFile-members.html +36 -0
  92. data/doc/cxxapi/classPassenger_1_1TempFile.html +128 -0
  93. data/doc/cxxapi/classPassenger_1_1Thread-members.html +35 -0
  94. data/doc/cxxapi/classPassenger_1_1Thread.html +100 -0
  95. data/doc/cxxapi/classboost_1_1this__thread_1_1disable__syscall__interruption-members.html +33 -0
  96. data/doc/cxxapi/classboost_1_1this__thread_1_1disable__syscall__interruption.html +46 -0
  97. data/doc/cxxapi/classboost_1_1this__thread_1_1enable__syscall__interruption-members.html +33 -0
  98. data/doc/cxxapi/classboost_1_1this__thread_1_1enable__syscall__interruption.html +44 -0
  99. data/doc/cxxapi/classboost_1_1this__thread_1_1restore__syscall__interruption-members.html +33 -0
  100. data/doc/cxxapi/classboost_1_1this__thread_1_1restore__syscall__interruption.html +44 -0
  101. data/doc/cxxapi/definitions_8h-source.html +14 -11
  102. data/doc/cxxapi/doxygen.css +152 -77
  103. data/doc/cxxapi/files.html +18 -12
  104. data/doc/cxxapi/functions.html +107 -55
  105. data/doc/cxxapi/functions_func.html +104 -55
  106. data/doc/cxxapi/functions_type.html +30 -24
  107. data/doc/cxxapi/functions_vars.html +48 -0
  108. data/doc/cxxapi/graph_legend.dot +19 -19
  109. data/doc/cxxapi/graph_legend.html +15 -10
  110. data/doc/cxxapi/graph_legend.png +0 -0
  111. data/doc/cxxapi/group__Configuration.html +18 -13
  112. data/doc/cxxapi/group__Configuration.png +0 -0
  113. data/doc/cxxapi/group__Core.html +23 -11
  114. data/doc/cxxapi/group__Core.png +0 -0
  115. data/doc/cxxapi/group__Exceptions.html +21 -10
  116. data/doc/cxxapi/group__Hooks.html +16 -11
  117. data/doc/cxxapi/group__Hooks.png +0 -0
  118. data/doc/cxxapi/group__Support.html +169 -21
  119. data/doc/cxxapi/hierarchy.html +38 -22
  120. data/doc/cxxapi/index.html +1 -1
  121. data/doc/cxxapi/inherit__graph__0.map +1 -1
  122. data/doc/cxxapi/inherit__graph__0.md5 +1 -1
  123. data/doc/cxxapi/inherit__graph__0.png +0 -0
  124. data/doc/cxxapi/inherit__graph__1.map +1 -1
  125. data/doc/cxxapi/inherit__graph__1.md5 +1 -1
  126. data/doc/cxxapi/inherit__graph__1.png +0 -0
  127. data/doc/cxxapi/inherit__graph__10.map +1 -1
  128. data/doc/cxxapi/inherit__graph__10.md5 +1 -1
  129. data/doc/cxxapi/inherit__graph__10.png +0 -0
  130. data/doc/cxxapi/inherit__graph__11.map +1 -0
  131. data/doc/cxxapi/inherit__graph__11.md5 +1 -0
  132. data/doc/cxxapi/inherit__graph__11.png +0 -0
  133. data/doc/cxxapi/inherit__graph__12.map +1 -0
  134. data/doc/cxxapi/inherit__graph__12.md5 +1 -0
  135. data/doc/cxxapi/inherit__graph__12.png +0 -0
  136. data/doc/cxxapi/inherit__graph__13.map +1 -0
  137. data/doc/cxxapi/inherit__graph__13.md5 +1 -0
  138. data/doc/cxxapi/inherit__graph__13.png +0 -0
  139. data/doc/cxxapi/inherit__graph__14.map +2 -0
  140. data/doc/cxxapi/inherit__graph__14.md5 +1 -0
  141. data/doc/cxxapi/inherit__graph__14.png +0 -0
  142. data/doc/cxxapi/inherit__graph__15.map +1 -0
  143. data/doc/cxxapi/inherit__graph__15.md5 +1 -0
  144. data/doc/cxxapi/inherit__graph__15.png +0 -0
  145. data/doc/cxxapi/inherit__graph__16.map +1 -0
  146. data/doc/cxxapi/inherit__graph__16.md5 +1 -0
  147. data/doc/cxxapi/inherit__graph__16.png +0 -0
  148. data/doc/cxxapi/inherit__graph__17.map +1 -0
  149. data/doc/cxxapi/inherit__graph__17.md5 +1 -0
  150. data/doc/cxxapi/inherit__graph__17.png +0 -0
  151. data/doc/cxxapi/inherit__graph__2.map +1 -1
  152. data/doc/cxxapi/inherit__graph__2.md5 +1 -1
  153. data/doc/cxxapi/inherit__graph__2.png +0 -0
  154. data/doc/cxxapi/inherit__graph__3.map +1 -1
  155. data/doc/cxxapi/inherit__graph__3.md5 +1 -1
  156. data/doc/cxxapi/inherit__graph__3.png +0 -0
  157. data/doc/cxxapi/inherit__graph__4.map +1 -2
  158. data/doc/cxxapi/inherit__graph__4.md5 +1 -1
  159. data/doc/cxxapi/inherit__graph__4.png +0 -0
  160. data/doc/cxxapi/inherit__graph__5.map +1 -1
  161. data/doc/cxxapi/inherit__graph__5.md5 +1 -1
  162. data/doc/cxxapi/inherit__graph__5.png +0 -0
  163. data/doc/cxxapi/inherit__graph__6.map +1 -1
  164. data/doc/cxxapi/inherit__graph__6.md5 +1 -1
  165. data/doc/cxxapi/inherit__graph__6.png +0 -0
  166. data/doc/cxxapi/inherit__graph__7.map +1 -5
  167. data/doc/cxxapi/inherit__graph__7.md5 +1 -1
  168. data/doc/cxxapi/inherit__graph__7.png +0 -0
  169. data/doc/cxxapi/inherit__graph__8.map +1 -1
  170. data/doc/cxxapi/inherit__graph__8.md5 +1 -1
  171. data/doc/cxxapi/inherit__graph__8.png +0 -0
  172. data/doc/cxxapi/inherit__graph__9.map +2 -1
  173. data/doc/cxxapi/inherit__graph__9.md5 +1 -1
  174. data/doc/cxxapi/inherit__graph__9.png +0 -0
  175. data/doc/cxxapi/inherits.html +80 -39
  176. data/doc/cxxapi/main.html +15 -10
  177. data/doc/cxxapi/modules.html +16 -11
  178. data/doc/cxxapi/namespacePassenger.html +208 -0
  179. data/doc/cxxapi/namespacePassenger_1_1InterruptableCalls.html +43 -0
  180. data/doc/cxxapi/namespacemembers.html +70 -0
  181. data/doc/cxxapi/namespacemembers_func.html +66 -0
  182. data/doc/cxxapi/namespacemembers_type.html +46 -0
  183. data/doc/cxxapi/namespaces.html +35 -0
  184. data/doc/cxxapi/structPassenger_1_1AnythingToString-members.html +22 -17
  185. data/doc/cxxapi/structPassenger_1_1AnythingToString.html +24 -19
  186. data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4-members.html +23 -18
  187. data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4.html +27 -22
  188. data/doc/cxxapi/tabs.css +1 -1
  189. data/doc/cxxapi/tree.html +41 -13
  190. data/doc/rdoc/classes/ConditionVariable.html +25 -23
  191. data/doc/rdoc/classes/Exception.html +11 -11
  192. data/doc/rdoc/classes/GC.html +4 -4
  193. data/doc/rdoc/classes/IO.html +8 -8
  194. data/doc/rdoc/classes/Passenger.html +27 -8
  195. data/doc/rdoc/classes/Passenger/AbstractRequestHandler.html +401 -0
  196. data/doc/rdoc/classes/Passenger/AbstractServer.html +248 -208
  197. data/doc/rdoc/classes/Passenger/AppInitError.html +37 -6
  198. data/doc/rdoc/classes/Passenger/Application.html +73 -74
  199. data/doc/rdoc/classes/Passenger/ConsoleTextTemplate.html +35 -35
  200. data/doc/rdoc/classes/Passenger/FrameworkInitError.html +17 -18
  201. data/doc/rdoc/classes/Passenger/HTMLTemplate.html +30 -30
  202. data/doc/rdoc/classes/Passenger/InitializationError.html +11 -11
  203. data/doc/rdoc/classes/Passenger/MessageChannel.html +138 -138
  204. data/doc/rdoc/classes/Passenger/SpawnManager.html +142 -145
  205. data/doc/rdoc/classes/Passenger/UnknownError.html +11 -11
  206. data/doc/rdoc/classes/Passenger/Utils.html +327 -99
  207. data/doc/rdoc/classes/Passenger/VersionNotFound.html +6 -6
  208. data/doc/rdoc/classes/PlatformInfo.html +10 -10
  209. data/doc/rdoc/created.rid +1 -1
  210. data/doc/rdoc/files/DEVELOPERS_TXT.html +55 -3
  211. data/doc/rdoc/files/README.html +35 -5
  212. data/doc/rdoc/files/ext/passenger/native_support_c.html +1 -1
  213. data/doc/rdoc/files/lib/passenger/abstract_request_handler_rb.html +125 -0
  214. data/doc/rdoc/files/lib/passenger/abstract_server_rb.html +7 -1
  215. data/doc/rdoc/files/lib/passenger/application_rb.html +6 -2
  216. data/doc/rdoc/files/lib/passenger/console_text_template_rb.html +5 -1
  217. data/doc/rdoc/files/lib/passenger/constants_rb.html +114 -0
  218. data/doc/rdoc/files/lib/passenger/dependencies_rb.html +7 -1
  219. data/doc/rdoc/files/lib/passenger/exceptions_rb.html +118 -0
  220. data/doc/rdoc/files/lib/passenger/html_template_rb.html +5 -1
  221. data/doc/rdoc/files/lib/passenger/message_channel_rb.html +5 -5
  222. data/doc/rdoc/files/lib/passenger/platform_info_rb.html +5 -1
  223. data/doc/rdoc/files/lib/passenger/simple_benchmarking_rb.html +5 -1
  224. data/doc/rdoc/files/lib/passenger/spawn_manager_rb.html +19 -4
  225. data/doc/rdoc/files/lib/passenger/utils_rb.html +10 -3
  226. data/doc/rdoc/fr_class_index.html +1 -6
  227. data/doc/rdoc/fr_file_index.html +3 -4
  228. data/doc/rdoc/fr_method_index.html +55 -60
  229. data/ext/apache2/Application.h +105 -62
  230. data/ext/apache2/ApplicationPool.h +29 -9
  231. data/ext/apache2/ApplicationPoolServer.h +654 -0
  232. data/ext/apache2/ApplicationPoolServerExecutable.cpp +474 -0
  233. data/ext/apache2/Configuration.cpp +278 -63
  234. data/ext/apache2/Configuration.h +45 -13
  235. data/ext/apache2/DummySpawnManager.h +2 -0
  236. data/ext/apache2/Exceptions.h +53 -0
  237. data/ext/apache2/Hooks.cpp +484 -156
  238. data/ext/apache2/Hooks.h +2 -0
  239. data/ext/apache2/Logging.cpp +13 -1
  240. data/ext/apache2/Logging.h +36 -6
  241. data/ext/apache2/MessageChannel.h +32 -16
  242. data/ext/apache2/SpawnManager.h +90 -52
  243. data/ext/apache2/StandardApplicationPool.h +251 -95
  244. data/ext/apache2/System.cpp +232 -0
  245. data/ext/apache2/System.h +228 -0
  246. data/ext/apache2/Utils.cpp +80 -20
  247. data/ext/apache2/Utils.h +107 -3
  248. data/ext/apache2/mod_passenger.c +2 -0
  249. data/ext/boost/VERSION.TXT +1 -1
  250. data/ext/boost/algorithm/string/case_conv.hpp +176 -0
  251. data/ext/boost/algorithm/string/compare.hpp +199 -0
  252. data/ext/boost/algorithm/string/concept.hpp +83 -0
  253. data/ext/boost/algorithm/string/config.hpp +28 -0
  254. data/ext/boost/algorithm/string/constants.hpp +36 -0
  255. data/ext/boost/algorithm/string/detail/case_conv.hpp +112 -0
  256. data/ext/boost/algorithm/string/detail/find_format.hpp +193 -0
  257. data/ext/boost/algorithm/string/detail/find_format_all.hpp +263 -0
  258. data/ext/boost/algorithm/string/detail/find_format_store.hpp +71 -0
  259. data/ext/boost/algorithm/string/detail/finder.hpp +646 -0
  260. data/ext/boost/algorithm/string/detail/formatter.hpp +94 -0
  261. data/ext/boost/algorithm/string/detail/replace_storage.hpp +159 -0
  262. data/ext/boost/algorithm/string/detail/sequence.hpp +200 -0
  263. data/ext/boost/algorithm/string/detail/util.hpp +106 -0
  264. data/ext/boost/algorithm/string/erase.hpp +844 -0
  265. data/ext/boost/algorithm/string/find_format.hpp +269 -0
  266. data/ext/boost/algorithm/string/finder.hpp +270 -0
  267. data/ext/boost/algorithm/string/formatter.hpp +103 -0
  268. data/ext/boost/algorithm/string/replace.hpp +928 -0
  269. data/ext/boost/algorithm/string/sequence_traits.hpp +193 -0
  270. data/ext/boost/algorithm/string/yes_no_type.hpp +33 -0
  271. data/ext/boost/assert.hpp +50 -37
  272. data/ext/boost/bind.hpp +38 -0
  273. data/ext/boost/bind/arg.hpp +28 -2
  274. data/ext/boost/bind/bind_template.hpp +119 -0
  275. data/ext/boost/bind/placeholders.hpp +1 -1
  276. data/ext/boost/call_traits.hpp +24 -0
  277. data/ext/boost/checked_delete.hpp +69 -69
  278. data/ext/boost/concept/assert.hpp +46 -0
  279. data/ext/boost/concept/detail/concept_def.hpp +51 -0
  280. data/ext/boost/concept/detail/concept_undef.hpp +5 -0
  281. data/ext/boost/concept/detail/general.hpp +66 -0
  282. data/ext/boost/concept/detail/has_constraints.hpp +48 -0
  283. data/ext/boost/concept/usage.hpp +43 -0
  284. data/ext/boost/concept_check.hpp +988 -0
  285. data/ext/boost/config.hpp +70 -70
  286. data/ext/boost/config/abi/borland_prefix.hpp +27 -27
  287. data/ext/boost/config/abi/borland_suffix.hpp +12 -12
  288. data/ext/boost/config/abi/msvc_prefix.hpp +8 -8
  289. data/ext/boost/config/abi/msvc_suffix.hpp +8 -8
  290. data/ext/boost/config/abi_prefix.hpp +25 -20
  291. data/ext/boost/config/abi_suffix.hpp +26 -23
  292. data/ext/boost/config/auto_link.hpp +368 -363
  293. data/ext/boost/config/compiler/borland.hpp +209 -190
  294. data/ext/boost/config/compiler/comeau.hpp +59 -59
  295. data/ext/boost/config/compiler/common_edg.hpp +62 -62
  296. data/ext/boost/config/compiler/compaq_cxx.hpp +19 -19
  297. data/ext/boost/config/compiler/digitalmars.hpp +67 -49
  298. data/ext/boost/config/compiler/gcc.hpp +149 -105
  299. data/ext/boost/config/compiler/gcc_xml.hpp +30 -30
  300. data/ext/boost/config/compiler/greenhills.hpp +28 -28
  301. data/ext/boost/config/compiler/hp_acc.hpp +95 -72
  302. data/ext/boost/config/compiler/intel.hpp +162 -158
  303. data/ext/boost/config/compiler/kai.hpp +35 -35
  304. data/ext/boost/config/compiler/metrowerks.hpp +111 -104
  305. data/ext/boost/config/compiler/mpw.hpp +51 -51
  306. data/ext/boost/config/compiler/pgi.hpp +25 -0
  307. data/ext/boost/config/compiler/sgi_mipspro.hpp +28 -24
  308. data/ext/boost/config/compiler/sunpro_cc.hpp +98 -92
  309. data/ext/boost/config/compiler/vacpp.hpp +60 -57
  310. data/ext/boost/config/compiler/visualc.hpp +191 -178
  311. data/ext/boost/config/no_tr1/complex.hpp +28 -28
  312. data/ext/boost/config/no_tr1/functional.hpp +28 -28
  313. data/ext/boost/config/no_tr1/memory.hpp +28 -28
  314. data/ext/boost/config/no_tr1/utility.hpp +28 -28
  315. data/ext/boost/config/platform/aix.hpp +33 -33
  316. data/ext/boost/config/platform/amigaos.hpp +15 -15
  317. data/ext/boost/config/platform/beos.hpp +26 -26
  318. data/ext/boost/config/platform/bsd.hpp +73 -73
  319. data/ext/boost/config/platform/cygwin.hpp +51 -48
  320. data/ext/boost/config/platform/hpux.hpp +84 -85
  321. data/ext/boost/config/platform/irix.hpp +31 -31
  322. data/ext/boost/config/platform/linux.hpp +98 -98
  323. data/ext/boost/config/platform/macos.hpp +78 -78
  324. data/ext/boost/config/platform/qnxnto.hpp +31 -31
  325. data/ext/boost/config/platform/solaris.hpp +21 -21
  326. data/ext/boost/config/platform/win32.hpp +58 -58
  327. data/ext/boost/config/posix_features.hpp +95 -95
  328. data/ext/boost/config/requires_threads.hpp +92 -92
  329. data/ext/boost/config/select_compiler_config.hpp +115 -87
  330. data/ext/boost/config/select_platform_config.hpp +90 -90
  331. data/ext/boost/config/select_stdlib_config.hpp +68 -68
  332. data/ext/boost/config/stdlib/dinkumware.hpp +106 -106
  333. data/ext/boost/config/stdlib/libcomo.hpp +46 -46
  334. data/ext/boost/config/stdlib/libstdcpp3.hpp +73 -73
  335. data/ext/boost/config/stdlib/modena.hpp +30 -30
  336. data/ext/boost/config/stdlib/msl.hpp +59 -59
  337. data/ext/boost/config/stdlib/roguewave.hpp +153 -127
  338. data/ext/boost/config/stdlib/sgi.hpp +111 -111
  339. data/ext/boost/config/stdlib/stlport.hpp +201 -201
  340. data/ext/boost/config/stdlib/vacpp.hpp +18 -18
  341. data/ext/boost/config/suffix.hpp +566 -569
  342. data/ext/boost/config/user.hpp +124 -124
  343. data/ext/boost/cstdint.hpp +446 -446
  344. data/ext/boost/date_time/adjust_functors.hpp +178 -0
  345. data/ext/boost/date_time/c_time.hpp +91 -0
  346. data/ext/boost/date_time/compiler_config.hpp +149 -0
  347. data/ext/boost/date_time/constrained_value.hpp +98 -0
  348. data/ext/boost/date_time/date.hpp +197 -0
  349. data/ext/boost/date_time/date_clock_device.hpp +77 -0
  350. data/ext/boost/date_time/date_defs.hpp +26 -0
  351. data/ext/boost/date_time/date_duration.hpp +147 -0
  352. data/ext/boost/date_time/date_duration_types.hpp +269 -0
  353. data/ext/boost/date_time/date_facet.hpp +775 -0
  354. data/ext/boost/date_time/date_format_simple.hpp +159 -0
  355. data/ext/boost/date_time/date_formatting.hpp +127 -0
  356. data/ext/boost/date_time/date_formatting_limited.hpp +121 -0
  357. data/ext/boost/date_time/date_formatting_locales.hpp +233 -0
  358. data/ext/boost/date_time/date_generator_formatter.hpp +263 -0
  359. data/ext/boost/date_time/date_generator_parser.hpp +329 -0
  360. data/ext/boost/date_time/date_generators.hpp +509 -0
  361. data/ext/boost/date_time/date_iterator.hpp +101 -0
  362. data/ext/boost/date_time/date_names_put.hpp +320 -0
  363. data/ext/boost/date_time/date_parsing.hpp +299 -0
  364. data/ext/boost/date_time/dst_rules.hpp +391 -0
  365. data/ext/boost/date_time/filetime_functions.hpp +78 -0
  366. data/ext/boost/date_time/format_date_parser.hpp +731 -0
  367. data/ext/boost/date_time/gregorian/conversion.hpp +73 -0
  368. data/ext/boost/date_time/gregorian/formatters.hpp +162 -0
  369. data/ext/boost/date_time/gregorian/formatters_limited.hpp +81 -0
  370. data/ext/boost/date_time/gregorian/greg_calendar.hpp +47 -0
  371. data/ext/boost/date_time/gregorian/greg_date.hpp +135 -0
  372. data/ext/boost/date_time/gregorian/greg_day.hpp +57 -0
  373. data/ext/boost/date_time/gregorian/greg_day_of_year.hpp +38 -0
  374. data/ext/boost/date_time/gregorian/greg_duration.hpp +38 -0
  375. data/ext/boost/date_time/gregorian/greg_duration_types.hpp +34 -0
  376. data/ext/boost/date_time/gregorian/greg_month.hpp +105 -0
  377. data/ext/boost/date_time/gregorian/greg_weekday.hpp +66 -0
  378. data/ext/boost/date_time/gregorian/greg_year.hpp +53 -0
  379. data/ext/boost/date_time/gregorian/greg_ymd.hpp +33 -0
  380. data/ext/boost/date_time/gregorian/gregorian.hpp +38 -0
  381. data/ext/boost/date_time/gregorian/gregorian_io.hpp +777 -0
  382. data/ext/boost/date_time/gregorian/gregorian_types.hpp +109 -0
  383. data/ext/boost/date_time/gregorian/parsers.hpp +91 -0
  384. data/ext/boost/date_time/gregorian_calendar.hpp +70 -0
  385. data/ext/boost/date_time/gregorian_calendar.ipp +219 -0
  386. data/ext/boost/date_time/int_adapter.hpp +507 -0
  387. data/ext/boost/date_time/iso_format.hpp +303 -0
  388. data/ext/boost/date_time/locale_config.hpp +31 -0
  389. data/ext/boost/date_time/microsec_time_clock.hpp +205 -0
  390. data/ext/boost/date_time/parse_format_base.hpp +29 -0
  391. data/ext/boost/date_time/period.hpp +377 -0
  392. data/ext/boost/date_time/period_formatter.hpp +196 -0
  393. data/ext/boost/date_time/period_parser.hpp +196 -0
  394. data/ext/boost/date_time/posix_time/conversion.hpp +93 -0
  395. data/ext/boost/date_time/posix_time/date_duration_operators.hpp +114 -0
  396. data/ext/boost/date_time/posix_time/posix_time.hpp +39 -0
  397. data/ext/boost/date_time/posix_time/posix_time_config.hpp +178 -0
  398. data/ext/boost/date_time/posix_time/posix_time_duration.hpp +82 -0
  399. data/ext/boost/date_time/posix_time/posix_time_io.hpp +246 -0
  400. data/ext/boost/date_time/posix_time/posix_time_system.hpp +68 -0
  401. data/ext/boost/date_time/posix_time/posix_time_types.hpp +55 -0
  402. data/ext/boost/date_time/posix_time/ptime.hpp +65 -0
  403. data/ext/boost/date_time/posix_time/time_formatters.hpp +289 -0
  404. data/ext/boost/date_time/posix_time/time_parsers.hpp +44 -0
  405. data/ext/boost/date_time/posix_time/time_period.hpp +29 -0
  406. data/ext/boost/date_time/special_defs.hpp +25 -0
  407. data/ext/boost/date_time/special_values_formatter.hpp +96 -0
  408. data/ext/boost/date_time/special_values_parser.hpp +159 -0
  409. data/ext/boost/date_time/string_convert.hpp +33 -0
  410. data/ext/boost/date_time/string_parse_tree.hpp +278 -0
  411. data/ext/boost/date_time/strings_from_facet.hpp +123 -0
  412. data/ext/boost/date_time/time.hpp +190 -0
  413. data/ext/boost/date_time/time_clock.hpp +83 -0
  414. data/ext/boost/date_time/time_defs.hpp +33 -0
  415. data/ext/boost/date_time/time_duration.hpp +281 -0
  416. data/ext/boost/date_time/time_facet.hpp +1263 -0
  417. data/ext/boost/date_time/time_formatting_streams.hpp +119 -0
  418. data/ext/boost/date_time/time_iterator.hpp +52 -0
  419. data/ext/boost/date_time/time_parsing.hpp +321 -0
  420. data/ext/boost/date_time/time_resolution_traits.hpp +140 -0
  421. data/ext/boost/date_time/time_system_counted.hpp +254 -0
  422. data/ext/boost/date_time/time_system_split.hpp +213 -0
  423. data/ext/boost/date_time/wrapping_int.hpp +163 -0
  424. data/ext/boost/date_time/year_month_day.hpp +45 -0
  425. data/ext/boost/detail/atomic_count.hpp +124 -0
  426. data/ext/boost/detail/atomic_count_gcc.hpp +68 -0
  427. data/ext/boost/detail/atomic_count_gcc_x86.hpp +84 -0
  428. data/ext/boost/detail/atomic_count_pthreads.hpp +96 -0
  429. data/ext/boost/detail/atomic_count_solaris.hpp +59 -0
  430. data/ext/boost/detail/atomic_count_sync.hpp +57 -0
  431. data/ext/boost/detail/atomic_count_win32.hpp +63 -0
  432. data/ext/boost/detail/bad_weak_ptr.hpp +59 -59
  433. data/ext/boost/detail/call_traits.hpp +164 -0
  434. data/ext/boost/detail/endian.hpp +73 -0
  435. data/ext/boost/detail/indirect_traits.hpp +487 -0
  436. data/ext/boost/detail/iterator.hpp +494 -0
  437. data/ext/boost/detail/lcast_precision.hpp +184 -0
  438. data/ext/boost/detail/limits.hpp +449 -0
  439. data/ext/boost/detail/reference_content.hpp +141 -141
  440. data/ext/boost/detail/shared_count.hpp +375 -376
  441. data/ext/boost/detail/sp_counted_base.hpp +81 -69
  442. data/ext/boost/detail/sp_counted_base_acc_ia64.hpp +150 -0
  443. data/ext/boost/detail/sp_counted_base_cw_ppc.hpp +170 -170
  444. data/ext/boost/detail/sp_counted_base_cw_x86.hpp +158 -158
  445. data/ext/boost/detail/sp_counted_base_gcc_ia64.hpp +157 -157
  446. data/ext/boost/detail/sp_counted_base_gcc_ppc.hpp +181 -181
  447. data/ext/boost/detail/sp_counted_base_gcc_sparc.hpp +166 -0
  448. data/ext/boost/detail/sp_counted_base_gcc_x86.hpp +173 -173
  449. data/ext/boost/detail/sp_counted_base_nt.hpp +107 -107
  450. data/ext/boost/detail/sp_counted_base_pt.hpp +135 -135
  451. data/ext/boost/detail/sp_counted_base_solaris.hpp +113 -0
  452. data/ext/boost/detail/sp_counted_base_sync.hpp +151 -0
  453. data/ext/boost/detail/sp_counted_base_w32.hpp +130 -130
  454. data/ext/boost/detail/sp_counted_impl.hpp +231 -232
  455. data/ext/boost/detail/sp_typeinfo.hpp +83 -0
  456. data/ext/boost/detail/workaround.hpp +202 -74
  457. data/ext/boost/enable_shared_from_this.hpp +73 -0
  458. data/ext/boost/function.hpp +4 -2
  459. data/ext/boost/function/detail/prologue.hpp +1 -0
  460. data/ext/boost/function/function_base.hpp +41 -15
  461. data/ext/boost/function/function_template.hpp +238 -106
  462. data/ext/boost/implicit_cast.hpp +29 -0
  463. data/ext/boost/integer_traits.hpp +236 -0
  464. data/ext/boost/io/ios_state.hpp +431 -0
  465. data/ext/boost/io_fwd.hpp +67 -0
  466. data/ext/boost/is_placeholder.hpp +31 -0
  467. data/ext/boost/iterator.hpp +59 -0
  468. data/ext/boost/iterator/detail/config_def.hpp +135 -0
  469. data/ext/boost/iterator/detail/config_undef.hpp +25 -0
  470. data/ext/boost/iterator/detail/enable_if.hpp +86 -0
  471. data/ext/boost/iterator/detail/facade_iterator_category.hpp +200 -0
  472. data/ext/boost/iterator/detail/minimum_category.hpp +116 -0
  473. data/ext/boost/iterator/interoperable.hpp +50 -0
  474. data/ext/boost/iterator/iterator_adaptor.hpp +366 -0
  475. data/ext/boost/iterator/iterator_categories.hpp +188 -0
  476. data/ext/boost/iterator/iterator_facade.hpp +879 -0
  477. data/ext/boost/iterator/iterator_traits.hpp +92 -0
  478. data/ext/boost/iterator/reverse_iterator.hpp +69 -0
  479. data/ext/boost/iterator/transform_iterator.hpp +188 -0
  480. data/ext/boost/lexical_cast.hpp +1205 -0
  481. data/ext/boost/limits.hpp +146 -144
  482. data/ext/boost/mpl/always.hpp +39 -39
  483. data/ext/boost/mpl/and.hpp +60 -56
  484. data/ext/boost/mpl/apply.hpp +225 -225
  485. data/ext/boost/mpl/apply_fwd.hpp +107 -107
  486. data/ext/boost/mpl/apply_wrap.hpp +200 -200
  487. data/ext/boost/mpl/arg.hpp +131 -131
  488. data/ext/boost/mpl/arg_fwd.hpp +28 -28
  489. data/ext/boost/mpl/assert.hpp +370 -361
  490. data/ext/boost/mpl/aux_/adl_barrier.hpp +48 -48
  491. data/ext/boost/mpl/aux_/arg_typedef.hpp +31 -31
  492. data/ext/boost/mpl/aux_/arity.hpp +39 -39
  493. data/ext/boost/mpl/aux_/arity_spec.hpp +67 -67
  494. data/ext/boost/mpl/aux_/common_name_wknd.hpp +34 -34
  495. data/ext/boost/mpl/aux_/config/adl.hpp +40 -40
  496. data/ext/boost/mpl/aux_/config/arrays.hpp +30 -30
  497. data/ext/boost/mpl/aux_/config/bind.hpp +33 -33
  498. data/ext/boost/mpl/aux_/config/compiler.hpp +64 -64
  499. data/ext/boost/mpl/aux_/config/ctps.hpp +30 -30
  500. data/ext/boost/mpl/aux_/config/dtp.hpp +46 -46
  501. data/ext/boost/mpl/aux_/config/eti.hpp +47 -47
  502. data/ext/boost/mpl/aux_/config/gcc.hpp +23 -23
  503. data/ext/boost/mpl/aux_/config/has_apply.hpp +32 -32
  504. data/ext/boost/mpl/aux_/config/has_xxx.hpp +33 -33
  505. data/ext/boost/mpl/aux_/config/integral.hpp +38 -38
  506. data/ext/boost/mpl/aux_/config/intel.hpp +21 -21
  507. data/ext/boost/mpl/aux_/config/lambda.hpp +32 -32
  508. data/ext/boost/mpl/aux_/config/msvc.hpp +21 -21
  509. data/ext/boost/mpl/aux_/config/msvc_typename.hpp +26 -26
  510. data/ext/boost/mpl/aux_/config/nttp.hpp +41 -41
  511. data/ext/boost/mpl/aux_/config/overload_resolution.hpp +29 -29
  512. data/ext/boost/mpl/aux_/config/pp_counter.hpp +26 -0
  513. data/ext/boost/mpl/aux_/config/preprocessor.hpp +39 -39
  514. data/ext/boost/mpl/aux_/config/static_constant.hpp +25 -25
  515. data/ext/boost/mpl/aux_/config/ttp.hpp +41 -39
  516. data/ext/boost/mpl/aux_/config/use_preprocessed.hpp +19 -19
  517. data/ext/boost/mpl/aux_/config/workaround.hpp +19 -19
  518. data/ext/boost/mpl/aux_/full_lambda.hpp +350 -350
  519. data/ext/boost/mpl/aux_/has_apply.hpp +32 -32
  520. data/ext/boost/mpl/aux_/has_type.hpp +23 -23
  521. data/ext/boost/mpl/aux_/include_preprocessed.hpp +42 -42
  522. data/ext/boost/mpl/aux_/integral_wrapper.hpp +93 -93
  523. data/ext/boost/mpl/aux_/lambda_arity_param.hpp +25 -25
  524. data/ext/boost/mpl/aux_/lambda_support.hpp +169 -169
  525. data/ext/boost/mpl/aux_/msvc_never_true.hpp +34 -34
  526. data/ext/boost/mpl/aux_/na.hpp +95 -95
  527. data/ext/boost/mpl/aux_/na_assert.hpp +34 -34
  528. data/ext/boost/mpl/aux_/na_fwd.hpp +31 -31
  529. data/ext/boost/mpl/aux_/na_spec.hpp +175 -175
  530. data/ext/boost/mpl/aux_/nested_type_wknd.hpp +48 -48
  531. data/ext/boost/mpl/aux_/nttp_decl.hpp +35 -35
  532. data/ext/boost/mpl/aux_/preprocessed/gcc/and.hpp +69 -69
  533. data/ext/boost/mpl/aux_/preprocessed/gcc/apply.hpp +169 -169
  534. data/ext/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp +52 -52
  535. data/ext/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp +84 -84
  536. data/ext/boost/mpl/aux_/preprocessed/gcc/arg.hpp +123 -123
  537. data/ext/boost/mpl/aux_/preprocessed/gcc/bind.hpp +561 -561
  538. data/ext/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp +52 -52
  539. data/ext/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp +558 -558
  540. data/ext/boost/mpl/aux_/preprocessed/gcc/or.hpp +69 -69
  541. data/ext/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp +105 -105
  542. data/ext/boost/mpl/aux_/preprocessed/gcc/quote.hpp +123 -123
  543. data/ext/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp +101 -101
  544. data/ext/boost/mpl/aux_/preprocessor/def_params_tail.hpp +105 -105
  545. data/ext/boost/mpl/aux_/preprocessor/enum.hpp +62 -62
  546. data/ext/boost/mpl/aux_/preprocessor/filter_params.hpp +28 -28
  547. data/ext/boost/mpl/aux_/preprocessor/params.hpp +65 -65
  548. data/ext/boost/mpl/aux_/preprocessor/sub.hpp +65 -65
  549. data/ext/boost/mpl/aux_/static_cast.hpp +27 -27
  550. data/ext/boost/mpl/aux_/template_arity.hpp +189 -189
  551. data/ext/boost/mpl/aux_/template_arity_fwd.hpp +23 -23
  552. data/ext/boost/mpl/aux_/type_wrapper.hpp +47 -47
  553. data/ext/boost/mpl/aux_/value_wknd.hpp +89 -89
  554. data/ext/boost/mpl/aux_/yes_no.hpp +58 -58
  555. data/ext/boost/mpl/bind.hpp +547 -547
  556. data/ext/boost/mpl/bind_fwd.hpp +99 -99
  557. data/ext/boost/mpl/bool.hpp +39 -39
  558. data/ext/boost/mpl/bool_fwd.hpp +33 -33
  559. data/ext/boost/mpl/eval_if.hpp +71 -71
  560. data/ext/boost/mpl/has_xxx.hpp +272 -233
  561. data/ext/boost/mpl/identity.hpp +45 -45
  562. data/ext/boost/mpl/if.hpp +135 -135
  563. data/ext/boost/mpl/int.hpp +22 -22
  564. data/ext/boost/mpl/int_fwd.hpp +27 -27
  565. data/ext/boost/mpl/integral_c.hpp +51 -51
  566. data/ext/boost/mpl/integral_c_fwd.hpp +32 -32
  567. data/ext/boost/mpl/integral_c_tag.hpp +26 -26
  568. data/ext/boost/mpl/lambda.hpp +29 -29
  569. data/ext/boost/mpl/lambda_fwd.hpp +57 -57
  570. data/ext/boost/mpl/limits/arity.hpp +21 -21
  571. data/ext/boost/mpl/logical.hpp +21 -21
  572. data/ext/boost/mpl/next.hpp +19 -19
  573. data/ext/boost/mpl/next_prior.hpp +49 -49
  574. data/ext/boost/mpl/not.hpp +51 -51
  575. data/ext/boost/mpl/or.hpp +61 -57
  576. data/ext/boost/mpl/placeholders.hpp +100 -100
  577. data/ext/boost/mpl/protect.hpp +55 -55
  578. data/ext/boost/mpl/quote.hpp +140 -140
  579. data/ext/boost/mpl/size_t.hpp +25 -25
  580. data/ext/boost/mpl/size_t_fwd.hpp +28 -28
  581. data/ext/boost/mpl/void.hpp +76 -76
  582. data/ext/boost/mpl/void_fwd.hpp +26 -26
  583. data/ext/boost/next_prior.hpp +51 -51
  584. data/ext/boost/noncopyable.hpp +36 -36
  585. data/ext/boost/none.hpp +28 -43
  586. data/ext/boost/none_t.hpp +24 -0
  587. data/ext/boost/operators.hpp +943 -0
  588. data/ext/boost/optional.hpp +18 -18
  589. data/ext/boost/optional/optional.hpp +922 -922
  590. data/ext/boost/optional/optional_fwd.hpp +22 -22
  591. data/ext/boost/preprocessor/arithmetic/add.hpp +51 -51
  592. data/ext/boost/preprocessor/arithmetic/dec.hpp +288 -288
  593. data/ext/boost/preprocessor/arithmetic/inc.hpp +288 -288
  594. data/ext/boost/preprocessor/arithmetic/sub.hpp +50 -50
  595. data/ext/boost/preprocessor/array/data.hpp +28 -28
  596. data/ext/boost/preprocessor/array/elem.hpp +29 -29
  597. data/ext/boost/preprocessor/array/size.hpp +28 -28
  598. data/ext/boost/preprocessor/cat.hpp +35 -35
  599. data/ext/boost/preprocessor/comma_if.hpp +17 -17
  600. data/ext/boost/preprocessor/config/config.hpp +70 -70
  601. data/ext/boost/preprocessor/control/detail/while.hpp +536 -536
  602. data/ext/boost/preprocessor/control/expr_iif.hpp +31 -31
  603. data/ext/boost/preprocessor/control/if.hpp +30 -30
  604. data/ext/boost/preprocessor/control/iif.hpp +34 -34
  605. data/ext/boost/preprocessor/control/while.hpp +312 -312
  606. data/ext/boost/preprocessor/debug/error.hpp +33 -33
  607. data/ext/boost/preprocessor/detail/auto_rec.hpp +293 -293
  608. data/ext/boost/preprocessor/detail/check.hpp +48 -48
  609. data/ext/boost/preprocessor/detail/is_binary.hpp +30 -30
  610. data/ext/boost/preprocessor/empty.hpp +17 -17
  611. data/ext/boost/preprocessor/enum.hpp +17 -17
  612. data/ext/boost/preprocessor/enum_params.hpp +17 -17
  613. data/ext/boost/preprocessor/facilities/empty.hpp +21 -21
  614. data/ext/boost/preprocessor/facilities/identity.hpp +23 -23
  615. data/ext/boost/preprocessor/identity.hpp +17 -17
  616. data/ext/boost/preprocessor/inc.hpp +17 -17
  617. data/ext/boost/preprocessor/iterate.hpp +17 -17
  618. data/ext/boost/preprocessor/iteration/detail/bounds/lower1.hpp +99 -99
  619. data/ext/boost/preprocessor/iteration/detail/bounds/upper1.hpp +99 -99
  620. data/ext/boost/preprocessor/iteration/detail/iter/forward1.hpp +1342 -1342
  621. data/ext/boost/preprocessor/iteration/iterate.hpp +82 -82
  622. data/ext/boost/preprocessor/list/adt.hpp +73 -73
  623. data/ext/boost/preprocessor/list/append.hpp +40 -40
  624. data/ext/boost/preprocessor/list/detail/fold_left.hpp +279 -279
  625. data/ext/boost/preprocessor/list/detail/fold_right.hpp +277 -277
  626. data/ext/boost/preprocessor/list/fold_left.hpp +303 -303
  627. data/ext/boost/preprocessor/list/fold_right.hpp +40 -40
  628. data/ext/boost/preprocessor/list/for_each_i.hpp +65 -65
  629. data/ext/boost/preprocessor/list/reverse.hpp +40 -40
  630. data/ext/boost/preprocessor/list/transform.hpp +49 -49
  631. data/ext/boost/preprocessor/logical/and.hpp +30 -30
  632. data/ext/boost/preprocessor/logical/bitand.hpp +38 -38
  633. data/ext/boost/preprocessor/logical/bool.hpp +288 -288
  634. data/ext/boost/preprocessor/logical/compl.hpp +36 -36
  635. data/ext/boost/preprocessor/punctuation/comma.hpp +21 -21
  636. data/ext/boost/preprocessor/punctuation/comma_if.hpp +31 -31
  637. data/ext/boost/preprocessor/repeat.hpp +17 -17
  638. data/ext/boost/preprocessor/repetition/detail/for.hpp +536 -536
  639. data/ext/boost/preprocessor/repetition/enum.hpp +66 -66
  640. data/ext/boost/preprocessor/repetition/enum_binary_params.hpp +54 -54
  641. data/ext/boost/preprocessor/repetition/enum_params.hpp +41 -41
  642. data/ext/boost/preprocessor/repetition/for.hpp +306 -306
  643. data/ext/boost/preprocessor/repetition/repeat.hpp +825 -825
  644. data/ext/boost/preprocessor/repetition/repeat_from_to.hpp +87 -87
  645. data/ext/boost/preprocessor/seq/elem.hpp +304 -304
  646. data/ext/boost/preprocessor/seq/enum.hpp +288 -288
  647. data/ext/boost/preprocessor/seq/for_each_i.hpp +61 -61
  648. data/ext/boost/preprocessor/seq/seq.hpp +44 -44
  649. data/ext/boost/preprocessor/seq/size.hpp +548 -548
  650. data/ext/boost/preprocessor/slot/detail/def.hpp +49 -49
  651. data/ext/boost/preprocessor/slot/detail/shared.hpp +247 -247
  652. data/ext/boost/preprocessor/slot/slot.hpp +32 -32
  653. data/ext/boost/preprocessor/stringize.hpp +33 -33
  654. data/ext/boost/preprocessor/tuple/eat.hpp +57 -57
  655. data/ext/boost/preprocessor/tuple/elem.hpp +385 -385
  656. data/ext/boost/preprocessor/tuple/rem.hpp +72 -72
  657. data/ext/boost/preprocessor/tuple/to_list.hpp +62 -62
  658. data/ext/boost/range/as_literal.hpp +131 -0
  659. data/ext/boost/range/begin.hpp +132 -0
  660. data/ext/boost/range/config.hpp +54 -0
  661. data/ext/boost/range/const_iterator.hpp +64 -0
  662. data/ext/boost/range/detail/common.hpp +117 -0
  663. data/ext/boost/range/detail/implementation_help.hpp +99 -0
  664. data/ext/boost/range/detail/sfinae.hpp +77 -0
  665. data/ext/boost/range/detail/str_types.hpp +38 -0
  666. data/ext/boost/range/difference_type.hpp +29 -0
  667. data/ext/boost/range/distance.hpp +34 -0
  668. data/ext/boost/range/empty.hpp +34 -0
  669. data/ext/boost/range/end.hpp +131 -0
  670. data/ext/boost/range/functions.hpp +27 -0
  671. data/ext/boost/range/iterator.hpp +72 -0
  672. data/ext/boost/range/iterator_range.hpp +643 -0
  673. data/ext/boost/range/mutable_iterator.hpp +64 -0
  674. data/ext/boost/range/rbegin.hpp +65 -0
  675. data/ext/boost/range/rend.hpp +65 -0
  676. data/ext/boost/range/reverse_iterator.hpp +40 -0
  677. data/ext/boost/range/size.hpp +36 -0
  678. data/ext/boost/range/size_type.hpp +78 -0
  679. data/ext/boost/range/value_type.hpp +34 -0
  680. data/ext/boost/shared_ptr.hpp +619 -558
  681. data/ext/boost/src/pthread/exceptions.cpp +146 -0
  682. data/ext/boost/src/pthread/once.cpp +51 -0
  683. data/ext/boost/src/pthread/thread.cpp +709 -0
  684. data/ext/boost/src/pthread/timeconv.inl +130 -0
  685. data/ext/boost/src/tss_null.cpp +2 -1
  686. data/ext/boost/src/win32/exceptions.cpp +124 -0
  687. data/ext/boost/src/win32/thread.cpp +629 -0
  688. data/ext/boost/src/win32/timeconv.inl +130 -0
  689. data/ext/boost/src/{tss_dll.cpp → win32/tss_dll.cpp} +0 -0
  690. data/ext/boost/src/win32/tss_pe.cpp +269 -0
  691. data/ext/boost/static_assert.hpp +122 -118
  692. data/ext/boost/thread.hpp +21 -19
  693. data/ext/boost/thread/condition.hpp +16 -201
  694. data/ext/boost/thread/condition_variable.hpp +21 -0
  695. data/ext/boost/thread/detail/config.hpp +94 -95
  696. data/ext/boost/thread/detail/move.hpp +33 -0
  697. data/ext/boost/thread/detail/platform.hpp +71 -0
  698. data/ext/boost/thread/exceptions.hpp +103 -92
  699. data/ext/boost/thread/locks.hpp +589 -0
  700. data/ext/boost/thread/mutex.hpp +21 -170
  701. data/ext/boost/thread/once.hpp +29 -37
  702. data/ext/boost/thread/pthread/condition_variable.hpp +184 -0
  703. data/ext/boost/thread/pthread/condition_variable_fwd.hpp +66 -0
  704. data/ext/boost/thread/pthread/mutex.hpp +211 -0
  705. data/ext/boost/thread/pthread/once.hpp +85 -0
  706. data/ext/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +50 -0
  707. data/ext/boost/thread/pthread/recursive_mutex.hpp +249 -0
  708. data/ext/boost/thread/pthread/thread.hpp +331 -0
  709. data/ext/boost/thread/pthread/thread_data.hpp +101 -0
  710. data/ext/boost/thread/pthread/timespec.hpp +28 -0
  711. data/ext/boost/thread/pthread/tss.hpp +103 -0
  712. data/ext/boost/thread/recursive_mutex.hpp +21 -184
  713. data/ext/boost/thread/thread.hpp +22 -90
  714. data/ext/boost/thread/thread_time.hpp +46 -0
  715. data/ext/boost/thread/tss.hpp +18 -128
  716. data/ext/boost/thread/xtime.hpp +88 -54
  717. data/ext/boost/throw_exception.hpp +46 -46
  718. data/ext/boost/token_functions.hpp +621 -0
  719. data/ext/boost/token_iterator.hpp +128 -0
  720. data/ext/boost/tokenizer.hpp +98 -0
  721. data/ext/boost/type.hpp +18 -18
  722. data/ext/boost/type_traits/add_const.hpp +47 -47
  723. data/ext/boost/type_traits/add_pointer.hpp +72 -72
  724. data/ext/boost/type_traits/add_reference.hpp +89 -89
  725. data/ext/boost/type_traits/alignment_of.hpp +100 -100
  726. data/ext/boost/type_traits/broken_compiler_spec.hpp +117 -117
  727. data/ext/boost/type_traits/composite_traits.hpp +29 -29
  728. data/ext/boost/type_traits/config.hpp +76 -76
  729. data/ext/boost/type_traits/conversion_traits.hpp +17 -17
  730. data/ext/boost/type_traits/detail/bool_trait_def.hpp +173 -173
  731. data/ext/boost/type_traits/detail/bool_trait_undef.hpp +27 -27
  732. data/ext/boost/type_traits/detail/cv_traits_impl.hpp +97 -97
  733. data/ext/boost/type_traits/detail/false_result.hpp +28 -28
  734. data/ext/boost/type_traits/detail/ice_and.hpp +35 -35
  735. data/ext/boost/type_traits/detail/ice_eq.hpp +36 -36
  736. data/ext/boost/type_traits/detail/ice_not.hpp +31 -31
  737. data/ext/boost/type_traits/detail/ice_or.hpp +34 -34
  738. data/ext/boost/type_traits/detail/is_function_ptr_helper.hpp +220 -220
  739. data/ext/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +817 -817
  740. data/ext/boost/type_traits/detail/size_t_trait_def.hpp +58 -58
  741. data/ext/boost/type_traits/detail/size_t_trait_undef.hpp +16 -16
  742. data/ext/boost/type_traits/detail/template_arity_spec.hpp +31 -31
  743. data/ext/boost/type_traits/detail/type_trait_def.hpp +61 -61
  744. data/ext/boost/type_traits/detail/type_trait_undef.hpp +19 -19
  745. data/ext/boost/type_traits/detail/yes_no_type.hpp +26 -26
  746. data/ext/boost/type_traits/function_traits.hpp +236 -236
  747. data/ext/boost/type_traits/has_nothrow_copy.hpp +39 -38
  748. data/ext/boost/type_traits/has_trivial_copy.hpp +49 -48
  749. data/ext/boost/type_traits/ice.hpp +20 -20
  750. data/ext/boost/type_traits/integral_constant.hpp +53 -53
  751. data/ext/boost/type_traits/intrinsics.hpp +153 -137
  752. data/ext/boost/type_traits/is_abstract.hpp +144 -137
  753. data/ext/boost/type_traits/is_arithmetic.hpp +43 -43
  754. data/ext/boost/type_traits/is_array.hpp +90 -90
  755. data/ext/boost/type_traits/is_class.hpp +128 -128
  756. data/ext/boost/type_traits/is_const.hpp +142 -142
  757. data/ext/boost/type_traits/is_convertible.hpp +418 -416
  758. data/ext/boost/type_traits/is_enum.hpp +180 -180
  759. data/ext/boost/type_traits/is_float.hpp +27 -27
  760. data/ext/boost/type_traits/is_function.hpp +95 -88
  761. data/ext/boost/type_traits/is_integral.hpp +73 -71
  762. data/ext/boost/type_traits/is_member_function_pointer.hpp +134 -126
  763. data/ext/boost/type_traits/is_member_pointer.hpp +114 -108
  764. data/ext/boost/type_traits/is_pod.hpp +135 -135
  765. data/ext/boost/type_traits/is_pointer.hpp +160 -149
  766. data/ext/boost/type_traits/is_reference.hpp +116 -116
  767. data/ext/boost/type_traits/is_same.hpp +103 -103
  768. data/ext/boost/type_traits/is_scalar.hpp +55 -55
  769. data/ext/boost/type_traits/is_union.hpp +49 -49
  770. data/ext/boost/type_traits/is_void.hpp +33 -33
  771. data/ext/boost/type_traits/is_volatile.hpp +131 -131
  772. data/ext/boost/type_traits/remove_const.hpp +78 -78
  773. data/ext/boost/type_traits/remove_cv.hpp +61 -61
  774. data/ext/boost/type_traits/remove_pointer.hpp +43 -43
  775. data/ext/boost/type_traits/remove_reference.hpp +50 -50
  776. data/ext/boost/type_traits/type_with_alignment.hpp +288 -288
  777. data/ext/boost/utility.hpp +19 -19
  778. data/ext/boost/utility/addressof.hpp +58 -58
  779. data/ext/boost/utility/base_from_member.hpp +87 -87
  780. data/ext/boost/utility/compare_pointees.hpp +68 -68
  781. data/ext/boost/utility/enable_if.hpp +119 -119
  782. data/ext/boost/weak_ptr.hpp +0 -6
  783. data/ext/passenger/extconf.rb +3 -0
  784. data/ext/passenger/native_support.c +2 -0
  785. data/lib/passenger/abstract_request_handler.rb +347 -0
  786. data/lib/passenger/abstract_server.rb +31 -5
  787. data/lib/passenger/application.rb +5 -16
  788. data/lib/passenger/console_text_template.rb +2 -0
  789. data/lib/passenger/constants.rb +26 -0
  790. data/lib/passenger/dependencies.rb +23 -3
  791. data/lib/passenger/exceptions.rb +91 -0
  792. data/lib/passenger/html_template.rb +2 -0
  793. data/lib/passenger/message_channel.rb +2 -1
  794. data/lib/passenger/platform_info.rb +2 -0
  795. data/lib/passenger/rack/application_spawner.rb +108 -0
  796. data/lib/passenger/rack/request_handler.rb +85 -0
  797. data/lib/passenger/railz/application_spawner.rb +317 -0
  798. data/lib/passenger/railz/cgi_fixed.rb +68 -0
  799. data/lib/passenger/railz/framework_spawner.rb +344 -0
  800. data/lib/passenger/railz/request_handler.rb +61 -0
  801. data/lib/passenger/simple_benchmarking.rb +2 -0
  802. data/lib/passenger/spawn_manager.rb +190 -83
  803. data/lib/passenger/templates/apache2_config_snippets.txt.erb +2 -2
  804. data/lib/passenger/templates/apache_must_be_compiled_with_compatible_mpm.txt.erb +9 -0
  805. data/lib/passenger/templates/app_exited_during_initialization.html.erb +3 -3
  806. data/lib/passenger/templates/app_init_error.html.erb +2 -2
  807. data/lib/passenger/templates/database_error.html.erb +19 -12
  808. data/lib/passenger/templates/deployment_example.txt.erb +3 -1
  809. data/lib/passenger/templates/error_layout.html.erb +1 -1
  810. data/lib/passenger/templates/load_error.html.erb +2 -2
  811. data/lib/passenger/templates/welcome.txt.erb +1 -1
  812. data/lib/passenger/utils.rb +138 -14
  813. data/lib/passenger/wsgi/application_spawner.rb +94 -0
  814. data/lib/passenger/wsgi/request_handler.py +138 -0
  815. data/man/passenger-config.1 +29 -0
  816. data/man/passenger-make-enterprisey.8 +23 -0
  817. data/man/passenger-memory-stats.8 +33 -0
  818. data/man/passenger-status.8 +43 -0
  819. data/man/passenger-stress-test.1 +43 -0
  820. data/misc/copy_boost_headers.rb +102 -0
  821. data/test/ApplicationPoolServerTest.cpp +5 -3
  822. data/test/ApplicationPoolServer_ApplicationPoolTest.cpp +6 -2
  823. data/test/ApplicationPoolTest.cpp +31 -27
  824. data/test/UtilsTest.cpp +1 -0
  825. data/test/integration_tests.rb +327 -137
  826. data/test/ruby/abstract_server_spec.rb +17 -0
  827. data/test/ruby/application_spec.rb +43 -0
  828. data/test/ruby/message_channel_spec.rb +170 -0
  829. data/test/ruby/rack/application_spawner_spec.rb +43 -0
  830. data/test/ruby/rails/application_spawner_spec.rb +109 -0
  831. data/test/ruby/rails/framework_spawner_spec.rb +132 -0
  832. data/test/ruby/rails/minimal_spawner_spec.rb +37 -0
  833. data/test/ruby/rails/spawner_error_handling_spec.rb +52 -0
  834. data/test/ruby/rails/spawner_privilege_lowering_spec.rb +97 -0
  835. data/test/ruby/spawn_manager_spec.rb +178 -0
  836. data/test/ruby/spawn_server_spec.rb +26 -0
  837. data/test/stub/apache2/httpd.conf +75 -0
  838. data/test/stub/apache2/httpd.conf.erb +41 -40
  839. data/test/stub/message_channel_3.rb +2 -0
  840. data/test/stub/minimal-railsapp/vendor/rails/actionpack/lib/action_controller.rb +0 -0
  841. data/test/stub/minimal-railsapp/vendor/rails/activerecord/lib/active_record.rb +0 -0
  842. data/test/stub/rack/config.ru +4 -0
  843. data/test/stub/rack/public/rack.jpg +0 -0
  844. data/test/stub/{railsapp-without-version-spec → rails_apps/foobar}/app/controllers/application.rb +0 -0
  845. data/test/stub/rails_apps/foobar/app/controllers/bar_controller_1.rb +5 -0
  846. data/test/stub/rails_apps/foobar/app/controllers/bar_controller_2.rb +5 -0
  847. data/test/stub/rails_apps/foobar/app/controllers/foo_controller.rb +13 -0
  848. data/test/stub/{mycook → rails_apps/foobar}/app/helpers/application_helper.rb +0 -0
  849. data/test/stub/{mycook → rails_apps/foobar}/config/boot.rb +0 -0
  850. data/test/stub/{mycook → rails_apps/foobar}/config/database.yml +0 -0
  851. data/test/stub/rails_apps/foobar/config/environment.rb +59 -0
  852. data/test/stub/{mycook → rails_apps/foobar}/config/environments/development.rb +0 -0
  853. data/test/stub/{mycook → rails_apps/foobar}/config/environments/production.rb +0 -0
  854. data/test/stub/{mycook → rails_apps/foobar}/config/initializers/inflections.rb +0 -0
  855. data/test/stub/{mycook → rails_apps/foobar}/config/initializers/mime_types.rb +0 -0
  856. data/test/stub/{railsapp-without-version-spec → rails_apps/foobar}/config/routes.rb +0 -0
  857. data/test/stub/{mycook → rails_apps/mycook}/app/controllers/application.rb +0 -0
  858. data/test/stub/{mycook → rails_apps/mycook}/app/controllers/recipes_controller.rb +0 -0
  859. data/test/stub/{mycook → rails_apps/mycook}/app/controllers/uploads_controller.rb +0 -0
  860. data/test/stub/rails_apps/mycook/app/controllers/welcome_controller.rb +35 -0
  861. data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/app/helpers/application_helper.rb +0 -0
  862. data/test/stub/{mycook → rails_apps/mycook}/app/views/layouts/default.rhtml +0 -0
  863. data/test/stub/{mycook → rails_apps/mycook}/app/views/recipes/create.rhtml +0 -0
  864. data/test/stub/{mycook → rails_apps/mycook}/app/views/recipes/index.rhtml +0 -0
  865. data/test/stub/{mycook → rails_apps/mycook}/app/views/recipes/new.rhtml +0 -0
  866. data/test/stub/{mycook → rails_apps/mycook}/app/views/uploads/index.rhtml +0 -0
  867. data/test/stub/{mycook → rails_apps/mycook}/app/views/uploads/new.html.erb +0 -0
  868. data/test/stub/{mycook → rails_apps/mycook}/app/views/welcome/cached.rhtml +0 -0
  869. data/test/stub/{mycook → rails_apps/mycook}/app/views/welcome/index.rhtml +0 -0
  870. data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/boot.rb +0 -0
  871. data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/database.yml +0 -0
  872. data/test/stub/{mycook → rails_apps/mycook}/config/environment.rb +0 -0
  873. data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/environments/development.rb +0 -0
  874. data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/environments/production.rb +0 -0
  875. data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/initializers/inflections.rb +0 -0
  876. data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/initializers/mime_types.rb +0 -0
  877. data/test/stub/{mycook → rails_apps/mycook}/config/routes.rb +0 -0
  878. data/test/stub/{broken-railsapp/public → rails_apps/mycook/log}/useless.txt +0 -0
  879. data/test/stub/{mycook → rails_apps/mycook}/public/404.html +0 -0
  880. data/test/stub/{mycook → rails_apps/mycook}/public/422.html +0 -0
  881. data/test/stub/{mycook → rails_apps/mycook}/public/500.html +0 -0
  882. data/test/stub/{mycook → rails_apps/mycook}/public/dispatch.cgi +0 -0
  883. data/test/stub/{mycook → rails_apps/mycook}/public/dispatch.fcgi +0 -0
  884. data/test/stub/{mycook → rails_apps/mycook}/public/dispatch.rb +0 -0
  885. data/test/stub/{mycook → rails_apps/mycook}/public/favicon.ico +0 -0
  886. data/test/stub/{mycook → rails_apps/mycook}/public/images/angrywizard.gif +0 -0
  887. data/test/stub/{mycook → rails_apps/mycook}/public/images/cookbook.gif +0 -0
  888. data/test/stub/{mycook → rails_apps/mycook}/public/images/header.png +0 -0
  889. data/test/stub/{mycook → rails_apps/mycook}/public/images/rails.png +0 -0
  890. data/test/stub/{mycook → rails_apps/mycook}/public/javascripts/application.js +0 -0
  891. data/test/stub/{mycook → rails_apps/mycook}/public/javascripts/controls.js +0 -0
  892. data/test/stub/{mycook → rails_apps/mycook}/public/javascripts/dragdrop.js +0 -0
  893. data/test/stub/{mycook → rails_apps/mycook}/public/javascripts/effects.js +0 -0
  894. data/test/stub/{mycook → rails_apps/mycook}/public/javascripts/prototype.js +0 -0
  895. data/test/stub/{mycook → rails_apps/mycook}/public/robots.txt +0 -0
  896. data/test/stub/{mycook → rails_apps/mycook}/public/uploads.html +0 -0
  897. data/test/stub/{mycook → rails_apps/mycook}/public/welcome/cached.html +0 -0
  898. data/test/stub/{broken-railsapp4/public → rails_apps/mycook/tmp/cache}/useless.txt +0 -0
  899. data/test/stub/{broken-railsapp5/public → rails_apps/mycook/tmp/pids}/useless.txt +0 -0
  900. data/test/stub/{railsapp-without-version-spec/public → rails_apps/mycook/tmp/sessions}/useless.txt +0 -0
  901. data/test/stub/rails_apps/mycook/tmp/sockets/useless.txt +1 -0
  902. data/test/stub/spawn_server.rb +6 -2
  903. data/test/stub/upload_data.txt +494 -0
  904. data/test/stub/vendor_rails/minimal/README +1 -0
  905. data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/actionmailer/lib/action_mailer.rb +0 -0
  906. data/test/stub/vendor_rails/minimal/actionpack/lib/action_controller.rb +19 -0
  907. data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/actionpack/lib/action_pack.rb +0 -0
  908. data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/actionpack/lib/action_view.rb +0 -0
  909. data/test/stub/vendor_rails/minimal/activerecord/lib/active_record.rb +7 -0
  910. data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/activeresource/lib/active_resource.rb +0 -0
  911. data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/activesupport/lib/active_support.rb +0 -0
  912. data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/activesupport/lib/active_support/whiny_nil.rb +0 -0
  913. data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/railties/lib/dispatcher.rb +0 -0
  914. data/test/stub/vendor_rails/minimal/railties/lib/initializer.rb +51 -0
  915. data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/railties/lib/ruby_version_check.rb +0 -0
  916. data/test/stub/wsgi/passenger_wsgi.py +3 -0
  917. data/test/stub/wsgi/public/wsgi-snake.jpg +0 -0
  918. data/test/support/apache2_controller.rb +196 -0
  919. data/test/support/config.rb +4 -1
  920. data/test/support/test_helper.rb +94 -0
  921. metadata +445 -1329
  922. data/doc/cxxapi/ApplicationPoolClientServer_8h-source.html +0 -673
  923. data/doc/rdoc/classes/Passenger/ApplicationSpawner.html +0 -334
  924. data/doc/rdoc/classes/Passenger/ApplicationSpawner/Error.html +0 -98
  925. data/doc/rdoc/classes/Passenger/CGIFixed.html +0 -200
  926. data/doc/rdoc/classes/Passenger/FrameworkSpawner.html +0 -429
  927. data/doc/rdoc/classes/Passenger/FrameworkSpawner/Error.html +0 -98
  928. data/doc/rdoc/classes/Passenger/RequestHandler.html +0 -425
  929. data/doc/rdoc/files/lib/passenger/application_spawner_rb.html +0 -128
  930. data/doc/rdoc/files/lib/passenger/cgi_fixed_rb.html +0 -127
  931. data/doc/rdoc/files/lib/passenger/framework_spawner_rb.html +0 -135
  932. data/doc/rdoc/files/lib/passenger/request_handler_rb.html +0 -122
  933. data/ext/apache2/ApplicationPoolClientServer.h +0 -653
  934. data/ext/boost/bind/apply.hpp +0 -74
  935. data/ext/boost/bind/make_adaptable.hpp +0 -187
  936. data/ext/boost/bind/mem_fn_vw.hpp +0 -130
  937. data/ext/boost/bind/protect.hpp +0 -144
  938. data/ext/boost/format.hpp +0 -59
  939. data/ext/boost/format/alt_sstream.hpp +0 -176
  940. data/ext/boost/format/alt_sstream_impl.hpp +0 -296
  941. data/ext/boost/format/detail/compat_workarounds.hpp +0 -86
  942. data/ext/boost/format/detail/config_macros.hpp +0 -97
  943. data/ext/boost/format/detail/msvc_disambiguater.hpp +0 -56
  944. data/ext/boost/format/detail/unset_macros.hpp +0 -34
  945. data/ext/boost/format/detail/workarounds_gcc-2_95.hpp +0 -162
  946. data/ext/boost/format/detail/workarounds_stlport.hpp +0 -42
  947. data/ext/boost/format/exceptions.hpp +0 -103
  948. data/ext/boost/format/feed_args.hpp +0 -267
  949. data/ext/boost/format/format_class.hpp +0 -143
  950. data/ext/boost/format/format_fwd.hpp +0 -49
  951. data/ext/boost/format/format_implementation.hpp +0 -277
  952. data/ext/boost/format/free_funcs.hpp +0 -70
  953. data/ext/boost/format/group.hpp +0 -676
  954. data/ext/boost/format/internals.hpp +0 -199
  955. data/ext/boost/format/internals_fwd.hpp +0 -60
  956. data/ext/boost/format/parsing.hpp +0 -491
  957. data/ext/boost/function/detail/gen_maybe_include.pl +0 -37
  958. data/ext/boost/function/function0.hpp +0 -12
  959. data/ext/boost/function/function1.hpp +0 -12
  960. data/ext/boost/function/function10.hpp +0 -12
  961. data/ext/boost/function/function2.hpp +0 -12
  962. data/ext/boost/function/function3.hpp +0 -12
  963. data/ext/boost/function/function4.hpp +0 -12
  964. data/ext/boost/function/function5.hpp +0 -12
  965. data/ext/boost/function/function6.hpp +0 -12
  966. data/ext/boost/function/function7.hpp +0 -12
  967. data/ext/boost/function/function8.hpp +0 -12
  968. data/ext/boost/function/function9.hpp +0 -12
  969. data/ext/boost/function/gen_function_N.pl +0 -26
  970. data/ext/boost/mpl/O1_size.hpp +0 -40
  971. data/ext/boost/mpl/O1_size_fwd.hpp +0 -24
  972. data/ext/boost/mpl/accumulate.hpp +0 -39
  973. data/ext/boost/mpl/advance.hpp +0 -76
  974. data/ext/boost/mpl/advance_fwd.hpp +0 -28
  975. data/ext/boost/mpl/alias.hpp +0 -21
  976. data/ext/boost/mpl/arithmetic.hpp +0 -25
  977. data/ext/boost/mpl/as_sequence.hpp +0 -38
  978. data/ext/boost/mpl/at.hpp +0 -52
  979. data/ext/boost/mpl/at_fwd.hpp +0 -24
  980. data/ext/boost/mpl/aux_/O1_size_impl.hpp +0 -87
  981. data/ext/boost/mpl/aux_/advance_backward.hpp +0 -124
  982. data/ext/boost/mpl/aux_/advance_forward.hpp +0 -123
  983. data/ext/boost/mpl/aux_/apply_1st.hpp +0 -35
  984. data/ext/boost/mpl/aux_/arithmetic_op.hpp +0 -92
  985. data/ext/boost/mpl/aux_/at_impl.hpp +0 -45
  986. data/ext/boost/mpl/aux_/back_impl.hpp +0 -43
  987. data/ext/boost/mpl/aux_/basic_bind.hpp +0 -21
  988. data/ext/boost/mpl/aux_/begin_end_impl.hpp +0 -100
  989. data/ext/boost/mpl/aux_/clear_impl.hpp +0 -35
  990. data/ext/boost/mpl/aux_/comparison_op.hpp +0 -83
  991. data/ext/boost/mpl/aux_/config/dependent_nttp.hpp +0 -35
  992. data/ext/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +0 -27
  993. data/ext/boost/mpl/aux_/config/forwarding.hpp +0 -27
  994. data/ext/boost/mpl/aux_/config/operators.hpp +0 -33
  995. data/ext/boost/mpl/aux_/config/typeof.hpp +0 -38
  996. data/ext/boost/mpl/aux_/contains_impl.hpp +0 -61
  997. data/ext/boost/mpl/aux_/count_args.hpp +0 -105
  998. data/ext/boost/mpl/aux_/count_impl.hpp +0 -44
  999. data/ext/boost/mpl/aux_/empty_impl.hpp +0 -43
  1000. data/ext/boost/mpl/aux_/erase_impl.hpp +0 -69
  1001. data/ext/boost/mpl/aux_/erase_key_impl.hpp +0 -32
  1002. data/ext/boost/mpl/aux_/filter_iter.hpp +0 -140
  1003. data/ext/boost/mpl/aux_/find_if_pred.hpp +0 -31
  1004. data/ext/boost/mpl/aux_/fold_impl.hpp +0 -43
  1005. data/ext/boost/mpl/aux_/fold_impl_body.hpp +0 -365
  1006. data/ext/boost/mpl/aux_/fold_op.hpp +0 -37
  1007. data/ext/boost/mpl/aux_/fold_pred.hpp +0 -37
  1008. data/ext/boost/mpl/aux_/front_impl.hpp +0 -41
  1009. data/ext/boost/mpl/aux_/has_begin.hpp +0 -23
  1010. data/ext/boost/mpl/aux_/has_key_impl.hpp +0 -34
  1011. data/ext/boost/mpl/aux_/has_rebind.hpp +0 -99
  1012. data/ext/boost/mpl/aux_/has_size.hpp +0 -23
  1013. data/ext/boost/mpl/aux_/has_tag.hpp +0 -23
  1014. data/ext/boost/mpl/aux_/insert_impl.hpp +0 -68
  1015. data/ext/boost/mpl/aux_/insert_range_impl.hpp +0 -77
  1016. data/ext/boost/mpl/aux_/inserter_algorithm.hpp +0 -159
  1017. data/ext/boost/mpl/aux_/is_msvc_eti_arg.hpp +0 -64
  1018. data/ext/boost/mpl/aux_/iter_apply.hpp +0 -47
  1019. data/ext/boost/mpl/aux_/iter_fold_if_impl.hpp +0 -210
  1020. data/ext/boost/mpl/aux_/iter_fold_impl.hpp +0 -42
  1021. data/ext/boost/mpl/aux_/iter_push_front.hpp +0 -36
  1022. data/ext/boost/mpl/aux_/joint_iter.hpp +0 -120
  1023. data/ext/boost/mpl/aux_/lambda_no_ctps.hpp +0 -193
  1024. data/ext/boost/mpl/aux_/lambda_spec.hpp +0 -49
  1025. data/ext/boost/mpl/aux_/largest_int.hpp +0 -63
  1026. data/ext/boost/mpl/aux_/logical_op.hpp +0 -165
  1027. data/ext/boost/mpl/aux_/msvc_dtw.hpp +0 -68
  1028. data/ext/boost/mpl/aux_/msvc_eti_base.hpp +0 -77
  1029. data/ext/boost/mpl/aux_/msvc_is_class.hpp +0 -58
  1030. data/ext/boost/mpl/aux_/msvc_type.hpp +0 -62
  1031. data/ext/boost/mpl/aux_/numeric_cast_utils.hpp +0 -77
  1032. data/ext/boost/mpl/aux_/numeric_op.hpp +0 -311
  1033. data/ext/boost/mpl/aux_/order_impl.hpp +0 -76
  1034. data/ext/boost/mpl/aux_/overload_names.hpp +0 -48
  1035. data/ext/boost/mpl/aux_/partition_op.hpp +0 -58
  1036. data/ext/boost/mpl/aux_/pop_back_impl.hpp +0 -34
  1037. data/ext/boost/mpl/aux_/pop_front_impl.hpp +0 -44
  1038. data/ext/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp +0 -97
  1039. data/ext/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp +0 -97
  1040. data/ext/boost/mpl/aux_/preprocessed/bcc/and.hpp +0 -69
  1041. data/ext/boost/mpl/aux_/preprocessed/bcc/apply.hpp +0 -169
  1042. data/ext/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp +0 -52
  1043. data/ext/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp +0 -456
  1044. data/ext/boost/mpl/aux_/preprocessed/bcc/arg.hpp +0 -117
  1045. data/ext/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp +0 -300
  1046. data/ext/boost/mpl/aux_/preprocessed/bcc/bind.hpp +0 -397
  1047. data/ext/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp +0 -46
  1048. data/ext/boost/mpl/aux_/preprocessed/bcc/bitand.hpp +0 -147
  1049. data/ext/boost/mpl/aux_/preprocessed/bcc/bitor.hpp +0 -147
  1050. data/ext/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp +0 -147
  1051. data/ext/boost/mpl/aux_/preprocessed/bcc/deque.hpp +0 -323
  1052. data/ext/boost/mpl/aux_/preprocessed/bcc/divides.hpp +0 -146
  1053. data/ext/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp +0 -94
  1054. data/ext/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp +0 -180
  1055. data/ext/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp +0 -558
  1056. data/ext/boost/mpl/aux_/preprocessed/bcc/greater.hpp +0 -94
  1057. data/ext/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp +0 -94
  1058. data/ext/boost/mpl/aux_/preprocessed/bcc/inherit.hpp +0 -139
  1059. data/ext/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp +0 -133
  1060. data/ext/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp +0 -180
  1061. data/ext/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp +0 -229
  1062. data/ext/boost/mpl/aux_/preprocessed/bcc/less.hpp +0 -94
  1063. data/ext/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp +0 -94
  1064. data/ext/boost/mpl/aux_/preprocessed/bcc/list.hpp +0 -323
  1065. data/ext/boost/mpl/aux_/preprocessed/bcc/list_c.hpp +0 -328
  1066. data/ext/boost/mpl/aux_/preprocessed/bcc/map.hpp +0 -323
  1067. data/ext/boost/mpl/aux_/preprocessed/bcc/minus.hpp +0 -146
  1068. data/ext/boost/mpl/aux_/preprocessed/bcc/modulus.hpp +0 -101
  1069. data/ext/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp +0 -94
  1070. data/ext/boost/mpl/aux_/preprocessed/bcc/or.hpp +0 -69
  1071. data/ext/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp +0 -105
  1072. data/ext/boost/mpl/aux_/preprocessed/bcc/plus.hpp +0 -146
  1073. data/ext/boost/mpl/aux_/preprocessed/bcc/quote.hpp +0 -11
  1074. data/ext/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp +0 -295
  1075. data/ext/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp +0 -295
  1076. data/ext/boost/mpl/aux_/preprocessed/bcc/set.hpp +0 -323
  1077. data/ext/boost/mpl/aux_/preprocessed/bcc/set_c.hpp +0 -328
  1078. data/ext/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp +0 -99
  1079. data/ext/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp +0 -99
  1080. data/ext/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp +0 -40
  1081. data/ext/boost/mpl/aux_/preprocessed/bcc/times.hpp +0 -146
  1082. data/ext/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp +0 -97
  1083. data/ext/boost/mpl/aux_/preprocessed/bcc/vector.hpp +0 -323
  1084. data/ext/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp +0 -309
  1085. data/ext/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp +0 -97
  1086. data/ext/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp +0 -97
  1087. data/ext/boost/mpl/aux_/preprocessed/bcc551/and.hpp +0 -69
  1088. data/ext/boost/mpl/aux_/preprocessed/bcc551/apply.hpp +0 -169
  1089. data/ext/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp +0 -52
  1090. data/ext/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp +0 -456
  1091. data/ext/boost/mpl/aux_/preprocessed/bcc551/arg.hpp +0 -123
  1092. data/ext/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp +0 -306
  1093. data/ext/boost/mpl/aux_/preprocessed/bcc551/bind.hpp +0 -403
  1094. data/ext/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp +0 -46
  1095. data/ext/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp +0 -147
  1096. data/ext/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp +0 -147
  1097. data/ext/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp +0 -147
  1098. data/ext/boost/mpl/aux_/preprocessed/bcc551/deque.hpp +0 -323
  1099. data/ext/boost/mpl/aux_/preprocessed/bcc551/divides.hpp +0 -146
  1100. data/ext/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp +0 -94
  1101. data/ext/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp +0 -180
  1102. data/ext/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp +0 -558
  1103. data/ext/boost/mpl/aux_/preprocessed/bcc551/greater.hpp +0 -94
  1104. data/ext/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp +0 -94
  1105. data/ext/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp +0 -141
  1106. data/ext/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp +0 -133
  1107. data/ext/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp +0 -180
  1108. data/ext/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp +0 -229
  1109. data/ext/boost/mpl/aux_/preprocessed/bcc551/less.hpp +0 -94
  1110. data/ext/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp +0 -94
  1111. data/ext/boost/mpl/aux_/preprocessed/bcc551/list.hpp +0 -323
  1112. data/ext/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp +0 -328
  1113. data/ext/boost/mpl/aux_/preprocessed/bcc551/map.hpp +0 -323
  1114. data/ext/boost/mpl/aux_/preprocessed/bcc551/minus.hpp +0 -146
  1115. data/ext/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp +0 -101
  1116. data/ext/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp +0 -94
  1117. data/ext/boost/mpl/aux_/preprocessed/bcc551/or.hpp +0 -69
  1118. data/ext/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp +0 -105
  1119. data/ext/boost/mpl/aux_/preprocessed/bcc551/plus.hpp +0 -146
  1120. data/ext/boost/mpl/aux_/preprocessed/bcc551/quote.hpp +0 -11
  1121. data/ext/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp +0 -295
  1122. data/ext/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp +0 -295
  1123. data/ext/boost/mpl/aux_/preprocessed/bcc551/set.hpp +0 -323
  1124. data/ext/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp +0 -328
  1125. data/ext/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp +0 -99
  1126. data/ext/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp +0 -99
  1127. data/ext/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp +0 -40
  1128. data/ext/boost/mpl/aux_/preprocessed/bcc551/times.hpp +0 -146
  1129. data/ext/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp +0 -97
  1130. data/ext/boost/mpl/aux_/preprocessed/bcc551/vector.hpp +0 -323
  1131. data/ext/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp +0 -309
  1132. data/ext/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp +0 -97
  1133. data/ext/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp +0 -97
  1134. data/ext/boost/mpl/aux_/preprocessed/dmc/and.hpp +0 -69
  1135. data/ext/boost/mpl/aux_/preprocessed/dmc/apply.hpp +0 -169
  1136. data/ext/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp +0 -52
  1137. data/ext/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp +0 -84
  1138. data/ext/boost/mpl/aux_/preprocessed/dmc/arg.hpp +0 -123
  1139. data/ext/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp +0 -406
  1140. data/ext/boost/mpl/aux_/preprocessed/dmc/bind.hpp +0 -515
  1141. data/ext/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp +0 -53
  1142. data/ext/boost/mpl/aux_/preprocessed/dmc/bitand.hpp +0 -147
  1143. data/ext/boost/mpl/aux_/preprocessed/dmc/bitor.hpp +0 -147
  1144. data/ext/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp +0 -147
  1145. data/ext/boost/mpl/aux_/preprocessed/dmc/deque.hpp +0 -323
  1146. data/ext/boost/mpl/aux_/preprocessed/dmc/divides.hpp +0 -146
  1147. data/ext/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp +0 -94
  1148. data/ext/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp +0 -180
  1149. data/ext/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp +0 -536
  1150. data/ext/boost/mpl/aux_/preprocessed/dmc/greater.hpp +0 -94
  1151. data/ext/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp +0 -94
  1152. data/ext/boost/mpl/aux_/preprocessed/dmc/inherit.hpp +0 -141
  1153. data/ext/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp +0 -133
  1154. data/ext/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp +0 -180
  1155. data/ext/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp +0 -229
  1156. data/ext/boost/mpl/aux_/preprocessed/dmc/less.hpp +0 -94
  1157. data/ext/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp +0 -94
  1158. data/ext/boost/mpl/aux_/preprocessed/dmc/list.hpp +0 -323
  1159. data/ext/boost/mpl/aux_/preprocessed/dmc/list_c.hpp +0 -328
  1160. data/ext/boost/mpl/aux_/preprocessed/dmc/map.hpp +0 -323
  1161. data/ext/boost/mpl/aux_/preprocessed/dmc/minus.hpp +0 -146
  1162. data/ext/boost/mpl/aux_/preprocessed/dmc/modulus.hpp +0 -101
  1163. data/ext/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp +0 -94
  1164. data/ext/boost/mpl/aux_/preprocessed/dmc/or.hpp +0 -69
  1165. data/ext/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp +0 -105
  1166. data/ext/boost/mpl/aux_/preprocessed/dmc/plus.hpp +0 -146
  1167. data/ext/boost/mpl/aux_/preprocessed/dmc/quote.hpp +0 -123
  1168. data/ext/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp +0 -231
  1169. data/ext/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp +0 -231
  1170. data/ext/boost/mpl/aux_/preprocessed/dmc/set.hpp +0 -323
  1171. data/ext/boost/mpl/aux_/preprocessed/dmc/set_c.hpp +0 -328
  1172. data/ext/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp +0 -99
  1173. data/ext/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp +0 -99
  1174. data/ext/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp +0 -11
  1175. data/ext/boost/mpl/aux_/preprocessed/dmc/times.hpp +0 -146
  1176. data/ext/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp +0 -94
  1177. data/ext/boost/mpl/aux_/preprocessed/dmc/vector.hpp +0 -323
  1178. data/ext/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp +0 -309
  1179. data/ext/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp +0 -97
  1180. data/ext/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp +0 -97
  1181. data/ext/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp +0 -440
  1182. data/ext/boost/mpl/aux_/preprocessed/gcc/bitand.hpp +0 -147
  1183. data/ext/boost/mpl/aux_/preprocessed/gcc/bitor.hpp +0 -147
  1184. data/ext/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp +0 -147
  1185. data/ext/boost/mpl/aux_/preprocessed/gcc/deque.hpp +0 -323
  1186. data/ext/boost/mpl/aux_/preprocessed/gcc/divides.hpp +0 -146
  1187. data/ext/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp +0 -94
  1188. data/ext/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp +0 -180
  1189. data/ext/boost/mpl/aux_/preprocessed/gcc/greater.hpp +0 -94
  1190. data/ext/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp +0 -94
  1191. data/ext/boost/mpl/aux_/preprocessed/gcc/inherit.hpp +0 -141
  1192. data/ext/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp +0 -133
  1193. data/ext/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp +0 -180
  1194. data/ext/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp +0 -229
  1195. data/ext/boost/mpl/aux_/preprocessed/gcc/less.hpp +0 -94
  1196. data/ext/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp +0 -94
  1197. data/ext/boost/mpl/aux_/preprocessed/gcc/list.hpp +0 -323
  1198. data/ext/boost/mpl/aux_/preprocessed/gcc/list_c.hpp +0 -328
  1199. data/ext/boost/mpl/aux_/preprocessed/gcc/map.hpp +0 -323
  1200. data/ext/boost/mpl/aux_/preprocessed/gcc/minus.hpp +0 -146
  1201. data/ext/boost/mpl/aux_/preprocessed/gcc/modulus.hpp +0 -101
  1202. data/ext/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp +0 -94
  1203. data/ext/boost/mpl/aux_/preprocessed/gcc/plus.hpp +0 -146
  1204. data/ext/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp +0 -231
  1205. data/ext/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp +0 -231
  1206. data/ext/boost/mpl/aux_/preprocessed/gcc/set.hpp +0 -323
  1207. data/ext/boost/mpl/aux_/preprocessed/gcc/set_c.hpp +0 -328
  1208. data/ext/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp +0 -99
  1209. data/ext/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp +0 -99
  1210. data/ext/boost/mpl/aux_/preprocessed/gcc/times.hpp +0 -146
  1211. data/ext/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp +0 -94
  1212. data/ext/boost/mpl/aux_/preprocessed/gcc/vector.hpp +0 -323
  1213. data/ext/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp +0 -309
  1214. data/ext/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp +0 -132
  1215. data/ext/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp +0 -132
  1216. data/ext/boost/mpl/aux_/preprocessed/msvc60/and.hpp +0 -73
  1217. data/ext/boost/mpl/aux_/preprocessed/msvc60/apply.hpp +0 -166
  1218. data/ext/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp +0 -46
  1219. data/ext/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp +0 -247
  1220. data/ext/boost/mpl/aux_/preprocessed/msvc60/arg.hpp +0 -123
  1221. data/ext/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp +0 -328
  1222. data/ext/boost/mpl/aux_/preprocessed/msvc60/bind.hpp +0 -432
  1223. data/ext/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp +0 -46
  1224. data/ext/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp +0 -149
  1225. data/ext/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp +0 -149
  1226. data/ext/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp +0 -149
  1227. data/ext/boost/mpl/aux_/preprocessed/msvc60/deque.hpp +0 -556
  1228. data/ext/boost/mpl/aux_/preprocessed/msvc60/divides.hpp +0 -148
  1229. data/ext/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp +0 -102
  1230. data/ext/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp +0 -293
  1231. data/ext/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp +0 -554
  1232. data/ext/boost/mpl/aux_/preprocessed/msvc60/greater.hpp +0 -102
  1233. data/ext/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp +0 -102
  1234. data/ext/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp +0 -166
  1235. data/ext/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp +0 -133
  1236. data/ext/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp +0 -293
  1237. data/ext/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp +0 -229
  1238. data/ext/boost/mpl/aux_/preprocessed/msvc60/less.hpp +0 -102
  1239. data/ext/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp +0 -102
  1240. data/ext/boost/mpl/aux_/preprocessed/msvc60/list.hpp +0 -556
  1241. data/ext/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp +0 -534
  1242. data/ext/boost/mpl/aux_/preprocessed/msvc60/map.hpp +0 -556
  1243. data/ext/boost/mpl/aux_/preprocessed/msvc60/minus.hpp +0 -148
  1244. data/ext/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp +0 -115
  1245. data/ext/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp +0 -102
  1246. data/ext/boost/mpl/aux_/preprocessed/msvc60/or.hpp +0 -73
  1247. data/ext/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp +0 -105
  1248. data/ext/boost/mpl/aux_/preprocessed/msvc60/plus.hpp +0 -148
  1249. data/ext/boost/mpl/aux_/preprocessed/msvc60/quote.hpp +0 -11
  1250. data/ext/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp +0 -343
  1251. data/ext/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp +0 -343
  1252. data/ext/boost/mpl/aux_/preprocessed/msvc60/set.hpp +0 -556
  1253. data/ext/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp +0 -534
  1254. data/ext/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp +0 -114
  1255. data/ext/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp +0 -114
  1256. data/ext/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp +0 -46
  1257. data/ext/boost/mpl/aux_/preprocessed/msvc60/times.hpp +0 -148
  1258. data/ext/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp +0 -109
  1259. data/ext/boost/mpl/aux_/preprocessed/msvc60/vector.hpp +0 -556
  1260. data/ext/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp +0 -534
  1261. data/ext/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp +0 -97
  1262. data/ext/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp +0 -97
  1263. data/ext/boost/mpl/aux_/preprocessed/msvc70/and.hpp +0 -71
  1264. data/ext/boost/mpl/aux_/preprocessed/msvc70/apply.hpp +0 -160
  1265. data/ext/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp +0 -46
  1266. data/ext/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp +0 -138
  1267. data/ext/boost/mpl/aux_/preprocessed/msvc70/arg.hpp +0 -123
  1268. data/ext/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp +0 -328
  1269. data/ext/boost/mpl/aux_/preprocessed/msvc70/bind.hpp +0 -432
  1270. data/ext/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp +0 -46
  1271. data/ext/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp +0 -151
  1272. data/ext/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp +0 -151
  1273. data/ext/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp +0 -151
  1274. data/ext/boost/mpl/aux_/preprocessed/msvc70/deque.hpp +0 -556
  1275. data/ext/boost/mpl/aux_/preprocessed/msvc70/divides.hpp +0 -150
  1276. data/ext/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp +0 -102
  1277. data/ext/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp +0 -245
  1278. data/ext/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp +0 -554
  1279. data/ext/boost/mpl/aux_/preprocessed/msvc70/greater.hpp +0 -102
  1280. data/ext/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp +0 -102
  1281. data/ext/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp +0 -166
  1282. data/ext/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp +0 -133
  1283. data/ext/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp +0 -245
  1284. data/ext/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp +0 -229
  1285. data/ext/boost/mpl/aux_/preprocessed/msvc70/less.hpp +0 -102
  1286. data/ext/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp +0 -102
  1287. data/ext/boost/mpl/aux_/preprocessed/msvc70/list.hpp +0 -556
  1288. data/ext/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp +0 -534
  1289. data/ext/boost/mpl/aux_/preprocessed/msvc70/map.hpp +0 -556
  1290. data/ext/boost/mpl/aux_/preprocessed/msvc70/minus.hpp +0 -150
  1291. data/ext/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp +0 -115
  1292. data/ext/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp +0 -102
  1293. data/ext/boost/mpl/aux_/preprocessed/msvc70/or.hpp +0 -71
  1294. data/ext/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp +0 -105
  1295. data/ext/boost/mpl/aux_/preprocessed/msvc70/plus.hpp +0 -150
  1296. data/ext/boost/mpl/aux_/preprocessed/msvc70/quote.hpp +0 -116
  1297. data/ext/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp +0 -295
  1298. data/ext/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp +0 -295
  1299. data/ext/boost/mpl/aux_/preprocessed/msvc70/set.hpp +0 -556
  1300. data/ext/boost/mpl/aux_/preprocessed/msvc70/set_c.hpp +0 -534
  1301. data/ext/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp +0 -114
  1302. data/ext/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp +0 -114
  1303. data/ext/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp +0 -46
  1304. data/ext/boost/mpl/aux_/preprocessed/msvc70/times.hpp +0 -150
  1305. data/ext/boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp +0 -109
  1306. data/ext/boost/mpl/aux_/preprocessed/msvc70/vector.hpp +0 -556
  1307. data/ext/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp +0 -534
  1308. data/ext/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp +0 -97
  1309. data/ext/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp +0 -97
  1310. data/ext/boost/mpl/aux_/preprocessed/mwcw/and.hpp +0 -69
  1311. data/ext/boost/mpl/aux_/preprocessed/mwcw/apply.hpp +0 -169
  1312. data/ext/boost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp +0 -52
  1313. data/ext/boost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp +0 -456
  1314. data/ext/boost/mpl/aux_/preprocessed/mwcw/arg.hpp +0 -123
  1315. data/ext/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp +0 -440
  1316. data/ext/boost/mpl/aux_/preprocessed/mwcw/bind.hpp +0 -561
  1317. data/ext/boost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp +0 -52
  1318. data/ext/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp +0 -147
  1319. data/ext/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp +0 -147
  1320. data/ext/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp +0 -147
  1321. data/ext/boost/mpl/aux_/preprocessed/mwcw/deque.hpp +0 -323
  1322. data/ext/boost/mpl/aux_/preprocessed/mwcw/divides.hpp +0 -146
  1323. data/ext/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp +0 -94
  1324. data/ext/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp +0 -180
  1325. data/ext/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp +0 -554
  1326. data/ext/boost/mpl/aux_/preprocessed/mwcw/greater.hpp +0 -94
  1327. data/ext/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp +0 -94
  1328. data/ext/boost/mpl/aux_/preprocessed/mwcw/inherit.hpp +0 -141
  1329. data/ext/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp +0 -133
  1330. data/ext/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp +0 -180
  1331. data/ext/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp +0 -229
  1332. data/ext/boost/mpl/aux_/preprocessed/mwcw/less.hpp +0 -94
  1333. data/ext/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp +0 -94
  1334. data/ext/boost/mpl/aux_/preprocessed/mwcw/list.hpp +0 -323
  1335. data/ext/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp +0 -328
  1336. data/ext/boost/mpl/aux_/preprocessed/mwcw/map.hpp +0 -323
  1337. data/ext/boost/mpl/aux_/preprocessed/mwcw/minus.hpp +0 -146
  1338. data/ext/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp +0 -101
  1339. data/ext/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp +0 -94
  1340. data/ext/boost/mpl/aux_/preprocessed/mwcw/or.hpp +0 -69
  1341. data/ext/boost/mpl/aux_/preprocessed/mwcw/placeholders.hpp +0 -105
  1342. data/ext/boost/mpl/aux_/preprocessed/mwcw/plus.hpp +0 -146
  1343. data/ext/boost/mpl/aux_/preprocessed/mwcw/quote.hpp +0 -123
  1344. data/ext/boost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp +0 -231
  1345. data/ext/boost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp +0 -231
  1346. data/ext/boost/mpl/aux_/preprocessed/mwcw/set.hpp +0 -323
  1347. data/ext/boost/mpl/aux_/preprocessed/mwcw/set_c.hpp +0 -328
  1348. data/ext/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp +0 -99
  1349. data/ext/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp +0 -99
  1350. data/ext/boost/mpl/aux_/preprocessed/mwcw/template_arity.hpp +0 -11
  1351. data/ext/boost/mpl/aux_/preprocessed/mwcw/times.hpp +0 -146
  1352. data/ext/boost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp +0 -94
  1353. data/ext/boost/mpl/aux_/preprocessed/mwcw/vector.hpp +0 -323
  1354. data/ext/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp +0 -309
  1355. data/ext/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp +0 -97
  1356. data/ext/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp +0 -97
  1357. data/ext/boost/mpl/aux_/preprocessed/no_ctps/and.hpp +0 -73
  1358. data/ext/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp +0 -268
  1359. data/ext/boost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp +0 -50
  1360. data/ext/boost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp +0 -78
  1361. data/ext/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp +0 -123
  1362. data/ext/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp +0 -486
  1363. data/ext/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp +0 -590
  1364. data/ext/boost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp +0 -52
  1365. data/ext/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp +0 -134
  1366. data/ext/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp +0 -134
  1367. data/ext/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp +0 -134
  1368. data/ext/boost/mpl/aux_/preprocessed/no_ctps/deque.hpp +0 -556
  1369. data/ext/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp +0 -133
  1370. data/ext/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp +0 -94
  1371. data/ext/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp +0 -245
  1372. data/ext/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp +0 -554
  1373. data/ext/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp +0 -94
  1374. data/ext/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp +0 -94
  1375. data/ext/boost/mpl/aux_/preprocessed/no_ctps/inherit.hpp +0 -166
  1376. data/ext/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp +0 -133
  1377. data/ext/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp +0 -245
  1378. data/ext/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp +0 -229
  1379. data/ext/boost/mpl/aux_/preprocessed/no_ctps/less.hpp +0 -94
  1380. data/ext/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp +0 -94
  1381. data/ext/boost/mpl/aux_/preprocessed/no_ctps/list.hpp +0 -556
  1382. data/ext/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp +0 -534
  1383. data/ext/boost/mpl/aux_/preprocessed/no_ctps/map.hpp +0 -556
  1384. data/ext/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp +0 -133
  1385. data/ext/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp +0 -101
  1386. data/ext/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp +0 -94
  1387. data/ext/boost/mpl/aux_/preprocessed/no_ctps/or.hpp +0 -73
  1388. data/ext/boost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp +0 -105
  1389. data/ext/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp +0 -133
  1390. data/ext/boost/mpl/aux_/preprocessed/no_ctps/quote.hpp +0 -116
  1391. data/ext/boost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp +0 -295
  1392. data/ext/boost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp +0 -295
  1393. data/ext/boost/mpl/aux_/preprocessed/no_ctps/set.hpp +0 -556
  1394. data/ext/boost/mpl/aux_/preprocessed/no_ctps/set_c.hpp +0 -534
  1395. data/ext/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp +0 -99
  1396. data/ext/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp +0 -99
  1397. data/ext/boost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp +0 -40
  1398. data/ext/boost/mpl/aux_/preprocessed/no_ctps/times.hpp +0 -133
  1399. data/ext/boost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp +0 -109
  1400. data/ext/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp +0 -556
  1401. data/ext/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp +0 -534
  1402. data/ext/boost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp +0 -97
  1403. data/ext/boost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp +0 -97
  1404. data/ext/boost/mpl/aux_/preprocessed/no_ttp/and.hpp +0 -69
  1405. data/ext/boost/mpl/aux_/preprocessed/no_ttp/apply.hpp +0 -169
  1406. data/ext/boost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp +0 -52
  1407. data/ext/boost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp +0 -84
  1408. data/ext/boost/mpl/aux_/preprocessed/no_ttp/arg.hpp +0 -123
  1409. data/ext/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp +0 -369
  1410. data/ext/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp +0 -466
  1411. data/ext/boost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp +0 -52
  1412. data/ext/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp +0 -157
  1413. data/ext/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp +0 -157
  1414. data/ext/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp +0 -157
  1415. data/ext/boost/mpl/aux_/preprocessed/no_ttp/deque.hpp +0 -323
  1416. data/ext/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp +0 -156
  1417. data/ext/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp +0 -98
  1418. data/ext/boost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp +0 -180
  1419. data/ext/boost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp +0 -554
  1420. data/ext/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp +0 -98
  1421. data/ext/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp +0 -98
  1422. data/ext/boost/mpl/aux_/preprocessed/no_ttp/inherit.hpp +0 -141
  1423. data/ext/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp +0 -133
  1424. data/ext/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp +0 -180
  1425. data/ext/boost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp +0 -229
  1426. data/ext/boost/mpl/aux_/preprocessed/no_ttp/less.hpp +0 -98
  1427. data/ext/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp +0 -98
  1428. data/ext/boost/mpl/aux_/preprocessed/no_ttp/list.hpp +0 -323
  1429. data/ext/boost/mpl/aux_/preprocessed/no_ttp/list_c.hpp +0 -328
  1430. data/ext/boost/mpl/aux_/preprocessed/no_ttp/map.hpp +0 -323
  1431. data/ext/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp +0 -156
  1432. data/ext/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp +0 -111
  1433. data/ext/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp +0 -98
  1434. data/ext/boost/mpl/aux_/preprocessed/no_ttp/or.hpp +0 -69
  1435. data/ext/boost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp +0 -105
  1436. data/ext/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp +0 -156
  1437. data/ext/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp +0 -11
  1438. data/ext/boost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp +0 -231
  1439. data/ext/boost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp +0 -231
  1440. data/ext/boost/mpl/aux_/preprocessed/no_ttp/set.hpp +0 -323
  1441. data/ext/boost/mpl/aux_/preprocessed/no_ttp/set_c.hpp +0 -328
  1442. data/ext/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp +0 -110
  1443. data/ext/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp +0 -110
  1444. data/ext/boost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp +0 -40
  1445. data/ext/boost/mpl/aux_/preprocessed/no_ttp/times.hpp +0 -156
  1446. data/ext/boost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp +0 -94
  1447. data/ext/boost/mpl/aux_/preprocessed/no_ttp/vector.hpp +0 -323
  1448. data/ext/boost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp +0 -309
  1449. data/ext/boost/mpl/aux_/preprocessed/plain/advance_backward.hpp +0 -97
  1450. data/ext/boost/mpl/aux_/preprocessed/plain/advance_forward.hpp +0 -97
  1451. data/ext/boost/mpl/aux_/preprocessed/plain/and.hpp +0 -64
  1452. data/ext/boost/mpl/aux_/preprocessed/plain/apply.hpp +0 -139
  1453. data/ext/boost/mpl/aux_/preprocessed/plain/apply_fwd.hpp +0 -52
  1454. data/ext/boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp +0 -84
  1455. data/ext/boost/mpl/aux_/preprocessed/plain/arg.hpp +0 -123
  1456. data/ext/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp +0 -440
  1457. data/ext/boost/mpl/aux_/preprocessed/plain/bind.hpp +0 -561
  1458. data/ext/boost/mpl/aux_/preprocessed/plain/bind_fwd.hpp +0 -52
  1459. data/ext/boost/mpl/aux_/preprocessed/plain/bitand.hpp +0 -142
  1460. data/ext/boost/mpl/aux_/preprocessed/plain/bitor.hpp +0 -142
  1461. data/ext/boost/mpl/aux_/preprocessed/plain/bitxor.hpp +0 -142
  1462. data/ext/boost/mpl/aux_/preprocessed/plain/deque.hpp +0 -323
  1463. data/ext/boost/mpl/aux_/preprocessed/plain/divides.hpp +0 -141
  1464. data/ext/boost/mpl/aux_/preprocessed/plain/equal_to.hpp +0 -92
  1465. data/ext/boost/mpl/aux_/preprocessed/plain/fold_impl.hpp +0 -180
  1466. data/ext/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp +0 -554
  1467. data/ext/boost/mpl/aux_/preprocessed/plain/greater.hpp +0 -92
  1468. data/ext/boost/mpl/aux_/preprocessed/plain/greater_equal.hpp +0 -92
  1469. data/ext/boost/mpl/aux_/preprocessed/plain/inherit.hpp +0 -125
  1470. data/ext/boost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp +0 -133
  1471. data/ext/boost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp +0 -180
  1472. data/ext/boost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp +0 -228
  1473. data/ext/boost/mpl/aux_/preprocessed/plain/less.hpp +0 -92
  1474. data/ext/boost/mpl/aux_/preprocessed/plain/less_equal.hpp +0 -92
  1475. data/ext/boost/mpl/aux_/preprocessed/plain/list.hpp +0 -323
  1476. data/ext/boost/mpl/aux_/preprocessed/plain/list_c.hpp +0 -328
  1477. data/ext/boost/mpl/aux_/preprocessed/plain/map.hpp +0 -323
  1478. data/ext/boost/mpl/aux_/preprocessed/plain/minus.hpp +0 -141
  1479. data/ext/boost/mpl/aux_/preprocessed/plain/modulus.hpp +0 -99
  1480. data/ext/boost/mpl/aux_/preprocessed/plain/not_equal_to.hpp +0 -92
  1481. data/ext/boost/mpl/aux_/preprocessed/plain/or.hpp +0 -64
  1482. data/ext/boost/mpl/aux_/preprocessed/plain/placeholders.hpp +0 -105
  1483. data/ext/boost/mpl/aux_/preprocessed/plain/plus.hpp +0 -141
  1484. data/ext/boost/mpl/aux_/preprocessed/plain/quote.hpp +0 -123
  1485. data/ext/boost/mpl/aux_/preprocessed/plain/reverse_fold_impl.hpp +0 -231
  1486. data/ext/boost/mpl/aux_/preprocessed/plain/reverse_iter_fold_impl.hpp +0 -231
  1487. data/ext/boost/mpl/aux_/preprocessed/plain/set.hpp +0 -323
  1488. data/ext/boost/mpl/aux_/preprocessed/plain/set_c.hpp +0 -328
  1489. data/ext/boost/mpl/aux_/preprocessed/plain/shift_left.hpp +0 -97
  1490. data/ext/boost/mpl/aux_/preprocessed/plain/shift_right.hpp +0 -97
  1491. data/ext/boost/mpl/aux_/preprocessed/plain/template_arity.hpp +0 -11
  1492. data/ext/boost/mpl/aux_/preprocessed/plain/times.hpp +0 -141
  1493. data/ext/boost/mpl/aux_/preprocessed/plain/unpack_args.hpp +0 -94
  1494. data/ext/boost/mpl/aux_/preprocessed/plain/vector.hpp +0 -323
  1495. data/ext/boost/mpl/aux_/preprocessed/plain/vector_c.hpp +0 -309
  1496. data/ext/boost/mpl/aux_/preprocessor/add.hpp +0 -65
  1497. data/ext/boost/mpl/aux_/preprocessor/default_params.hpp +0 -67
  1498. data/ext/boost/mpl/aux_/preprocessor/ext_params.hpp +0 -78
  1499. data/ext/boost/mpl/aux_/preprocessor/is_seq.hpp +0 -54
  1500. data/ext/boost/mpl/aux_/preprocessor/partial_spec_params.hpp +0 -32
  1501. data/ext/boost/mpl/aux_/preprocessor/range.hpp +0 -23
  1502. data/ext/boost/mpl/aux_/preprocessor/repeat.hpp +0 -51
  1503. data/ext/boost/mpl/aux_/preprocessor/token_equal.hpp +0 -56
  1504. data/ext/boost/mpl/aux_/preprocessor/tuple.hpp +0 -29
  1505. data/ext/boost/mpl/aux_/ptr_to_ref.hpp +0 -46
  1506. data/ext/boost/mpl/aux_/push_back_impl.hpp +0 -55
  1507. data/ext/boost/mpl/aux_/push_front_impl.hpp +0 -56
  1508. data/ext/boost/mpl/aux_/range_c/O1_size.hpp +0 -31
  1509. data/ext/boost/mpl/aux_/range_c/back.hpp +0 -34
  1510. data/ext/boost/mpl/aux_/range_c/empty.hpp +0 -37
  1511. data/ext/boost/mpl/aux_/range_c/front.hpp +0 -33
  1512. data/ext/boost/mpl/aux_/range_c/iterator.hpp +0 -106
  1513. data/ext/boost/mpl/aux_/range_c/size.hpp +0 -37
  1514. data/ext/boost/mpl/aux_/range_c/tag.hpp +0 -24
  1515. data/ext/boost/mpl/aux_/reverse_fold_impl.hpp +0 -44
  1516. data/ext/boost/mpl/aux_/reverse_fold_impl_body.hpp +0 -412
  1517. data/ext/boost/mpl/aux_/reverse_iter_fold_impl.hpp +0 -43
  1518. data/ext/boost/mpl/aux_/sequence_wrapper.hpp +0 -292
  1519. data/ext/boost/mpl/aux_/shift_op.hpp +0 -87
  1520. data/ext/boost/mpl/aux_/single_element_iter.hpp +0 -118
  1521. data/ext/boost/mpl/aux_/size_impl.hpp +0 -52
  1522. data/ext/boost/mpl/aux_/sort_impl.hpp +0 -121
  1523. data/ext/boost/mpl/aux_/test.hpp +0 -32
  1524. data/ext/boost/mpl/aux_/test/assert.hpp +0 -29
  1525. data/ext/boost/mpl/aux_/test/data.hpp +0 -25
  1526. data/ext/boost/mpl/aux_/test/test_case.hpp +0 -21
  1527. data/ext/boost/mpl/aux_/traits_lambda_spec.hpp +0 -56
  1528. data/ext/boost/mpl/aux_/transform_iter.hpp +0 -123
  1529. data/ext/boost/mpl/aux_/unwrap.hpp +0 -47
  1530. data/ext/boost/mpl/back.hpp +0 -39
  1531. data/ext/boost/mpl/back_fwd.hpp +0 -24
  1532. data/ext/boost/mpl/back_inserter.hpp +0 -34
  1533. data/ext/boost/mpl/base.hpp +0 -35
  1534. data/ext/boost/mpl/begin.hpp +0 -19
  1535. data/ext/boost/mpl/begin_end.hpp +0 -57
  1536. data/ext/boost/mpl/begin_end_fwd.hpp +0 -27
  1537. data/ext/boost/mpl/bitand.hpp +0 -23
  1538. data/ext/boost/mpl/bitor.hpp +0 -23
  1539. data/ext/boost/mpl/bitwise.hpp +0 -24
  1540. data/ext/boost/mpl/bitxor.hpp +0 -23
  1541. data/ext/boost/mpl/clear.hpp +0 -39
  1542. data/ext/boost/mpl/clear_fwd.hpp +0 -24
  1543. data/ext/boost/mpl/comparison.hpp +0 -24
  1544. data/ext/boost/mpl/contains.hpp +0 -41
  1545. data/ext/boost/mpl/contains_fwd.hpp +0 -25
  1546. data/ext/boost/mpl/copy.hpp +0 -58
  1547. data/ext/boost/mpl/copy_if.hpp +0 -96
  1548. data/ext/boost/mpl/count.hpp +0 -40
  1549. data/ext/boost/mpl/count_fwd.hpp +0 -24
  1550. data/ext/boost/mpl/count_if.hpp +0 -79
  1551. data/ext/boost/mpl/deque.hpp +0 -58
  1552. data/ext/boost/mpl/deref.hpp +0 -41
  1553. data/ext/boost/mpl/distance.hpp +0 -78
  1554. data/ext/boost/mpl/distance_fwd.hpp +0 -28
  1555. data/ext/boost/mpl/divides.hpp +0 -21
  1556. data/ext/boost/mpl/empty.hpp +0 -39
  1557. data/ext/boost/mpl/empty_base.hpp +0 -59
  1558. data/ext/boost/mpl/empty_fwd.hpp +0 -24
  1559. data/ext/boost/mpl/empty_sequence.hpp +0 -42
  1560. data/ext/boost/mpl/end.hpp +0 -19
  1561. data/ext/boost/mpl/equal.hpp +0 -112
  1562. data/ext/boost/mpl/equal_to.hpp +0 -21
  1563. data/ext/boost/mpl/erase.hpp +0 -42
  1564. data/ext/boost/mpl/erase_fwd.hpp +0 -24
  1565. data/ext/boost/mpl/erase_key.hpp +0 -41
  1566. data/ext/boost/mpl/erase_key_fwd.hpp +0 -24
  1567. data/ext/boost/mpl/filter_view.hpp +0 -46
  1568. data/ext/boost/mpl/find.hpp +0 -38
  1569. data/ext/boost/mpl/find_if.hpp +0 -50
  1570. data/ext/boost/mpl/fold.hpp +0 -48
  1571. data/ext/boost/mpl/for_each.hpp +0 -112
  1572. data/ext/boost/mpl/front.hpp +0 -39
  1573. data/ext/boost/mpl/front_fwd.hpp +0 -24
  1574. data/ext/boost/mpl/front_inserter.hpp +0 -33
  1575. data/ext/boost/mpl/greater.hpp +0 -21
  1576. data/ext/boost/mpl/greater_equal.hpp +0 -21
  1577. data/ext/boost/mpl/has_key.hpp +0 -41
  1578. data/ext/boost/mpl/has_key_fwd.hpp +0 -25
  1579. data/ext/boost/mpl/index_if.hpp +0 -60
  1580. data/ext/boost/mpl/index_of.hpp +0 -39
  1581. data/ext/boost/mpl/inherit.hpp +0 -229
  1582. data/ext/boost/mpl/inherit_linearly.hpp +0 -39
  1583. data/ext/boost/mpl/insert.hpp +0 -41
  1584. data/ext/boost/mpl/insert_fwd.hpp +0 -24
  1585. data/ext/boost/mpl/insert_range.hpp +0 -41
  1586. data/ext/boost/mpl/insert_range_fwd.hpp +0 -24
  1587. data/ext/boost/mpl/inserter.hpp +0 -32
  1588. data/ext/boost/mpl/is_placeholder.hpp +0 -67
  1589. data/ext/boost/mpl/is_sequence.hpp +0 -112
  1590. data/ext/boost/mpl/iter_fold.hpp +0 -49
  1591. data/ext/boost/mpl/iter_fold_if.hpp +0 -117
  1592. data/ext/boost/mpl/iterator_category.hpp +0 -35
  1593. data/ext/boost/mpl/iterator_range.hpp +0 -42
  1594. data/ext/boost/mpl/iterator_tags.hpp +0 -27
  1595. data/ext/boost/mpl/joint_view.hpp +0 -65
  1596. data/ext/boost/mpl/key_type.hpp +0 -42
  1597. data/ext/boost/mpl/key_type_fwd.hpp +0 -25
  1598. data/ext/boost/mpl/less.hpp +0 -21
  1599. data/ext/boost/mpl/less_equal.hpp +0 -21
  1600. data/ext/boost/mpl/limits/list.hpp +0 -21
  1601. data/ext/boost/mpl/limits/map.hpp +0 -21
  1602. data/ext/boost/mpl/limits/set.hpp +0 -21
  1603. data/ext/boost/mpl/limits/unrolling.hpp +0 -21
  1604. data/ext/boost/mpl/limits/vector.hpp +0 -21
  1605. data/ext/boost/mpl/list.hpp +0 -57
  1606. data/ext/boost/mpl/list/aux_/O1_size.hpp +0 -33
  1607. data/ext/boost/mpl/list/aux_/begin_end.hpp +0 -44
  1608. data/ext/boost/mpl/list/aux_/clear.hpp +0 -34
  1609. data/ext/boost/mpl/list/aux_/empty.hpp +0 -34
  1610. data/ext/boost/mpl/list/aux_/front.hpp +0 -33
  1611. data/ext/boost/mpl/list/aux_/include_preprocessed.hpp +0 -35
  1612. data/ext/boost/mpl/list/aux_/item.hpp +0 -55
  1613. data/ext/boost/mpl/list/aux_/iterator.hpp +0 -76
  1614. data/ext/boost/mpl/list/aux_/numbered.hpp +0 -68
  1615. data/ext/boost/mpl/list/aux_/numbered_c.hpp +0 -71
  1616. data/ext/boost/mpl/list/aux_/pop_front.hpp +0 -34
  1617. data/ext/boost/mpl/list/aux_/preprocessed/plain/list10.hpp +0 -149
  1618. data/ext/boost/mpl/list/aux_/preprocessed/plain/list10_c.hpp +0 -164
  1619. data/ext/boost/mpl/list/aux_/preprocessed/plain/list20.hpp +0 -169
  1620. data/ext/boost/mpl/list/aux_/preprocessed/plain/list20_c.hpp +0 -173
  1621. data/ext/boost/mpl/list/aux_/preprocessed/plain/list30.hpp +0 -189
  1622. data/ext/boost/mpl/list/aux_/preprocessed/plain/list30_c.hpp +0 -183
  1623. data/ext/boost/mpl/list/aux_/preprocessed/plain/list40.hpp +0 -209
  1624. data/ext/boost/mpl/list/aux_/preprocessed/plain/list40_c.hpp +0 -193
  1625. data/ext/boost/mpl/list/aux_/preprocessed/plain/list50.hpp +0 -229
  1626. data/ext/boost/mpl/list/aux_/preprocessed/plain/list50_c.hpp +0 -203
  1627. data/ext/boost/mpl/list/aux_/push_back.hpp +0 -36
  1628. data/ext/boost/mpl/list/aux_/push_front.hpp +0 -39
  1629. data/ext/boost/mpl/list/aux_/size.hpp +0 -33
  1630. data/ext/boost/mpl/list/aux_/tag.hpp +0 -24
  1631. data/ext/boost/mpl/list/list0.hpp +0 -42
  1632. data/ext/boost/mpl/list/list0_c.hpp +0 -31
  1633. data/ext/boost/mpl/list/list10.hpp +0 -43
  1634. data/ext/boost/mpl/list/list10_c.hpp +0 -43
  1635. data/ext/boost/mpl/list/list20.hpp +0 -43
  1636. data/ext/boost/mpl/list/list20_c.hpp +0 -43
  1637. data/ext/boost/mpl/list/list30.hpp +0 -43
  1638. data/ext/boost/mpl/list/list30_c.hpp +0 -43
  1639. data/ext/boost/mpl/list/list40.hpp +0 -43
  1640. data/ext/boost/mpl/list/list40_c.hpp +0 -43
  1641. data/ext/boost/mpl/list/list50.hpp +0 -43
  1642. data/ext/boost/mpl/list/list50_c.hpp +0 -43
  1643. data/ext/boost/mpl/list_c.hpp +0 -60
  1644. data/ext/boost/mpl/long.hpp +0 -22
  1645. data/ext/boost/mpl/long_fwd.hpp +0 -27
  1646. data/ext/boost/mpl/lower_bound.hpp +0 -143
  1647. data/ext/boost/mpl/map.hpp +0 -57
  1648. data/ext/boost/mpl/map/aux_/at_impl.hpp +0 -144
  1649. data/ext/boost/mpl/map/aux_/begin_end_impl.hpp +0 -50
  1650. data/ext/boost/mpl/map/aux_/clear_impl.hpp +0 -35
  1651. data/ext/boost/mpl/map/aux_/contains_impl.hpp +0 -43
  1652. data/ext/boost/mpl/map/aux_/empty_impl.hpp +0 -34
  1653. data/ext/boost/mpl/map/aux_/erase_impl.hpp +0 -41
  1654. data/ext/boost/mpl/map/aux_/erase_key_impl.hpp +0 -53
  1655. data/ext/boost/mpl/map/aux_/has_key_impl.hpp +0 -44
  1656. data/ext/boost/mpl/map/aux_/include_preprocessed.hpp +0 -53
  1657. data/ext/boost/mpl/map/aux_/insert_impl.hpp +0 -72
  1658. data/ext/boost/mpl/map/aux_/item.hpp +0 -138
  1659. data/ext/boost/mpl/map/aux_/iterator.hpp +0 -169
  1660. data/ext/boost/mpl/map/aux_/key_type_impl.hpp +0 -36
  1661. data/ext/boost/mpl/map/aux_/map0.hpp +0 -74
  1662. data/ext/boost/mpl/map/aux_/numbered.hpp +0 -110
  1663. data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map10.hpp +0 -350
  1664. data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map20.hpp +0 -370
  1665. data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map30.hpp +0 -390
  1666. data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map40.hpp +0 -410
  1667. data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map50.hpp +0 -430
  1668. data/ext/boost/mpl/map/aux_/preprocessed/plain/map10.hpp +0 -290
  1669. data/ext/boost/mpl/map/aux_/preprocessed/plain/map20.hpp +0 -310
  1670. data/ext/boost/mpl/map/aux_/preprocessed/plain/map30.hpp +0 -330
  1671. data/ext/boost/mpl/map/aux_/preprocessed/plain/map40.hpp +0 -350
  1672. data/ext/boost/mpl/map/aux_/preprocessed/plain/map50.hpp +0 -370
  1673. data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map10.hpp +0 -150
  1674. data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map20.hpp +0 -170
  1675. data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map30.hpp +0 -190
  1676. data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map40.hpp +0 -210
  1677. data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map50.hpp +0 -230
  1678. data/ext/boost/mpl/map/aux_/size_impl.hpp +0 -33
  1679. data/ext/boost/mpl/map/aux_/tag.hpp +0 -24
  1680. data/ext/boost/mpl/map/aux_/value_type_impl.hpp +0 -36
  1681. data/ext/boost/mpl/map/map0.hpp +0 -36
  1682. data/ext/boost/mpl/map/map10.hpp +0 -44
  1683. data/ext/boost/mpl/map/map20.hpp +0 -44
  1684. data/ext/boost/mpl/map/map30.hpp +0 -44
  1685. data/ext/boost/mpl/map/map40.hpp +0 -44
  1686. data/ext/boost/mpl/map/map50.hpp +0 -44
  1687. data/ext/boost/mpl/math/fixed_c.hpp +0 -36
  1688. data/ext/boost/mpl/math/is_even.hpp +0 -54
  1689. data/ext/boost/mpl/math/rational_c.hpp +0 -37
  1690. data/ext/boost/mpl/max.hpp +0 -19
  1691. data/ext/boost/mpl/max_element.hpp +0 -72
  1692. data/ext/boost/mpl/min.hpp +0 -19
  1693. data/ext/boost/mpl/min_element.hpp +0 -40
  1694. data/ext/boost/mpl/min_max.hpp +0 -46
  1695. data/ext/boost/mpl/minus.hpp +0 -21
  1696. data/ext/boost/mpl/modulus.hpp +0 -22
  1697. data/ext/boost/mpl/multiplies.hpp +0 -53
  1698. data/ext/boost/mpl/multiset/aux_/count_impl.hpp +0 -82
  1699. data/ext/boost/mpl/multiset/aux_/insert_impl.hpp +0 -34
  1700. data/ext/boost/mpl/multiset/aux_/item.hpp +0 -114
  1701. data/ext/boost/mpl/multiset/aux_/multiset0.hpp +0 -34
  1702. data/ext/boost/mpl/multiset/aux_/tag.hpp +0 -23
  1703. data/ext/boost/mpl/multiset/multiset0.hpp +0 -36
  1704. data/ext/boost/mpl/negate.hpp +0 -81
  1705. data/ext/boost/mpl/not_equal_to.hpp +0 -21
  1706. data/ext/boost/mpl/numeric_cast.hpp +0 -41
  1707. data/ext/boost/mpl/order.hpp +0 -41
  1708. data/ext/boost/mpl/order_fwd.hpp +0 -25
  1709. data/ext/boost/mpl/pair.hpp +0 -70
  1710. data/ext/boost/mpl/pair_view.hpp +0 -169
  1711. data/ext/boost/mpl/partition.hpp +0 -53
  1712. data/ext/boost/mpl/plus.hpp +0 -21
  1713. data/ext/boost/mpl/pop_back.hpp +0 -39
  1714. data/ext/boost/mpl/pop_back_fwd.hpp +0 -24
  1715. data/ext/boost/mpl/pop_front.hpp +0 -39
  1716. data/ext/boost/mpl/pop_front_fwd.hpp +0 -24
  1717. data/ext/boost/mpl/print.hpp +0 -74
  1718. data/ext/boost/mpl/prior.hpp +0 -19
  1719. data/ext/boost/mpl/push_back.hpp +0 -53
  1720. data/ext/boost/mpl/push_back_fwd.hpp +0 -24
  1721. data/ext/boost/mpl/push_front.hpp +0 -52
  1722. data/ext/boost/mpl/push_front_fwd.hpp +0 -24
  1723. data/ext/boost/mpl/range_c.hpp +0 -48
  1724. data/ext/boost/mpl/remove.hpp +0 -52
  1725. data/ext/boost/mpl/remove_if.hpp +0 -83
  1726. data/ext/boost/mpl/replace.hpp +0 -55
  1727. data/ext/boost/mpl/replace_if.hpp +0 -88
  1728. data/ext/boost/mpl/reverse.hpp +0 -38
  1729. data/ext/boost/mpl/reverse_fold.hpp +0 -50
  1730. data/ext/boost/mpl/reverse_iter_fold.hpp +0 -56
  1731. data/ext/boost/mpl/same_as.hpp +0 -55
  1732. data/ext/boost/mpl/sequence_tag.hpp +0 -124
  1733. data/ext/boost/mpl/sequence_tag_fwd.hpp +0 -26
  1734. data/ext/boost/mpl/set.hpp +0 -57
  1735. data/ext/boost/mpl/set/aux_/at_impl.hpp +0 -40
  1736. data/ext/boost/mpl/set/aux_/begin_end_impl.hpp +0 -43
  1737. data/ext/boost/mpl/set/aux_/clear_impl.hpp +0 -35
  1738. data/ext/boost/mpl/set/aux_/empty_impl.hpp +0 -34
  1739. data/ext/boost/mpl/set/aux_/erase_impl.hpp +0 -41
  1740. data/ext/boost/mpl/set/aux_/erase_key_impl.hpp +0 -53
  1741. data/ext/boost/mpl/set/aux_/has_key_impl.hpp +0 -60
  1742. data/ext/boost/mpl/set/aux_/include_preprocessed.hpp +0 -42
  1743. data/ext/boost/mpl/set/aux_/insert_impl.hpp +0 -65
  1744. data/ext/boost/mpl/set/aux_/item.hpp +0 -82
  1745. data/ext/boost/mpl/set/aux_/iterator.hpp +0 -97
  1746. data/ext/boost/mpl/set/aux_/key_type_impl.hpp +0 -34
  1747. data/ext/boost/mpl/set/aux_/numbered.hpp +0 -48
  1748. data/ext/boost/mpl/set/aux_/numbered_c.hpp +0 -48
  1749. data/ext/boost/mpl/set/aux_/preprocessed/plain/set10.hpp +0 -140
  1750. data/ext/boost/mpl/set/aux_/preprocessed/plain/set10_c.hpp +0 -145
  1751. data/ext/boost/mpl/set/aux_/preprocessed/plain/set20.hpp +0 -168
  1752. data/ext/boost/mpl/set/aux_/preprocessed/plain/set20_c.hpp +0 -154
  1753. data/ext/boost/mpl/set/aux_/preprocessed/plain/set30.hpp +0 -195
  1754. data/ext/boost/mpl/set/aux_/preprocessed/plain/set30_c.hpp +0 -164
  1755. data/ext/boost/mpl/set/aux_/preprocessed/plain/set40.hpp +0 -221
  1756. data/ext/boost/mpl/set/aux_/preprocessed/plain/set40_c.hpp +0 -174
  1757. data/ext/boost/mpl/set/aux_/preprocessed/plain/set50.hpp +0 -250
  1758. data/ext/boost/mpl/set/aux_/preprocessed/plain/set50_c.hpp +0 -184
  1759. data/ext/boost/mpl/set/aux_/set0.hpp +0 -69
  1760. data/ext/boost/mpl/set/aux_/size_impl.hpp +0 -33
  1761. data/ext/boost/mpl/set/aux_/tag.hpp +0 -24
  1762. data/ext/boost/mpl/set/aux_/value_type_impl.hpp +0 -34
  1763. data/ext/boost/mpl/set/set0.hpp +0 -35
  1764. data/ext/boost/mpl/set/set0_c.hpp +0 -32
  1765. data/ext/boost/mpl/set/set10.hpp +0 -44
  1766. data/ext/boost/mpl/set/set10_c.hpp +0 -45
  1767. data/ext/boost/mpl/set/set20.hpp +0 -44
  1768. data/ext/boost/mpl/set/set20_c.hpp +0 -45
  1769. data/ext/boost/mpl/set/set30.hpp +0 -44
  1770. data/ext/boost/mpl/set/set30_c.hpp +0 -45
  1771. data/ext/boost/mpl/set/set40.hpp +0 -44
  1772. data/ext/boost/mpl/set/set40_c.hpp +0 -45
  1773. data/ext/boost/mpl/set/set50.hpp +0 -44
  1774. data/ext/boost/mpl/set/set50_c.hpp +0 -45
  1775. data/ext/boost/mpl/set_c.hpp +0 -60
  1776. data/ext/boost/mpl/shift_left.hpp +0 -22
  1777. data/ext/boost/mpl/shift_right.hpp +0 -22
  1778. data/ext/boost/mpl/single_view.hpp +0 -38
  1779. data/ext/boost/mpl/size.hpp +0 -42
  1780. data/ext/boost/mpl/size_fwd.hpp +0 -24
  1781. data/ext/boost/mpl/sizeof.hpp +0 -36
  1782. data/ext/boost/mpl/sort.hpp +0 -27
  1783. data/ext/boost/mpl/stable_partition.hpp +0 -75
  1784. data/ext/boost/mpl/switch.hpp +0 -49
  1785. data/ext/boost/mpl/tag.hpp +0 -52
  1786. data/ext/boost/mpl/times.hpp +0 -21
  1787. data/ext/boost/mpl/transform.hpp +0 -145
  1788. data/ext/boost/mpl/transform_view.hpp +0 -46
  1789. data/ext/boost/mpl/unique.hpp +0 -85
  1790. data/ext/boost/mpl/unpack_args.hpp +0 -146
  1791. data/ext/boost/mpl/upper_bound.hpp +0 -141
  1792. data/ext/boost/mpl/value_type.hpp +0 -42
  1793. data/ext/boost/mpl/value_type_fwd.hpp +0 -25
  1794. data/ext/boost/mpl/vector.hpp +0 -57
  1795. data/ext/boost/mpl/vector/aux_/O1_size.hpp +0 -56
  1796. data/ext/boost/mpl/vector/aux_/at.hpp +0 -116
  1797. data/ext/boost/mpl/vector/aux_/back.hpp +0 -59
  1798. data/ext/boost/mpl/vector/aux_/begin_end.hpp +0 -49
  1799. data/ext/boost/mpl/vector/aux_/clear.hpp +0 -55
  1800. data/ext/boost/mpl/vector/aux_/empty.hpp +0 -68
  1801. data/ext/boost/mpl/vector/aux_/front.hpp +0 -56
  1802. data/ext/boost/mpl/vector/aux_/include_preprocessed.hpp +0 -55
  1803. data/ext/boost/mpl/vector/aux_/item.hpp +0 -103
  1804. data/ext/boost/mpl/vector/aux_/iterator.hpp +0 -130
  1805. data/ext/boost/mpl/vector/aux_/numbered.hpp +0 -218
  1806. data/ext/boost/mpl/vector/aux_/numbered_c.hpp +0 -77
  1807. data/ext/boost/mpl/vector/aux_/pop_back.hpp +0 -40
  1808. data/ext/boost/mpl/vector/aux_/pop_front.hpp +0 -40
  1809. data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp +0 -1528
  1810. data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp +0 -149
  1811. data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp +0 -1804
  1812. data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp +0 -195
  1813. data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp +0 -2124
  1814. data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp +0 -238
  1815. data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp +0 -2444
  1816. data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp +0 -281
  1817. data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp +0 -2764
  1818. data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp +0 -325
  1819. data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector10.hpp +0 -829
  1820. data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp +0 -149
  1821. data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp +0 -1144
  1822. data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp +0 -195
  1823. data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector30.hpp +0 -1464
  1824. data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp +0 -238
  1825. data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector40.hpp +0 -1784
  1826. data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp +0 -281
  1827. data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector50.hpp +0 -2104
  1828. data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp +0 -325
  1829. data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp +0 -139
  1830. data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp +0 -154
  1831. data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp +0 -159
  1832. data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp +0 -163
  1833. data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp +0 -179
  1834. data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp +0 -173
  1835. data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40.hpp +0 -199
  1836. data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp +0 -183
  1837. data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50.hpp +0 -219
  1838. data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp +0 -193
  1839. data/ext/boost/mpl/vector/aux_/push_back.hpp +0 -40
  1840. data/ext/boost/mpl/vector/aux_/push_front.hpp +0 -40
  1841. data/ext/boost/mpl/vector/aux_/size.hpp +0 -49
  1842. data/ext/boost/mpl/vector/aux_/tag.hpp +0 -32
  1843. data/ext/boost/mpl/vector/aux_/vector0.hpp +0 -52
  1844. data/ext/boost/mpl/vector/vector0.hpp +0 -34
  1845. data/ext/boost/mpl/vector/vector0_c.hpp +0 -31
  1846. data/ext/boost/mpl/vector/vector10.hpp +0 -45
  1847. data/ext/boost/mpl/vector/vector10_c.hpp +0 -46
  1848. data/ext/boost/mpl/vector/vector20.hpp +0 -45
  1849. data/ext/boost/mpl/vector/vector20_c.hpp +0 -46
  1850. data/ext/boost/mpl/vector/vector30.hpp +0 -45
  1851. data/ext/boost/mpl/vector/vector30_c.hpp +0 -47
  1852. data/ext/boost/mpl/vector/vector40.hpp +0 -45
  1853. data/ext/boost/mpl/vector/vector40_c.hpp +0 -46
  1854. data/ext/boost/mpl/vector/vector50.hpp +0 -45
  1855. data/ext/boost/mpl/vector/vector50_c.hpp +0 -46
  1856. data/ext/boost/mpl/vector_c.hpp +0 -60
  1857. data/ext/boost/mpl/zip_view.hpp +0 -64
  1858. data/ext/boost/optional/optional_io.hpp +0 -84
  1859. data/ext/boost/preprocessor/arithmetic.hpp +0 -25
  1860. data/ext/boost/preprocessor/arithmetic/detail/div_base.hpp +0 -61
  1861. data/ext/boost/preprocessor/arithmetic/div.hpp +0 -39
  1862. data/ext/boost/preprocessor/arithmetic/mod.hpp +0 -39
  1863. data/ext/boost/preprocessor/arithmetic/mul.hpp +0 -53
  1864. data/ext/boost/preprocessor/array.hpp +0 -27
  1865. data/ext/boost/preprocessor/array/insert.hpp +0 -55
  1866. data/ext/boost/preprocessor/array/pop_back.hpp +0 -37
  1867. data/ext/boost/preprocessor/array/pop_front.hpp +0 -38
  1868. data/ext/boost/preprocessor/array/push_back.hpp +0 -33
  1869. data/ext/boost/preprocessor/array/push_front.hpp +0 -33
  1870. data/ext/boost/preprocessor/array/remove.hpp +0 -54
  1871. data/ext/boost/preprocessor/array/replace.hpp +0 -49
  1872. data/ext/boost/preprocessor/array/reverse.hpp +0 -29
  1873. data/ext/boost/preprocessor/assert_msg.hpp +0 -17
  1874. data/ext/boost/preprocessor/comma.hpp +0 -17
  1875. data/ext/boost/preprocessor/comparison.hpp +0 -24
  1876. data/ext/boost/preprocessor/comparison/equal.hpp +0 -34
  1877. data/ext/boost/preprocessor/comparison/greater.hpp +0 -38
  1878. data/ext/boost/preprocessor/comparison/greater_equal.hpp +0 -38
  1879. data/ext/boost/preprocessor/comparison/less.hpp +0 -46
  1880. data/ext/boost/preprocessor/comparison/less_equal.hpp +0 -39
  1881. data/ext/boost/preprocessor/comparison/not_equal.hpp +0 -814
  1882. data/ext/boost/preprocessor/config/limits.hpp +0 -29
  1883. data/ext/boost/preprocessor/control.hpp +0 -22
  1884. data/ext/boost/preprocessor/control/deduce_d.hpp +0 -22
  1885. data/ext/boost/preprocessor/control/detail/dmc/while.hpp +0 -536
  1886. data/ext/boost/preprocessor/control/detail/edg/while.hpp +0 -534
  1887. data/ext/boost/preprocessor/control/detail/msvc/while.hpp +0 -277
  1888. data/ext/boost/preprocessor/control/expr_if.hpp +0 -30
  1889. data/ext/boost/preprocessor/debug.hpp +0 -18
  1890. data/ext/boost/preprocessor/debug/assert.hpp +0 -44
  1891. data/ext/boost/preprocessor/debug/line.hpp +0 -35
  1892. data/ext/boost/preprocessor/dec.hpp +0 -17
  1893. data/ext/boost/preprocessor/detail/dmc/auto_rec.hpp +0 -286
  1894. data/ext/boost/preprocessor/detail/is_nullary.hpp +0 -30
  1895. data/ext/boost/preprocessor/detail/is_unary.hpp +0 -30
  1896. data/ext/boost/preprocessor/detail/null.hpp +0 -17
  1897. data/ext/boost/preprocessor/detail/split.hpp +0 -35
  1898. data/ext/boost/preprocessor/enum_params_with_a_default.hpp +0 -17
  1899. data/ext/boost/preprocessor/enum_params_with_defaults.hpp +0 -17
  1900. data/ext/boost/preprocessor/enum_shifted.hpp +0 -17
  1901. data/ext/boost/preprocessor/enum_shifted_params.hpp +0 -17
  1902. data/ext/boost/preprocessor/expand.hpp +0 -17
  1903. data/ext/boost/preprocessor/expr_if.hpp +0 -17
  1904. data/ext/boost/preprocessor/facilities.hpp +0 -21
  1905. data/ext/boost/preprocessor/facilities/apply.hpp +0 -34
  1906. data/ext/boost/preprocessor/facilities/expand.hpp +0 -28
  1907. data/ext/boost/preprocessor/facilities/intercept.hpp +0 -277
  1908. data/ext/boost/preprocessor/facilities/is_1.hpp +0 -23
  1909. data/ext/boost/preprocessor/facilities/is_empty.hpp +0 -43
  1910. data/ext/boost/preprocessor/facilities/is_empty_or_1.hpp +0 -30
  1911. data/ext/boost/preprocessor/for.hpp +0 -17
  1912. data/ext/boost/preprocessor/if.hpp +0 -17
  1913. data/ext/boost/preprocessor/iteration.hpp +0 -19
  1914. data/ext/boost/preprocessor/iteration/detail/bounds/lower2.hpp +0 -99
  1915. data/ext/boost/preprocessor/iteration/detail/bounds/lower3.hpp +0 -99
  1916. data/ext/boost/preprocessor/iteration/detail/bounds/lower4.hpp +0 -99
  1917. data/ext/boost/preprocessor/iteration/detail/bounds/lower5.hpp +0 -99
  1918. data/ext/boost/preprocessor/iteration/detail/bounds/upper2.hpp +0 -99
  1919. data/ext/boost/preprocessor/iteration/detail/bounds/upper3.hpp +0 -99
  1920. data/ext/boost/preprocessor/iteration/detail/bounds/upper4.hpp +0 -99
  1921. data/ext/boost/preprocessor/iteration/detail/bounds/upper5.hpp +0 -99
  1922. data/ext/boost/preprocessor/iteration/detail/finish.hpp +0 -99
  1923. data/ext/boost/preprocessor/iteration/detail/iter/forward2.hpp +0 -1338
  1924. data/ext/boost/preprocessor/iteration/detail/iter/forward3.hpp +0 -1338
  1925. data/ext/boost/preprocessor/iteration/detail/iter/forward4.hpp +0 -1338
  1926. data/ext/boost/preprocessor/iteration/detail/iter/forward5.hpp +0 -1338
  1927. data/ext/boost/preprocessor/iteration/detail/iter/reverse1.hpp +0 -1296
  1928. data/ext/boost/preprocessor/iteration/detail/iter/reverse2.hpp +0 -1296
  1929. data/ext/boost/preprocessor/iteration/detail/iter/reverse3.hpp +0 -1296
  1930. data/ext/boost/preprocessor/iteration/detail/iter/reverse4.hpp +0 -1296
  1931. data/ext/boost/preprocessor/iteration/detail/iter/reverse5.hpp +0 -1296
  1932. data/ext/boost/preprocessor/iteration/detail/local.hpp +0 -812
  1933. data/ext/boost/preprocessor/iteration/detail/rlocal.hpp +0 -782
  1934. data/ext/boost/preprocessor/iteration/detail/self.hpp +0 -21
  1935. data/ext/boost/preprocessor/iteration/detail/start.hpp +0 -99
  1936. data/ext/boost/preprocessor/iteration/local.hpp +0 -26
  1937. data/ext/boost/preprocessor/iteration/self.hpp +0 -19
  1938. data/ext/boost/preprocessor/library.hpp +0 -34
  1939. data/ext/boost/preprocessor/limits.hpp +0 -17
  1940. data/ext/boost/preprocessor/list.hpp +0 -35
  1941. data/ext/boost/preprocessor/list/at.hpp +0 -39
  1942. data/ext/boost/preprocessor/list/cat.hpp +0 -42
  1943. data/ext/boost/preprocessor/list/detail/dmc/fold_left.hpp +0 -279
  1944. data/ext/boost/preprocessor/list/detail/edg/fold_left.hpp +0 -536
  1945. data/ext/boost/preprocessor/list/detail/edg/fold_right.hpp +0 -794
  1946. data/ext/boost/preprocessor/list/enum.hpp +0 -41
  1947. data/ext/boost/preprocessor/list/filter.hpp +0 -54
  1948. data/ext/boost/preprocessor/list/first_n.hpp +0 -58
  1949. data/ext/boost/preprocessor/list/for_each.hpp +0 -49
  1950. data/ext/boost/preprocessor/list/for_each_product.hpp +0 -141
  1951. data/ext/boost/preprocessor/list/rest_n.hpp +0 -55
  1952. data/ext/boost/preprocessor/list/size.hpp +0 -58
  1953. data/ext/boost/preprocessor/list/to_tuple.hpp +0 -38
  1954. data/ext/boost/preprocessor/logical.hpp +0 -29
  1955. data/ext/boost/preprocessor/logical/bitnor.hpp +0 -38
  1956. data/ext/boost/preprocessor/logical/bitor.hpp +0 -38
  1957. data/ext/boost/preprocessor/logical/bitxor.hpp +0 -38
  1958. data/ext/boost/preprocessor/logical/nor.hpp +0 -30
  1959. data/ext/boost/preprocessor/logical/not.hpp +0 -30
  1960. data/ext/boost/preprocessor/logical/or.hpp +0 -30
  1961. data/ext/boost/preprocessor/logical/xor.hpp +0 -30
  1962. data/ext/boost/preprocessor/max.hpp +0 -17
  1963. data/ext/boost/preprocessor/min.hpp +0 -17
  1964. data/ext/boost/preprocessor/punctuation.hpp +0 -20
  1965. data/ext/boost/preprocessor/punctuation/paren.hpp +0 -23
  1966. data/ext/boost/preprocessor/punctuation/paren_if.hpp +0 -38
  1967. data/ext/boost/preprocessor/repeat_2nd.hpp +0 -17
  1968. data/ext/boost/preprocessor/repeat_3rd.hpp +0 -17
  1969. data/ext/boost/preprocessor/repeat_from_to.hpp +0 -17
  1970. data/ext/boost/preprocessor/repeat_from_to_2nd.hpp +0 -17
  1971. data/ext/boost/preprocessor/repeat_from_to_3rd.hpp +0 -17
  1972. data/ext/boost/preprocessor/repetition.hpp +0 -32
  1973. data/ext/boost/preprocessor/repetition/deduce_r.hpp +0 -22
  1974. data/ext/boost/preprocessor/repetition/deduce_z.hpp +0 -22
  1975. data/ext/boost/preprocessor/repetition/detail/dmc/for.hpp +0 -536
  1976. data/ext/boost/preprocessor/repetition/detail/edg/for.hpp +0 -534
  1977. data/ext/boost/preprocessor/repetition/detail/msvc/for.hpp +0 -277
  1978. data/ext/boost/preprocessor/repetition/enum_params_with_a_default.hpp +0 -25
  1979. data/ext/boost/preprocessor/repetition/enum_params_with_defaults.hpp +0 -24
  1980. data/ext/boost/preprocessor/repetition/enum_shifted.hpp +0 -68
  1981. data/ext/boost/preprocessor/repetition/enum_shifted_binary_params.hpp +0 -51
  1982. data/ext/boost/preprocessor/repetition/enum_shifted_params.hpp +0 -44
  1983. data/ext/boost/preprocessor/repetition/enum_trailing.hpp +0 -63
  1984. data/ext/boost/preprocessor/repetition/enum_trailing_binary_params.hpp +0 -53
  1985. data/ext/boost/preprocessor/repetition/enum_trailing_params.hpp +0 -38
  1986. data/ext/boost/preprocessor/selection.hpp +0 -18
  1987. data/ext/boost/preprocessor/selection/max.hpp +0 -39
  1988. data/ext/boost/preprocessor/selection/min.hpp +0 -39
  1989. data/ext/boost/preprocessor/seq.hpp +0 -41
  1990. data/ext/boost/preprocessor/seq/cat.hpp +0 -48
  1991. data/ext/boost/preprocessor/seq/detail/split.hpp +0 -284
  1992. data/ext/boost/preprocessor/seq/filter.hpp +0 -54
  1993. data/ext/boost/preprocessor/seq/first_n.hpp +0 -30
  1994. data/ext/boost/preprocessor/seq/fold_left.hpp +0 -1070
  1995. data/ext/boost/preprocessor/seq/fold_right.hpp +0 -288
  1996. data/ext/boost/preprocessor/seq/for_each.hpp +0 -60
  1997. data/ext/boost/preprocessor/seq/for_each_product.hpp +0 -126
  1998. data/ext/boost/preprocessor/seq/insert.hpp +0 -28
  1999. data/ext/boost/preprocessor/seq/pop_back.hpp +0 -29
  2000. data/ext/boost/preprocessor/seq/pop_front.hpp +0 -27
  2001. data/ext/boost/preprocessor/seq/push_back.hpp +0 -19
  2002. data/ext/boost/preprocessor/seq/push_front.hpp +0 -19
  2003. data/ext/boost/preprocessor/seq/remove.hpp +0 -29
  2004. data/ext/boost/preprocessor/seq/replace.hpp +0 -29
  2005. data/ext/boost/preprocessor/seq/rest_n.hpp +0 -30
  2006. data/ext/boost/preprocessor/seq/reverse.hpp +0 -39
  2007. data/ext/boost/preprocessor/seq/subseq.hpp +0 -28
  2008. data/ext/boost/preprocessor/seq/to_array.hpp +0 -28
  2009. data/ext/boost/preprocessor/seq/to_tuple.hpp +0 -27
  2010. data/ext/boost/preprocessor/seq/transform.hpp +0 -48
  2011. data/ext/boost/preprocessor/slot.hpp +0 -17
  2012. data/ext/boost/preprocessor/slot/counter.hpp +0 -25
  2013. data/ext/boost/preprocessor/slot/detail/counter.hpp +0 -269
  2014. data/ext/boost/preprocessor/slot/detail/slot1.hpp +0 -267
  2015. data/ext/boost/preprocessor/slot/detail/slot2.hpp +0 -267
  2016. data/ext/boost/preprocessor/slot/detail/slot3.hpp +0 -267
  2017. data/ext/boost/preprocessor/slot/detail/slot4.hpp +0 -267
  2018. data/ext/boost/preprocessor/slot/detail/slot5.hpp +0 -267
  2019. data/ext/boost/preprocessor/tuple.hpp +0 -24
  2020. data/ext/boost/preprocessor/tuple/reverse.hpp +0 -62
  2021. data/ext/boost/preprocessor/tuple/to_seq.hpp +0 -60
  2022. data/ext/boost/preprocessor/while.hpp +0 -17
  2023. data/ext/boost/preprocessor/wstringize.hpp +0 -29
  2024. data/ext/boost/src/barrier.cpp +0 -42
  2025. data/ext/boost/src/condition.cpp +0 -692
  2026. data/ext/boost/src/exceptions.cpp +0 -147
  2027. data/ext/boost/src/mutex.cpp +0 -561
  2028. data/ext/boost/src/mutex.inl +0 -128
  2029. data/ext/boost/src/once.cpp +0 -213
  2030. data/ext/boost/src/recursive_mutex.cpp +0 -1040
  2031. data/ext/boost/src/thread.cpp +0 -371
  2032. data/ext/boost/src/timeconv.inl +0 -130
  2033. data/ext/boost/src/tss.cpp +0 -251
  2034. data/ext/boost/src/tss_hooks.cpp +0 -212
  2035. data/ext/boost/src/tss_pe.cpp +0 -179
  2036. data/ext/boost/src/xtime.cpp +0 -158
  2037. data/ext/boost/thread/barrier.hpp +0 -44
  2038. data/ext/boost/thread/detail/force_cast.hpp +0 -39
  2039. data/ext/boost/thread/detail/lock.hpp +0 -209
  2040. data/ext/boost/thread/detail/read_write_lock.hpp +0 -1106
  2041. data/ext/boost/thread/detail/singleton.hpp +0 -59
  2042. data/ext/boost/thread/detail/tss_hooks.hpp +0 -78
  2043. data/ext/boost/type_traits/add_cv.hpp +0 -48
  2044. data/ext/boost/type_traits/add_volatile.hpp +0 -47
  2045. data/ext/boost/type_traits/aligned_storage.hpp +0 -13
  2046. data/ext/boost/type_traits/alignment_traits.hpp +0 -15
  2047. data/ext/boost/type_traits/arithmetic_traits.hpp +0 -20
  2048. data/ext/boost/type_traits/array_traits.hpp +0 -15
  2049. data/ext/boost/type_traits/cv_traits.hpp +0 -24
  2050. data/ext/boost/type_traits/decay.hpp +0 -44
  2051. data/ext/boost/type_traits/detail/is_function_ptr_tester.hpp +0 -654
  2052. data/ext/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +0 -2759
  2053. data/ext/boost/type_traits/detail/wrap.hpp +0 -18
  2054. data/ext/boost/type_traits/extent.hpp +0 -134
  2055. data/ext/boost/type_traits/has_nothrow_assign.hpp +0 -38
  2056. data/ext/boost/type_traits/has_nothrow_constructor.hpp +0 -38
  2057. data/ext/boost/type_traits/has_nothrow_destructor.hpp +0 -25
  2058. data/ext/boost/type_traits/has_trivial_assign.hpp +0 -50
  2059. data/ext/boost/type_traits/has_trivial_constructor.hpp +0 -42
  2060. data/ext/boost/type_traits/has_trivial_destructor.hpp +0 -42
  2061. data/ext/boost/type_traits/has_virtual_destructor.hpp +0 -25
  2062. data/ext/boost/type_traits/is_base_and_derived.hpp +0 -223
  2063. data/ext/boost/type_traits/is_base_of.hpp +0 -40
  2064. data/ext/boost/type_traits/is_compound.hpp +0 -40
  2065. data/ext/boost/type_traits/is_empty.hpp +0 -211
  2066. data/ext/boost/type_traits/is_floating_point.hpp +0 -27
  2067. data/ext/boost/type_traits/is_fundamental.hpp +0 -41
  2068. data/ext/boost/type_traits/is_member_object_pointer.hpp +0 -46
  2069. data/ext/boost/type_traits/is_object.hpp +0 -53
  2070. data/ext/boost/type_traits/is_polymorphic.hpp +0 -102
  2071. data/ext/boost/type_traits/is_signed.hpp +0 -117
  2072. data/ext/boost/type_traits/is_stateless.hpp +0 -48
  2073. data/ext/boost/type_traits/is_unsigned.hpp +0 -114
  2074. data/ext/boost/type_traits/msvc/remove_all_extents.hpp +0 -47
  2075. data/ext/boost/type_traits/msvc/remove_bounds.hpp +0 -43
  2076. data/ext/boost/type_traits/msvc/remove_const.hpp +0 -143
  2077. data/ext/boost/type_traits/msvc/remove_cv.hpp +0 -190
  2078. data/ext/boost/type_traits/msvc/remove_extent.hpp +0 -43
  2079. data/ext/boost/type_traits/msvc/remove_pointer.hpp +0 -42
  2080. data/ext/boost/type_traits/msvc/remove_reference.hpp +0 -42
  2081. data/ext/boost/type_traits/msvc/remove_volatile.hpp +0 -143
  2082. data/ext/boost/type_traits/msvc/typeof.hpp +0 -50
  2083. data/ext/boost/type_traits/object_traits.hpp +0 -33
  2084. data/ext/boost/type_traits/rank.hpp +0 -81
  2085. data/ext/boost/type_traits/reference_traits.hpp +0 -15
  2086. data/ext/boost/type_traits/remove_all_extents.hpp +0 -48
  2087. data/ext/boost/type_traits/remove_bounds.hpp +0 -48
  2088. data/ext/boost/type_traits/remove_extent.hpp +0 -48
  2089. data/ext/boost/type_traits/remove_volatile.hpp +0 -77
  2090. data/ext/boost/type_traits/same_traits.hpp +0 -15
  2091. data/ext/boost/type_traits/transform_traits.hpp +0 -21
  2092. data/ext/boost/type_traits/transform_traits_spec.hpp +0 -14
  2093. data/ext/boost/utility/in_place_factory.hpp +0 -58
  2094. data/ext/boost/utility/result_of.hpp +0 -66
  2095. data/ext/boost/utility/typed_in_place_factory.hpp +0 -57
  2096. data/ext/boost/utility/value_init.hpp +0 -77
  2097. data/lib/passenger/application_spawner.rb +0 -329
  2098. data/lib/passenger/cgi_fixed.rb +0 -66
  2099. data/lib/passenger/framework_spawner.rb +0 -351
  2100. data/lib/passenger/request_handler.rb +0 -333
  2101. data/lib/passenger/templates/apache_must_be_compiled_with_prefork_mpm.txt.erb +0 -8
  2102. data/test/abstract_server_spec.rb +0 -17
  2103. data/test/application_spawner_spec.rb +0 -80
  2104. data/test/application_spec.rb +0 -25
  2105. data/test/framework_spawner_spec.rb +0 -101
  2106. data/test/message_channel_spec.rb +0 -171
  2107. data/test/minimal_spawner_spec.rb +0 -19
  2108. data/test/spawn_manager_spec.rb +0 -107
  2109. data/test/spawn_server_spec.rb +0 -25
  2110. data/test/spawner_error_handling_spec.rb +0 -35
  2111. data/test/spawner_privilege_lowering_spec.rb +0 -72
  2112. data/test/stub/broken-railsapp/config/environment.rb +0 -2
  2113. data/test/stub/broken-railsapp2/config/environment.rb +0 -3
  2114. data/test/stub/broken-railsapp3/config/environment.rb +0 -4
  2115. data/test/stub/broken-railsapp4/config/environment.rb +0 -1
  2116. data/test/stub/broken-railsapp5/config/environment.rb +0 -1
  2117. data/test/stub/broken-railsapp5/vendor/rails/actionpack/lib/action_controller.rb +0 -0
  2118. data/test/stub/broken-railsapp5/vendor/rails/activerecord/lib/active_record.rb +0 -0
  2119. data/test/stub/broken-railsapp5/vendor/rails/railties/lib/initializer.rb +0 -9
  2120. data/test/stub/mycook/app/controllers/welcome_controller.rb +0 -23
  2121. data/test/stub/railsapp-without-version-spec/app/controllers/foo_controller.rb +0 -5
  2122. data/test/stub/railsapp-without-version-spec/config/environment.rb +0 -58
  2123. data/test/support/apache2_config_writer.rb +0 -44
@@ -1,18 +1,18 @@
1
- // Copyright (C) 2003, Fernando Luis Cacciola Carballal.
2
- //
3
- // Use, modification, and distribution is subject to the Boost Software
4
- // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
5
- // http://www.boost.org/LICENSE_1_0.txt)
6
- //
7
- // See http://www.boost.org/lib/optional for documentation.
8
- //
9
- // You are welcome to contact the author at:
10
- // fernando_cacciola@hotmail.com
11
- //
12
- #ifndef BOOST_OPTIONAL_FLC_19NOV2002_HPP
13
- #define BOOST_OPTIONAL_FLC_19NOV2002_HPP
14
-
15
- #include "boost/optional/optional.hpp"
16
-
17
- #endif
18
-
1
+ // Copyright (C) 2003, Fernando Luis Cacciola Carballal.
2
+ //
3
+ // Use, modification, and distribution is subject to the Boost Software
4
+ // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
5
+ // http://www.boost.org/LICENSE_1_0.txt)
6
+ //
7
+ // See http://www.boost.org/libs/optional for documentation.
8
+ //
9
+ // You are welcome to contact the author at:
10
+ // fernando_cacciola@hotmail.com
11
+ //
12
+ #ifndef BOOST_OPTIONAL_FLC_19NOV2002_HPP
13
+ #define BOOST_OPTIONAL_FLC_19NOV2002_HPP
14
+
15
+ #include "boost/optional/optional.hpp"
16
+
17
+ #endif
18
+
@@ -1,922 +1,922 @@
1
- // Copyright (C) 2003, Fernando Luis Cacciola Carballal.
2
- //
3
- // Use, modification, and distribution is subject to the Boost Software
4
- // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
5
- // http://www.boost.org/LICENSE_1_0.txt)
6
- //
7
- // See http://www.boost.org/lib/optional for documentation.
8
- //
9
- // You are welcome to contact the author at:
10
- // fernando_cacciola@hotmail.com
11
- //
12
- #ifndef BOOST_OPTIONAL_OPTIONAL_FLC_19NOV2002_HPP
13
- #define BOOST_OPTIONAL_OPTIONAL_FLC_19NOV2002_HPP
14
-
15
- #include<new>
16
- #include<algorithm>
17
-
18
- #include "boost/config.hpp"
19
- #include "boost/assert.hpp"
20
- #include "boost/type.hpp"
21
- #include "boost/type_traits/alignment_of.hpp"
22
- #include "boost/type_traits/type_with_alignment.hpp"
23
- #include "boost/type_traits/remove_reference.hpp"
24
- #include "boost/type_traits/is_reference.hpp"
25
- #include "boost/mpl/if.hpp"
26
- #include "boost/mpl/bool.hpp"
27
- #include "boost/mpl/not.hpp"
28
- #include "boost/detail/reference_content.hpp"
29
- #include "boost/none.hpp"
30
- #include "boost/utility/compare_pointees.hpp"
31
-
32
- #include "boost/optional/optional_fwd.hpp"
33
-
34
- #if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
35
- // VC6.0 has the following bug:
36
- // When a templated assignment operator exist, an implicit conversion
37
- // constructing an optional<T> is used when assigment of the form:
38
- // optional<T> opt ; opt = T(...);
39
- // is compiled.
40
- // However, optional's ctor is _explicit_ and the assignemt shouldn't compile.
41
- // Therefore, for VC6.0 templated assignment is disabled.
42
- //
43
- #define BOOST_OPTIONAL_NO_CONVERTING_ASSIGNMENT
44
- #endif
45
-
46
- #if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
47
- // VC7.0 has the following bug:
48
- // When both a non-template and a template copy-ctor exist
49
- // and the templated version is made 'explicit', the explicit is also
50
- // given to the non-templated version, making the class non-implicitely-copyable.
51
- //
52
- #define BOOST_OPTIONAL_NO_CONVERTING_COPY_CTOR
53
- #endif
54
-
55
- #if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) || BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,<=700)
56
- // AFAICT only VC7.1 correctly resolves the overload set
57
- // that includes the in-place factory taking functions,
58
- // so for the other VC versions, in-place factory support
59
- // is disabled
60
- #define BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
61
- #endif
62
-
63
- #if BOOST_WORKAROUND(__BORLANDC__, <= 0x551)
64
- // BCB (5.5.1) cannot parse the nested template struct in an inplace factory.
65
- #define BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
66
- #endif
67
-
68
- #if !defined(BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT) \
69
- && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x581) )
70
- // BCB (up to 5.64) has the following bug:
71
- // If there is a member function/operator template of the form
72
- // template<class Expr> mfunc( Expr expr ) ;
73
- // some calls are resolved to this even if there are other better matches.
74
- // The effect of this bug is that calls to converting ctors and assignments
75
- // are incrorrectly sink to this general catch-all member function template as shown above.
76
- #define BOOST_OPTIONAL_WEAK_OVERLOAD_RESOLUTION
77
- #endif
78
-
79
- // Daniel Wallin discovered that bind/apply.hpp badly interacts with the apply<>
80
- // member template of a factory as used in the optional<> implementation.
81
- // He proposed this simple fix which is to move the call to apply<> outside
82
- // namespace boost.
83
- namespace boost_optional_detail
84
- {
85
- template <class T, class Factory>
86
- void construct(Factory const& factory, void* address)
87
- {
88
- factory.BOOST_NESTED_TEMPLATE apply<T>(address);
89
- }
90
- }
91
-
92
-
93
- namespace boost {
94
-
95
- class in_place_factory_base ;
96
- class typed_in_place_factory_base ;
97
-
98
- namespace optional_detail {
99
-
100
- // This local class is used instead of that in "aligned_storage.hpp"
101
- // because I've found the 'official' class to ICE BCB5.5
102
- // when some types are used with optional<>
103
- // (due to sizeof() passed down as a non-type template parameter)
104
- template <class T>
105
- class aligned_storage
106
- {
107
- // Borland ICEs if unnamed unions are used for this!
108
- union dummy_u
109
- {
110
- char data[ sizeof(T) ];
111
- BOOST_DEDUCED_TYPENAME type_with_alignment<
112
- ::boost::alignment_of<T>::value >::type aligner_;
113
- } dummy_ ;
114
-
115
- public:
116
-
117
- void const* address() const { return &dummy_.data[0]; }
118
- void * address() { return &dummy_.data[0]; }
119
- } ;
120
-
121
- template<class T>
122
- struct types_when_isnt_ref
123
- {
124
- typedef T const& reference_const_type ;
125
- typedef T & reference_type ;
126
- typedef T const* pointer_const_type ;
127
- typedef T * pointer_type ;
128
- typedef T const& argument_type ;
129
- } ;
130
- template<class T>
131
- struct types_when_is_ref
132
- {
133
- typedef BOOST_DEDUCED_TYPENAME remove_reference<T>::type raw_type ;
134
-
135
- typedef raw_type& reference_const_type ;
136
- typedef raw_type& reference_type ;
137
- typedef raw_type* pointer_const_type ;
138
- typedef raw_type* pointer_type ;
139
- typedef raw_type& argument_type ;
140
- } ;
141
-
142
- struct optional_tag {} ;
143
-
144
- template<class T>
145
- class optional_base : public optional_tag
146
- {
147
- private :
148
-
149
- typedef
150
- #if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
151
- BOOST_DEDUCED_TYPENAME
152
- #endif
153
- ::boost::detail::make_reference_content<T>::type internal_type ;
154
-
155
- typedef aligned_storage<internal_type> storage_type ;
156
-
157
- typedef types_when_isnt_ref<T> types_when_not_ref ;
158
- typedef types_when_is_ref<T> types_when_ref ;
159
-
160
- typedef optional_base<T> this_type ;
161
-
162
- protected :
163
-
164
- typedef T value_type ;
165
-
166
- typedef mpl::true_ is_reference_tag ;
167
- typedef mpl::false_ is_not_reference_tag ;
168
-
169
- typedef BOOST_DEDUCED_TYPENAME is_reference<T>::type is_reference_predicate ;
170
-
171
- typedef BOOST_DEDUCED_TYPENAME mpl::if_<is_reference_predicate,types_when_ref,types_when_not_ref>::type types ;
172
-
173
- typedef bool (this_type::*unspecified_bool_type)() const;
174
-
175
- typedef BOOST_DEDUCED_TYPENAME types::reference_type reference_type ;
176
- typedef BOOST_DEDUCED_TYPENAME types::reference_const_type reference_const_type ;
177
- typedef BOOST_DEDUCED_TYPENAME types::pointer_type pointer_type ;
178
- typedef BOOST_DEDUCED_TYPENAME types::pointer_const_type pointer_const_type ;
179
- typedef BOOST_DEDUCED_TYPENAME types::argument_type argument_type ;
180
-
181
- // Creates an optional<T> uninitialized.
182
- // No-throw
183
- optional_base()
184
- :
185
- m_initialized(false) {}
186
-
187
- // Creates an optional<T> uninitialized.
188
- // No-throw
189
- optional_base ( none_t )
190
- :
191
- m_initialized(false) {}
192
-
193
- // Creates an optional<T> initialized with 'val'.
194
- // Can throw if T::T(T const&) does
195
- optional_base ( argument_type val )
196
- :
197
- m_initialized(false)
198
- {
199
- construct(val);
200
- }
201
-
202
- // Creates an optional<T> initialized with 'val' IFF cond is true, otherwise creates an uninitialzed optional<T>.
203
- // Can throw if T::T(T const&) does
204
- optional_base ( bool cond, argument_type val )
205
- :
206
- m_initialized(false)
207
- {
208
- if ( cond )
209
- construct(val);
210
- }
211
-
212
- // Creates a deep copy of another optional<T>
213
- // Can throw if T::T(T const&) does
214
- optional_base ( optional_base const& rhs )
215
- :
216
- m_initialized(false)
217
- {
218
- if ( rhs.is_initialized() )
219
- construct(rhs.get_impl());
220
- }
221
-
222
-
223
- // This is used for both converting and in-place constructions.
224
- // Derived classes use the 'tag' to select the appropriate
225
- // implementation (the correct 'construct()' overload)
226
- template<class Expr>
227
- explicit optional_base ( Expr const& expr, Expr const* tag )
228
- :
229
- m_initialized(false)
230
- {
231
- construct(expr,tag);
232
- }
233
-
234
-
235
-
236
- // No-throw (assuming T::~T() doesn't)
237
- ~optional_base() { destroy() ; }
238
-
239
- // Assigns from another optional<T> (deep-copies the rhs value)
240
- void assign ( optional_base const& rhs )
241
- {
242
- if (is_initialized())
243
- {
244
- if ( rhs.is_initialized() )
245
- assign_value(rhs.get_impl(), is_reference_predicate() );
246
- else destroy();
247
- }
248
- else
249
- {
250
- if ( rhs.is_initialized() )
251
- construct(rhs.get_impl());
252
- }
253
- }
254
-
255
- // Assigns from another _convertible_ optional<U> (deep-copies the rhs value)
256
- template<class U>
257
- void assign ( optional<U> const& rhs )
258
- {
259
- if (is_initialized())
260
- {
261
- if ( rhs.is_initialized() )
262
- assign_value(static_cast<value_type>(rhs.get()), is_reference_predicate() );
263
- else destroy();
264
- }
265
- else
266
- {
267
- if ( rhs.is_initialized() )
268
- construct(static_cast<value_type>(rhs.get()));
269
- }
270
- }
271
-
272
- // Assigns from a T (deep-copies the rhs value)
273
- void assign ( argument_type val )
274
- {
275
- if (is_initialized())
276
- assign_value(val, is_reference_predicate() );
277
- else construct(val);
278
- }
279
-
280
- // Assigns from "none", destroying the current value, if any, leaving this UNINITIALIZED
281
- // No-throw (assuming T::~T() doesn't)
282
- void assign ( none_t ) { destroy(); }
283
-
284
- #ifndef BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
285
- template<class Expr>
286
- void assign_expr ( Expr const& expr, Expr const* tag )
287
- {
288
- if (is_initialized())
289
- assign_expr_to_initialized(expr,tag);
290
- else construct(expr,tag);
291
- }
292
- #endif
293
-
294
- public :
295
-
296
- // Destroys the current value, if any, leaving this UNINITIALIZED
297
- // No-throw (assuming T::~T() doesn't)
298
- void reset() { destroy(); }
299
-
300
- // Replaces the current value -if any- with 'val'
301
- void reset ( argument_type val ) { assign(val); }
302
-
303
- // Returns a pointer to the value if this is initialized, otherwise,
304
- // returns NULL.
305
- // No-throw
306
- pointer_const_type get_ptr() const { return m_initialized ? get_ptr_impl() : 0 ; }
307
- pointer_type get_ptr() { return m_initialized ? get_ptr_impl() : 0 ; }
308
-
309
- bool is_initialized() const { return m_initialized ; }
310
-
311
- protected :
312
-
313
- void construct ( argument_type val )
314
- {
315
- new (m_storage.address()) internal_type(val) ;
316
- m_initialized = true ;
317
- }
318
-
319
- #ifndef BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
320
- // Constructs in-place using the given factory
321
- template<class Expr>
322
- void construct ( Expr const& factory, in_place_factory_base const* )
323
- {
324
- BOOST_STATIC_ASSERT ( ::boost::mpl::not_<is_reference_predicate>::value ) ;
325
- boost_optional_detail::construct<value_type>(factory, m_storage.address());
326
- m_initialized = true ;
327
- }
328
-
329
- // Constructs in-place using the given typed factory
330
- template<class Expr>
331
- void construct ( Expr const& factory, typed_in_place_factory_base const* )
332
- {
333
- BOOST_STATIC_ASSERT ( ::boost::mpl::not_<is_reference_predicate>::value ) ;
334
- factory.apply(m_storage.address()) ;
335
- m_initialized = true ;
336
- }
337
-
338
- template<class Expr>
339
- void assign_expr_to_initialized ( Expr const& factory, in_place_factory_base const* tag )
340
- {
341
- destroy();
342
- construct(factory,tag);
343
- }
344
-
345
- // Constructs in-place using the given typed factory
346
- template<class Expr>
347
- void assign_expr_to_initialized ( Expr const& factory, typed_in_place_factory_base const* tag )
348
- {
349
- destroy();
350
- construct(factory,tag);
351
- }
352
- #endif
353
-
354
- // Constructs using any expression implicitely convertible to the single argument
355
- // of a one-argument T constructor.
356
- // Converting constructions of optional<T> from optional<U> uses this function with
357
- // 'Expr' being of type 'U' and relying on a converting constructor of T from U.
358
- template<class Expr>
359
- void construct ( Expr const& expr, void const* )
360
- {
361
- new (m_storage.address()) internal_type(expr) ;
362
- m_initialized = true ;
363
- }
364
-
365
- // Assigns using a form any expression implicitely convertible to the single argument
366
- // of a T's assignment operator.
367
- // Converting assignments of optional<T> from optional<U> uses this function with
368
- // 'Expr' being of type 'U' and relying on a converting assignment of T from U.
369
- template<class Expr>
370
- void assign_expr_to_initialized ( Expr const& expr, void const* )
371
- {
372
- assign_value(expr, is_reference_predicate());
373
- }
374
-
375
- #ifdef BOOST_OPTIONAL_WEAK_OVERLOAD_RESOLUTION
376
- // BCB5.64 (and probably lower versions) workaround.
377
- // The in-place factories are supported by means of catch-all constructors
378
- // and assignment operators (the functions are parameterized in terms of
379
- // an arbitrary 'Expr' type)
380
- // This compiler incorrectly resolves the overload set and sinks optional<T> and optional<U>
381
- // to the 'Expr'-taking functions even though explicit overloads are present for them.
382
- // Thus, the following overload is needed to properly handle the case when the 'lhs'
383
- // is another optional.
384
- //
385
- // For VC<=70 compilers this workaround dosen't work becasue the comnpiler issues and error
386
- // instead of choosing the wrong overload
387
- //
388
- // Notice that 'Expr' will be optional<T> or optional<U> (but not optional_base<..>)
389
- template<class Expr>
390
- void construct ( Expr const& expr, optional_tag const* )
391
- {
392
- if ( expr.is_initialized() )
393
- {
394
- // An exception can be thrown here.
395
- // It it happens, THIS will be left uninitialized.
396
- new (m_storage.address()) internal_type(expr.get()) ;
397
- m_initialized = true ;
398
- }
399
- }
400
- #endif
401
-
402
- void assign_value ( argument_type val, is_not_reference_tag ) { get_impl() = val; }
403
- void assign_value ( argument_type val, is_reference_tag ) { construct(val); }
404
-
405
- void destroy()
406
- {
407
- if ( m_initialized )
408
- destroy_impl(is_reference_predicate()) ;
409
- }
410
-
411
- unspecified_bool_type safe_bool() const { return m_initialized ? &this_type::is_initialized : 0 ; }
412
-
413
- reference_const_type get_impl() const { return dereference(get_object(), is_reference_predicate() ) ; }
414
- reference_type get_impl() { return dereference(get_object(), is_reference_predicate() ) ; }
415
-
416
- pointer_const_type get_ptr_impl() const { return cast_ptr(get_object(), is_reference_predicate() ) ; }
417
- pointer_type get_ptr_impl() { return cast_ptr(get_object(), is_reference_predicate() ) ; }
418
-
419
- private :
420
-
421
- // internal_type can be either T or reference_content<T>
422
- internal_type const* get_object() const { return static_cast<internal_type const*>(m_storage.address()); }
423
- internal_type * get_object() { return static_cast<internal_type *> (m_storage.address()); }
424
-
425
- // reference_content<T> lacks an implicit conversion to T&, so the following is needed to obtain a proper reference.
426
- reference_const_type dereference( internal_type const* p, is_not_reference_tag ) const { return *p ; }
427
- reference_type dereference( internal_type* p, is_not_reference_tag ) { return *p ; }
428
- reference_const_type dereference( internal_type const* p, is_reference_tag ) const { return p->get() ; }
429
- reference_type dereference( internal_type* p, is_reference_tag ) { return p->get() ; }
430
-
431
- #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x581))
432
- void destroy_impl ( is_not_reference_tag ) { get_ptr_impl()->internal_type::~internal_type() ; m_initialized = false ; }
433
- #else
434
- void destroy_impl ( is_not_reference_tag ) { get_ptr_impl()->T::~T() ; m_initialized = false ; }
435
- #endif
436
-
437
- void destroy_impl ( is_reference_tag ) { m_initialized = false ; }
438
-
439
- // If T is of reference type, trying to get a pointer to the held value must result in a compile-time error.
440
- // Decent compilers should disallow conversions from reference_content<T>* to T*, but just in case,
441
- // the following olverloads are used to filter out the case and guarantee an error in case of T being a reference.
442
- pointer_const_type cast_ptr( internal_type const* p, is_not_reference_tag ) const { return p ; }
443
- pointer_type cast_ptr( internal_type * p, is_not_reference_tag ) { return p ; }
444
- pointer_const_type cast_ptr( internal_type const* p, is_reference_tag ) const { return &p->get() ; }
445
- pointer_type cast_ptr( internal_type * p, is_reference_tag ) { return &p->get() ; }
446
-
447
- bool m_initialized ;
448
- storage_type m_storage ;
449
- } ;
450
-
451
- } // namespace optional_detail
452
-
453
- template<class T>
454
- class optional : public optional_detail::optional_base<T>
455
- {
456
- typedef optional_detail::optional_base<T> base ;
457
-
458
- typedef BOOST_DEDUCED_TYPENAME base::unspecified_bool_type unspecified_bool_type ;
459
-
460
- public :
461
-
462
- typedef optional<T> this_type ;
463
-
464
- typedef BOOST_DEDUCED_TYPENAME base::value_type value_type ;
465
- typedef BOOST_DEDUCED_TYPENAME base::reference_type reference_type ;
466
- typedef BOOST_DEDUCED_TYPENAME base::reference_const_type reference_const_type ;
467
- typedef BOOST_DEDUCED_TYPENAME base::pointer_type pointer_type ;
468
- typedef BOOST_DEDUCED_TYPENAME base::pointer_const_type pointer_const_type ;
469
- typedef BOOST_DEDUCED_TYPENAME base::argument_type argument_type ;
470
-
471
- // Creates an optional<T> uninitialized.
472
- // No-throw
473
- optional() : base() {}
474
-
475
- // Creates an optional<T> uninitialized.
476
- // No-throw
477
- optional( none_t none_ ) : base(none_) {}
478
-
479
- // Creates an optional<T> initialized with 'val'.
480
- // Can throw if T::T(T const&) does
481
- optional ( argument_type val ) : base(val) {}
482
-
483
- // Creates an optional<T> initialized with 'val' IFF cond is true, otherwise creates an uninitialized optional.
484
- // Can throw if T::T(T const&) does
485
- optional ( bool cond, argument_type val ) : base(cond,val) {}
486
-
487
- #ifndef BOOST_OPTIONAL_NO_CONVERTING_COPY_CTOR
488
- // NOTE: MSVC needs templated versions first
489
-
490
- // Creates a deep copy of another convertible optional<U>
491
- // Requires a valid conversion from U to T.
492
- // Can throw if T::T(U const&) does
493
- template<class U>
494
- explicit optional ( optional<U> const& rhs )
495
- :
496
- base()
497
- {
498
- if ( rhs.is_initialized() )
499
- this->construct(rhs.get());
500
- }
501
- #endif
502
-
503
- #ifndef BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
504
- // Creates an optional<T> with an expression which can be either
505
- // (a) An instance of InPlaceFactory (i.e. in_place(a,b,...,n);
506
- // (b) An instance of TypedInPlaceFactory ( i.e. in_place<T>(a,b,...,n);
507
- // (c) Any expression implicitely convertible to the single type
508
- // of a one-argument T's constructor.
509
- // (d*) Weak compilers (BCB) might also resolved Expr as optional<T> and optional<U>
510
- // even though explicit overloads are present for these.
511
- // Depending on the above some T ctor is called.
512
- // Can throw is the resolved T ctor throws.
513
- template<class Expr>
514
- explicit optional ( Expr const& expr ) : base(expr,&expr) {}
515
- #endif
516
-
517
- // Creates a deep copy of another optional<T>
518
- // Can throw if T::T(T const&) does
519
- optional ( optional const& rhs ) : base(rhs) {}
520
-
521
- // No-throw (assuming T::~T() doesn't)
522
- ~optional() {}
523
-
524
- #if !defined(BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT) && !defined(BOOST_OPTIONAL_WEAK_OVERLOAD_RESOLUTION)
525
- // Assigns from an expression. See corresponding constructor.
526
- // Basic Guarantee: If the resolved T ctor throws, this is left UNINITIALIZED
527
- template<class Expr>
528
- optional& operator= ( Expr expr )
529
- {
530
- this->assign_expr(expr,&expr);
531
- return *this ;
532
- }
533
- #endif
534
-
535
-
536
- #ifndef BOOST_OPTIONAL_NO_CONVERTING_ASSIGNMENT
537
- // Assigns from another convertible optional<U> (converts && deep-copies the rhs value)
538
- // Requires a valid conversion from U to T.
539
- // Basic Guarantee: If T::T( U const& ) throws, this is left UNINITIALIZED
540
- template<class U>
541
- optional& operator= ( optional<U> const& rhs )
542
- {
543
- this->assign(rhs);
544
- return *this ;
545
- }
546
- #endif
547
-
548
- // Assigns from another optional<T> (deep-copies the rhs value)
549
- // Basic Guarantee: If T::T( T const& ) throws, this is left UNINITIALIZED
550
- // (NOTE: On BCB, this operator is not actually called and left is left UNMODIFIED in case of a throw)
551
- optional& operator= ( optional const& rhs )
552
- {
553
- this->assign( rhs ) ;
554
- return *this ;
555
- }
556
-
557
- // Assigns from a T (deep-copies the rhs value)
558
- // Basic Guarantee: If T::( T const& ) throws, this is left UNINITIALIZED
559
- optional& operator= ( argument_type val )
560
- {
561
- this->assign( val ) ;
562
- return *this ;
563
- }
564
-
565
- // Assigns from a "none"
566
- // Which destroys the current value, if any, leaving this UNINITIALIZED
567
- // No-throw (assuming T::~T() doesn't)
568
- optional& operator= ( none_t none_ )
569
- {
570
- this->assign( none_ ) ;
571
- return *this ;
572
- }
573
-
574
- // Returns a reference to the value if this is initialized, otherwise,
575
- // the behaviour is UNDEFINED
576
- // No-throw
577
- reference_const_type get() const { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
578
- reference_type get() { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
579
-
580
- // Returns a copy of the value if this is initialized, 'v' otherwise
581
- reference_const_type get_value_or ( reference_const_type v ) const { return this->is_initialized() ? get() : v ; }
582
- reference_type get_value_or ( reference_type v ) { return this->is_initialized() ? get() : v ; }
583
-
584
- // Returns a pointer to the value if this is initialized, otherwise,
585
- // the behaviour is UNDEFINED
586
- // No-throw
587
- pointer_const_type operator->() const { BOOST_ASSERT(this->is_initialized()) ; return this->get_ptr_impl() ; }
588
- pointer_type operator->() { BOOST_ASSERT(this->is_initialized()) ; return this->get_ptr_impl() ; }
589
-
590
- // Returns a reference to the value if this is initialized, otherwise,
591
- // the behaviour is UNDEFINED
592
- // No-throw
593
- reference_const_type operator *() const { return this->get() ; }
594
- reference_type operator *() { return this->get() ; }
595
-
596
- // implicit conversion to "bool"
597
- // No-throw
598
- operator unspecified_bool_type() const { return this->safe_bool() ; }
599
-
600
- // This is provided for those compilers which don't like the conversion to bool
601
- // on some contexts.
602
- bool operator!() const { return !this->is_initialized() ; }
603
- } ;
604
-
605
- // Returns optional<T>(v)
606
- template<class T>
607
- inline
608
- optional<T> make_optional ( T const& v )
609
- {
610
- return optional<T>(v);
611
- }
612
-
613
- // Returns optional<T>(cond,v)
614
- template<class T>
615
- inline
616
- optional<T> make_optional ( bool cond, T const& v )
617
- {
618
- return optional<T>(cond,v);
619
- }
620
-
621
- // Returns a reference to the value if this is initialized, otherwise, the behaviour is UNDEFINED.
622
- // No-throw
623
- template<class T>
624
- inline
625
- BOOST_DEDUCED_TYPENAME optional<T>::reference_const_type
626
- get ( optional<T> const& opt )
627
- {
628
- return opt.get() ;
629
- }
630
-
631
- template<class T>
632
- inline
633
- BOOST_DEDUCED_TYPENAME optional<T>::reference_type
634
- get ( optional<T>& opt )
635
- {
636
- return opt.get() ;
637
- }
638
-
639
- // Returns a pointer to the value if this is initialized, otherwise, returns NULL.
640
- // No-throw
641
- template<class T>
642
- inline
643
- BOOST_DEDUCED_TYPENAME optional<T>::pointer_const_type
644
- get ( optional<T> const* opt )
645
- {
646
- return opt->get_ptr() ;
647
- }
648
-
649
- template<class T>
650
- inline
651
- BOOST_DEDUCED_TYPENAME optional<T>::pointer_type
652
- get ( optional<T>* opt )
653
- {
654
- return opt->get_ptr() ;
655
- }
656
-
657
- // Returns a reference to the value if this is initialized, otherwise, the behaviour is UNDEFINED.
658
- // No-throw
659
- template<class T>
660
- inline
661
- BOOST_DEDUCED_TYPENAME optional<T>::reference_const_type
662
- get_optional_value_or ( optional<T> const& opt, BOOST_DEDUCED_TYPENAME optional<T>::reference_const_type v )
663
- {
664
- return opt.get_value_or(v) ;
665
- }
666
-
667
- template<class T>
668
- inline
669
- BOOST_DEDUCED_TYPENAME optional<T>::reference_type
670
- get_optional_value_or ( optional<T>& opt, BOOST_DEDUCED_TYPENAME optional<T>::reference_type v )
671
- {
672
- return opt.get_value_or(v) ;
673
- }
674
-
675
- // Returns a pointer to the value if this is initialized, otherwise, returns NULL.
676
- // No-throw
677
- template<class T>
678
- inline
679
- BOOST_DEDUCED_TYPENAME optional<T>::pointer_const_type
680
- get_pointer ( optional<T> const& opt )
681
- {
682
- return opt.get_ptr() ;
683
- }
684
-
685
- template<class T>
686
- inline
687
- BOOST_DEDUCED_TYPENAME optional<T>::pointer_type
688
- get_pointer ( optional<T>& opt )
689
- {
690
- return opt.get_ptr() ;
691
- }
692
-
693
- // optional's relational operators ( ==, !=, <, >, <=, >= ) have deep-semantics (compare values).
694
- // WARNING: This is UNLIKE pointers. Use equal_pointees()/less_pointess() in generic code instead.
695
-
696
-
697
- //
698
- // optional<T> vs optional<T> cases
699
- //
700
-
701
- template<class T>
702
- inline
703
- bool operator == ( optional<T> const& x, optional<T> const& y )
704
- { return equal_pointees(x,y); }
705
-
706
- template<class T>
707
- inline
708
- bool operator < ( optional<T> const& x, optional<T> const& y )
709
- { return less_pointees(x,y); }
710
-
711
- template<class T>
712
- inline
713
- bool operator != ( optional<T> const& x, optional<T> const& y )
714
- { return !( x == y ) ; }
715
-
716
- template<class T>
717
- inline
718
- bool operator > ( optional<T> const& x, optional<T> const& y )
719
- { return y < x ; }
720
-
721
- template<class T>
722
- inline
723
- bool operator <= ( optional<T> const& x, optional<T> const& y )
724
- { return !( y < x ) ; }
725
-
726
- template<class T>
727
- inline
728
- bool operator >= ( optional<T> const& x, optional<T> const& y )
729
- { return !( x < y ) ; }
730
-
731
-
732
- //
733
- // optional<T> vs T cases
734
- //
735
- template<class T>
736
- inline
737
- bool operator == ( optional<T> const& x, T const& y )
738
- { return equal_pointees(x, optional<T>(y)); }
739
-
740
- template<class T>
741
- inline
742
- bool operator < ( optional<T> const& x, T const& y )
743
- { return less_pointees(x, optional<T>(y)); }
744
-
745
- template<class T>
746
- inline
747
- bool operator != ( optional<T> const& x, T const& y )
748
- { return !( x == y ) ; }
749
-
750
- template<class T>
751
- inline
752
- bool operator > ( optional<T> const& x, T const& y )
753
- { return y < x ; }
754
-
755
- template<class T>
756
- inline
757
- bool operator <= ( optional<T> const& x, T const& y )
758
- { return !( y < x ) ; }
759
-
760
- template<class T>
761
- inline
762
- bool operator >= ( optional<T> const& x, T const& y )
763
- { return !( x < y ) ; }
764
-
765
- //
766
- // T vs optional<T> cases
767
- //
768
-
769
- template<class T>
770
- inline
771
- bool operator == ( T const& x, optional<T> const& y )
772
- { return equal_pointees( optional<T>(x), y ); }
773
-
774
- template<class T>
775
- inline
776
- bool operator < ( T const& x, optional<T> const& y )
777
- { return less_pointees( optional<T>(x), y ); }
778
-
779
- template<class T>
780
- inline
781
- bool operator != ( T const& x, optional<T> const& y )
782
- { return !( x == y ) ; }
783
-
784
- template<class T>
785
- inline
786
- bool operator > ( T const& x, optional<T> const& y )
787
- { return y < x ; }
788
-
789
- template<class T>
790
- inline
791
- bool operator <= ( T const& x, optional<T> const& y )
792
- { return !( y < x ) ; }
793
-
794
- template<class T>
795
- inline
796
- bool operator >= ( T const& x, optional<T> const& y )
797
- { return !( x < y ) ; }
798
-
799
-
800
- //
801
- // optional<T> vs none cases
802
- //
803
-
804
- template<class T>
805
- inline
806
- bool operator == ( optional<T> const& x, none_t )
807
- { return equal_pointees(x, optional<T>() ); }
808
-
809
- template<class T>
810
- inline
811
- bool operator < ( optional<T> const& x, none_t )
812
- { return less_pointees(x,optional<T>() ); }
813
-
814
- template<class T>
815
- inline
816
- bool operator != ( optional<T> const& x, none_t y )
817
- { return !( x == y ) ; }
818
-
819
- template<class T>
820
- inline
821
- bool operator > ( optional<T> const& x, none_t y )
822
- { return y < x ; }
823
-
824
- template<class T>
825
- inline
826
- bool operator <= ( optional<T> const& x, none_t y )
827
- { return !( y < x ) ; }
828
-
829
- template<class T>
830
- inline
831
- bool operator >= ( optional<T> const& x, none_t y )
832
- { return !( x < y ) ; }
833
-
834
- //
835
- // none vs optional<T> cases
836
- //
837
-
838
- template<class T>
839
- inline
840
- bool operator == ( none_t x, optional<T> const& y )
841
- { return equal_pointees(optional<T>() ,y); }
842
-
843
- template<class T>
844
- inline
845
- bool operator < ( none_t x, optional<T> const& y )
846
- { return less_pointees(optional<T>() ,y); }
847
-
848
- template<class T>
849
- inline
850
- bool operator != ( none_t x, optional<T> const& y )
851
- { return !( x == y ) ; }
852
-
853
- template<class T>
854
- inline
855
- bool operator > ( none_t x, optional<T> const& y )
856
- { return y < x ; }
857
-
858
- template<class T>
859
- inline
860
- bool operator <= ( none_t x, optional<T> const& y )
861
- { return !( y < x ) ; }
862
-
863
- template<class T>
864
- inline
865
- bool operator >= ( none_t x, optional<T> const& y )
866
- { return !( x < y ) ; }
867
-
868
- //
869
- // The following swap implementation follows the GCC workaround as found in
870
- // "boost/detail/compressed_pair.hpp"
871
- //
872
- namespace optional_detail {
873
-
874
- // GCC < 3.2 gets the using declaration at namespace scope (FLC, DWA)
875
- #if BOOST_WORKAROUND(__GNUC__, < 3) \
876
- || BOOST_WORKAROUND(__GNUC__, == 3) && __GNUC_MINOR__ <= 2
877
- using std::swap;
878
- #define BOOST_OPTIONAL_STD_SWAP_INTRODUCED_AT_NS_SCOPE
879
- #endif
880
-
881
- // optional's swap:
882
- // If both are initialized, calls swap(T&, T&). If this swap throws, both will remain initialized but their values are now unspecified.
883
- // If only one is initialized, calls U.reset(*I), THEN I.reset().
884
- // If U.reset(*I) throws, both are left UNCHANGED (U is kept uinitialized and I is never reset)
885
- // If both are uninitialized, do nothing (no-throw)
886
- template<class T>
887
- inline
888
- void optional_swap ( optional<T>& x, optional<T>& y )
889
- {
890
- if ( !x && !!y )
891
- {
892
- x.reset(*y);
893
- y.reset();
894
- }
895
- else if ( !!x && !y )
896
- {
897
- y.reset(*x);
898
- x.reset();
899
- }
900
- else if ( !!x && !!y )
901
- {
902
- // GCC > 3.2 and all other compilers have the using declaration at function scope (FLC)
903
- #ifndef BOOST_OPTIONAL_STD_SWAP_INTRODUCED_AT_NS_SCOPE
904
- // allow for Koenig lookup
905
- using std::swap ;
906
- #endif
907
- swap(*x,*y);
908
- }
909
- }
910
-
911
- } // namespace optional_detail
912
-
913
- template<class T> inline void swap ( optional<T>& x, optional<T>& y )
914
- {
915
- optional_detail::optional_swap(x,y);
916
- }
917
-
918
-
919
- } // namespace boost
920
-
921
- #endif
922
-
1
+ // Copyright (C) 2003, Fernando Luis Cacciola Carballal.
2
+ //
3
+ // Use, modification, and distribution is subject to the Boost Software
4
+ // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
5
+ // http://www.boost.org/LICENSE_1_0.txt)
6
+ //
7
+ // See http://www.boost.org/lib/optional for documentation.
8
+ //
9
+ // You are welcome to contact the author at:
10
+ // fernando_cacciola@hotmail.com
11
+ //
12
+ #ifndef BOOST_OPTIONAL_OPTIONAL_FLC_19NOV2002_HPP
13
+ #define BOOST_OPTIONAL_OPTIONAL_FLC_19NOV2002_HPP
14
+
15
+ #include<new>
16
+ #include<algorithm>
17
+
18
+ #include "boost/config.hpp"
19
+ #include "boost/assert.hpp"
20
+ #include "boost/type.hpp"
21
+ #include "boost/type_traits/alignment_of.hpp"
22
+ #include "boost/type_traits/type_with_alignment.hpp"
23
+ #include "boost/type_traits/remove_reference.hpp"
24
+ #include "boost/type_traits/is_reference.hpp"
25
+ #include "boost/mpl/if.hpp"
26
+ #include "boost/mpl/bool.hpp"
27
+ #include "boost/mpl/not.hpp"
28
+ #include "boost/detail/reference_content.hpp"
29
+ #include "boost/none.hpp"
30
+ #include "boost/utility/compare_pointees.hpp"
31
+
32
+ #include "boost/optional/optional_fwd.hpp"
33
+
34
+ #if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
35
+ // VC6.0 has the following bug:
36
+ // When a templated assignment operator exist, an implicit conversion
37
+ // constructing an optional<T> is used when assigment of the form:
38
+ // optional<T> opt ; opt = T(...);
39
+ // is compiled.
40
+ // However, optional's ctor is _explicit_ and the assignemt shouldn't compile.
41
+ // Therefore, for VC6.0 templated assignment is disabled.
42
+ //
43
+ #define BOOST_OPTIONAL_NO_CONVERTING_ASSIGNMENT
44
+ #endif
45
+
46
+ #if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
47
+ // VC7.0 has the following bug:
48
+ // When both a non-template and a template copy-ctor exist
49
+ // and the templated version is made 'explicit', the explicit is also
50
+ // given to the non-templated version, making the class non-implicitely-copyable.
51
+ //
52
+ #define BOOST_OPTIONAL_NO_CONVERTING_COPY_CTOR
53
+ #endif
54
+
55
+ #if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) || BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,<=700)
56
+ // AFAICT only VC7.1 correctly resolves the overload set
57
+ // that includes the in-place factory taking functions,
58
+ // so for the other VC versions, in-place factory support
59
+ // is disabled
60
+ #define BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
61
+ #endif
62
+
63
+ #if BOOST_WORKAROUND(__BORLANDC__, <= 0x551)
64
+ // BCB (5.5.1) cannot parse the nested template struct in an inplace factory.
65
+ #define BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
66
+ #endif
67
+
68
+ #if !defined(BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT) \
69
+ && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x581) )
70
+ // BCB (up to 5.64) has the following bug:
71
+ // If there is a member function/operator template of the form
72
+ // template<class Expr> mfunc( Expr expr ) ;
73
+ // some calls are resolved to this even if there are other better matches.
74
+ // The effect of this bug is that calls to converting ctors and assignments
75
+ // are incrorrectly sink to this general catch-all member function template as shown above.
76
+ #define BOOST_OPTIONAL_WEAK_OVERLOAD_RESOLUTION
77
+ #endif
78
+
79
+ // Daniel Wallin discovered that bind/apply.hpp badly interacts with the apply<>
80
+ // member template of a factory as used in the optional<> implementation.
81
+ // He proposed this simple fix which is to move the call to apply<> outside
82
+ // namespace boost.
83
+ namespace boost_optional_detail
84
+ {
85
+ template <class T, class Factory>
86
+ void construct(Factory const& factory, void* address)
87
+ {
88
+ factory.BOOST_NESTED_TEMPLATE apply<T>(address);
89
+ }
90
+ }
91
+
92
+
93
+ namespace boost {
94
+
95
+ class in_place_factory_base ;
96
+ class typed_in_place_factory_base ;
97
+
98
+ namespace optional_detail {
99
+
100
+ // This local class is used instead of that in "aligned_storage.hpp"
101
+ // because I've found the 'official' class to ICE BCB5.5
102
+ // when some types are used with optional<>
103
+ // (due to sizeof() passed down as a non-type template parameter)
104
+ template <class T>
105
+ class aligned_storage
106
+ {
107
+ // Borland ICEs if unnamed unions are used for this!
108
+ union dummy_u
109
+ {
110
+ char data[ sizeof(T) ];
111
+ BOOST_DEDUCED_TYPENAME type_with_alignment<
112
+ ::boost::alignment_of<T>::value >::type aligner_;
113
+ } dummy_ ;
114
+
115
+ public:
116
+
117
+ void const* address() const { return &dummy_.data[0]; }
118
+ void * address() { return &dummy_.data[0]; }
119
+ } ;
120
+
121
+ template<class T>
122
+ struct types_when_isnt_ref
123
+ {
124
+ typedef T const& reference_const_type ;
125
+ typedef T & reference_type ;
126
+ typedef T const* pointer_const_type ;
127
+ typedef T * pointer_type ;
128
+ typedef T const& argument_type ;
129
+ } ;
130
+ template<class T>
131
+ struct types_when_is_ref
132
+ {
133
+ typedef BOOST_DEDUCED_TYPENAME remove_reference<T>::type raw_type ;
134
+
135
+ typedef raw_type& reference_const_type ;
136
+ typedef raw_type& reference_type ;
137
+ typedef raw_type* pointer_const_type ;
138
+ typedef raw_type* pointer_type ;
139
+ typedef raw_type& argument_type ;
140
+ } ;
141
+
142
+ struct optional_tag {} ;
143
+
144
+ template<class T>
145
+ class optional_base : public optional_tag
146
+ {
147
+ private :
148
+
149
+ typedef
150
+ #if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
151
+ BOOST_DEDUCED_TYPENAME
152
+ #endif
153
+ ::boost::detail::make_reference_content<T>::type internal_type ;
154
+
155
+ typedef aligned_storage<internal_type> storage_type ;
156
+
157
+ typedef types_when_isnt_ref<T> types_when_not_ref ;
158
+ typedef types_when_is_ref<T> types_when_ref ;
159
+
160
+ typedef optional_base<T> this_type ;
161
+
162
+ protected :
163
+
164
+ typedef T value_type ;
165
+
166
+ typedef mpl::true_ is_reference_tag ;
167
+ typedef mpl::false_ is_not_reference_tag ;
168
+
169
+ typedef BOOST_DEDUCED_TYPENAME is_reference<T>::type is_reference_predicate ;
170
+
171
+ typedef BOOST_DEDUCED_TYPENAME mpl::if_<is_reference_predicate,types_when_ref,types_when_not_ref>::type types ;
172
+
173
+ typedef bool (this_type::*unspecified_bool_type)() const;
174
+
175
+ typedef BOOST_DEDUCED_TYPENAME types::reference_type reference_type ;
176
+ typedef BOOST_DEDUCED_TYPENAME types::reference_const_type reference_const_type ;
177
+ typedef BOOST_DEDUCED_TYPENAME types::pointer_type pointer_type ;
178
+ typedef BOOST_DEDUCED_TYPENAME types::pointer_const_type pointer_const_type ;
179
+ typedef BOOST_DEDUCED_TYPENAME types::argument_type argument_type ;
180
+
181
+ // Creates an optional<T> uninitialized.
182
+ // No-throw
183
+ optional_base()
184
+ :
185
+ m_initialized(false) {}
186
+
187
+ // Creates an optional<T> uninitialized.
188
+ // No-throw
189
+ optional_base ( none_t )
190
+ :
191
+ m_initialized(false) {}
192
+
193
+ // Creates an optional<T> initialized with 'val'.
194
+ // Can throw if T::T(T const&) does
195
+ optional_base ( argument_type val )
196
+ :
197
+ m_initialized(false)
198
+ {
199
+ construct(val);
200
+ }
201
+
202
+ // Creates an optional<T> initialized with 'val' IFF cond is true, otherwise creates an uninitialzed optional<T>.
203
+ // Can throw if T::T(T const&) does
204
+ optional_base ( bool cond, argument_type val )
205
+ :
206
+ m_initialized(false)
207
+ {
208
+ if ( cond )
209
+ construct(val);
210
+ }
211
+
212
+ // Creates a deep copy of another optional<T>
213
+ // Can throw if T::T(T const&) does
214
+ optional_base ( optional_base const& rhs )
215
+ :
216
+ m_initialized(false)
217
+ {
218
+ if ( rhs.is_initialized() )
219
+ construct(rhs.get_impl());
220
+ }
221
+
222
+
223
+ // This is used for both converting and in-place constructions.
224
+ // Derived classes use the 'tag' to select the appropriate
225
+ // implementation (the correct 'construct()' overload)
226
+ template<class Expr>
227
+ explicit optional_base ( Expr const& expr, Expr const* tag )
228
+ :
229
+ m_initialized(false)
230
+ {
231
+ construct(expr,tag);
232
+ }
233
+
234
+
235
+
236
+ // No-throw (assuming T::~T() doesn't)
237
+ ~optional_base() { destroy() ; }
238
+
239
+ // Assigns from another optional<T> (deep-copies the rhs value)
240
+ void assign ( optional_base const& rhs )
241
+ {
242
+ if (is_initialized())
243
+ {
244
+ if ( rhs.is_initialized() )
245
+ assign_value(rhs.get_impl(), is_reference_predicate() );
246
+ else destroy();
247
+ }
248
+ else
249
+ {
250
+ if ( rhs.is_initialized() )
251
+ construct(rhs.get_impl());
252
+ }
253
+ }
254
+
255
+ // Assigns from another _convertible_ optional<U> (deep-copies the rhs value)
256
+ template<class U>
257
+ void assign ( optional<U> const& rhs )
258
+ {
259
+ if (is_initialized())
260
+ {
261
+ if ( rhs.is_initialized() )
262
+ assign_value(static_cast<value_type>(rhs.get()), is_reference_predicate() );
263
+ else destroy();
264
+ }
265
+ else
266
+ {
267
+ if ( rhs.is_initialized() )
268
+ construct(static_cast<value_type>(rhs.get()));
269
+ }
270
+ }
271
+
272
+ // Assigns from a T (deep-copies the rhs value)
273
+ void assign ( argument_type val )
274
+ {
275
+ if (is_initialized())
276
+ assign_value(val, is_reference_predicate() );
277
+ else construct(val);
278
+ }
279
+
280
+ // Assigns from "none", destroying the current value, if any, leaving this UNINITIALIZED
281
+ // No-throw (assuming T::~T() doesn't)
282
+ void assign ( none_t ) { destroy(); }
283
+
284
+ #ifndef BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
285
+ template<class Expr>
286
+ void assign_expr ( Expr const& expr, Expr const* tag )
287
+ {
288
+ if (is_initialized())
289
+ assign_expr_to_initialized(expr,tag);
290
+ else construct(expr,tag);
291
+ }
292
+ #endif
293
+
294
+ public :
295
+
296
+ // Destroys the current value, if any, leaving this UNINITIALIZED
297
+ // No-throw (assuming T::~T() doesn't)
298
+ void reset() { destroy(); }
299
+
300
+ // Replaces the current value -if any- with 'val'
301
+ void reset ( argument_type val ) { assign(val); }
302
+
303
+ // Returns a pointer to the value if this is initialized, otherwise,
304
+ // returns NULL.
305
+ // No-throw
306
+ pointer_const_type get_ptr() const { return m_initialized ? get_ptr_impl() : 0 ; }
307
+ pointer_type get_ptr() { return m_initialized ? get_ptr_impl() : 0 ; }
308
+
309
+ bool is_initialized() const { return m_initialized ; }
310
+
311
+ protected :
312
+
313
+ void construct ( argument_type val )
314
+ {
315
+ new (m_storage.address()) internal_type(val) ;
316
+ m_initialized = true ;
317
+ }
318
+
319
+ #ifndef BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
320
+ // Constructs in-place using the given factory
321
+ template<class Expr>
322
+ void construct ( Expr const& factory, in_place_factory_base const* )
323
+ {
324
+ BOOST_STATIC_ASSERT ( ::boost::mpl::not_<is_reference_predicate>::value ) ;
325
+ boost_optional_detail::construct<value_type>(factory, m_storage.address());
326
+ m_initialized = true ;
327
+ }
328
+
329
+ // Constructs in-place using the given typed factory
330
+ template<class Expr>
331
+ void construct ( Expr const& factory, typed_in_place_factory_base const* )
332
+ {
333
+ BOOST_STATIC_ASSERT ( ::boost::mpl::not_<is_reference_predicate>::value ) ;
334
+ factory.apply(m_storage.address()) ;
335
+ m_initialized = true ;
336
+ }
337
+
338
+ template<class Expr>
339
+ void assign_expr_to_initialized ( Expr const& factory, in_place_factory_base const* tag )
340
+ {
341
+ destroy();
342
+ construct(factory,tag);
343
+ }
344
+
345
+ // Constructs in-place using the given typed factory
346
+ template<class Expr>
347
+ void assign_expr_to_initialized ( Expr const& factory, typed_in_place_factory_base const* tag )
348
+ {
349
+ destroy();
350
+ construct(factory,tag);
351
+ }
352
+ #endif
353
+
354
+ // Constructs using any expression implicitely convertible to the single argument
355
+ // of a one-argument T constructor.
356
+ // Converting constructions of optional<T> from optional<U> uses this function with
357
+ // 'Expr' being of type 'U' and relying on a converting constructor of T from U.
358
+ template<class Expr>
359
+ void construct ( Expr const& expr, void const* )
360
+ {
361
+ new (m_storage.address()) internal_type(expr) ;
362
+ m_initialized = true ;
363
+ }
364
+
365
+ // Assigns using a form any expression implicitely convertible to the single argument
366
+ // of a T's assignment operator.
367
+ // Converting assignments of optional<T> from optional<U> uses this function with
368
+ // 'Expr' being of type 'U' and relying on a converting assignment of T from U.
369
+ template<class Expr>
370
+ void assign_expr_to_initialized ( Expr const& expr, void const* )
371
+ {
372
+ assign_value(expr, is_reference_predicate());
373
+ }
374
+
375
+ #ifdef BOOST_OPTIONAL_WEAK_OVERLOAD_RESOLUTION
376
+ // BCB5.64 (and probably lower versions) workaround.
377
+ // The in-place factories are supported by means of catch-all constructors
378
+ // and assignment operators (the functions are parameterized in terms of
379
+ // an arbitrary 'Expr' type)
380
+ // This compiler incorrectly resolves the overload set and sinks optional<T> and optional<U>
381
+ // to the 'Expr'-taking functions even though explicit overloads are present for them.
382
+ // Thus, the following overload is needed to properly handle the case when the 'lhs'
383
+ // is another optional.
384
+ //
385
+ // For VC<=70 compilers this workaround dosen't work becasue the comnpiler issues and error
386
+ // instead of choosing the wrong overload
387
+ //
388
+ // Notice that 'Expr' will be optional<T> or optional<U> (but not optional_base<..>)
389
+ template<class Expr>
390
+ void construct ( Expr const& expr, optional_tag const* )
391
+ {
392
+ if ( expr.is_initialized() )
393
+ {
394
+ // An exception can be thrown here.
395
+ // It it happens, THIS will be left uninitialized.
396
+ new (m_storage.address()) internal_type(expr.get()) ;
397
+ m_initialized = true ;
398
+ }
399
+ }
400
+ #endif
401
+
402
+ void assign_value ( argument_type val, is_not_reference_tag ) { get_impl() = val; }
403
+ void assign_value ( argument_type val, is_reference_tag ) { construct(val); }
404
+
405
+ void destroy()
406
+ {
407
+ if ( m_initialized )
408
+ destroy_impl(is_reference_predicate()) ;
409
+ }
410
+
411
+ unspecified_bool_type safe_bool() const { return m_initialized ? &this_type::is_initialized : 0 ; }
412
+
413
+ reference_const_type get_impl() const { return dereference(get_object(), is_reference_predicate() ) ; }
414
+ reference_type get_impl() { return dereference(get_object(), is_reference_predicate() ) ; }
415
+
416
+ pointer_const_type get_ptr_impl() const { return cast_ptr(get_object(), is_reference_predicate() ) ; }
417
+ pointer_type get_ptr_impl() { return cast_ptr(get_object(), is_reference_predicate() ) ; }
418
+
419
+ private :
420
+
421
+ // internal_type can be either T or reference_content<T>
422
+ internal_type const* get_object() const { return static_cast<internal_type const*>(m_storage.address()); }
423
+ internal_type * get_object() { return static_cast<internal_type *> (m_storage.address()); }
424
+
425
+ // reference_content<T> lacks an implicit conversion to T&, so the following is needed to obtain a proper reference.
426
+ reference_const_type dereference( internal_type const* p, is_not_reference_tag ) const { return *p ; }
427
+ reference_type dereference( internal_type* p, is_not_reference_tag ) { return *p ; }
428
+ reference_const_type dereference( internal_type const* p, is_reference_tag ) const { return p->get() ; }
429
+ reference_type dereference( internal_type* p, is_reference_tag ) { return p->get() ; }
430
+
431
+ #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x581))
432
+ void destroy_impl ( is_not_reference_tag ) { get_ptr_impl()->internal_type::~internal_type() ; m_initialized = false ; }
433
+ #else
434
+ void destroy_impl ( is_not_reference_tag ) { get_ptr_impl()->T::~T() ; m_initialized = false ; }
435
+ #endif
436
+
437
+ void destroy_impl ( is_reference_tag ) { m_initialized = false ; }
438
+
439
+ // If T is of reference type, trying to get a pointer to the held value must result in a compile-time error.
440
+ // Decent compilers should disallow conversions from reference_content<T>* to T*, but just in case,
441
+ // the following olverloads are used to filter out the case and guarantee an error in case of T being a reference.
442
+ pointer_const_type cast_ptr( internal_type const* p, is_not_reference_tag ) const { return p ; }
443
+ pointer_type cast_ptr( internal_type * p, is_not_reference_tag ) { return p ; }
444
+ pointer_const_type cast_ptr( internal_type const* p, is_reference_tag ) const { return &p->get() ; }
445
+ pointer_type cast_ptr( internal_type * p, is_reference_tag ) { return &p->get() ; }
446
+
447
+ bool m_initialized ;
448
+ storage_type m_storage ;
449
+ } ;
450
+
451
+ } // namespace optional_detail
452
+
453
+ template<class T>
454
+ class optional : public optional_detail::optional_base<T>
455
+ {
456
+ typedef optional_detail::optional_base<T> base ;
457
+
458
+ typedef BOOST_DEDUCED_TYPENAME base::unspecified_bool_type unspecified_bool_type ;
459
+
460
+ public :
461
+
462
+ typedef optional<T> this_type ;
463
+
464
+ typedef BOOST_DEDUCED_TYPENAME base::value_type value_type ;
465
+ typedef BOOST_DEDUCED_TYPENAME base::reference_type reference_type ;
466
+ typedef BOOST_DEDUCED_TYPENAME base::reference_const_type reference_const_type ;
467
+ typedef BOOST_DEDUCED_TYPENAME base::pointer_type pointer_type ;
468
+ typedef BOOST_DEDUCED_TYPENAME base::pointer_const_type pointer_const_type ;
469
+ typedef BOOST_DEDUCED_TYPENAME base::argument_type argument_type ;
470
+
471
+ // Creates an optional<T> uninitialized.
472
+ // No-throw
473
+ optional() : base() {}
474
+
475
+ // Creates an optional<T> uninitialized.
476
+ // No-throw
477
+ optional( none_t none_ ) : base(none_) {}
478
+
479
+ // Creates an optional<T> initialized with 'val'.
480
+ // Can throw if T::T(T const&) does
481
+ optional ( argument_type val ) : base(val) {}
482
+
483
+ // Creates an optional<T> initialized with 'val' IFF cond is true, otherwise creates an uninitialized optional.
484
+ // Can throw if T::T(T const&) does
485
+ optional ( bool cond, argument_type val ) : base(cond,val) {}
486
+
487
+ #ifndef BOOST_OPTIONAL_NO_CONVERTING_COPY_CTOR
488
+ // NOTE: MSVC needs templated versions first
489
+
490
+ // Creates a deep copy of another convertible optional<U>
491
+ // Requires a valid conversion from U to T.
492
+ // Can throw if T::T(U const&) does
493
+ template<class U>
494
+ explicit optional ( optional<U> const& rhs )
495
+ :
496
+ base()
497
+ {
498
+ if ( rhs.is_initialized() )
499
+ this->construct(rhs.get());
500
+ }
501
+ #endif
502
+
503
+ #ifndef BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
504
+ // Creates an optional<T> with an expression which can be either
505
+ // (a) An instance of InPlaceFactory (i.e. in_place(a,b,...,n);
506
+ // (b) An instance of TypedInPlaceFactory ( i.e. in_place<T>(a,b,...,n);
507
+ // (c) Any expression implicitely convertible to the single type
508
+ // of a one-argument T's constructor.
509
+ // (d*) Weak compilers (BCB) might also resolved Expr as optional<T> and optional<U>
510
+ // even though explicit overloads are present for these.
511
+ // Depending on the above some T ctor is called.
512
+ // Can throw is the resolved T ctor throws.
513
+ template<class Expr>
514
+ explicit optional ( Expr const& expr ) : base(expr,&expr) {}
515
+ #endif
516
+
517
+ // Creates a deep copy of another optional<T>
518
+ // Can throw if T::T(T const&) does
519
+ optional ( optional const& rhs ) : base(rhs) {}
520
+
521
+ // No-throw (assuming T::~T() doesn't)
522
+ ~optional() {}
523
+
524
+ #if !defined(BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT) && !defined(BOOST_OPTIONAL_WEAK_OVERLOAD_RESOLUTION)
525
+ // Assigns from an expression. See corresponding constructor.
526
+ // Basic Guarantee: If the resolved T ctor throws, this is left UNINITIALIZED
527
+ template<class Expr>
528
+ optional& operator= ( Expr expr )
529
+ {
530
+ this->assign_expr(expr,&expr);
531
+ return *this ;
532
+ }
533
+ #endif
534
+
535
+
536
+ #ifndef BOOST_OPTIONAL_NO_CONVERTING_ASSIGNMENT
537
+ // Assigns from another convertible optional<U> (converts && deep-copies the rhs value)
538
+ // Requires a valid conversion from U to T.
539
+ // Basic Guarantee: If T::T( U const& ) throws, this is left UNINITIALIZED
540
+ template<class U>
541
+ optional& operator= ( optional<U> const& rhs )
542
+ {
543
+ this->assign(rhs);
544
+ return *this ;
545
+ }
546
+ #endif
547
+
548
+ // Assigns from another optional<T> (deep-copies the rhs value)
549
+ // Basic Guarantee: If T::T( T const& ) throws, this is left UNINITIALIZED
550
+ // (NOTE: On BCB, this operator is not actually called and left is left UNMODIFIED in case of a throw)
551
+ optional& operator= ( optional const& rhs )
552
+ {
553
+ this->assign( rhs ) ;
554
+ return *this ;
555
+ }
556
+
557
+ // Assigns from a T (deep-copies the rhs value)
558
+ // Basic Guarantee: If T::( T const& ) throws, this is left UNINITIALIZED
559
+ optional& operator= ( argument_type val )
560
+ {
561
+ this->assign( val ) ;
562
+ return *this ;
563
+ }
564
+
565
+ // Assigns from a "none"
566
+ // Which destroys the current value, if any, leaving this UNINITIALIZED
567
+ // No-throw (assuming T::~T() doesn't)
568
+ optional& operator= ( none_t none_ )
569
+ {
570
+ this->assign( none_ ) ;
571
+ return *this ;
572
+ }
573
+
574
+ // Returns a reference to the value if this is initialized, otherwise,
575
+ // the behaviour is UNDEFINED
576
+ // No-throw
577
+ reference_const_type get() const { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
578
+ reference_type get() { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
579
+
580
+ // Returns a copy of the value if this is initialized, 'v' otherwise
581
+ reference_const_type get_value_or ( reference_const_type v ) const { return this->is_initialized() ? get() : v ; }
582
+ reference_type get_value_or ( reference_type v ) { return this->is_initialized() ? get() : v ; }
583
+
584
+ // Returns a pointer to the value if this is initialized, otherwise,
585
+ // the behaviour is UNDEFINED
586
+ // No-throw
587
+ pointer_const_type operator->() const { BOOST_ASSERT(this->is_initialized()) ; return this->get_ptr_impl() ; }
588
+ pointer_type operator->() { BOOST_ASSERT(this->is_initialized()) ; return this->get_ptr_impl() ; }
589
+
590
+ // Returns a reference to the value if this is initialized, otherwise,
591
+ // the behaviour is UNDEFINED
592
+ // No-throw
593
+ reference_const_type operator *() const { return this->get() ; }
594
+ reference_type operator *() { return this->get() ; }
595
+
596
+ // implicit conversion to "bool"
597
+ // No-throw
598
+ operator unspecified_bool_type() const { return this->safe_bool() ; }
599
+
600
+ // This is provided for those compilers which don't like the conversion to bool
601
+ // on some contexts.
602
+ bool operator!() const { return !this->is_initialized() ; }
603
+ } ;
604
+
605
+ // Returns optional<T>(v)
606
+ template<class T>
607
+ inline
608
+ optional<T> make_optional ( T const& v )
609
+ {
610
+ return optional<T>(v);
611
+ }
612
+
613
+ // Returns optional<T>(cond,v)
614
+ template<class T>
615
+ inline
616
+ optional<T> make_optional ( bool cond, T const& v )
617
+ {
618
+ return optional<T>(cond,v);
619
+ }
620
+
621
+ // Returns a reference to the value if this is initialized, otherwise, the behaviour is UNDEFINED.
622
+ // No-throw
623
+ template<class T>
624
+ inline
625
+ BOOST_DEDUCED_TYPENAME optional<T>::reference_const_type
626
+ get ( optional<T> const& opt )
627
+ {
628
+ return opt.get() ;
629
+ }
630
+
631
+ template<class T>
632
+ inline
633
+ BOOST_DEDUCED_TYPENAME optional<T>::reference_type
634
+ get ( optional<T>& opt )
635
+ {
636
+ return opt.get() ;
637
+ }
638
+
639
+ // Returns a pointer to the value if this is initialized, otherwise, returns NULL.
640
+ // No-throw
641
+ template<class T>
642
+ inline
643
+ BOOST_DEDUCED_TYPENAME optional<T>::pointer_const_type
644
+ get ( optional<T> const* opt )
645
+ {
646
+ return opt->get_ptr() ;
647
+ }
648
+
649
+ template<class T>
650
+ inline
651
+ BOOST_DEDUCED_TYPENAME optional<T>::pointer_type
652
+ get ( optional<T>* opt )
653
+ {
654
+ return opt->get_ptr() ;
655
+ }
656
+
657
+ // Returns a reference to the value if this is initialized, otherwise, the behaviour is UNDEFINED.
658
+ // No-throw
659
+ template<class T>
660
+ inline
661
+ BOOST_DEDUCED_TYPENAME optional<T>::reference_const_type
662
+ get_optional_value_or ( optional<T> const& opt, BOOST_DEDUCED_TYPENAME optional<T>::reference_const_type v )
663
+ {
664
+ return opt.get_value_or(v) ;
665
+ }
666
+
667
+ template<class T>
668
+ inline
669
+ BOOST_DEDUCED_TYPENAME optional<T>::reference_type
670
+ get_optional_value_or ( optional<T>& opt, BOOST_DEDUCED_TYPENAME optional<T>::reference_type v )
671
+ {
672
+ return opt.get_value_or(v) ;
673
+ }
674
+
675
+ // Returns a pointer to the value if this is initialized, otherwise, returns NULL.
676
+ // No-throw
677
+ template<class T>
678
+ inline
679
+ BOOST_DEDUCED_TYPENAME optional<T>::pointer_const_type
680
+ get_pointer ( optional<T> const& opt )
681
+ {
682
+ return opt.get_ptr() ;
683
+ }
684
+
685
+ template<class T>
686
+ inline
687
+ BOOST_DEDUCED_TYPENAME optional<T>::pointer_type
688
+ get_pointer ( optional<T>& opt )
689
+ {
690
+ return opt.get_ptr() ;
691
+ }
692
+
693
+ // optional's relational operators ( ==, !=, <, >, <=, >= ) have deep-semantics (compare values).
694
+ // WARNING: This is UNLIKE pointers. Use equal_pointees()/less_pointess() in generic code instead.
695
+
696
+
697
+ //
698
+ // optional<T> vs optional<T> cases
699
+ //
700
+
701
+ template<class T>
702
+ inline
703
+ bool operator == ( optional<T> const& x, optional<T> const& y )
704
+ { return equal_pointees(x,y); }
705
+
706
+ template<class T>
707
+ inline
708
+ bool operator < ( optional<T> const& x, optional<T> const& y )
709
+ { return less_pointees(x,y); }
710
+
711
+ template<class T>
712
+ inline
713
+ bool operator != ( optional<T> const& x, optional<T> const& y )
714
+ { return !( x == y ) ; }
715
+
716
+ template<class T>
717
+ inline
718
+ bool operator > ( optional<T> const& x, optional<T> const& y )
719
+ { return y < x ; }
720
+
721
+ template<class T>
722
+ inline
723
+ bool operator <= ( optional<T> const& x, optional<T> const& y )
724
+ { return !( y < x ) ; }
725
+
726
+ template<class T>
727
+ inline
728
+ bool operator >= ( optional<T> const& x, optional<T> const& y )
729
+ { return !( x < y ) ; }
730
+
731
+
732
+ //
733
+ // optional<T> vs T cases
734
+ //
735
+ template<class T>
736
+ inline
737
+ bool operator == ( optional<T> const& x, T const& y )
738
+ { return equal_pointees(x, optional<T>(y)); }
739
+
740
+ template<class T>
741
+ inline
742
+ bool operator < ( optional<T> const& x, T const& y )
743
+ { return less_pointees(x, optional<T>(y)); }
744
+
745
+ template<class T>
746
+ inline
747
+ bool operator != ( optional<T> const& x, T const& y )
748
+ { return !( x == y ) ; }
749
+
750
+ template<class T>
751
+ inline
752
+ bool operator > ( optional<T> const& x, T const& y )
753
+ { return y < x ; }
754
+
755
+ template<class T>
756
+ inline
757
+ bool operator <= ( optional<T> const& x, T const& y )
758
+ { return !( y < x ) ; }
759
+
760
+ template<class T>
761
+ inline
762
+ bool operator >= ( optional<T> const& x, T const& y )
763
+ { return !( x < y ) ; }
764
+
765
+ //
766
+ // T vs optional<T> cases
767
+ //
768
+
769
+ template<class T>
770
+ inline
771
+ bool operator == ( T const& x, optional<T> const& y )
772
+ { return equal_pointees( optional<T>(x), y ); }
773
+
774
+ template<class T>
775
+ inline
776
+ bool operator < ( T const& x, optional<T> const& y )
777
+ { return less_pointees( optional<T>(x), y ); }
778
+
779
+ template<class T>
780
+ inline
781
+ bool operator != ( T const& x, optional<T> const& y )
782
+ { return !( x == y ) ; }
783
+
784
+ template<class T>
785
+ inline
786
+ bool operator > ( T const& x, optional<T> const& y )
787
+ { return y < x ; }
788
+
789
+ template<class T>
790
+ inline
791
+ bool operator <= ( T const& x, optional<T> const& y )
792
+ { return !( y < x ) ; }
793
+
794
+ template<class T>
795
+ inline
796
+ bool operator >= ( T const& x, optional<T> const& y )
797
+ { return !( x < y ) ; }
798
+
799
+
800
+ //
801
+ // optional<T> vs none cases
802
+ //
803
+
804
+ template<class T>
805
+ inline
806
+ bool operator == ( optional<T> const& x, none_t )
807
+ { return equal_pointees(x, optional<T>() ); }
808
+
809
+ template<class T>
810
+ inline
811
+ bool operator < ( optional<T> const& x, none_t )
812
+ { return less_pointees(x,optional<T>() ); }
813
+
814
+ template<class T>
815
+ inline
816
+ bool operator != ( optional<T> const& x, none_t y )
817
+ { return !( x == y ) ; }
818
+
819
+ template<class T>
820
+ inline
821
+ bool operator > ( optional<T> const& x, none_t y )
822
+ { return y < x ; }
823
+
824
+ template<class T>
825
+ inline
826
+ bool operator <= ( optional<T> const& x, none_t y )
827
+ { return !( y < x ) ; }
828
+
829
+ template<class T>
830
+ inline
831
+ bool operator >= ( optional<T> const& x, none_t y )
832
+ { return !( x < y ) ; }
833
+
834
+ //
835
+ // none vs optional<T> cases
836
+ //
837
+
838
+ template<class T>
839
+ inline
840
+ bool operator == ( none_t x, optional<T> const& y )
841
+ { return equal_pointees(optional<T>() ,y); }
842
+
843
+ template<class T>
844
+ inline
845
+ bool operator < ( none_t x, optional<T> const& y )
846
+ { return less_pointees(optional<T>() ,y); }
847
+
848
+ template<class T>
849
+ inline
850
+ bool operator != ( none_t x, optional<T> const& y )
851
+ { return !( x == y ) ; }
852
+
853
+ template<class T>
854
+ inline
855
+ bool operator > ( none_t x, optional<T> const& y )
856
+ { return y < x ; }
857
+
858
+ template<class T>
859
+ inline
860
+ bool operator <= ( none_t x, optional<T> const& y )
861
+ { return !( y < x ) ; }
862
+
863
+ template<class T>
864
+ inline
865
+ bool operator >= ( none_t x, optional<T> const& y )
866
+ { return !( x < y ) ; }
867
+
868
+ //
869
+ // The following swap implementation follows the GCC workaround as found in
870
+ // "boost/detail/compressed_pair.hpp"
871
+ //
872
+ namespace optional_detail {
873
+
874
+ // GCC < 3.2 gets the using declaration at namespace scope (FLC, DWA)
875
+ #if BOOST_WORKAROUND(__GNUC__, < 3) \
876
+ || BOOST_WORKAROUND(__GNUC__, == 3) && __GNUC_MINOR__ <= 2
877
+ using std::swap;
878
+ #define BOOST_OPTIONAL_STD_SWAP_INTRODUCED_AT_NS_SCOPE
879
+ #endif
880
+
881
+ // optional's swap:
882
+ // If both are initialized, calls swap(T&, T&). If this swap throws, both will remain initialized but their values are now unspecified.
883
+ // If only one is initialized, calls U.reset(*I), THEN I.reset().
884
+ // If U.reset(*I) throws, both are left UNCHANGED (U is kept uinitialized and I is never reset)
885
+ // If both are uninitialized, do nothing (no-throw)
886
+ template<class T>
887
+ inline
888
+ void optional_swap ( optional<T>& x, optional<T>& y )
889
+ {
890
+ if ( !x && !!y )
891
+ {
892
+ x.reset(*y);
893
+ y.reset();
894
+ }
895
+ else if ( !!x && !y )
896
+ {
897
+ y.reset(*x);
898
+ x.reset();
899
+ }
900
+ else if ( !!x && !!y )
901
+ {
902
+ // GCC > 3.2 and all other compilers have the using declaration at function scope (FLC)
903
+ #ifndef BOOST_OPTIONAL_STD_SWAP_INTRODUCED_AT_NS_SCOPE
904
+ // allow for Koenig lookup
905
+ using std::swap ;
906
+ #endif
907
+ swap(*x,*y);
908
+ }
909
+ }
910
+
911
+ } // namespace optional_detail
912
+
913
+ template<class T> inline void swap ( optional<T>& x, optional<T>& y )
914
+ {
915
+ optional_detail::optional_swap(x,y);
916
+ }
917
+
918
+
919
+ } // namespace boost
920
+
921
+ #endif
922
+