passenger 5.1.4 → 5.1.5

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 (542) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +9 -0
  3. data/CHANGELOG +9 -0
  4. data/build/cxx_tests.rb +11 -1
  5. data/build/documentation.rb +0 -32
  6. data/build/support/cxx_dependency_map.rb +602 -2
  7. data/build/test_basics.rb +3 -3
  8. data/dev/boost-patches/0001-Patch-boost-thread-so-that-oxt-thread-can-use-it.patch +48 -0
  9. data/dev/boost-patches/0002-Make-boost-thread_interrupted-derive-from-oxt-tracab.patch +33 -0
  10. data/dev/boost-patches/0003-Disable-a-Clang-pragma-to-prevent-warnings-on-OS-X.patch +25 -0
  11. data/dev/ci/README.md +121 -0
  12. data/dev/ci/lib/functions.sh +129 -0
  13. data/dev/ci/lib/set-container-envvars.sh +46 -0
  14. data/dev/ci/lib/setup-container.sh +43 -0
  15. data/dev/ci/run-tests-natively +24 -0
  16. data/dev/ci/run-tests-with-docker +42 -0
  17. data/dev/ci/scripts/debug-console-wrapper.sh +27 -0
  18. data/dev/ci/scripts/docker-entrypoint-stage2.sh +17 -0
  19. data/dev/ci/scripts/docker-entrypoint.sh +17 -0
  20. data/dev/ci/scripts/inituidgid +17 -0
  21. data/dev/ci/scripts/run-tests-natively-stage2.sh +17 -0
  22. data/dev/ci/scripts/setup-host-natively.sh +11 -0
  23. data/dev/ci/setup-host +50 -0
  24. data/dev/ci/tests/apache2/run +6 -0
  25. data/dev/ci/tests/apache2/setup +4 -0
  26. data/dev/ci/tests/cxx/run +9 -0
  27. data/dev/ci/tests/cxx/setup +4 -0
  28. data/dev/ci/tests/nginx-dynamic/run +20 -0
  29. data/dev/ci/tests/nginx-dynamic/setup +4 -0
  30. data/dev/ci/tests/nginx/run +5 -0
  31. data/dev/ci/tests/nginx/setup +4 -0
  32. data/dev/ci/tests/nodejs/run +4 -0
  33. data/dev/ci/tests/nodejs/setup +4 -0
  34. data/dev/ci/tests/ruby/run +4 -0
  35. data/dev/ci/tests/ruby/setup +4 -0
  36. data/dev/ci/tests/source-packaging/run +4 -0
  37. data/dev/ci/tests/source-packaging/setup +4 -0
  38. data/dev/ci/tests/standalone/run +4 -0
  39. data/dev/ci/tests/standalone/setup +4 -0
  40. data/dev/copy_boost_headers +8 -2
  41. data/src/agent/Core/ApiServer.h +11 -5
  42. data/src/agent/Core/Controller.h +12 -46
  43. data/src/agent/Core/Controller/CheckoutSession.cpp +1 -1
  44. data/src/agent/Core/Controller/Config.h +369 -0
  45. data/src/agent/Core/Controller/ForwardResponse.cpp +4 -4
  46. data/src/agent/Core/Controller/Hooks.cpp +15 -3
  47. data/src/agent/Core/Controller/Implementation.cpp +1 -1
  48. data/src/agent/Core/Controller/InitRequest.cpp +28 -39
  49. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +25 -60
  50. data/src/agent/Core/Controller/InternalUtils.cpp +0 -16
  51. data/src/agent/Core/Controller/Miscellaneous.cpp +0 -17
  52. data/src/agent/Core/Controller/Request.h +2 -0
  53. data/src/agent/Core/Controller/SendRequest.cpp +4 -4
  54. data/src/agent/Core/Controller/{StateInspectionAndConfiguration.cpp → StateInspection.cpp} +0 -22
  55. data/src/agent/Core/Controller/TurboCaching.h +11 -10
  56. data/src/agent/Core/CoreMain.cpp +16 -6
  57. data/src/agent/Core/ResponseCache.h +3 -3
  58. data/src/agent/Core/SpawningKit/SmartSpawner.h +9 -3
  59. data/src/agent/Core/SpawningKit/Spawner.h +7 -3
  60. data/src/agent/UstRouter/ApiServer.h +3 -2
  61. data/src/agent/UstRouter/Controller.h +66 -32
  62. data/src/agent/UstRouter/UstRouterMain.cpp +10 -2
  63. data/src/agent/Watchdog/ApiServer.h +3 -2
  64. data/src/agent/Watchdog/WatchdogMain.cpp +3 -1
  65. data/src/apache2_module/ConfigurationCommands.cpp +1 -1
  66. data/src/cxx_supportlib/ConfigKit/Common.h +125 -0
  67. data/src/cxx_supportlib/ConfigKit/ConfigKit.h +34 -0
  68. data/src/cxx_supportlib/ConfigKit/README.md +895 -0
  69. data/src/cxx_supportlib/ConfigKit/Schema.h +331 -0
  70. data/src/cxx_supportlib/ConfigKit/Store.h +385 -0
  71. data/src/cxx_supportlib/ConfigKit/TableTranslator.h +185 -0
  72. data/src/cxx_supportlib/ConfigKit/Utils.h +141 -0
  73. data/src/cxx_supportlib/ConfigKit/VariantMapUtils.h +81 -0
  74. data/src/cxx_supportlib/Constants.h +1 -1
  75. data/src/cxx_supportlib/Crypto.cpp +2 -2
  76. data/src/cxx_supportlib/Logging.h +0 -35
  77. data/src/cxx_supportlib/ServerKit/HttpServer.h +35 -16
  78. data/src/cxx_supportlib/ServerKit/Server.h +65 -25
  79. data/src/cxx_supportlib/oxt/macros.hpp +3 -0
  80. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/replace.hpp +0 -2
  81. data/src/cxx_supportlib/vendor-modified/boost/array.hpp +53 -42
  82. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_template.hpp +11 -5
  83. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +13 -2
  84. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_x86.hpp +23 -0
  85. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_msvc_x86.hpp +5 -0
  86. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +3 -2
  87. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +8 -1
  88. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_emulated.hpp +3 -1
  89. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_alpha.hpp +2 -0
  90. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm.hpp +2 -0
  91. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_atomic.hpp +5 -0
  92. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc.hpp +2 -0
  93. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sparc.hpp +6 -4
  94. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sync.hpp +2 -0
  95. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86.hpp +3 -1
  96. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +28 -17
  97. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_linux_arm.hpp +2 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_arm.hpp +2 -0
  99. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_x86.hpp +9 -4
  100. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +3 -3
  101. data/src/cxx_supportlib/vendor-modified/boost/bind/arg.hpp +10 -3
  102. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +90 -18
  103. data/src/cxx_supportlib/vendor-modified/boost/cerrno.hpp +2 -2
  104. data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +1 -1
  105. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +8 -3
  106. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +2 -0
  107. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +35 -6
  108. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +2 -0
  109. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/comeau.hpp +1 -1
  110. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +2 -0
  111. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/compaq_cxx.hpp +1 -1
  112. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +3 -1
  113. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +2 -0
  114. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +19 -4
  115. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -1
  116. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/greenhills.hpp +1 -1
  117. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +3 -1
  118. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +29 -7
  119. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/kai.hpp +1 -1
  120. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +2 -0
  121. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +2 -0
  122. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +16 -0
  123. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +2 -0
  124. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pgi.hpp +2 -0
  125. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sgi_mipspro.hpp +1 -1
  126. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +10 -1
  127. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +2 -0
  128. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +44 -16
  129. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
  130. data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +1 -2
  131. data/src/cxx_supportlib/vendor-modified/boost/config/platform/linux.hpp +1 -1
  132. data/src/cxx_supportlib/vendor-modified/boost/config/select_compiler_config.hpp +21 -21
  133. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +42 -1
  134. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcomo.hpp +7 -0
  135. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +40 -7
  136. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +39 -6
  137. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/modena.hpp +7 -0
  138. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/msl.hpp +7 -0
  139. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/roguewave.hpp +7 -0
  140. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/sgi.hpp +8 -1
  141. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/stlport.hpp +7 -0
  142. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/vacpp.hpp +7 -0
  143. data/src/cxx_supportlib/vendor-modified/boost/config/suffix.hpp +33 -4
  144. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +0 -2
  145. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +0 -3
  146. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +34 -27
  147. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +62 -26
  148. data/src/cxx_supportlib/vendor-modified/boost/container/detail/addressof.hpp +2 -2
  149. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +4 -4
  150. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +4 -4
  151. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +2 -0
  152. data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +39 -5
  153. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +49 -32
  154. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +175 -7
  155. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +223 -98
  156. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_sorted.hpp +57 -0
  157. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +88 -41
  158. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +7 -8
  159. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +4 -9
  160. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +45 -18
  161. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +205 -26
  162. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +290 -181
  163. data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +2 -0
  164. data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +24 -19
  165. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +38 -0
  166. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +320 -46
  167. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +91 -18
  168. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +23 -19
  169. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +491 -120
  170. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +4 -4
  171. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +0 -3
  172. data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +399 -0
  173. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/deque.hpp +2 -0
  174. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_map.hpp +4 -0
  175. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_set.hpp +4 -0
  176. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/list.hpp +2 -0
  177. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/map.hpp +4 -0
  178. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/set.hpp +4 -0
  179. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/slist.hpp +2 -0
  180. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/small_vector.hpp +2 -0
  181. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/stable_vector.hpp +2 -0
  182. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/string.hpp +2 -0
  183. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/vector.hpp +2 -0
  184. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +101 -20
  185. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +19 -14
  186. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +117 -59
  187. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +8 -6
  188. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +33 -28
  189. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +414 -70
  190. data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +1 -0
  191. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_fwd.hpp +2 -2
  192. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +134 -117
  193. data/src/cxx_supportlib/vendor-modified/boost/core/addressof.hpp +202 -99
  194. data/src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp +8 -10
  195. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +217 -1
  196. data/src/cxx_supportlib/vendor-modified/boost/core/scoped_enum.hpp +29 -27
  197. data/src/cxx_supportlib/vendor-modified/boost/current_function.hpp +5 -1
  198. data/src/cxx_supportlib/vendor-modified/boost/date_time/c_time.hpp +13 -13
  199. data/src/cxx_supportlib/vendor-modified/boost/date_time/constrained_value.hpp +3 -3
  200. data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +2 -1
  201. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration.hpp +4 -3
  202. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration_types.hpp +6 -5
  203. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_facet.hpp +2 -2
  204. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_names_put.hpp +8 -7
  205. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_calendar.hpp +2 -1
  206. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +2 -1
  207. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day.hpp +4 -3
  208. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day_of_year.hpp +3 -2
  209. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration.hpp +2 -1
  210. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration_types.hpp +4 -3
  211. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_facet.hpp +27 -7
  212. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_month.hpp +5 -5
  213. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_serialize.hpp +5 -0
  214. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_weekday.hpp +4 -4
  215. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_year.hpp +4 -5
  216. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.hpp +2 -1
  217. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_date_time.hpp +5 -4
  218. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/posix_time_zone.hpp +4 -3
  219. data/src/cxx_supportlib/vendor-modified/boost/date_time/period.hpp +3 -2
  220. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/date_duration_operators.hpp +1 -1
  221. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_config.hpp +2 -2
  222. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +5 -4
  223. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/ptime.hpp +6 -5
  224. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_parsers.hpp +4 -0
  225. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +2 -2
  226. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +5 -4
  227. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_zone_base.hpp +2 -1
  228. data/src/cxx_supportlib/vendor-modified/boost/date_time/year_month_day.hpp +3 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/detail/iterator.hpp +13 -0
  230. data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +1 -0
  231. data/src/cxx_supportlib/vendor-modified/boost/detail/workaround.hpp +5 -0
  232. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +11 -0
  233. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/shared_ptr.hpp +17 -0
  234. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +25 -3
  235. data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +2 -1
  236. data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +114 -1
  237. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +116 -142
  238. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +57 -69
  239. data/src/cxx_supportlib/vendor-modified/boost/functional/hash/detail/hash_float.hpp +1 -1
  240. data/src/cxx_supportlib/vendor-modified/boost/functional/hash/extensions.hpp +3 -3
  241. data/src/cxx_supportlib/vendor-modified/boost/functional/hash/hash.hpp +27 -13
  242. data/src/cxx_supportlib/vendor-modified/boost/intrusive/any_hook.hpp +4 -2
  243. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +99 -12
  244. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set_hook.hpp +4 -2
  245. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +35 -4
  246. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +37 -6
  247. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +95 -8
  248. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set_hook.hpp +4 -2
  249. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +209 -72
  250. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +86 -20
  251. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +11 -11
  252. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +6 -6
  253. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algo_type.hpp +4 -1
  254. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +58 -45
  255. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +27 -26
  256. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +2 -2
  257. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +7 -7
  258. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +8 -3
  259. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +4 -3
  260. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +27 -26
  261. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/equal_to_value.hpp +3 -1
  262. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/exception_disposer.hpp +4 -2
  263. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +9 -7
  264. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/has_member_function_callable_with.hpp +83 -57
  265. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +30 -30
  266. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +9 -8
  267. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iiterator.hpp +8 -7
  268. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +16 -15
  269. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +70 -44
  270. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +22 -21
  271. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +7 -6
  272. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +5 -4
  273. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +29 -28
  274. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/reverse_iterator.hpp +33 -12
  275. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/size_holder.hpp +19 -12
  276. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +21 -20
  277. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +4 -3
  278. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/to_raw_pointer.hpp +3 -2
  279. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/transform_iterator.hpp +23 -22
  280. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +23 -22
  281. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +10 -9
  282. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +103 -29
  283. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +15 -0
  284. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +295 -211
  285. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +2 -2
  286. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +20 -7
  287. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list_hook.hpp +4 -2
  288. data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +5 -4
  289. data/src/cxx_supportlib/vendor-modified/boost/intrusive/options.hpp +4 -4
  290. data/src/cxx_supportlib/vendor-modified/boost/intrusive/parent_from_member.hpp +3 -2
  291. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +4 -4
  292. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +4 -4
  293. data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +22 -4
  294. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +36 -4
  295. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +43 -13
  296. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +95 -8
  297. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set_hook.hpp +4 -2
  298. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +96 -12
  299. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +102 -5
  300. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +48 -4
  301. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +20 -11
  302. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist_hook.hpp +9 -2
  303. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +95 -8
  304. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +36 -4
  305. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +27 -0
  306. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +167 -23
  307. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +28 -0
  308. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +100 -46
  309. data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +5 -4
  310. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +37 -27
  311. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +30 -14
  312. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
  313. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +35 -36
  314. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +6 -28
  315. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +20 -5
  316. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/posix_api.cpp +4 -2
  317. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +3 -1
  318. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once.cpp +5 -0
  319. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +11 -7
  320. data/src/cxx_supportlib/vendor-modified/boost/math/policies/policy.hpp +1 -3
  321. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/fpclassify.hpp +5 -1
  322. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +11 -0
  323. data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +10 -2
  324. data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +40 -7
  325. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +67 -0
  326. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +63 -0
  327. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +2437 -0
  328. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +121 -0
  329. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/insertion_sort.hpp +127 -0
  330. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +637 -0
  331. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge_sort.hpp +139 -0
  332. data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +155 -0
  333. data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +1 -116
  334. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +14 -13
  335. data/src/cxx_supportlib/vendor-modified/boost/move/default_delete.hpp +17 -1
  336. data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +2 -0
  337. data/src/cxx_supportlib/vendor-modified/boost/move/detail/destruct_n.hpp +67 -0
  338. data/src/cxx_supportlib/vendor-modified/boost/move/detail/fwd_macros.hpp +227 -32
  339. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +4 -0
  340. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +30 -9
  341. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils_core.hpp +12 -0
  342. data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +84 -80
  343. data/src/cxx_supportlib/vendor-modified/boost/move/detail/placement_new.hpp +30 -0
  344. data/src/cxx_supportlib/vendor-modified/boost/move/detail/reverse_iterator.hpp +171 -0
  345. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +14 -20
  346. data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +1 -1
  347. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +14 -0
  348. data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +32 -33
  349. data/src/cxx_supportlib/vendor-modified/boost/move/make_unique.hpp +2 -1
  350. data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +49 -49
  351. data/src/cxx_supportlib/vendor-modified/boost/move/utility.hpp +8 -7
  352. data/src/cxx_supportlib/vendor-modified/boost/move/utility_core.hpp +17 -16
  353. data/src/cxx_supportlib/vendor-modified/boost/mpl/print.hpp +3 -0
  354. data/src/cxx_supportlib/vendor-modified/boost/none.hpp +1 -1
  355. data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +2 -3
  356. data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +197 -255
  357. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +1059 -0
  358. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_aligned_storage.hpp +75 -0
  359. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +116 -0
  360. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_factory_support.hpp +36 -0
  361. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +253 -0
  362. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +196 -0
  363. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +117 -0
  364. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +372 -554
  365. data/src/cxx_supportlib/vendor-modified/boost/optional/optional_fwd.hpp +12 -1
  366. data/src/cxx_supportlib/vendor-modified/boost/pool/detail/mutex.hpp +15 -7
  367. data/src/cxx_supportlib/vendor-modified/boost/pool/pool_alloc.hpp +24 -0
  368. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/intel.h +9 -2
  369. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/visualc.h +15 -1
  370. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd.h +16 -4
  371. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86.h +3 -3
  372. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd.h +4 -4
  373. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd/versions.h +4 -4
  374. data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +1 -1
  375. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +2 -2
  376. data/src/cxx_supportlib/vendor-modified/boost/predef/version_number.h +20 -1
  377. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/cat.hpp +1 -1
  378. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +6 -6
  379. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/binary_transform.hpp +5 -6
  380. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/to_list_msvc.hpp +55 -0
  381. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/to_list.hpp +12 -0
  382. data/src/cxx_supportlib/vendor-modified/boost/range/const_iterator.hpp +4 -4
  383. data/src/cxx_supportlib/vendor-modified/boost/range/size_type.hpp +0 -5
  384. data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +16 -16
  385. data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +4 -4
  386. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +3 -0
  387. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +102 -87
  388. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +45 -21
  389. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +4 -4
  390. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +2 -2
  391. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +1 -1
  392. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +14 -2
  393. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +46 -0
  394. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +5 -2
  395. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +5 -14
  396. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +116 -13
  397. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +34 -0
  398. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +2 -2
  399. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +1 -1
  400. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +3 -3
  401. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +1 -0
  402. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +2 -2
  403. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +1004 -159
  404. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +9 -0
  405. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +3 -0
  406. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +4 -58
  407. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +5 -2
  408. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +9 -0
  409. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +0 -8
  410. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync.hpp +3 -3
  411. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_noexcept.hpp +30 -0
  412. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +3 -0
  413. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +5 -4
  414. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +28 -3
  415. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ref_counter.hpp +187 -0
  416. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +52 -144
  417. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +120 -450
  418. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +2 -1
  419. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +2 -1
  420. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +7 -6
  421. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +70 -8
  422. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +6 -5
  423. data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +9 -8
  424. data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +3 -3
  425. data/src/cxx_supportlib/vendor-modified/boost/thread/barrier.hpp +5 -4
  426. data/src/cxx_supportlib/vendor-modified/boost/thread/completion_latch.hpp +0 -1
  427. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_views.hpp +0 -11
  428. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_timed_queue.hpp +6 -4
  429. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +11 -2
  430. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +11 -4
  431. data/src/cxx_supportlib/vendor-modified/boost/thread/exceptions.hpp +8 -8
  432. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/executor.hpp +1 -1
  433. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/generic_executor_ref.hpp +5 -5
  434. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/loop_executor.hpp +22 -18
  435. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +163 -55
  436. data/src/cxx_supportlib/vendor-modified/boost/thread/futures/launch.hpp +1 -0
  437. data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_all.hpp +1 -1
  438. data/src/cxx_supportlib/vendor-modified/boost/thread/lock_types.hpp +9 -9
  439. data/src/cxx_supportlib/vendor-modified/boost/thread/locks.hpp +1 -0
  440. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +6 -7
  441. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +17 -2
  442. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +2 -2
  443. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +5 -5
  444. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/timespec.hpp +29 -0
  445. data/src/cxx_supportlib/vendor-modified/boost/thread/scoped_thread.hpp +23 -18
  446. data/src/cxx_supportlib/vendor-modified/boost/thread/synchronized_value.hpp +6 -6
  447. data/src/cxx_supportlib/vendor-modified/boost/thread/thread_functors.hpp +19 -4
  448. data/src/cxx_supportlib/vendor-modified/boost/thread/thread_guard.hpp +3 -3
  449. data/src/cxx_supportlib/vendor-modified/boost/thread/user_scheduler.hpp +1 -1
  450. data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +265 -0
  451. data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +272 -0
  452. data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +300 -0
  453. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_reference.hpp +3 -3
  454. data/src/cxx_supportlib/vendor-modified/boost/type_traits/aligned_storage.hpp +6 -6
  455. data/src/cxx_supportlib/vendor-modified/boost/type_traits/common_type.hpp +1 -0
  456. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_arithmetic_type.hpp +9 -3
  457. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/mp_defer.hpp +3 -3
  458. data/src/cxx_supportlib/vendor-modified/boost/type_traits/extent.hpp +1 -0
  459. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_assign.hpp +2 -1
  460. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_constructor.hpp +2 -1
  461. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_destructor.hpp +1 -1
  462. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_assign.hpp +2 -1
  463. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_copy.hpp +1 -0
  464. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_destructor.hpp +1 -1
  465. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_assign.hpp +1 -0
  466. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_constructor.hpp +1 -0
  467. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_abstract.hpp +1 -0
  468. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_array.hpp +1 -1
  469. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_assignable.hpp +1 -0
  470. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_const.hpp +2 -1
  471. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_default_constructible.hpp +21 -1
  472. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_destructible.hpp +1 -0
  473. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +1 -1
  474. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +2 -1
  475. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_pod.hpp +1 -0
  476. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_rvalue_reference.hpp +1 -1
  477. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +1 -1
  478. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_volatile.hpp +2 -1
  479. data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_void.hpp +52 -0
  480. data/src/cxx_supportlib/vendor-modified/boost/type_traits/rank.hpp +1 -0
  481. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_all_extents.hpp +1 -1
  482. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_const.hpp +1 -1
  483. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv.hpp +1 -1
  484. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_extent.hpp +1 -1
  485. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_pointer.hpp +1 -1
  486. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_volatile.hpp +1 -1
  487. data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_with_alignment.hpp +1 -1
  488. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +40 -6
  489. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +4986 -0
  490. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +107 -0
  491. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/set.hpp +105 -0
  492. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +1814 -1255
  493. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +41 -45
  494. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +1498 -1161
  495. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +40 -44
  496. data/src/cxx_supportlib/vendor-modified/boost/utility.hpp +2 -2
  497. data/src/cxx_supportlib/vendor-modified/boost/utility/base_from_member.hpp +7 -6
  498. data/src/cxx_supportlib/vendor-modified/boost/utility/compare_pointees.hpp +10 -2
  499. data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +39 -22
  500. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +690 -0
  501. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view_fwd.hpp +39 -0
  502. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  503. data/src/helper-scripts/crash-watch.rb +3 -0
  504. data/src/ruby_supportlib/phusion_passenger.rb +1 -1
  505. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +1 -0
  506. data/src/ruby_supportlib/phusion_passenger/packaging.rb +2 -12
  507. metadata +77 -38
  508. data/dev/ci/inituidgid +0 -24
  509. data/dev/ci/run_jenkins.sh +0 -70
  510. data/dev/ci/run_travis.sh +0 -314
  511. data/doc/Design and Architecture.html +0 -2421
  512. data/doc/Design and Architecture.txt +0 -511
  513. data/doc/Security of user switching support.html +0 -1833
  514. data/doc/Users guide Apache.html +0 -3101
  515. data/doc/Users guide Apache.idmap.txt +0 -451
  516. data/doc/Users guide Apache.txt +0 -534
  517. data/doc/Users guide Nginx.html +0 -3026
  518. data/doc/Users guide Nginx.idmap.txt +0 -431
  519. data/doc/Users guide Nginx.txt +0 -451
  520. data/doc/Users guide Standalone.html +0 -2092
  521. data/doc/Users guide Standalone.idmap.txt +0 -137
  522. data/doc/Users guide Standalone.txt +0 -81
  523. data/doc/Users guide.html +0 -1606
  524. data/doc/Users guide.txt +0 -8
  525. data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +0 -20
  526. data/src/cxx_supportlib/vendor-modified/boost/align/detail/address.hpp +0 -29
  527. data/src/cxx_supportlib/vendor-modified/boost/align/detail/align.hpp +0 -40
  528. data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +0 -22
  529. data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +0 -29
  530. data/src/cxx_supportlib/vendor-modified/boost/container/detail/hash_table.hpp +0 -383
  531. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_allocator.hpp +0 -318
  532. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_count_impl.hpp +0 -67
  533. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_traits.hpp +0 -60
  534. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_utility.hpp +0 -214
  535. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_if_array.hpp +0 -34
  536. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/allocate.hpp +0 -1128
  537. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/buckets.hpp +0 -928
  538. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/equivalent.hpp +0 -686
  539. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/extract_key.hpp +0 -188
  540. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/table.hpp +0 -873
  541. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/unique.hpp +0 -628
  542. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/util.hpp +0 -266
@@ -1,158 +1,66 @@
1
1
  /*
2
- * Copyright (c) 2012-2014 Glen Joseph Fernandes
3
- * glenfe at live dot com
4
- *
5
- * Distributed under the Boost Software License,
6
- * Version 1.0. (See accompanying file LICENSE_1_0.txt
7
- * or copy at http://boost.org/LICENSE_1_0.txt)
8
- */
2
+ Copyright 2012-2017 Glen Joseph Fernandes
3
+ (glenjofe@gmail.com)
4
+
5
+ Distributed under the Boost Software License, Version 1.0.
6
+ (http://www.boost.org/LICENSE_1_0.txt)
7
+ */
9
8
  #ifndef BOOST_SMART_PTR_MAKE_SHARED_ARRAY_HPP
10
9
  #define BOOST_SMART_PTR_MAKE_SHARED_ARRAY_HPP
11
10
 
12
- #include <boost/smart_ptr/detail/array_count_impl.hpp>
13
- #include <boost/smart_ptr/detail/sp_if_array.hpp>
11
+ #include <boost/smart_ptr/allocate_shared_array.hpp>
14
12
 
15
13
  namespace boost {
16
- template<class T>
17
- inline typename boost::detail::sp_if_array<T>::type
18
- make_shared(std::size_t size) {
19
- typedef typename boost::detail::array_inner<T>::type T1;
20
- typedef typename boost::detail::array_base<T1>::type T2;
21
- typedef boost::detail::ms_allocator<T> A1;
22
- typedef boost::detail::ms_in_allocator_tag D1;
23
- std::size_t n1 = size * boost::detail::array_total<T1>::size;
24
- T1* p1 = 0;
25
- T2* p2 = 0;
26
- D1 d1;
27
- A1 a1(size, &p2);
28
- shared_ptr<T> s1(p1, d1, a1);
29
- A1* a2 = static_cast<A1*>(s1._internal_get_untyped_deleter());
30
- a2->set(0);
31
- boost::detail::ms_init(p2, n1);
32
- a2->set(p2);
33
- p1 = reinterpret_cast<T1*>(p2);
34
- return shared_ptr<T>(s1, p1);
35
- }
36
14
 
37
- template<class T>
38
- inline typename boost::detail::sp_if_size_array<T>::type
39
- make_shared() {
40
- typedef typename boost::detail::array_inner<T>::type T1;
41
- typedef typename boost::detail::array_base<T1>::type T2;
42
- typedef boost::detail::ms_allocator<T> A1;
43
- typedef boost::detail::ms_in_allocator_tag D1;
44
- enum {
45
- N = boost::detail::array_total<T>::size
46
- };
47
- T1* p1 = 0;
48
- T2* p2 = 0;
49
- D1 d1;
50
- A1 a1(&p2);
51
- shared_ptr<T> s1(p1, d1, a1);
52
- A1* a2 = static_cast<A1*>(s1._internal_get_untyped_deleter());
53
- a2->set(0);
54
- boost::detail::ms_init(p2, N);
55
- a2->set(p2);
56
- p1 = reinterpret_cast<T1*>(p2);
57
- return shared_ptr<T>(s1, p1);
58
- }
15
+ template<class T>
16
+ inline typename detail::sp_if_size_array<T>::type
17
+ make_shared()
18
+ {
19
+ return boost::allocate_shared<T>(std::allocator<typename
20
+ detail::sp_array_scalar<T>::type>());
21
+ }
22
+
23
+ template<class T>
24
+ inline typename detail::sp_if_size_array<T>::type
25
+ make_shared(const typename detail::sp_array_element<T>::type& value)
26
+ {
27
+ return boost::allocate_shared<T>(std::allocator<typename
28
+ detail::sp_array_scalar<T>::type>(), value);
29
+ }
59
30
 
60
- template<class T>
61
- inline typename boost::detail::sp_if_array<T>::type
62
- make_shared(std::size_t size,
63
- const typename boost::detail::array_inner<T>::type& value) {
64
- typedef typename boost::detail::array_inner<T>::type T1;
65
- typedef typename boost::detail::array_base<T1>::type T2;
66
- typedef const T2 T3;
67
- typedef boost::detail::ms_allocator<T> A1;
68
- typedef boost::detail::ms_in_allocator_tag D1;
69
- enum {
70
- M = boost::detail::array_total<T1>::size
71
- };
72
- std::size_t n1 = M * size;
73
- T1* p1 = 0;
74
- T2* p2 = 0;
75
- T3* p3 = reinterpret_cast<T3*>(&value);
76
- D1 d1;
77
- A1 a1(size, &p2);
78
- shared_ptr<T> s1(p1, d1, a1);
79
- A1* a2 = static_cast<A1*>(s1._internal_get_untyped_deleter());
80
- a2->set(0);
81
- boost::detail::ms_init<T2, M>(p2, n1, p3);
82
- a2->set(p2);
83
- p1 = reinterpret_cast<T1*>(p2);
84
- return shared_ptr<T>(s1, p1);
85
- }
31
+ template<class T>
32
+ inline typename detail::sp_if_array<T>::type
33
+ make_shared(std::size_t size)
34
+ {
35
+ return boost::allocate_shared<T>(std::allocator<typename
36
+ detail::sp_array_scalar<T>::type>(), size);
37
+ }
86
38
 
87
- template<class T>
88
- inline typename boost::detail::sp_if_size_array<T>::type
89
- make_shared(const typename boost::detail::array_inner<T>::type& value) {
90
- typedef typename boost::detail::array_inner<T>::type T1;
91
- typedef typename boost::detail::array_base<T1>::type T2;
92
- typedef const T2 T3;
93
- typedef boost::detail::ms_allocator<T> A1;
94
- typedef boost::detail::ms_in_allocator_tag D1;
95
- enum {
96
- M = boost::detail::array_total<T1>::size,
97
- N = boost::detail::array_total<T>::size
98
- };
99
- T1* p1 = 0;
100
- T2* p2 = 0;
101
- T3* p3 = reinterpret_cast<T3*>(&value);
102
- D1 d1;
103
- A1 a1(&p2);
104
- shared_ptr<T> s1(p1, d1, a1);
105
- A1* a2 = static_cast<A1*>(s1._internal_get_untyped_deleter());
106
- a2->set(0);
107
- boost::detail::ms_init<T2, M>(p2, N, p3);
108
- a2->set(p2);
109
- p1 = reinterpret_cast<T1*>(p2);
110
- return shared_ptr<T>(s1, p1);
111
- }
39
+ template<class T>
40
+ inline typename detail::sp_if_array<T>::type
41
+ make_shared(std::size_t size,
42
+ const typename detail::sp_array_element<T>::type& value)
43
+ {
44
+ return boost::allocate_shared<T>(std::allocator<typename
45
+ detail::sp_array_scalar<T>::type>(), size, value);
46
+ }
112
47
 
113
- template<class T>
114
- inline typename boost::detail::sp_if_array<T>::type
115
- make_shared_noinit(std::size_t size) {
116
- typedef typename boost::detail::array_inner<T>::type T1;
117
- typedef typename boost::detail::array_base<T1>::type T2;
118
- typedef boost::detail::ms_allocator<T> A1;
119
- typedef boost::detail::ms_in_allocator_tag D1;
120
- std::size_t n1 = size * boost::detail::array_total<T1>::size;
121
- T1* p1 = 0;
122
- T2* p2 = 0;
123
- D1 d1;
124
- A1 a1(size, &p2);
125
- shared_ptr<T> s1(p1, d1, a1);
126
- A1* a2 = static_cast<A1*>(s1._internal_get_untyped_deleter());
127
- a2->set(0);
128
- boost::detail::ms_noinit(p2, n1);
129
- a2->set(p2);
130
- p1 = reinterpret_cast<T1*>(p2);
131
- return shared_ptr<T>(s1, p1);
132
- }
48
+ template<class T>
49
+ inline typename detail::sp_if_size_array<T>::type
50
+ make_shared_noinit()
51
+ {
52
+ return allocate_shared_noinit<T>(std::allocator<typename
53
+ detail::sp_array_scalar<T>::type>());
54
+ }
133
55
 
134
- template<class T>
135
- inline typename boost::detail::sp_if_size_array<T>::type
136
- make_shared_noinit() {
137
- typedef typename boost::detail::array_inner<T>::type T1;
138
- typedef typename boost::detail::array_base<T1>::type T2;
139
- typedef boost::detail::ms_allocator<T> A1;
140
- typedef boost::detail::ms_in_allocator_tag D1;
141
- enum {
142
- N = boost::detail::array_total<T>::size
143
- };
144
- T1* p1 = 0;
145
- T2* p2 = 0;
146
- D1 d1;
147
- A1 a1(&p2);
148
- shared_ptr<T> s1(p1, d1, a1);
149
- A1* a2 = static_cast<A1*>(s1._internal_get_untyped_deleter());
150
- a2->set(0);
151
- boost::detail::ms_noinit(p2, N);
152
- a2->set(p2);
153
- p1 = reinterpret_cast<T1*>(p2);
154
- return shared_ptr<T>(s1, p1);
155
- }
56
+ template<class T>
57
+ inline typename detail::sp_if_array<T>::type
58
+ make_shared_noinit(std::size_t size)
59
+ {
60
+ return allocate_shared_noinit<T>(std::allocator<typename
61
+ detail::sp_array_scalar<T>::type>(), size);
156
62
  }
157
63
 
64
+ } /* boost */
65
+
158
66
  #endif
@@ -13,6 +13,8 @@
13
13
  // for documentation.
14
14
 
15
15
  #include <boost/config.hpp>
16
+ #include <boost/move/core.hpp>
17
+ #include <boost/move/utility_core.hpp>
16
18
  #include <boost/smart_ptr/shared_ptr.hpp>
17
19
  #include <boost/smart_ptr/detail/sp_forward.hpp>
18
20
  #include <boost/type_traits/type_with_alignment.hpp>
@@ -338,12 +340,10 @@ template< class T, class A > typename boost::detail::sp_if_not_array< T >::type
338
340
  return boost::shared_ptr< T >( pt, pt2 );
339
341
  }
340
342
 
341
- #if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
342
-
343
- // For example MSVC 10.0
343
+ // C++03 version
344
344
 
345
345
  template< class T, class A1 >
346
- typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1 )
346
+ typename boost::detail::sp_if_not_array< T >::type make_shared( BOOST_FWD_REF(A1) a1 )
347
347
  {
348
348
  boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
349
349
 
@@ -352,7 +352,7 @@ typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1 )
352
352
  void * pv = pd->address();
353
353
 
354
354
  ::new( pv ) T(
355
- boost::detail::sp_forward<A1>( a1 )
355
+ boost::forward<A1>( a1 )
356
356
  );
357
357
 
358
358
  pd->set_initialized();
@@ -364,7 +364,7 @@ typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1 )
364
364
  }
365
365
 
366
366
  template< class T, class A, class A1 >
367
- typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1 )
367
+ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, BOOST_FWD_REF(A1) a1 )
368
368
  {
369
369
  boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
370
370
 
@@ -372,8 +372,8 @@ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a,
372
372
 
373
373
  void * pv = pd->address();
374
374
 
375
- ::new( pv ) T(
376
- boost::detail::sp_forward<A1>( a1 )
375
+ ::new( pv ) T(
376
+ boost::forward<A1>( a1 )
377
377
  );
378
378
 
379
379
  pd->set_initialized();
@@ -385,7 +385,7 @@ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a,
385
385
  }
386
386
 
387
387
  template< class T, class A1, class A2 >
388
- typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2 )
388
+ typename boost::detail::sp_if_not_array< T >::type make_shared( BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2 )
389
389
  {
390
390
  boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
391
391
 
@@ -394,8 +394,8 @@ typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 &&
394
394
  void * pv = pd->address();
395
395
 
396
396
  ::new( pv ) T(
397
- boost::detail::sp_forward<A1>( a1 ),
398
- boost::detail::sp_forward<A2>( a2 )
397
+ boost::forward<A1>( a1 ),
398
+ boost::forward<A2>( a2 )
399
399
  );
400
400
 
401
401
  pd->set_initialized();
@@ -407,7 +407,7 @@ typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 &&
407
407
  }
408
408
 
409
409
  template< class T, class A, class A1, class A2 >
410
- typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2 )
410
+ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2 )
411
411
  {
412
412
  boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
413
413
 
@@ -415,9 +415,9 @@ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a,
415
415
 
416
416
  void * pv = pd->address();
417
417
 
418
- ::new( pv ) T(
419
- boost::detail::sp_forward<A1>( a1 ),
420
- boost::detail::sp_forward<A2>( a2 )
418
+ ::new( pv ) T(
419
+ boost::forward<A1>( a1 ),
420
+ boost::forward<A2>( a2 )
421
421
  );
422
422
 
423
423
  pd->set_initialized();
@@ -429,7 +429,7 @@ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a,
429
429
  }
430
430
 
431
431
  template< class T, class A1, class A2, class A3 >
432
- typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2, A3 && a3 )
432
+ typename boost::detail::sp_if_not_array< T >::type make_shared( BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3 )
433
433
  {
434
434
  boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
435
435
 
@@ -438,9 +438,9 @@ typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 &&
438
438
  void * pv = pd->address();
439
439
 
440
440
  ::new( pv ) T(
441
- boost::detail::sp_forward<A1>( a1 ),
442
- boost::detail::sp_forward<A2>( a2 ),
443
- boost::detail::sp_forward<A3>( a3 )
441
+ boost::forward<A1>( a1 ),
442
+ boost::forward<A2>( a2 ),
443
+ boost::forward<A3>( a3 )
444
444
  );
445
445
 
446
446
  pd->set_initialized();
@@ -452,7 +452,7 @@ typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 &&
452
452
  }
453
453
 
454
454
  template< class T, class A, class A1, class A2, class A3 >
455
- typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3 )
455
+ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3 )
456
456
  {
457
457
  boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
458
458
 
@@ -460,10 +460,10 @@ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a,
460
460
 
461
461
  void * pv = pd->address();
462
462
 
463
- ::new( pv ) T(
464
- boost::detail::sp_forward<A1>( a1 ),
465
- boost::detail::sp_forward<A2>( a2 ),
466
- boost::detail::sp_forward<A3>( a3 )
463
+ ::new( pv ) T(
464
+ boost::forward<A1>( a1 ),
465
+ boost::forward<A2>( a2 ),
466
+ boost::forward<A3>( a3 )
467
467
  );
468
468
 
469
469
  pd->set_initialized();
@@ -475,7 +475,7 @@ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a,
475
475
  }
476
476
 
477
477
  template< class T, class A1, class A2, class A3, class A4 >
478
- typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4 )
478
+ typename boost::detail::sp_if_not_array< T >::type make_shared( BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4 )
479
479
  {
480
480
  boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
481
481
 
@@ -484,10 +484,10 @@ typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 &&
484
484
  void * pv = pd->address();
485
485
 
486
486
  ::new( pv ) T(
487
- boost::detail::sp_forward<A1>( a1 ),
488
- boost::detail::sp_forward<A2>( a2 ),
489
- boost::detail::sp_forward<A3>( a3 ),
490
- boost::detail::sp_forward<A4>( a4 )
487
+ boost::forward<A1>( a1 ),
488
+ boost::forward<A2>( a2 ),
489
+ boost::forward<A3>( a3 ),
490
+ boost::forward<A4>( a4 )
491
491
  );
492
492
 
493
493
  pd->set_initialized();
@@ -499,7 +499,7 @@ typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 &&
499
499
  }
500
500
 
501
501
  template< class T, class A, class A1, class A2, class A3, class A4 >
502
- typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4 )
502
+ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4 )
503
503
  {
504
504
  boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
505
505
 
@@ -507,11 +507,11 @@ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a,
507
507
 
508
508
  void * pv = pd->address();
509
509
 
510
- ::new( pv ) T(
511
- boost::detail::sp_forward<A1>( a1 ),
512
- boost::detail::sp_forward<A2>( a2 ),
513
- boost::detail::sp_forward<A3>( a3 ),
514
- boost::detail::sp_forward<A4>( a4 )
510
+ ::new( pv ) T(
511
+ boost::forward<A1>( a1 ),
512
+ boost::forward<A2>( a2 ),
513
+ boost::forward<A3>( a3 ),
514
+ boost::forward<A4>( a4 )
515
515
  );
516
516
 
517
517
  pd->set_initialized();
@@ -523,7 +523,7 @@ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a,
523
523
  }
524
524
 
525
525
  template< class T, class A1, class A2, class A3, class A4, class A5 >
526
- typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5 )
526
+ typename boost::detail::sp_if_not_array< T >::type make_shared( BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4, BOOST_FWD_REF(A5) a5 )
527
527
  {
528
528
  boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
529
529
 
@@ -532,11 +532,11 @@ typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 &&
532
532
  void * pv = pd->address();
533
533
 
534
534
  ::new( pv ) T(
535
- boost::detail::sp_forward<A1>( a1 ),
536
- boost::detail::sp_forward<A2>( a2 ),
537
- boost::detail::sp_forward<A3>( a3 ),
538
- boost::detail::sp_forward<A4>( a4 ),
539
- boost::detail::sp_forward<A5>( a5 )
535
+ boost::forward<A1>( a1 ),
536
+ boost::forward<A2>( a2 ),
537
+ boost::forward<A3>( a3 ),
538
+ boost::forward<A4>( a4 ),
539
+ boost::forward<A5>( a5 )
540
540
  );
541
541
 
542
542
  pd->set_initialized();
@@ -548,7 +548,7 @@ typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 &&
548
548
  }
549
549
 
550
550
  template< class T, class A, class A1, class A2, class A3, class A4, class A5 >
551
- typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5 )
551
+ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4, BOOST_FWD_REF(A5) a5 )
552
552
  {
553
553
  boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
554
554
 
@@ -556,12 +556,12 @@ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a,
556
556
 
557
557
  void * pv = pd->address();
558
558
 
559
- ::new( pv ) T(
560
- boost::detail::sp_forward<A1>( a1 ),
561
- boost::detail::sp_forward<A2>( a2 ),
562
- boost::detail::sp_forward<A3>( a3 ),
563
- boost::detail::sp_forward<A4>( a4 ),
564
- boost::detail::sp_forward<A5>( a5 )
559
+ ::new( pv ) T(
560
+ boost::forward<A1>( a1 ),
561
+ boost::forward<A2>( a2 ),
562
+ boost::forward<A3>( a3 ),
563
+ boost::forward<A4>( a4 ),
564
+ boost::forward<A5>( a5 )
565
565
  );
566
566
 
567
567
  pd->set_initialized();
@@ -573,7 +573,7 @@ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a,
573
573
  }
574
574
 
575
575
  template< class T, class A1, class A2, class A3, class A4, class A5, class A6 >
576
- typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6 )
576
+ typename boost::detail::sp_if_not_array< T >::type make_shared( BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4, BOOST_FWD_REF(A5) a5, BOOST_FWD_REF(A6) a6 )
577
577
  {
578
578
  boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
579
579
 
@@ -582,12 +582,12 @@ typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 &&
582
582
  void * pv = pd->address();
583
583
 
584
584
  ::new( pv ) T(
585
- boost::detail::sp_forward<A1>( a1 ),
586
- boost::detail::sp_forward<A2>( a2 ),
587
- boost::detail::sp_forward<A3>( a3 ),
588
- boost::detail::sp_forward<A4>( a4 ),
589
- boost::detail::sp_forward<A5>( a5 ),
590
- boost::detail::sp_forward<A6>( a6 )
585
+ boost::forward<A1>( a1 ),
586
+ boost::forward<A2>( a2 ),
587
+ boost::forward<A3>( a3 ),
588
+ boost::forward<A4>( a4 ),
589
+ boost::forward<A5>( a5 ),
590
+ boost::forward<A6>( a6 )
591
591
  );
592
592
 
593
593
  pd->set_initialized();
@@ -599,7 +599,7 @@ typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 &&
599
599
  }
600
600
 
601
601
  template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6 >
602
- typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6 )
602
+ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4, BOOST_FWD_REF(A5) a5, BOOST_FWD_REF(A6) a6 )
603
603
  {
604
604
  boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
605
605
 
@@ -607,13 +607,13 @@ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a,
607
607
 
608
608
  void * pv = pd->address();
609
609
 
610
- ::new( pv ) T(
611
- boost::detail::sp_forward<A1>( a1 ),
612
- boost::detail::sp_forward<A2>( a2 ),
613
- boost::detail::sp_forward<A3>( a3 ),
614
- boost::detail::sp_forward<A4>( a4 ),
615
- boost::detail::sp_forward<A5>( a5 ),
616
- boost::detail::sp_forward<A6>( a6 )
610
+ ::new( pv ) T(
611
+ boost::forward<A1>( a1 ),
612
+ boost::forward<A2>( a2 ),
613
+ boost::forward<A3>( a3 ),
614
+ boost::forward<A4>( a4 ),
615
+ boost::forward<A5>( a5 ),
616
+ boost::forward<A6>( a6 )
617
617
  );
618
618
 
619
619
  pd->set_initialized();
@@ -625,7 +625,7 @@ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a,
625
625
  }
626
626
 
627
627
  template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7 >
628
- typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7 )
628
+ typename boost::detail::sp_if_not_array< T >::type make_shared( BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4, BOOST_FWD_REF(A5) a5, BOOST_FWD_REF(A6) a6, BOOST_FWD_REF(A7) a7 )
629
629
  {
630
630
  boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
631
631
 
@@ -634,13 +634,13 @@ typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 &&
634
634
  void * pv = pd->address();
635
635
 
636
636
  ::new( pv ) T(
637
- boost::detail::sp_forward<A1>( a1 ),
638
- boost::detail::sp_forward<A2>( a2 ),
639
- boost::detail::sp_forward<A3>( a3 ),
640
- boost::detail::sp_forward<A4>( a4 ),
641
- boost::detail::sp_forward<A5>( a5 ),
642
- boost::detail::sp_forward<A6>( a6 ),
643
- boost::detail::sp_forward<A7>( a7 )
637
+ boost::forward<A1>( a1 ),
638
+ boost::forward<A2>( a2 ),
639
+ boost::forward<A3>( a3 ),
640
+ boost::forward<A4>( a4 ),
641
+ boost::forward<A5>( a5 ),
642
+ boost::forward<A6>( a6 ),
643
+ boost::forward<A7>( a7 )
644
644
  );
645
645
 
646
646
  pd->set_initialized();
@@ -652,7 +652,7 @@ typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 &&
652
652
  }
653
653
 
654
654
  template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7 >
655
- typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7 )
655
+ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4, BOOST_FWD_REF(A5) a5, BOOST_FWD_REF(A6) a6, BOOST_FWD_REF(A7) a7 )
656
656
  {
657
657
  boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
658
658
 
@@ -660,14 +660,14 @@ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a,
660
660
 
661
661
  void * pv = pd->address();
662
662
 
663
- ::new( pv ) T(
664
- boost::detail::sp_forward<A1>( a1 ),
665
- boost::detail::sp_forward<A2>( a2 ),
666
- boost::detail::sp_forward<A3>( a3 ),
667
- boost::detail::sp_forward<A4>( a4 ),
668
- boost::detail::sp_forward<A5>( a5 ),
669
- boost::detail::sp_forward<A6>( a6 ),
670
- boost::detail::sp_forward<A7>( a7 )
663
+ ::new( pv ) T(
664
+ boost::forward<A1>( a1 ),
665
+ boost::forward<A2>( a2 ),
666
+ boost::forward<A3>( a3 ),
667
+ boost::forward<A4>( a4 ),
668
+ boost::forward<A5>( a5 ),
669
+ boost::forward<A6>( a6 ),
670
+ boost::forward<A7>( a7 )
671
671
  );
672
672
 
673
673
  pd->set_initialized();
@@ -679,7 +679,7 @@ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a,
679
679
  }
680
680
 
681
681
  template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 >
682
- typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8 )
682
+ typename boost::detail::sp_if_not_array< T >::type make_shared( BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4, BOOST_FWD_REF(A5) a5, BOOST_FWD_REF(A6) a6, BOOST_FWD_REF(A7) a7, BOOST_FWD_REF(A8) a8 )
683
683
  {
684
684
  boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
685
685
 
@@ -688,14 +688,14 @@ typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 &&
688
688
  void * pv = pd->address();
689
689
 
690
690
  ::new( pv ) T(
691
- boost::detail::sp_forward<A1>( a1 ),
692
- boost::detail::sp_forward<A2>( a2 ),
693
- boost::detail::sp_forward<A3>( a3 ),
694
- boost::detail::sp_forward<A4>( a4 ),
695
- boost::detail::sp_forward<A5>( a5 ),
696
- boost::detail::sp_forward<A6>( a6 ),
697
- boost::detail::sp_forward<A7>( a7 ),
698
- boost::detail::sp_forward<A8>( a8 )
691
+ boost::forward<A1>( a1 ),
692
+ boost::forward<A2>( a2 ),
693
+ boost::forward<A3>( a3 ),
694
+ boost::forward<A4>( a4 ),
695
+ boost::forward<A5>( a5 ),
696
+ boost::forward<A6>( a6 ),
697
+ boost::forward<A7>( a7 ),
698
+ boost::forward<A8>( a8 )
699
699
  );
700
700
 
701
701
  pd->set_initialized();
@@ -707,7 +707,7 @@ typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 &&
707
707
  }
708
708
 
709
709
  template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 >
710
- typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8 )
710
+ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4, BOOST_FWD_REF(A5) a5, BOOST_FWD_REF(A6) a6, BOOST_FWD_REF(A7) a7, BOOST_FWD_REF(A8) a8 )
711
711
  {
712
712
  boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
713
713
 
@@ -715,15 +715,15 @@ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a,
715
715
 
716
716
  void * pv = pd->address();
717
717
 
718
- ::new( pv ) T(
719
- boost::detail::sp_forward<A1>( a1 ),
720
- boost::detail::sp_forward<A2>( a2 ),
721
- boost::detail::sp_forward<A3>( a3 ),
722
- boost::detail::sp_forward<A4>( a4 ),
723
- boost::detail::sp_forward<A5>( a5 ),
724
- boost::detail::sp_forward<A6>( a6 ),
725
- boost::detail::sp_forward<A7>( a7 ),
726
- boost::detail::sp_forward<A8>( a8 )
718
+ ::new( pv ) T(
719
+ boost::forward<A1>( a1 ),
720
+ boost::forward<A2>( a2 ),
721
+ boost::forward<A3>( a3 ),
722
+ boost::forward<A4>( a4 ),
723
+ boost::forward<A5>( a5 ),
724
+ boost::forward<A6>( a6 ),
725
+ boost::forward<A7>( a7 ),
726
+ boost::forward<A8>( a8 )
727
727
  );
728
728
 
729
729
  pd->set_initialized();
@@ -735,7 +735,7 @@ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a,
735
735
  }
736
736
 
737
737
  template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 >
738
- typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8, A9 && a9 )
738
+ typename boost::detail::sp_if_not_array< T >::type make_shared( BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4, BOOST_FWD_REF(A5) a5, BOOST_FWD_REF(A6) a6, BOOST_FWD_REF(A7) a7, BOOST_FWD_REF(A8) a8, BOOST_FWD_REF(A9) a9 )
739
739
  {
740
740
  boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
741
741
 
@@ -744,15 +744,15 @@ typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 &&
744
744
  void * pv = pd->address();
745
745
 
746
746
  ::new( pv ) T(
747
- boost::detail::sp_forward<A1>( a1 ),
748
- boost::detail::sp_forward<A2>( a2 ),
749
- boost::detail::sp_forward<A3>( a3 ),
750
- boost::detail::sp_forward<A4>( a4 ),
751
- boost::detail::sp_forward<A5>( a5 ),
752
- boost::detail::sp_forward<A6>( a6 ),
753
- boost::detail::sp_forward<A7>( a7 ),
754
- boost::detail::sp_forward<A8>( a8 ),
755
- boost::detail::sp_forward<A9>( a9 )
747
+ boost::forward<A1>( a1 ),
748
+ boost::forward<A2>( a2 ),
749
+ boost::forward<A3>( a3 ),
750
+ boost::forward<A4>( a4 ),
751
+ boost::forward<A5>( a5 ),
752
+ boost::forward<A6>( a6 ),
753
+ boost::forward<A7>( a7 ),
754
+ boost::forward<A8>( a8 ),
755
+ boost::forward<A9>( a9 )
756
756
  );
757
757
 
758
758
  pd->set_initialized();
@@ -764,7 +764,7 @@ typename boost::detail::sp_if_not_array< T >::type make_shared( A1 && a1, A2 &&
764
764
  }
765
765
 
766
766
  template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 >
767
- typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8, A9 && a9 )
767
+ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4, BOOST_FWD_REF(A5) a5, BOOST_FWD_REF(A6) a6, BOOST_FWD_REF(A7) a7, BOOST_FWD_REF(A8) a8, BOOST_FWD_REF(A9) a9 )
768
768
  {
769
769
  boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
770
770
 
@@ -772,16 +772,16 @@ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a,
772
772
 
773
773
  void * pv = pd->address();
774
774
 
775
- ::new( pv ) T(
776
- boost::detail::sp_forward<A1>( a1 ),
777
- boost::detail::sp_forward<A2>( a2 ),
778
- boost::detail::sp_forward<A3>( a3 ),
779
- boost::detail::sp_forward<A4>( a4 ),
780
- boost::detail::sp_forward<A5>( a5 ),
781
- boost::detail::sp_forward<A6>( a6 ),
782
- boost::detail::sp_forward<A7>( a7 ),
783
- boost::detail::sp_forward<A8>( a8 ),
784
- boost::detail::sp_forward<A9>( a9 )
775
+ ::new( pv ) T(
776
+ boost::forward<A1>( a1 ),
777
+ boost::forward<A2>( a2 ),
778
+ boost::forward<A3>( a3 ),
779
+ boost::forward<A4>( a4 ),
780
+ boost::forward<A5>( a5 ),
781
+ boost::forward<A6>( a6 ),
782
+ boost::forward<A7>( a7 ),
783
+ boost::forward<A8>( a8 ),
784
+ boost::forward<A9>( a9 )
785
785
  );
786
786
 
787
787
  pd->set_initialized();
@@ -792,336 +792,6 @@ typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a,
792
792
  return boost::shared_ptr< T >( pt, pt2 );
793
793
  }
794
794
 
795
- #else // !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
796
-
797
- // C++03 version
798
-
799
- template< class T, class A1 >
800
- typename boost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1 )
801
- {
802
- boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
803
-
804
- boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
805
-
806
- void * pv = pd->address();
807
-
808
- ::new( pv ) T( a1 );
809
- pd->set_initialized();
810
-
811
- T * pt2 = static_cast< T* >( pv );
812
-
813
- boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
814
- return boost::shared_ptr< T >( pt, pt2 );
815
- }
816
-
817
- template< class T, class A, class A1 >
818
- typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1 )
819
- {
820
- boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
821
-
822
- boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
823
-
824
- void * pv = pd->address();
825
-
826
- ::new( pv ) T( a1 );
827
- pd->set_initialized();
828
-
829
- T * pt2 = static_cast< T* >( pv );
830
-
831
- boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
832
- return boost::shared_ptr< T >( pt, pt2 );
833
- }
834
-
835
- template< class T, class A1, class A2 >
836
- typename boost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2 )
837
- {
838
- boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
839
-
840
- boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
841
-
842
- void * pv = pd->address();
843
-
844
- ::new( pv ) T( a1, a2 );
845
- pd->set_initialized();
846
-
847
- T * pt2 = static_cast< T* >( pv );
848
-
849
- boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
850
- return boost::shared_ptr< T >( pt, pt2 );
851
- }
852
-
853
- template< class T, class A, class A1, class A2 >
854
- typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2 )
855
- {
856
- boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
857
-
858
- boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
859
-
860
- void * pv = pd->address();
861
-
862
- ::new( pv ) T( a1, a2 );
863
- pd->set_initialized();
864
-
865
- T * pt2 = static_cast< T* >( pv );
866
-
867
- boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
868
- return boost::shared_ptr< T >( pt, pt2 );
869
- }
870
-
871
- template< class T, class A1, class A2, class A3 >
872
- typename boost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2, A3 const & a3 )
873
- {
874
- boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
875
-
876
- boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
877
-
878
- void * pv = pd->address();
879
-
880
- ::new( pv ) T( a1, a2, a3 );
881
- pd->set_initialized();
882
-
883
- T * pt2 = static_cast< T* >( pv );
884
-
885
- boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
886
- return boost::shared_ptr< T >( pt, pt2 );
887
- }
888
-
889
- template< class T, class A, class A1, class A2, class A3 >
890
- typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3 )
891
- {
892
- boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
893
-
894
- boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
895
-
896
- void * pv = pd->address();
897
-
898
- ::new( pv ) T( a1, a2, a3 );
899
- pd->set_initialized();
900
-
901
- T * pt2 = static_cast< T* >( pv );
902
-
903
- boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
904
- return boost::shared_ptr< T >( pt, pt2 );
905
- }
906
-
907
- template< class T, class A1, class A2, class A3, class A4 >
908
- typename boost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4 )
909
- {
910
- boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
911
-
912
- boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
913
-
914
- void * pv = pd->address();
915
-
916
- ::new( pv ) T( a1, a2, a3, a4 );
917
- pd->set_initialized();
918
-
919
- T * pt2 = static_cast< T* >( pv );
920
-
921
- boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
922
- return boost::shared_ptr< T >( pt, pt2 );
923
- }
924
-
925
- template< class T, class A, class A1, class A2, class A3, class A4 >
926
- typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4 )
927
- {
928
- boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
929
-
930
- boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
931
-
932
- void * pv = pd->address();
933
-
934
- ::new( pv ) T( a1, a2, a3, a4 );
935
- pd->set_initialized();
936
-
937
- T * pt2 = static_cast< T* >( pv );
938
-
939
- boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
940
- return boost::shared_ptr< T >( pt, pt2 );
941
- }
942
-
943
- template< class T, class A1, class A2, class A3, class A4, class A5 >
944
- typename boost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5 )
945
- {
946
- boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
947
-
948
- boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
949
-
950
- void * pv = pd->address();
951
-
952
- ::new( pv ) T( a1, a2, a3, a4, a5 );
953
- pd->set_initialized();
954
-
955
- T * pt2 = static_cast< T* >( pv );
956
-
957
- boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
958
- return boost::shared_ptr< T >( pt, pt2 );
959
- }
960
-
961
- template< class T, class A, class A1, class A2, class A3, class A4, class A5 >
962
- typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5 )
963
- {
964
- boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
965
-
966
- boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
967
-
968
- void * pv = pd->address();
969
-
970
- ::new( pv ) T( a1, a2, a3, a4, a5 );
971
- pd->set_initialized();
972
-
973
- T * pt2 = static_cast< T* >( pv );
974
-
975
- boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
976
- return boost::shared_ptr< T >( pt, pt2 );
977
- }
978
-
979
- template< class T, class A1, class A2, class A3, class A4, class A5, class A6 >
980
- typename boost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6 )
981
- {
982
- boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
983
-
984
- boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
985
-
986
- void * pv = pd->address();
987
-
988
- ::new( pv ) T( a1, a2, a3, a4, a5, a6 );
989
- pd->set_initialized();
990
-
991
- T * pt2 = static_cast< T* >( pv );
992
-
993
- boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
994
- return boost::shared_ptr< T >( pt, pt2 );
995
- }
996
-
997
- template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6 >
998
- typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6 )
999
- {
1000
- boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
1001
-
1002
- boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
1003
-
1004
- void * pv = pd->address();
1005
-
1006
- ::new( pv ) T( a1, a2, a3, a4, a5, a6 );
1007
- pd->set_initialized();
1008
-
1009
- T * pt2 = static_cast< T* >( pv );
1010
-
1011
- boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
1012
- return boost::shared_ptr< T >( pt, pt2 );
1013
- }
1014
-
1015
- template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7 >
1016
- typename boost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7 )
1017
- {
1018
- boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
1019
-
1020
- boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
1021
-
1022
- void * pv = pd->address();
1023
-
1024
- ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7 );
1025
- pd->set_initialized();
1026
-
1027
- T * pt2 = static_cast< T* >( pv );
1028
-
1029
- boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
1030
- return boost::shared_ptr< T >( pt, pt2 );
1031
- }
1032
-
1033
- template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7 >
1034
- typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7 )
1035
- {
1036
- boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
1037
-
1038
- boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
1039
-
1040
- void * pv = pd->address();
1041
-
1042
- ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7 );
1043
- pd->set_initialized();
1044
-
1045
- T * pt2 = static_cast< T* >( pv );
1046
-
1047
- boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
1048
- return boost::shared_ptr< T >( pt, pt2 );
1049
- }
1050
-
1051
- template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 >
1052
- typename boost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8 )
1053
- {
1054
- boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
1055
-
1056
- boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
1057
-
1058
- void * pv = pd->address();
1059
-
1060
- ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8 );
1061
- pd->set_initialized();
1062
-
1063
- T * pt2 = static_cast< T* >( pv );
1064
-
1065
- boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
1066
- return boost::shared_ptr< T >( pt, pt2 );
1067
- }
1068
-
1069
- template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 >
1070
- typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8 )
1071
- {
1072
- boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
1073
-
1074
- boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
1075
-
1076
- void * pv = pd->address();
1077
-
1078
- ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8 );
1079
- pd->set_initialized();
1080
-
1081
- T * pt2 = static_cast< T* >( pv );
1082
-
1083
- boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
1084
- return boost::shared_ptr< T >( pt, pt2 );
1085
- }
1086
-
1087
- template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 >
1088
- typename boost::detail::sp_if_not_array< T >::type make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9 )
1089
- {
1090
- boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
1091
-
1092
- boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
1093
-
1094
- void * pv = pd->address();
1095
-
1096
- ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8, a9 );
1097
- pd->set_initialized();
1098
-
1099
- T * pt2 = static_cast< T* >( pv );
1100
-
1101
- boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
1102
- return boost::shared_ptr< T >( pt, pt2 );
1103
- }
1104
-
1105
- template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 >
1106
- typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9 )
1107
- {
1108
- boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a );
1109
-
1110
- boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
1111
-
1112
- void * pv = pd->address();
1113
-
1114
- ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8, a9 );
1115
- pd->set_initialized();
1116
-
1117
- T * pt2 = static_cast< T* >( pv );
1118
-
1119
- boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
1120
- return boost::shared_ptr< T >( pt, pt2 );
1121
- }
1122
-
1123
- #endif // !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
1124
-
1125
795
  #endif // !defined( BOOST_NO_CXX11_VARIADIC_TEMPLATES ) && !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
1126
796
 
1127
797
  #undef BOOST_SP_MSD