passenger 6.0.11 → 6.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (280) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +24 -1
  3. data/CONTRIBUTORS +3 -0
  4. data/src/agent/Core/Config.h +1 -1
  5. data/src/agent/Core/Controller/CheckoutSession.cpp +24 -13
  6. data/src/agent/Core/Controller/Config.h +1 -1
  7. data/src/agent/Core/Controller/InternalUtils.cpp +32 -6
  8. data/src/agent/Core/Controller.h +4 -1
  9. data/src/agent/Watchdog/Config.h +1 -1
  10. data/src/cxx_supportlib/Constants.h +1 -1
  11. data/src/cxx_supportlib/IOTools/IOUtils.cpp +4 -4
  12. data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +47 -0
  13. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +41 -0
  14. data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +28 -0
  15. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +53 -1
  16. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +179 -0
  17. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +57 -1
  18. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +37 -0
  19. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +789 -106
  20. data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +1 -1
  21. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +80 -0
  22. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +10 -0
  23. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +80 -0
  24. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +30 -0
  25. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +20 -0
  26. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +90 -0
  27. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +60 -0
  28. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +10 -0
  29. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +723 -0
  30. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +191 -12
  31. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +361 -0
  32. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +237 -0
  33. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +176 -0
  34. data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +30 -2
  35. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +60 -0
  36. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +165 -0
  37. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +209 -76
  38. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +149 -60
  39. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +40 -0
  40. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +8 -4
  41. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +14 -4
  42. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +6 -0
  43. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +14 -10
  44. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +21 -18
  45. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +30 -19
  46. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +8 -0
  47. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +14 -0
  48. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +20 -0
  49. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +30 -0
  50. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +20 -0
  51. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +29 -0
  52. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +24 -0
  53. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +19 -0
  54. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +3 -1
  55. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +6 -0
  56. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +15 -5
  57. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +60 -0
  58. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +8 -0
  59. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +27 -0
  60. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +93 -0
  61. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +77 -0
  62. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +111 -0
  63. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +4 -0
  64. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +44 -0
  65. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +2 -1
  66. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +2 -2
  67. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +14 -4
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +90 -24
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +30 -1
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +4 -0
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +5 -1
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +5 -2
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +12 -12
  74. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +10 -8
  75. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +8 -8
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +7 -7
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +7 -7
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +7 -7
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +7 -7
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +13 -13
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +7 -7
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +8 -8
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +73 -0
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +133 -0
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +538 -0
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +157 -0
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +1057 -0
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +607 -0
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/completion_handler_erasure.hpp +160 -0
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +120 -0
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_traits.hpp +185 -0
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +181 -0
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/append.hpp +219 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +14 -28
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_tuple.hpp +248 -0
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/deferred.hpp +106 -0
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +434 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/prepend.hpp +219 -0
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +100 -0
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +217 -0
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +73 -0
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +608 -0
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +284 -0
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +344 -20
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +23 -54
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +23 -54
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +66 -18
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +55 -5
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +68 -80
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +8 -4
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +8 -4
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +3 -2
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +8 -4
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +98 -113
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +71 -82
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +210 -266
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +248 -30
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +11 -21
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +15 -3
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +71 -87
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +46 -68
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +4 -4
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +2 -7
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +10 -0
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +23 -3
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +21 -21
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +9 -9
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +88 -0
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +44 -0
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +132 -0
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +21 -21
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +9 -9
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +1 -1
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +5 -0
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +1 -1
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +14 -0
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +36 -27
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +1 -1
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +2 -2
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +37 -0
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +1 -1
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +14 -7
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +73 -1
  144. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +4 -4
  145. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +235 -0
  146. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +4 -4
  147. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +7 -10
  148. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
  149. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +20 -0
  150. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +20 -0
  151. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +88 -0
  152. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +44 -0
  153. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +6 -0
  154. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +14 -1
  155. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +17 -13
  156. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +14 -1
  157. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +2 -5
  158. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +2 -5
  159. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +2 -2
  160. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +2 -2
  161. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +56 -0
  162. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +1 -5
  163. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +31 -11
  164. data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +20 -4
  165. data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_platform_config.hpp +5 -0
  166. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +81 -0
  167. data/src/cxx_supportlib/vendor-modified/boost/config/platform/bsd.hpp +5 -8
  168. data/src/cxx_supportlib/vendor-modified/boost/config/platform/wasm.hpp +17 -0
  169. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +26 -0
  170. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +49 -0
  171. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +46 -4
  172. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +2 -2
  173. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
  174. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +2 -2
  175. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +2 -2
  176. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +3 -0
  177. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +2 -2
  178. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +1 -1
  179. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +1 -1
  180. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +6 -6
  181. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +4 -4
  182. data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +45 -38
  183. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +24 -0
  184. data/src/cxx_supportlib/vendor-modified/boost/core/ignore_unused.hpp +32 -2
  185. data/src/cxx_supportlib/vendor-modified/boost/core/uncaught_exceptions.hpp +7 -7
  186. data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +0 -24
  187. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_parsers.hpp +4 -0
  188. data/src/cxx_supportlib/vendor-modified/boost/intrusive/any_hook.hpp +4 -4
  189. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +83 -83
  190. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +43 -43
  191. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +31 -31
  192. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +85 -85
  193. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +68 -68
  194. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +72 -62
  195. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +19 -20
  196. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +19 -19
  197. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +4 -4
  198. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +2 -2
  199. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +3 -3
  200. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +5 -5
  201. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +1 -0
  202. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +8 -8
  203. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +2 -4
  204. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +1 -1
  205. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/math.hpp +2 -50
  206. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +1 -1
  207. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +71 -70
  208. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +15 -14
  209. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +84 -82
  210. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list_hook.hpp +10 -10
  211. data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +4 -4
  212. data/src/cxx_supportlib/vendor-modified/boost/intrusive/parent_from_member.hpp +2 -2
  213. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +4 -4
  214. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
  215. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +43 -43
  216. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +26 -26
  217. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +85 -85
  218. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set_hook.hpp +12 -12
  219. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +93 -93
  220. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +51 -51
  221. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +24 -24
  222. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +104 -104
  223. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist_hook.hpp +8 -6
  224. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +91 -91
  225. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +46 -46
  226. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +31 -31
  227. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +51 -51
  228. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +18 -18
  229. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +97 -97
  230. data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +6 -4
  231. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +63 -63
  232. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +15 -15
  233. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +4 -1
  234. data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +1 -0
  235. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +1 -0
  236. data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +1 -1
  237. data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +2 -0
  238. data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +1 -1
  239. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +3 -0
  240. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +112 -31
  241. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +3 -0
  242. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +4 -8
  243. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +0 -2
  244. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +6 -2
  245. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +1 -1
  246. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +22 -2
  247. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +59 -1
  248. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +9 -11
  249. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +27 -21
  250. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +34 -3
  251. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +378 -36
  252. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +97 -21
  253. data/src/cxx_supportlib/vendor-modified/boost/system/detail/interop_category.hpp +107 -0
  254. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_same.hpp +33 -0
  255. data/src/cxx_supportlib/vendor-modified/boost/system/detail/snprintf.hpp +70 -0
  256. data/src/cxx_supportlib/vendor-modified/boost/system/detail/{to_std_category.hpp → std_category.hpp} +5 -55
  257. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +2 -12
  258. data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +0 -33
  259. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_variadic.hpp +190 -0
  260. data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +20 -9
  261. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +3 -1
  262. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  263. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +8 -0
  264. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +6 -0
  265. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +12 -0
  266. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +5 -0
  267. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +21 -0
  268. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +13 -0
  269. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +3 -0
  270. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +4 -0
  271. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +3 -2
  272. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +8 -1
  273. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +6 -0
  274. data/src/ruby_supportlib/phusion_passenger/packaging.rb +1 -0
  275. data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +1 -1
  276. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +8 -0
  277. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +4 -1
  278. data/src/ruby_supportlib/phusion_passenger.rb +1 -1
  279. metadata +39 -4
  280. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_generic_value.hpp +0 -125
@@ -220,7 +220,7 @@ class slist_impl
220
220
  {
221
221
  node_algorithms::init_header(this->get_root_node());
222
222
  this->priv_size_traits().set_size(size_type(0));
223
- if(cache_last){
223
+ BOOST_IF_CONSTEXPR(cache_last){
224
224
  this->set_last_node(this->get_root_node());
225
225
  }
226
226
  }
@@ -287,7 +287,7 @@ class slist_impl
287
287
  {
288
288
  if(n){
289
289
  this->priv_size_traits().set_size(n);
290
- if(cache_last){
290
+ BOOST_IF_CONSTEXPR(cache_last){
291
291
  this->set_last_node(before_l);
292
292
  }
293
293
  node_traits::set_next(this->get_root_node(), f);
@@ -370,7 +370,7 @@ class slist_impl
370
370
  //! it's a safe-mode or auto-unlink value. Otherwise constant.
371
371
  ~slist_impl()
372
372
  {
373
- if(is_safe_autounlink<ValueTraits::link_mode>::value){
373
+ BOOST_IF_CONSTEXPR(is_safe_autounlink<ValueTraits::link_mode>::value){
374
374
  this->clear();
375
375
  node_algorithms::init(this->get_root_node());
376
376
  }
@@ -384,9 +384,9 @@ class slist_impl
384
384
  //! if it's a safe-mode or auto-unlink value_type. Constant time otherwise.
385
385
  //!
386
386
  //! <b>Note</b>: Invalidates the iterators (but not the references) to the erased elements.
387
- void clear()
387
+ void clear() BOOST_NOEXCEPT
388
388
  {
389
- if(safemode_or_autounlink){
389
+ BOOST_IF_CONSTEXPR(safemode_or_autounlink){
390
390
  this->clear_and_dispose(detail::null_disposer());
391
391
  }
392
392
  else{
@@ -405,13 +405,13 @@ class slist_impl
405
405
  //!
406
406
  //! <b>Note</b>: Invalidates the iterators to the erased elements.
407
407
  template <class Disposer>
408
- void clear_and_dispose(Disposer disposer)
408
+ void clear_and_dispose(Disposer disposer) BOOST_NOEXCEPT
409
409
  {
410
410
  const_iterator it(this->begin()), itend(this->end());
411
411
  while(it != itend){
412
412
  node_ptr to_erase(it.pointed_node());
413
413
  ++it;
414
- if(safemode_or_autounlink)
414
+ BOOST_IF_CONSTEXPR(safemode_or_autounlink)
415
415
  node_algorithms::init(to_erase);
416
416
  disposer(priv_value_traits().to_value_ptr(to_erase));
417
417
  }
@@ -428,11 +428,11 @@ class slist_impl
428
428
  //! <b>Complexity</b>: Constant.
429
429
  //!
430
430
  //! <b>Note</b>: Does not affect the validity of iterators and references.
431
- void push_front(reference value)
431
+ void push_front(reference value) BOOST_NOEXCEPT
432
432
  {
433
433
  node_ptr to_insert = priv_value_traits().to_node_ptr(value);
434
434
  BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || node_algorithms::inited(to_insert));
435
- if(cache_last){
435
+ BOOST_IF_CONSTEXPR(cache_last){
436
436
  if(this->empty()){
437
437
  this->set_last_node(to_insert);
438
438
  }
@@ -452,13 +452,13 @@ class slist_impl
452
452
  //!
453
453
  //! <b>Note</b>: Does not affect the validity of iterators and references.
454
454
  //! This function is only available is cache_last<> is true.
455
- void push_back(reference value)
455
+ void push_back(reference value) BOOST_NOEXCEPT
456
456
  {
457
457
  BOOST_STATIC_ASSERT((cache_last));
458
458
  node_ptr n = priv_value_traits().to_node_ptr(value);
459
459
  BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || node_algorithms::inited(n));
460
460
  node_algorithms::link_after(this->get_last_node(), n);
461
- if(cache_last){
461
+ BOOST_IF_CONSTEXPR(cache_last){
462
462
  this->set_last_node(n);
463
463
  }
464
464
  this->priv_size_traits().increment();
@@ -472,7 +472,7 @@ class slist_impl
472
472
  //! <b>Complexity</b>: Constant.
473
473
  //!
474
474
  //! <b>Note</b>: Invalidates the iterators (but not the references) to the erased element.
475
- void pop_front()
475
+ void pop_front() BOOST_NOEXCEPT
476
476
  { return this->pop_front_and_dispose(detail::null_disposer()); }
477
477
 
478
478
  //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
@@ -486,15 +486,15 @@ class slist_impl
486
486
  //!
487
487
  //! <b>Note</b>: Invalidates the iterators to the erased element.
488
488
  template<class Disposer>
489
- void pop_front_and_dispose(Disposer disposer)
489
+ void pop_front_and_dispose(Disposer disposer) BOOST_NOEXCEPT
490
490
  {
491
491
  node_ptr to_erase = node_traits::get_next(this->get_root_node());
492
492
  node_algorithms::unlink_after(this->get_root_node());
493
493
  this->priv_size_traits().decrement();
494
- if(safemode_or_autounlink)
494
+ BOOST_IF_CONSTEXPR(safemode_or_autounlink)
495
495
  node_algorithms::init(to_erase);
496
496
  disposer(priv_value_traits().to_value_ptr(to_erase));
497
- if(cache_last){
497
+ BOOST_IF_CONSTEXPR(cache_last){
498
498
  if(this->empty()){
499
499
  this->set_last_node(this->get_root_node());
500
500
  }
@@ -506,7 +506,7 @@ class slist_impl
506
506
  //! <b>Throws</b>: Nothing.
507
507
  //!
508
508
  //! <b>Complexity</b>: Constant.
509
- reference front()
509
+ BOOST_INTRUSIVE_FORCEINLINE reference front() BOOST_NOEXCEPT
510
510
  { return *this->priv_value_traits().to_value_ptr(node_traits::get_next(this->get_root_node())); }
511
511
 
512
512
  //! <b>Effects</b>: Returns a const_reference to the first element of the list.
@@ -514,7 +514,7 @@ class slist_impl
514
514
  //! <b>Throws</b>: Nothing.
515
515
  //!
516
516
  //! <b>Complexity</b>: Constant.
517
- const_reference front() const
517
+ BOOST_INTRUSIVE_FORCEINLINE const_reference front() const BOOST_NOEXCEPT
518
518
  { return *this->priv_value_traits().to_value_ptr(detail::uncast(node_traits::get_next(this->get_root_node()))); }
519
519
 
520
520
  //! <b>Effects</b>: Returns a reference to the last element of the list.
@@ -525,7 +525,7 @@ class slist_impl
525
525
  //!
526
526
  //! <b>Note</b>: Does not affect the validity of iterators and references.
527
527
  //! This function is only available is cache_last<> is true.
528
- reference back()
528
+ reference back() BOOST_NOEXCEPT
529
529
  {
530
530
  BOOST_STATIC_ASSERT((cache_last));
531
531
  return *this->priv_value_traits().to_value_ptr(this->get_last_node());
@@ -539,7 +539,7 @@ class slist_impl
539
539
  //!
540
540
  //! <b>Note</b>: Does not affect the validity of iterators and references.
541
541
  //! This function is only available is cache_last<> is true.
542
- const_reference back() const
542
+ BOOST_INTRUSIVE_FORCEINLINE const_reference back() const BOOST_NOEXCEPT
543
543
  {
544
544
  BOOST_STATIC_ASSERT((cache_last));
545
545
  return *this->priv_value_traits().to_value_ptr(this->get_last_node());
@@ -550,7 +550,7 @@ class slist_impl
550
550
  //! <b>Throws</b>: Nothing.
551
551
  //!
552
552
  //! <b>Complexity</b>: Constant.
553
- iterator begin()
553
+ BOOST_INTRUSIVE_FORCEINLINE iterator begin() BOOST_NOEXCEPT
554
554
  { return iterator (node_traits::get_next(this->get_root_node()), this->priv_value_traits_ptr()); }
555
555
 
556
556
  //! <b>Effects</b>: Returns a const_iterator to the first element contained in the list.
@@ -558,7 +558,7 @@ class slist_impl
558
558
  //! <b>Throws</b>: Nothing.
559
559
  //!
560
560
  //! <b>Complexity</b>: Constant.
561
- const_iterator begin() const
561
+ BOOST_INTRUSIVE_FORCEINLINE const_iterator begin() const BOOST_NOEXCEPT
562
562
  { return const_iterator (node_traits::get_next(this->get_root_node()), this->priv_value_traits_ptr()); }
563
563
 
564
564
  //! <b>Effects</b>: Returns a const_iterator to the first element contained in the list.
@@ -566,7 +566,7 @@ class slist_impl
566
566
  //! <b>Throws</b>: Nothing.
567
567
  //!
568
568
  //! <b>Complexity</b>: Constant.
569
- const_iterator cbegin() const
569
+ BOOST_INTRUSIVE_FORCEINLINE const_iterator cbegin() const BOOST_NOEXCEPT
570
570
  { return const_iterator(node_traits::get_next(this->get_root_node()), this->priv_value_traits_ptr()); }
571
571
 
572
572
  //! <b>Effects</b>: Returns an iterator to the end of the list.
@@ -574,7 +574,7 @@ class slist_impl
574
574
  //! <b>Throws</b>: Nothing.
575
575
  //!
576
576
  //! <b>Complexity</b>: Constant.
577
- iterator end()
577
+ BOOST_INTRUSIVE_FORCEINLINE iterator end() BOOST_NOEXCEPT
578
578
  { return iterator(this->get_end_node(), this->priv_value_traits_ptr()); }
579
579
 
580
580
  //! <b>Effects</b>: Returns a const_iterator to the end of the list.
@@ -582,7 +582,7 @@ class slist_impl
582
582
  //! <b>Throws</b>: Nothing.
583
583
  //!
584
584
  //! <b>Complexity</b>: Constant.
585
- const_iterator end() const
585
+ BOOST_INTRUSIVE_FORCEINLINE const_iterator end() const BOOST_NOEXCEPT
586
586
  { return const_iterator(detail::uncast(this->get_end_node()), this->priv_value_traits_ptr()); }
587
587
 
588
588
  //! <b>Effects</b>: Returns a const_iterator to the end of the list.
@@ -590,7 +590,7 @@ class slist_impl
590
590
  //! <b>Throws</b>: Nothing.
591
591
  //!
592
592
  //! <b>Complexity</b>: Constant.
593
- const_iterator cend() const
593
+ BOOST_INTRUSIVE_FORCEINLINE const_iterator cend() const BOOST_NOEXCEPT
594
594
  { return this->end(); }
595
595
 
596
596
  //! <b>Effects</b>: Returns an iterator that points to a position
@@ -599,7 +599,7 @@ class slist_impl
599
599
  //! <b>Throws</b>: Nothing.
600
600
  //!
601
601
  //! <b>Complexity</b>: Constant.
602
- iterator before_begin()
602
+ BOOST_INTRUSIVE_FORCEINLINE iterator before_begin() BOOST_NOEXCEPT
603
603
  { return iterator(this->get_root_node(), this->priv_value_traits_ptr()); }
604
604
 
605
605
  //! <b>Effects</b>: Returns an iterator that points to a position
@@ -608,7 +608,7 @@ class slist_impl
608
608
  //! <b>Throws</b>: Nothing.
609
609
  //!
610
610
  //! <b>Complexity</b>: Constant.
611
- const_iterator before_begin() const
611
+ BOOST_INTRUSIVE_FORCEINLINE const_iterator before_begin() const BOOST_NOEXCEPT
612
612
  { return const_iterator(detail::uncast(this->get_root_node()), this->priv_value_traits_ptr()); }
613
613
 
614
614
  //! <b>Effects</b>: Returns an iterator that points to a position
@@ -617,7 +617,7 @@ class slist_impl
617
617
  //! <b>Throws</b>: Nothing.
618
618
  //!
619
619
  //! <b>Complexity</b>: Constant.
620
- const_iterator cbefore_begin() const
620
+ BOOST_INTRUSIVE_FORCEINLINE const_iterator cbefore_begin() const BOOST_NOEXCEPT
621
621
  { return this->before_begin(); }
622
622
 
623
623
  //! <b>Effects</b>: Returns an iterator to the last element contained in the list.
@@ -627,7 +627,7 @@ class slist_impl
627
627
  //! <b>Complexity</b>: Constant.
628
628
  //!
629
629
  //! <b>Note</b>: This function is present only if cached_last<> option is true.
630
- iterator last()
630
+ BOOST_INTRUSIVE_FORCEINLINE iterator last() BOOST_NOEXCEPT
631
631
  {
632
632
  //This function shall not be used if cache_last is not true
633
633
  BOOST_INTRUSIVE_INVARIANT_ASSERT(cache_last);
@@ -641,7 +641,7 @@ class slist_impl
641
641
  //! <b>Complexity</b>: Constant.
642
642
  //!
643
643
  //! <b>Note</b>: This function is present only if cached_last<> option is true.
644
- const_iterator last() const
644
+ BOOST_INTRUSIVE_FORCEINLINE const_iterator last() const BOOST_NOEXCEPT
645
645
  {
646
646
  //This function shall not be used if cache_last is not true
647
647
  BOOST_INTRUSIVE_INVARIANT_ASSERT(cache_last);
@@ -655,7 +655,7 @@ class slist_impl
655
655
  //! <b>Complexity</b>: Constant.
656
656
  //!
657
657
  //! <b>Note</b>: This function is present only if cached_last<> option is true.
658
- const_iterator clast() const
658
+ BOOST_INTRUSIVE_FORCEINLINE const_iterator clast() const BOOST_NOEXCEPT
659
659
  { return const_iterator(this->get_last_node(), this->priv_value_traits_ptr()); }
660
660
 
661
661
  //! <b>Precondition</b>: end_iterator must be a valid end iterator
@@ -666,7 +666,7 @@ class slist_impl
666
666
  //! <b>Throws</b>: Nothing.
667
667
  //!
668
668
  //! <b>Complexity</b>: Constant.
669
- static slist_impl &container_from_end_iterator(iterator end_iterator)
669
+ BOOST_INTRUSIVE_FORCEINLINE static slist_impl &container_from_end_iterator(iterator end_iterator) BOOST_NOEXCEPT
670
670
  { return slist_impl::priv_container_from_end_iterator(end_iterator); }
671
671
 
672
672
  //! <b>Precondition</b>: end_iterator must be a valid end const_iterator
@@ -677,7 +677,7 @@ class slist_impl
677
677
  //! <b>Throws</b>: Nothing.
678
678
  //!
679
679
  //! <b>Complexity</b>: Constant.
680
- static const slist_impl &container_from_end_iterator(const_iterator end_iterator)
680
+ BOOST_INTRUSIVE_FORCEINLINE static const slist_impl &container_from_end_iterator(const_iterator end_iterator) BOOST_NOEXCEPT
681
681
  { return slist_impl::priv_container_from_end_iterator(end_iterator); }
682
682
 
683
683
  //! <b>Effects</b>: Returns the number of the elements contained in the list.
@@ -688,9 +688,9 @@ class slist_impl
688
688
  //! if constant_time_size is false. Constant time otherwise.
689
689
  //!
690
690
  //! <b>Note</b>: Does not affect the validity of iterators and references.
691
- size_type size() const
691
+ BOOST_INTRUSIVE_FORCEINLINE size_type size() const BOOST_NOEXCEPT
692
692
  {
693
- if(constant_time_size)
693
+ BOOST_IF_CONSTEXPR(constant_time_size)
694
694
  return this->priv_size_traits().get_size();
695
695
  else
696
696
  return node_algorithms::count(this->get_root_node()) - 1;
@@ -703,7 +703,7 @@ class slist_impl
703
703
  //! <b>Complexity</b>: Constant.
704
704
  //!
705
705
  //! <b>Note</b>: Does not affect the validity of iterators and references.
706
- bool empty() const
706
+ BOOST_INTRUSIVE_FORCEINLINE bool empty() const BOOST_NOEXCEPT
707
707
  { return node_algorithms::unique(this->get_root_node()); }
708
708
 
709
709
  //! <b>Effects</b>: Swaps the elements of x and *this.
@@ -716,7 +716,7 @@ class slist_impl
716
716
  //! <b>Note</b>: Does not affect the validity of iterators and references.
717
717
  void swap(slist_impl& other)
718
718
  {
719
- if(cache_last){
719
+ BOOST_IF_CONSTEXPR(cache_last){
720
720
  priv_swap_cache_last(this, &other);
721
721
  }
722
722
  else{
@@ -734,7 +734,7 @@ class slist_impl
734
734
  //! <b>Complexity</b>: Linear to the number of elements plus the number shifts.
735
735
  //!
736
736
  //! <b>Note</b>: Iterators Does not affect the validity of iterators and references.
737
- void shift_backwards(size_type n = 1)
737
+ void shift_backwards(size_type n = 1) BOOST_NOEXCEPT
738
738
  { this->priv_shift_backwards(n, detail::bool_<linear>()); }
739
739
 
740
740
  //! <b>Effects</b>: Moves forward all the elements, so that the second
@@ -746,7 +746,7 @@ class slist_impl
746
746
  //! <b>Complexity</b>: Linear to the number of elements plus the number shifts.
747
747
  //!
748
748
  //! <b>Note</b>: Does not affect the validity of iterators and references.
749
- void shift_forward(size_type n = 1)
749
+ void shift_forward(size_type n = 1) BOOST_NOEXCEPT
750
750
  { this->priv_shift_forward(n, detail::bool_<linear>()); }
751
751
 
752
752
  //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
@@ -818,7 +818,7 @@ class slist_impl
818
818
  //! <b>Complexity</b>: Constant.
819
819
  //!
820
820
  //! <b>Note</b>: Does not affect the validity of iterators and references.
821
- iterator insert_after(const_iterator prev_p, reference value)
821
+ iterator insert_after(const_iterator prev_p, reference value) BOOST_NOEXCEPT
822
822
  {
823
823
  node_ptr n = priv_value_traits().to_node_ptr(value);
824
824
  BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || node_algorithms::inited(n));
@@ -844,7 +844,7 @@ class slist_impl
844
844
  //!
845
845
  //! <b>Note</b>: Does not affect the validity of iterators and references.
846
846
  template<class Iterator>
847
- void insert_after(const_iterator prev_p, Iterator f, Iterator l)
847
+ void insert_after(const_iterator prev_p, Iterator f, Iterator l) BOOST_NOEXCEPT
848
848
  {
849
849
  //Insert first nodes avoiding cache and size checks
850
850
  size_type count = 0;
@@ -859,7 +859,7 @@ class slist_impl
859
859
  if(cache_last && (this->get_last_node() == prev_p.pointed_node())){
860
860
  this->set_last_node(prev_n);
861
861
  }
862
- if(constant_time_size){
862
+ BOOST_IF_CONSTEXPR(constant_time_size){
863
863
  this->priv_size_traits().increase(count);
864
864
  }
865
865
  }
@@ -876,7 +876,7 @@ class slist_impl
876
876
  //! Constant-time if cache_last<> is true and p == end().
877
877
  //!
878
878
  //! <b>Note</b>: Does not affect the validity of iterators and references.
879
- iterator insert(const_iterator p, reference value)
879
+ iterator insert(const_iterator p, reference value) BOOST_NOEXCEPT
880
880
  { return this->insert_after(this->previous(p), value); }
881
881
 
882
882
  //! <b>Requires</b>: Dereferencing iterator must yield
@@ -894,7 +894,7 @@ class slist_impl
894
894
  //!
895
895
  //! <b>Note</b>: Does not affect the validity of iterators and references.
896
896
  template<class Iterator>
897
- void insert(const_iterator p, Iterator b, Iterator e)
897
+ void insert(const_iterator p, Iterator b, Iterator e) BOOST_NOEXCEPT
898
898
  { return this->insert_after(this->previous(p), b, e); }
899
899
 
900
900
  //! <b>Effects</b>: Erases the element after the element pointed by prev of
@@ -909,7 +909,7 @@ class slist_impl
909
909
  //!
910
910
  //! <b>Note</b>: Invalidates the iterators (but not the references) to the
911
911
  //! erased element.
912
- iterator erase_after(const_iterator prev)
912
+ iterator erase_after(const_iterator prev) BOOST_NOEXCEPT
913
913
  { return this->erase_after_and_dispose(prev, detail::null_disposer()); }
914
914
 
915
915
  //! <b>Effects</b>: Erases the range (before_f, l) from
@@ -925,15 +925,15 @@ class slist_impl
925
925
  //!
926
926
  //! <b>Note</b>: Invalidates the iterators (but not the references) to the
927
927
  //! erased element.
928
- iterator erase_after(const_iterator before_f, const_iterator l)
928
+ iterator erase_after(const_iterator before_f, const_iterator l) BOOST_NOEXCEPT
929
929
  {
930
- if(safemode_or_autounlink || constant_time_size){
930
+ BOOST_IF_CONSTEXPR(safemode_or_autounlink || constant_time_size){
931
931
  return this->erase_after_and_dispose(before_f, l, detail::null_disposer());
932
932
  }
933
933
  else{
934
934
  const node_ptr bfp = before_f.pointed_node();
935
935
  const node_ptr lp = l.pointed_node();
936
- if(cache_last){
936
+ BOOST_IF_CONSTEXPR(cache_last){
937
937
  if(lp == this->get_end_node()){
938
938
  this->set_last_node(bfp);
939
939
  }
@@ -957,22 +957,22 @@ class slist_impl
957
957
  //!
958
958
  //! <b>Note</b>: Invalidates the iterators (but not the references) to the
959
959
  //! erased element.
960
- iterator erase_after(const_iterator before_f, const_iterator l, size_type n)
960
+ iterator erase_after(const_iterator before_f, const_iterator l, size_type n) BOOST_NOEXCEPT
961
961
  {
962
962
  BOOST_INTRUSIVE_INVARIANT_ASSERT(node_algorithms::distance((++const_iterator(before_f)).pointed_node(), l.pointed_node()) == n);
963
- if(safemode_or_autounlink){
963
+ BOOST_IF_CONSTEXPR(safemode_or_autounlink){
964
964
  return this->erase_after(before_f, l);
965
965
  }
966
966
  else{
967
967
  const node_ptr bfp = before_f.pointed_node();
968
968
  const node_ptr lp = l.pointed_node();
969
- if(cache_last){
969
+ BOOST_IF_CONSTEXPR(cache_last){
970
970
  if((lp == this->get_end_node())){
971
971
  this->set_last_node(bfp);
972
972
  }
973
973
  }
974
974
  node_algorithms::unlink_after(bfp, lp);
975
- if(constant_time_size){
975
+ BOOST_IF_CONSTEXPR(constant_time_size){
976
976
  this->priv_size_traits().decrease(n);
977
977
  }
978
978
  return l.unconst();
@@ -991,7 +991,7 @@ class slist_impl
991
991
  //!
992
992
  //! <b>Note</b>: Invalidates the iterators (but not the references) to the
993
993
  //! erased element.
994
- iterator erase(const_iterator i)
994
+ iterator erase(const_iterator i) BOOST_NOEXCEPT
995
995
  { return this->erase_after(this->previous(i)); }
996
996
 
997
997
  //! <b>Requires</b>: f and l must be valid iterator to elements in *this.
@@ -1008,7 +1008,7 @@ class slist_impl
1008
1008
  //!
1009
1009
  //! <b>Note</b>: Invalidates the iterators (but not the references) to the
1010
1010
  //! erased elements.
1011
- iterator erase(const_iterator f, const_iterator l)
1011
+ iterator erase(const_iterator f, const_iterator l) BOOST_NOEXCEPT
1012
1012
  { return this->erase_after(this->previous(f), l); }
1013
1013
 
1014
1014
  //! <b>Effects</b>: Erases the range [f, l) from
@@ -1025,7 +1025,7 @@ class slist_impl
1025
1025
  //!
1026
1026
  //! <b>Note</b>: Invalidates the iterators (but not the references) to the
1027
1027
  //! erased element.
1028
- iterator erase(const_iterator f, const_iterator l, size_type n)
1028
+ iterator erase(const_iterator f, const_iterator l, size_type n) BOOST_NOEXCEPT
1029
1029
  { return this->erase_after(this->previous(f), l, n); }
1030
1030
 
1031
1031
  //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
@@ -1043,7 +1043,7 @@ class slist_impl
1043
1043
  //!
1044
1044
  //! <b>Note</b>: Invalidates the iterators to the erased element.
1045
1045
  template<class Disposer>
1046
- iterator erase_after_and_dispose(const_iterator prev, Disposer disposer)
1046
+ iterator erase_after_and_dispose(const_iterator prev, Disposer disposer) BOOST_NOEXCEPT
1047
1047
  {
1048
1048
  const_iterator it(prev);
1049
1049
  ++it;
@@ -1054,7 +1054,7 @@ class slist_impl
1054
1054
  if(cache_last && (to_erase == this->get_last_node())){
1055
1055
  this->set_last_node(prev_n);
1056
1056
  }
1057
- if(safemode_or_autounlink)
1057
+ BOOST_IF_CONSTEXPR(safemode_or_autounlink)
1058
1058
  node_algorithms::init(to_erase);
1059
1059
  disposer(priv_value_traits().to_value_ptr(to_erase));
1060
1060
  this->priv_size_traits().decrement();
@@ -1063,7 +1063,7 @@ class slist_impl
1063
1063
 
1064
1064
  /// @cond
1065
1065
 
1066
- static iterator s_insert_after(const_iterator const prev_p, reference value)
1066
+ static iterator s_insert_after(const_iterator const prev_p, reference value) BOOST_NOEXCEPT
1067
1067
  {
1068
1068
  BOOST_STATIC_ASSERT(((!cache_last)&&(!constant_time_size)&&(!stateful_value_traits)));
1069
1069
  node_ptr const n = value_traits::to_node_ptr(value);
@@ -1073,7 +1073,7 @@ class slist_impl
1073
1073
  }
1074
1074
 
1075
1075
  template<class Disposer>
1076
- static iterator s_erase_after_and_dispose(const_iterator prev, Disposer disposer)
1076
+ static iterator s_erase_after_and_dispose(const_iterator prev, Disposer disposer) BOOST_NOEXCEPT
1077
1077
  {
1078
1078
  BOOST_STATIC_ASSERT(((!cache_last)&&(!constant_time_size)&&(!stateful_value_traits)));
1079
1079
  const_iterator it(prev);
@@ -1082,14 +1082,14 @@ class slist_impl
1082
1082
  ++it;
1083
1083
  node_ptr prev_n(prev.pointed_node());
1084
1084
  node_algorithms::unlink_after(prev_n);
1085
- if(safemode_or_autounlink)
1085
+ BOOST_IF_CONSTEXPR(safemode_or_autounlink)
1086
1086
  node_algorithms::init(to_erase);
1087
1087
  disposer(value_traits::to_value_ptr(to_erase));
1088
1088
  return it.unconst();
1089
1089
  }
1090
1090
 
1091
1091
  template<class Disposer>
1092
- static iterator s_erase_after_and_dispose(const_iterator before_f, const_iterator l, Disposer disposer)
1092
+ static iterator s_erase_after_and_dispose(const_iterator before_f, const_iterator l, Disposer disposer) BOOST_NOEXCEPT
1093
1093
  {
1094
1094
  BOOST_STATIC_ASSERT(((!cache_last)&&(!constant_time_size)&&(!stateful_value_traits)));
1095
1095
  node_ptr bfp(before_f.pointed_node()), lp(l.pointed_node());
@@ -1098,14 +1098,14 @@ class slist_impl
1098
1098
  while(fp != lp){
1099
1099
  node_ptr to_erase(fp);
1100
1100
  fp = node_traits::get_next(fp);
1101
- if(safemode_or_autounlink)
1101
+ BOOST_IF_CONSTEXPR(safemode_or_autounlink)
1102
1102
  node_algorithms::init(to_erase);
1103
1103
  disposer(value_traits::to_value_ptr(to_erase));
1104
1104
  }
1105
1105
  return l.unconst();
1106
1106
  }
1107
1107
 
1108
- static iterator s_erase_after(const_iterator prev)
1108
+ static iterator s_erase_after(const_iterator prev) BOOST_NOEXCEPT
1109
1109
  { return s_erase_after_and_dispose(prev, detail::null_disposer()); }
1110
1110
 
1111
1111
  /// @endcond
@@ -1125,7 +1125,7 @@ class slist_impl
1125
1125
  //!
1126
1126
  //! <b>Note</b>: Invalidates the iterators to the erased element.
1127
1127
  template<class Disposer>
1128
- iterator erase_after_and_dispose(const_iterator before_f, const_iterator l, Disposer disposer)
1128
+ iterator erase_after_and_dispose(const_iterator before_f, const_iterator l, Disposer disposer) BOOST_NOEXCEPT
1129
1129
  {
1130
1130
  node_ptr bfp(before_f.pointed_node()), lp(l.pointed_node());
1131
1131
  node_ptr fp(node_traits::get_next(bfp));
@@ -1133,7 +1133,7 @@ class slist_impl
1133
1133
  while(fp != lp){
1134
1134
  node_ptr to_erase(fp);
1135
1135
  fp = node_traits::get_next(fp);
1136
- if(safemode_or_autounlink)
1136
+ BOOST_IF_CONSTEXPR(safemode_or_autounlink)
1137
1137
  node_algorithms::init(to_erase);
1138
1138
  disposer(priv_value_traits().to_value_ptr(to_erase));
1139
1139
  this->priv_size_traits().decrement();
@@ -1160,12 +1160,12 @@ class slist_impl
1160
1160
  //! <b>Note</b>: Invalidates the iterators (but not the references) to the
1161
1161
  //! erased element.
1162
1162
  template<class Disposer>
1163
- iterator erase_and_dispose(const_iterator i, Disposer disposer)
1163
+ iterator erase_and_dispose(const_iterator i, Disposer disposer) BOOST_NOEXCEPT
1164
1164
  { return this->erase_after_and_dispose(this->previous(i), disposer); }
1165
1165
 
1166
1166
  #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED)
1167
1167
  template<class Disposer>
1168
- iterator erase_and_dispose(iterator i, Disposer disposer)
1168
+ iterator erase_and_dispose(iterator i, Disposer disposer) BOOST_NOEXCEPT
1169
1169
  { return this->erase_and_dispose(const_iterator(i), disposer); }
1170
1170
  #endif
1171
1171
 
@@ -1187,7 +1187,7 @@ class slist_impl
1187
1187
  //! <b>Note</b>: Invalidates the iterators (but not the references) to the
1188
1188
  //! erased elements.
1189
1189
  template<class Disposer>
1190
- iterator erase_and_dispose(const_iterator f, const_iterator l, Disposer disposer)
1190
+ iterator erase_and_dispose(const_iterator f, const_iterator l, Disposer disposer) BOOST_NOEXCEPT
1191
1191
  { return this->erase_after_and_dispose(this->previous(f), l, disposer); }
1192
1192
 
1193
1193
  //! <b>Requires</b>: Dereferencing iterator must yield
@@ -1256,7 +1256,7 @@ class slist_impl
1256
1256
  //! assigned to the last spliced element or prev if x is empty.
1257
1257
  //! This iterator can be used as new "prev" iterator for a new splice_after call.
1258
1258
  //! that will splice new values after the previously spliced values.
1259
- void splice_after(const_iterator prev, slist_impl &x, const_iterator *l = 0)
1259
+ void splice_after(const_iterator prev, slist_impl &x, const_iterator *l = 0) BOOST_NOEXCEPT
1260
1260
  {
1261
1261
  if(x.empty()){
1262
1262
  if(l) *l = prev;
@@ -1269,7 +1269,7 @@ class slist_impl
1269
1269
  const_iterator last_x(x.previous(x.end())); //constant time if cache_last is active
1270
1270
  node_ptr prev_n(prev.pointed_node());
1271
1271
  node_ptr last_x_n(last_x.pointed_node());
1272
- if(cache_last){
1272
+ BOOST_IF_CONSTEXPR(cache_last){
1273
1273
  x.set_last_node(x.get_root_node());
1274
1274
  if(node_traits::get_next(prev_n) == this->get_end_node()){
1275
1275
  this->set_last_node(last_x_n);
@@ -1295,7 +1295,7 @@ class slist_impl
1295
1295
  //!
1296
1296
  //! <b>Note</b>: Iterators of values obtained from list x now point to elements of this
1297
1297
  //! list. Iterators of this list and all the references are not invalidated.
1298
- void splice_after(const_iterator prev_pos, slist_impl &x, const_iterator prev_ele)
1298
+ void splice_after(const_iterator prev_pos, slist_impl &x, const_iterator prev_ele) BOOST_NOEXCEPT
1299
1299
  {
1300
1300
  const_iterator elem = prev_ele;
1301
1301
  this->splice_after(prev_pos, x, prev_ele, ++elem, 1);
@@ -1316,9 +1316,9 @@ class slist_impl
1316
1316
  //!
1317
1317
  //! <b>Note</b>: Iterators of values obtained from list x now point to elements of this
1318
1318
  //! list. Iterators of this list and all the references are not invalidated.
1319
- void splice_after(const_iterator prev_pos, slist_impl &x, const_iterator before_f, const_iterator before_l)
1319
+ void splice_after(const_iterator prev_pos, slist_impl &x, const_iterator before_f, const_iterator before_l) BOOST_NOEXCEPT
1320
1320
  {
1321
- if(constant_time_size)
1321
+ BOOST_IF_CONSTEXPR(constant_time_size)
1322
1322
  this->splice_after(prev_pos, x, before_f, before_l, node_algorithms::distance(before_f.pointed_node(), before_l.pointed_node()));
1323
1323
  else
1324
1324
  this->priv_splice_after
@@ -1339,12 +1339,12 @@ class slist_impl
1339
1339
  //!
1340
1340
  //! <b>Note</b>: Iterators of values obtained from list x now point to elements of this
1341
1341
  //! list. Iterators of this list and all the references are not invalidated.
1342
- void splice_after(const_iterator prev_pos, slist_impl &x, const_iterator before_f, const_iterator before_l, size_type n)
1342
+ void splice_after(const_iterator prev_pos, slist_impl &x, const_iterator before_f, const_iterator before_l, size_type n) BOOST_NOEXCEPT
1343
1343
  {
1344
1344
  BOOST_INTRUSIVE_INVARIANT_ASSERT(node_algorithms::distance(before_f.pointed_node(), before_l.pointed_node()) == n);
1345
1345
  this->priv_splice_after
1346
1346
  (prev_pos.pointed_node(), x, before_f.pointed_node(), before_l.pointed_node());
1347
- if(constant_time_size){
1347
+ BOOST_IF_CONSTEXPR(constant_time_size){
1348
1348
  this->priv_size_traits().increase(n);
1349
1349
  x.priv_size_traits().decrease(n);
1350
1350
  }
@@ -1371,7 +1371,7 @@ class slist_impl
1371
1371
  //! assigned to the last spliced element or prev if x is empty.
1372
1372
  //! This iterator can be used as new "prev" iterator for a new splice_after call.
1373
1373
  //! that will splice new values after the previously spliced values.
1374
- void splice(const_iterator it, slist_impl &x, const_iterator *l = 0)
1374
+ void splice(const_iterator it, slist_impl &x, const_iterator *l = 0) BOOST_NOEXCEPT
1375
1375
  { this->splice_after(this->previous(it), x, l); }
1376
1376
 
1377
1377
  //! <b>Requires</b>: it p must be a valid iterator of *this.
@@ -1388,7 +1388,7 @@ class slist_impl
1388
1388
  //!
1389
1389
  //! <b>Note</b>: Iterators of values obtained from list x now point to elements of this
1390
1390
  //! list. Iterators of this list and all the references are not invalidated.
1391
- void splice(const_iterator pos, slist_impl &x, const_iterator elem)
1391
+ void splice(const_iterator pos, slist_impl &x, const_iterator elem) BOOST_NOEXCEPT
1392
1392
  { return this->splice_after(this->previous(pos), x, x.previous(elem)); }
1393
1393
 
1394
1394
  //! <b>Requires</b>: pos must be a dereferenceable iterator in *this
@@ -1408,7 +1408,7 @@ class slist_impl
1408
1408
  //!
1409
1409
  //! <b>Note</b>: Iterators of values obtained from list x now point to elements of this
1410
1410
  //! list. Iterators of this list and all the references are not invalidated.
1411
- void splice(const_iterator pos, slist_impl &x, const_iterator f, const_iterator l)
1411
+ void splice(const_iterator pos, slist_impl &x, const_iterator f, const_iterator l) BOOST_NOEXCEPT
1412
1412
  { return this->splice_after(this->previous(pos), x, x.previous(f), x.previous(l)); }
1413
1413
 
1414
1414
  //! <b>Requires</b>: pos must be a dereferenceable iterator in *this
@@ -1427,7 +1427,7 @@ class slist_impl
1427
1427
  //!
1428
1428
  //! <b>Note</b>: Iterators of values obtained from list x now point to elements of this
1429
1429
  //! list. Iterators of this list and all the references are not invalidated.
1430
- void splice(const_iterator pos, slist_impl &x, const_iterator f, const_iterator l, size_type n)
1430
+ void splice(const_iterator pos, slist_impl &x, const_iterator f, const_iterator l, size_type n) BOOST_NOEXCEPT
1431
1431
  { return this->splice_after(this->previous(pos), x, x.previous(f), x.previous(l), n); }
1432
1432
 
1433
1433
  //! <b>Effects</b>: This function sorts the list *this according to operator<.
@@ -1462,7 +1462,7 @@ class slist_impl
1462
1462
  BOOST_INTRUSIVE_INVARIANT_ASSERT(counter[i].empty());
1463
1463
  const_iterator last_element(carry.previous(last_inserted, carry.end()));
1464
1464
 
1465
- if(constant_time_size){
1465
+ BOOST_IF_CONSTEXPR(constant_time_size){
1466
1466
  counter[i].splice_after( counter[i].cbefore_begin(), carry
1467
1467
  , carry.cbefore_begin(), last_element
1468
1468
  , carry.size());
@@ -1479,7 +1479,7 @@ class slist_impl
1479
1479
  counter[i].merge(counter[i-1], p, &last_inserted);
1480
1480
  --fill;
1481
1481
  const_iterator last_element(counter[fill].previous(last_inserted, counter[fill].end()));
1482
- if(constant_time_size){
1482
+ BOOST_IF_CONSTEXPR(constant_time_size){
1483
1483
  this->splice_after( cbefore_begin(), counter[fill], counter[fill].cbefore_begin()
1484
1484
  , last_element, counter[fill].size());
1485
1485
  }
@@ -1576,7 +1576,7 @@ class slist_impl
1576
1576
  //! <b>Complexity</b>: This function is linear to the contained elements.
1577
1577
  //!
1578
1578
  //! <b>Note</b>: Iterators and references are not invalidated
1579
- void reverse()
1579
+ void reverse() BOOST_NOEXCEPT
1580
1580
  {
1581
1581
  if(cache_last && !this->empty()){
1582
1582
  this->set_last_node(node_traits::get_next(this->get_root_node()));
@@ -1594,7 +1594,7 @@ class slist_impl
1594
1594
  //! <b>Note</b>: The relative order of elements that are not removed is unchanged,
1595
1595
  //! and iterators to elements that are not removed remain valid. This function is
1596
1596
  //! linear time: it performs exactly size() comparisons for equality.
1597
- void remove(const_reference value)
1597
+ void remove(const_reference value) BOOST_NOEXCEPT
1598
1598
  { this->remove_if(detail::equal_to_value<const_reference>(value)); }
1599
1599
 
1600
1600
  //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
@@ -1609,7 +1609,7 @@ class slist_impl
1609
1609
  //! <b>Note</b>: The relative order of elements that are not removed is unchanged,
1610
1610
  //! and iterators to elements that are not removed remain valid.
1611
1611
  template<class Disposer>
1612
- void remove_and_dispose(const_reference value, Disposer disposer)
1612
+ void remove_and_dispose(const_reference value, Disposer disposer) BOOST_NOEXCEPT
1613
1613
  { this->remove_and_dispose_if(detail::equal_to_value<const_reference>(value), disposer); }
1614
1614
 
1615
1615
  //! <b>Effects</b>: Removes all the elements for which a specified
@@ -1629,7 +1629,7 @@ class slist_impl
1629
1629
  node_algorithms::stable_partition
1630
1630
  (bbeg, this->get_end_node(), detail::key_nodeptr_comp<Pred, value_traits>(pred, &this->priv_value_traits()), info);
1631
1631
  //After cache last is set, slist invariants are preserved...
1632
- if(cache_last){
1632
+ BOOST_IF_CONSTEXPR(cache_last){
1633
1633
  this->set_last_node(info.new_last_node);
1634
1634
  }
1635
1635
  //...so erase can be safely called
@@ -1658,7 +1658,7 @@ class slist_impl
1658
1658
  node_algorithms::stable_partition
1659
1659
  (bbeg, this->get_end_node(), detail::key_nodeptr_comp<Pred, value_traits>(pred, &this->priv_value_traits()), info);
1660
1660
  //After cache last is set, slist invariants are preserved...
1661
- if(cache_last){
1661
+ BOOST_IF_CONSTEXPR(cache_last){
1662
1662
  this->set_last_node(info.new_last_node);
1663
1663
  }
1664
1664
  //...so erase can be safely called
@@ -1738,7 +1738,7 @@ class slist_impl
1738
1738
  ++cur;
1739
1739
  }
1740
1740
  }
1741
- if(cache_last){
1741
+ BOOST_IF_CONSTEXPR(cache_last){
1742
1742
  this->set_last_node(bcur.pointed_node());
1743
1743
  }
1744
1744
  }
@@ -1755,7 +1755,7 @@ class slist_impl
1755
1755
  //! <b>Note</b>: Iterators and references are not invalidated.
1756
1756
  //! This static function is available only if the <i>value traits</i>
1757
1757
  //! is stateless.
1758
- static iterator s_iterator_to(reference value)
1758
+ static iterator s_iterator_to(reference value) BOOST_NOEXCEPT
1759
1759
  {
1760
1760
  BOOST_STATIC_ASSERT((!stateful_value_traits));
1761
1761
  return iterator (value_traits::to_node_ptr(value), const_value_traits_ptr());
@@ -1772,7 +1772,7 @@ class slist_impl
1772
1772
  //! <b>Note</b>: Iterators and references are not invalidated.
1773
1773
  //! This static function is available only if the <i>value traits</i>
1774
1774
  //! is stateless.
1775
- static const_iterator s_iterator_to(const_reference value)
1775
+ static const_iterator s_iterator_to(const_reference value) BOOST_NOEXCEPT
1776
1776
  {
1777
1777
  BOOST_STATIC_ASSERT((!stateful_value_traits));
1778
1778
  reference r =*detail::uncast(pointer_traits<const_pointer>::pointer_to(value));
@@ -1788,7 +1788,7 @@ class slist_impl
1788
1788
  //! <b>Complexity</b>: Constant time.
1789
1789
  //!
1790
1790
  //! <b>Note</b>: Iterators and references are not invalidated.
1791
- iterator iterator_to(reference value)
1791
+ iterator iterator_to(reference value) BOOST_NOEXCEPT
1792
1792
  {
1793
1793
  BOOST_INTRUSIVE_INVARIANT_ASSERT(linear || !node_algorithms::inited(this->priv_value_traits().to_node_ptr(value)));
1794
1794
  return iterator (this->priv_value_traits().to_node_ptr(value), this->priv_value_traits_ptr());
@@ -1803,7 +1803,7 @@ class slist_impl
1803
1803
  //! <b>Complexity</b>: Constant time.
1804
1804
  //!
1805
1805
  //! <b>Note</b>: Iterators and references are not invalidated.
1806
- const_iterator iterator_to(const_reference value) const
1806
+ const_iterator iterator_to(const_reference value) const BOOST_NOEXCEPT
1807
1807
  {
1808
1808
  reference r =*detail::uncast(pointer_traits<const_pointer>::pointer_to(value));
1809
1809
  BOOST_INTRUSIVE_INVARIANT_ASSERT (linear || !node_algorithms::inited(this->priv_value_traits().to_node_ptr(r)));
@@ -1818,7 +1818,7 @@ class slist_impl
1818
1818
  //!
1819
1819
  //! <b>Complexity</b>: Linear to the number of elements before i.
1820
1820
  //! Constant if cache_last<> is true and i == end().
1821
- iterator previous(iterator i)
1821
+ iterator previous(iterator i) BOOST_NOEXCEPT
1822
1822
  { return this->previous(this->cbefore_begin(), i); }
1823
1823
 
1824
1824
  //! <b>Returns</b>: The const_iterator to the element before i in the list.
@@ -1829,7 +1829,7 @@ class slist_impl
1829
1829
  //!
1830
1830
  //! <b>Complexity</b>: Linear to the number of elements before i.
1831
1831
  //! Constant if cache_last<> is true and i == end().
1832
- const_iterator previous(const_iterator i) const
1832
+ const_iterator previous(const_iterator i) const BOOST_NOEXCEPT
1833
1833
  { return this->previous(this->cbefore_begin(), i); }
1834
1834
 
1835
1835
  //! <b>Returns</b>: The iterator to the element before i in the list,
@@ -1841,7 +1841,7 @@ class slist_impl
1841
1841
  //!
1842
1842
  //! <b>Complexity</b>: Linear to the number of elements before i.
1843
1843
  //! Constant if cache_last<> is true and i == end().
1844
- iterator previous(const_iterator prev_from, iterator i)
1844
+ iterator previous(const_iterator prev_from, iterator i) BOOST_NOEXCEPT
1845
1845
  { return this->previous(prev_from, const_iterator(i)).unconst(); }
1846
1846
 
1847
1847
  //! <b>Returns</b>: The const_iterator to the element before i in the list,
@@ -1853,7 +1853,7 @@ class slist_impl
1853
1853
  //!
1854
1854
  //! <b>Complexity</b>: Linear to the number of elements before i.
1855
1855
  //! Constant if cache_last<> is true and i == end().
1856
- const_iterator previous(const_iterator prev_from, const_iterator i) const
1856
+ const_iterator previous(const_iterator prev_from, const_iterator i) const BOOST_NOEXCEPT
1857
1857
  {
1858
1858
  if(cache_last && (i.pointed_node() == this->get_end_node())){
1859
1859
  return const_iterator(detail::uncast(this->get_last_node()), this->priv_value_traits_ptr());
@@ -1881,9 +1881,9 @@ class slist_impl
1881
1881
  //! point to elements of this list. Iterators of this list and all the references are not invalidated.
1882
1882
  //!
1883
1883
  //! <b>Warning</b>: Experimental function, don't use it!
1884
- void incorporate_after(const_iterator prev_pos, const node_ptr & f, const node_ptr & before_l)
1884
+ void incorporate_after(const_iterator prev_pos, const node_ptr & f, const node_ptr & before_l) BOOST_NOEXCEPT
1885
1885
  {
1886
- if(constant_time_size)
1886
+ BOOST_IF_CONSTEXPR(constant_time_size)
1887
1887
  this->incorporate_after(prev_pos, f, before_l, node_algorithms::distance(f.pointed_node(), before_l.pointed_node())+1);
1888
1888
  else
1889
1889
  this->priv_incorporate_after(prev_pos.pointed_node(), f, before_l);
@@ -1905,7 +1905,7 @@ class slist_impl
1905
1905
  //! point to elements of this list. Iterators of this list and all the references are not invalidated.
1906
1906
  //!
1907
1907
  //! <b>Warning</b>: Experimental function, don't use it!
1908
- void incorporate_after(const_iterator prev_pos, const node_ptr & f, const node_ptr & before_l, size_type n)
1908
+ void incorporate_after(const_iterator prev_pos, const node_ptr & f, const node_ptr & before_l, size_type n) BOOST_NOEXCEPT
1909
1909
  {
1910
1910
  if(n){
1911
1911
  BOOST_INTRUSIVE_INVARIANT_ASSERT(n > 0);
@@ -1915,7 +1915,7 @@ class slist_impl
1915
1915
  , iterator(before_l, this->priv_value_traits_ptr())))
1916
1916
  +1 == n);
1917
1917
  this->priv_incorporate_after(prev_pos.pointed_node(), f, before_l);
1918
- if(constant_time_size){
1918
+ BOOST_IF_CONSTEXPR(constant_time_size){
1919
1919
  this->priv_size_traits().increase(n);
1920
1920
  }
1921
1921
  }
@@ -2006,7 +2006,7 @@ class slist_impl
2006
2006
 
2007
2007
  void priv_incorporate_after(node_ptr prev_pos_n, node_ptr first_n, node_ptr before_l_n)
2008
2008
  {
2009
- if(cache_last){
2009
+ BOOST_IF_CONSTEXPR(cache_last){
2010
2010
  if(prev_pos_n == this->get_last_node()){
2011
2011
  this->set_last_node(before_l_n);
2012
2012
  }
@@ -2039,7 +2039,7 @@ class slist_impl
2039
2039
  (node_traits::get_next(this->get_root_node()), (std::size_t)n));
2040
2040
  if(ret.first){
2041
2041
  node_traits::set_next(this->get_root_node(), ret.first);
2042
- if(cache_last){
2042
+ BOOST_IF_CONSTEXPR(cache_last){
2043
2043
  this->set_last_node(ret.second);
2044
2044
  }
2045
2045
  }
@@ -2060,7 +2060,7 @@ class slist_impl
2060
2060
  (node_traits::get_next(this->get_root_node()), (std::size_t)n));
2061
2061
  if(ret.first){
2062
2062
  node_traits::set_next(this->get_root_node(), ret.first);
2063
- if(cache_last){
2063
+ BOOST_IF_CONSTEXPR(cache_last){
2064
2064
  this->set_last_node(ret.second);
2065
2065
  }
2066
2066
  }
@@ -2233,10 +2233,10 @@ class slist
2233
2233
  BOOST_INTRUSIVE_FORCEINLINE void clone_from(BOOST_RV_REF(slist) src, Cloner cloner, Disposer disposer)
2234
2234
  { Base::clone_from(BOOST_MOVE_BASE(Base, src), cloner, disposer); }
2235
2235
 
2236
- BOOST_INTRUSIVE_FORCEINLINE static slist &container_from_end_iterator(iterator end_iterator)
2236
+ BOOST_INTRUSIVE_FORCEINLINE static slist &container_from_end_iterator(iterator end_iterator) BOOST_NOEXCEPT
2237
2237
  { return static_cast<slist &>(Base::container_from_end_iterator(end_iterator)); }
2238
2238
 
2239
- BOOST_INTRUSIVE_FORCEINLINE static const slist &container_from_end_iterator(const_iterator end_iterator)
2239
+ BOOST_INTRUSIVE_FORCEINLINE static const slist &container_from_end_iterator(const_iterator end_iterator) BOOST_NOEXCEPT
2240
2240
  { return static_cast<const slist &>(Base::container_from_end_iterator(end_iterator)); }
2241
2241
  };
2242
2242