passenger 6.2.1 → 6.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +37 -15
  3. data/build/cxx_tests.rb +2 -0
  4. data/build/support/cxx_dependency_map.rb +3 -63
  5. data/src/agent/Core/Config.h +1 -1
  6. data/src/agent/Core/Controller/Config.h +1 -1
  7. data/src/agent/Shared/ApiServerUtils.h +1 -1
  8. data/src/agent/Watchdog/Config.h +1 -1
  9. data/src/apache2_module/Hooks.cpp +13 -0
  10. data/src/apache2_module/Utils.h +14 -0
  11. data/src/cxx_supportlib/Constants.h +1 -1
  12. data/src/cxx_supportlib/FileTools/FileManip.cpp +27 -3
  13. data/src/cxx_supportlib/InstanceDirectory.h +30 -3
  14. data/src/cxx_supportlib/ServerKit/Errors.h +1 -1
  15. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +1 -1
  16. data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +1 -1
  17. data/src/cxx_supportlib/ServerKit/HttpRequest.h +1 -1
  18. data/src/cxx_supportlib/ServerKit/llerrors.h +3 -3
  19. data/src/cxx_supportlib/ServerKit/llversion.h +1 -1
  20. data/src/cxx_supportlib/{ServerKit/llhttp_api.c → vendor-copy/llhttp/api.c} +30 -23
  21. data/src/cxx_supportlib/{ServerKit → vendor-copy/llhttp}/llhttp.c +1756 -1645
  22. data/src/cxx_supportlib/{ServerKit → vendor-copy/llhttp}/llhttp.h +35 -13
  23. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/classification.hpp +19 -0
  24. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/formatter.hpp +1 -1
  25. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/trim_all.hpp +0 -2
  26. data/src/cxx_supportlib/vendor-modified/boost/assert.hpp +20 -13
  27. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +2 -2
  28. data/src/cxx_supportlib/vendor-modified/boost/atomic/thread_pause.hpp +4 -0
  29. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +1 -1
  30. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/debug.hpp +4 -0
  31. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +1 -1
  32. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +1 -1
  33. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +1 -1
  34. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +1 -1
  35. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +1 -1
  36. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx23.hpp +1 -1
  37. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +6 -1
  38. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +10 -1
  39. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +5 -3
  40. data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +1 -1
  41. data/src/cxx_supportlib/vendor-modified/boost/config/workaround.hpp +5 -0
  42. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +57 -53
  43. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +10 -10
  44. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +34 -2
  45. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +14 -2
  46. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +176 -2287
  47. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +13 -9
  48. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +186 -70
  49. data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +2 -2
  50. data/src/cxx_supportlib/vendor-modified/boost/container/detail/aligned_allocation.hpp +149 -0
  51. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +35 -0
  52. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +1 -0
  53. data/src/cxx_supportlib/vendor-modified/boost/container/detail/bit_utilities.hpp +133 -0
  54. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +18 -3
  55. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +5 -0
  56. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_end.hpp +4 -0
  57. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +1 -1
  58. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +20 -10
  59. data/src/cxx_supportlib/vendor-modified/boost/container/detail/deque_impl.hpp +2744 -0
  60. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +202 -104
  61. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dlmalloc.hpp +5 -4
  62. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +161 -85
  63. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_constructible.hpp +180 -0
  64. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +3 -2
  65. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +12 -0
  66. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +16 -0
  67. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +1 -1
  68. data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +9 -1
  69. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +18 -14
  70. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +256 -41
  71. data/src/cxx_supportlib/vendor-modified/boost/container/detail/operator_new_helpers.hpp +75 -24
  72. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +1 -56
  73. data/src/cxx_supportlib/vendor-modified/boost/container/detail/placement_new.hpp +16 -3
  74. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +1 -7
  75. data/src/cxx_supportlib/vendor-modified/boost/container/detail/range_utils.hpp +196 -0
  76. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +33 -1
  77. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +124 -69
  78. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +109 -7
  79. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +168 -162
  80. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/nest.hpp +2978 -0
  81. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/pmr/nest.hpp +45 -0
  82. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_all_of.hpp +43 -0
  83. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_any_of.hpp +42 -0
  84. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_copy.hpp +229 -0
  85. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_copy_if.hpp +270 -0
  86. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_copy_n.hpp +308 -0
  87. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_count.hpp +101 -0
  88. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_count_if.hpp +100 -0
  89. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_equal.hpp +268 -0
  90. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_fill.hpp +101 -0
  91. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_fill_n.hpp +171 -0
  92. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find.hpp +110 -0
  93. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_if.hpp +110 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_if_not.hpp +43 -0
  95. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_last.hpp +179 -0
  96. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_last_if.hpp +179 -0
  97. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_last_if_not.hpp +43 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_for_each.hpp +92 -0
  99. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_generate.hpp +90 -0
  100. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_generate_n.hpp +162 -0
  101. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_is_partitioned.hpp +46 -0
  102. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_is_sorted.hpp +49 -0
  103. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_is_sorted_until.hpp +169 -0
  104. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_iterator_traits.hpp +382 -0
  105. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_merge.hpp +428 -0
  106. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_mismatch.hpp +350 -0
  107. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_none_of.hpp +98 -0
  108. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_partition.hpp +296 -0
  109. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_partition_copy.hpp +105 -0
  110. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_partition_point.hpp +116 -0
  111. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove.hpp +57 -0
  112. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove_copy.hpp +207 -0
  113. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove_copy_if.hpp +223 -0
  114. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove_if.hpp +57 -0
  115. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_replace.hpp +90 -0
  116. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_replace_if.hpp +90 -0
  117. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_reverse.hpp +245 -0
  118. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_reverse_copy.hpp +229 -0
  119. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_search.hpp +211 -0
  120. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_search_n.hpp +476 -0
  121. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_difference.hpp +300 -0
  122. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_intersection.hpp +287 -0
  123. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_symmetric_difference.hpp +306 -0
  124. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_union.hpp +294 -0
  125. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_stable_partition.hpp +153 -0
  126. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_swap_ranges.hpp +92 -0
  127. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_transform.hpp +93 -0
  128. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/wrapped_iterator.hpp +142 -0
  129. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +642 -417
  130. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +141 -30
  131. data/src/cxx_supportlib/vendor-modified/boost/container/hub.hpp +2426 -0
  132. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +65 -57
  133. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +247 -68
  134. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +7 -0
  135. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +39 -33
  136. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +156 -23
  137. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/global_resource.hpp +3 -3
  138. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/hub.hpp +43 -0
  139. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +5 -3
  140. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +1 -0
  141. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +1 -1
  142. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +4 -0
  143. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/segtor.hpp +45 -0
  144. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +5 -4
  145. data/src/cxx_supportlib/vendor-modified/boost/container/segtor.hpp +905 -0
  146. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +148 -35
  147. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +59 -52
  148. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +632 -5
  149. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +66 -60
  150. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +46 -1
  151. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +612 -317
  152. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +54 -111
  153. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_construction.hpp +100 -0
  154. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_fwd.hpp +1 -3
  155. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +233 -116
  156. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +5 -1
  157. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +17 -10
  158. data/src/cxx_supportlib/vendor-modified/boost/date_time/period.hpp +1 -3
  159. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +16 -0
  160. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/encoder.hpp +114 -0
  161. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +4 -0
  162. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/requires_cxx11.hpp +1 -1
  163. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +211 -1
  164. data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +59 -0
  165. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +6 -0
  166. data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +34 -0
  167. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +0 -1
  168. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +12 -3
  169. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +1 -1
  170. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +29 -174
  171. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +18 -2
  172. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +0 -1
  173. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +4 -5
  174. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +20 -11
  175. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +42 -14
  176. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +58 -22
  177. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +3 -1
  178. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +5 -1
  179. data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +8 -2
  180. data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +9 -0
  181. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +11 -1
  182. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +9 -1
  183. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/config.hpp +22 -0
  184. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +15 -7
  185. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +23 -11
  186. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +11 -1
  187. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +9 -1
  188. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +11 -2
  189. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +10 -1
  190. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +8 -1
  191. data/src/cxx_supportlib/vendor-modified/boost/{detail → lexical_cast/detail}/lcast_precision.hpp +13 -1
  192. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +11 -1
  193. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +10 -2
  194. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +15 -2
  195. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +11 -1
  196. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once_atomic.cpp +1 -1
  197. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +48 -46
  198. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +23 -0
  199. data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +24 -24
  200. data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +12 -4
  201. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +76 -0
  202. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +1 -1
  203. data/src/cxx_supportlib/vendor-modified/boost/move/traits.hpp +11 -0
  204. data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +58 -37
  205. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_copy_if.hpp +1 -2
  206. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +17 -9
  207. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_remove_if.hpp +1 -2
  208. data/src/cxx_supportlib/vendor-modified/boost/mp11/integer_sequence.hpp +6 -0
  209. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  210. data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +6 -1
  211. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_common_defs.hpp +188 -0
  212. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_factory_support.hpp +0 -6
  213. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_hash.hpp +1 -1
  214. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_nonmember_interface.hpp +117 -0
  215. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +108 -83
  216. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +39 -39
  217. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_select_implementation.hpp +37 -0
  218. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +1 -1
  219. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +8 -8
  220. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/union_optional.hpp +724 -0
  221. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +93 -220
  222. data/src/cxx_supportlib/vendor-modified/boost/optional/optional_fwd.hpp +14 -4
  223. data/src/cxx_supportlib/vendor-modified/boost/optional/optional_io.hpp +1 -1
  224. data/src/cxx_supportlib/vendor-modified/boost/random/binomial_distribution.hpp +1 -1
  225. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_int_distribution.hpp +1 -1
  226. data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +1 -1
  227. data/src/cxx_supportlib/vendor-modified/boost/static_assert.hpp +4 -6
  228. data/src/cxx_supportlib/vendor-modified/boost/system/api_config.hpp +1 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +16 -0
  230. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +13 -13
  231. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +5 -5
  232. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_deque_base.hpp +3 -2
  233. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_queue_base.hpp +3 -2
  234. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +2 -1
  235. data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/parallel/v2/task_region.hpp +1 -1
  236. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +30 -28
  237. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once.hpp +6 -3
  238. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once_atomic.hpp +5 -1
  239. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_helpers.hpp +1 -0
  240. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +16 -16
  241. data/src/cxx_supportlib/vendor-modified/boost/thread/v2/shared_mutex.hpp +26 -26
  242. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +196 -6
  243. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +191 -6
  244. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_map.hpp +196 -5
  245. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_set.hpp +192 -5
  246. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +3 -3
  247. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +2 -2
  248. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +3 -3
  249. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +52 -16
  250. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/ranges_support.hpp +104 -0
  251. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +1 -14
  252. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/unordered_printers.hpp +10 -4
  253. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +121 -3
  254. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +118 -3
  255. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +338 -1
  256. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +121 -3
  257. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +118 -3
  258. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +333 -1
  259. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  260. data/src/cxx_supportlib/vendor-modified/jsoncpp/json-forwards.h +276 -143
  261. data/src/cxx_supportlib/vendor-modified/jsoncpp/json.h +1262 -771
  262. data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +1704 -1586
  263. data/src/nginx_module/ContentHandler.c +35 -0
  264. data/src/ruby_supportlib/phusion_passenger/common_library.rb +6 -6
  265. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +25 -2
  266. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +12 -1
  267. data/src/ruby_supportlib/phusion_passenger.rb +1 -1
  268. metadata +73 -8
  269. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_utility.hpp +0 -41
  270. /data/src/cxx_supportlib/{ServerKit/llhttp_http.c → vendor-copy/llhttp/http.c} +0 -0
@@ -112,13 +112,14 @@ struct intrusive_list_type
112
112
  //! for the default allocator
113
113
  #ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
114
114
  template <class T, class Allocator = void >
115
+ class list
115
116
  #else
116
117
  template <class T, class Allocator>
117
- #endif
118
118
  class list
119
119
  : protected dtl::node_alloc_holder
120
120
  < typename real_allocator<T, Allocator>::type
121
121
  , typename dtl::intrusive_list_type<typename real_allocator<T, Allocator>::type>::type>
122
+ #endif
122
123
  {
123
124
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
124
125
  typedef typename real_allocator<T, Allocator>::type ValueAllocator;
@@ -149,12 +150,12 @@ class list
149
150
  //////////////////////////////////////////////
150
151
 
151
152
  typedef T value_type;
152
- typedef typename ::boost::container::allocator_traits<ValueAllocator>::pointer pointer;
153
- typedef typename ::boost::container::allocator_traits<ValueAllocator>::const_pointer const_pointer;
154
- typedef typename ::boost::container::allocator_traits<ValueAllocator>::reference reference;
155
- typedef typename ::boost::container::allocator_traits<ValueAllocator>::const_reference const_reference;
156
- typedef typename ::boost::container::allocator_traits<ValueAllocator>::size_type size_type;
157
- typedef typename ::boost::container::allocator_traits<ValueAllocator>::difference_type difference_type;
153
+ typedef typename boost::container::allocator_traits<ValueAllocator>::pointer pointer;
154
+ typedef typename boost::container::allocator_traits<ValueAllocator>::const_pointer const_pointer;
155
+ typedef typename boost::container::allocator_traits<ValueAllocator>::reference reference;
156
+ typedef typename boost::container::allocator_traits<ValueAllocator>::const_reference const_reference;
157
+ typedef typename boost::container::allocator_traits<ValueAllocator>::size_type size_type;
158
+ typedef typename boost::container::allocator_traits<ValueAllocator>::difference_type difference_type;
158
159
  typedef ValueAllocator allocator_type;
159
160
  typedef BOOST_CONTAINER_IMPDEF(NodeAlloc) stored_allocator_type;
160
161
  typedef BOOST_CONTAINER_IMPDEF(iterator_impl) iterator;
@@ -246,7 +247,7 @@ class list
246
247
  //! <b>Throws</b>: If allocator_type's default constructor or copy constructor throws.
247
248
  //!
248
249
  //! <b>Complexity</b>: Linear to the elements x contains.
249
- list(const list& x, const allocator_type &a)
250
+ list(const list& x, const BOOST_CONTAINER_DOC1ST(allocator_type, typename dtl::type_identity<allocator_type>::type) &a)
250
251
  : AllocHolder(a)
251
252
  { this->insert(this->cbegin(), x.begin(), x.end()); }
252
253
 
@@ -256,7 +257,7 @@ class list
256
257
  //! <b>Throws</b>: If allocation or value_type's copy constructor throws.
257
258
  //!
258
259
  //! <b>Complexity</b>: Constant if a == x.get_allocator(), linear otherwise.
259
- list(BOOST_RV_REF(list) x, const allocator_type &a)
260
+ list(BOOST_RV_REF(list) x, const BOOST_CONTAINER_DOC1ST(allocator_type, typename dtl::type_identity<allocator_type>::type) &a)
260
261
  : AllocHolder(a)
261
262
  {
262
263
  if(this->node_alloc() == x.node_alloc()){
@@ -343,7 +344,7 @@ class list
343
344
  || allocator_traits_type::is_always_equal::value)
344
345
  {
345
346
  if (BOOST_LIKELY(this != &x)) {
346
- //We know resources can be transferred at comiple time if both allocators are
347
+ //We know resources can be transferred at compile time if both allocators are
347
348
  //always equal or the allocator is going to be propagated
348
349
  const bool can_steal_resources_alloc
349
350
  = allocator_traits_type::propagate_on_container_move_assignment::value
@@ -421,7 +422,7 @@ class list
421
422
  //! <b>Throws</b>: If allocator's copy constructor throws.
422
423
  //!
423
424
  //! <b>Complexity</b>: Constant.
424
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
425
+ BOOST_CONTAINER_NODISCARD inline
425
426
  allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
426
427
  { return allocator_type(this->node_alloc()); }
427
428
 
@@ -432,7 +433,7 @@ class list
432
433
  //! <b>Complexity</b>: Constant.
433
434
  //!
434
435
  //! <b>Note</b>: Non-standard extension.
435
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
436
+ BOOST_CONTAINER_NODISCARD inline
436
437
  stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW
437
438
  { return this->node_alloc(); }
438
439
 
@@ -443,7 +444,7 @@ class list
443
444
  //! <b>Complexity</b>: Constant.
444
445
  //!
445
446
  //! <b>Note</b>: Non-standard extension.
446
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
447
+ BOOST_CONTAINER_NODISCARD inline
447
448
  const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
448
449
  { return this->node_alloc(); }
449
450
 
@@ -458,7 +459,7 @@ class list
458
459
  //! <b>Throws</b>: Nothing.
459
460
  //!
460
461
  //! <b>Complexity</b>: Constant.
461
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
462
+ BOOST_CONTAINER_NODISCARD inline
462
463
  iterator begin() BOOST_NOEXCEPT_OR_NOTHROW
463
464
  { return iterator(this->icont().begin()); }
464
465
 
@@ -467,7 +468,7 @@ class list
467
468
  //! <b>Throws</b>: Nothing.
468
469
  //!
469
470
  //! <b>Complexity</b>: Constant.
470
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
471
+ BOOST_CONTAINER_NODISCARD inline
471
472
  const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW
472
473
  { return this->cbegin(); }
473
474
 
@@ -476,7 +477,7 @@ class list
476
477
  //! <b>Throws</b>: Nothing.
477
478
  //!
478
479
  //! <b>Complexity</b>: Constant.
479
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
480
+ BOOST_CONTAINER_NODISCARD inline
480
481
  iterator end() BOOST_NOEXCEPT_OR_NOTHROW
481
482
  { return iterator(this->icont().end()); }
482
483
 
@@ -485,7 +486,7 @@ class list
485
486
  //! <b>Throws</b>: Nothing.
486
487
  //!
487
488
  //! <b>Complexity</b>: Constant.
488
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
489
+ BOOST_CONTAINER_NODISCARD inline
489
490
  const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW
490
491
  { return this->cend(); }
491
492
 
@@ -495,7 +496,7 @@ class list
495
496
  //! <b>Throws</b>: Nothing.
496
497
  //!
497
498
  //! <b>Complexity</b>: Constant.
498
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
499
+ BOOST_CONTAINER_NODISCARD inline
499
500
  reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW
500
501
  { return reverse_iterator(end()); }
501
502
 
@@ -505,7 +506,7 @@ class list
505
506
  //! <b>Throws</b>: Nothing.
506
507
  //!
507
508
  //! <b>Complexity</b>: Constant.
508
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
509
+ BOOST_CONTAINER_NODISCARD inline
509
510
  const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW
510
511
  { return this->crbegin(); }
511
512
 
@@ -515,7 +516,7 @@ class list
515
516
  //! <b>Throws</b>: Nothing.
516
517
  //!
517
518
  //! <b>Complexity</b>: Constant.
518
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
519
+ BOOST_CONTAINER_NODISCARD inline
519
520
  reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW
520
521
  { return reverse_iterator(begin()); }
521
522
 
@@ -525,7 +526,7 @@ class list
525
526
  //! <b>Throws</b>: Nothing.
526
527
  //!
527
528
  //! <b>Complexity</b>: Constant.
528
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
529
+ BOOST_CONTAINER_NODISCARD inline
529
530
  const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW
530
531
  { return this->crend(); }
531
532
 
@@ -534,7 +535,7 @@ class list
534
535
  //! <b>Throws</b>: Nothing.
535
536
  //!
536
537
  //! <b>Complexity</b>: Constant.
537
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
538
+ BOOST_CONTAINER_NODISCARD inline
538
539
  const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW
539
540
  { return const_iterator(this->non_const_icont().begin()); }
540
541
 
@@ -543,7 +544,7 @@ class list
543
544
  //! <b>Throws</b>: Nothing.
544
545
  //!
545
546
  //! <b>Complexity</b>: Constant.
546
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
547
+ BOOST_CONTAINER_NODISCARD inline
547
548
  const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW
548
549
  { return const_iterator(this->non_const_icont().end()); }
549
550
 
@@ -553,7 +554,7 @@ class list
553
554
  //! <b>Throws</b>: Nothing.
554
555
  //!
555
556
  //! <b>Complexity</b>: Constant.
556
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
557
+ BOOST_CONTAINER_NODISCARD inline
557
558
  const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW
558
559
  { return const_reverse_iterator(this->cend()); }
559
560
 
@@ -563,7 +564,7 @@ class list
563
564
  //! <b>Throws</b>: Nothing.
564
565
  //!
565
566
  //! <b>Complexity</b>: Constant.
566
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
567
+ BOOST_CONTAINER_NODISCARD inline
567
568
  const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW
568
569
  { return const_reverse_iterator(this->cbegin()); }
569
570
 
@@ -578,7 +579,7 @@ class list
578
579
  //! <b>Throws</b>: Nothing.
579
580
  //!
580
581
  //! <b>Complexity</b>: Constant.
581
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
582
+ BOOST_CONTAINER_NODISCARD inline
582
583
  bool empty() const BOOST_NOEXCEPT_OR_NOTHROW
583
584
  { return !this->size(); }
584
585
 
@@ -587,7 +588,7 @@ class list
587
588
  //! <b>Throws</b>: Nothing.
588
589
  //!
589
590
  //! <b>Complexity</b>: Constant.
590
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
591
+ BOOST_CONTAINER_NODISCARD inline
591
592
  size_type size() const BOOST_NOEXCEPT_OR_NOTHROW
592
593
  { return this->icont().size(); }
593
594
 
@@ -596,7 +597,7 @@ class list
596
597
  //! <b>Throws</b>: Nothing.
597
598
  //!
598
599
  //! <b>Complexity</b>: Constant.
599
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
600
+ BOOST_CONTAINER_NODISCARD inline
600
601
  size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
601
602
  { return AllocHolder::max_size(); }
602
603
 
@@ -641,7 +642,7 @@ class list
641
642
  //! <b>Throws</b>: Nothing.
642
643
  //!
643
644
  //! <b>Complexity</b>: Constant.
644
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
645
+ BOOST_CONTAINER_NODISCARD inline
645
646
  reference front() BOOST_NOEXCEPT_OR_NOTHROW
646
647
  {
647
648
  BOOST_ASSERT(!this->empty());
@@ -656,7 +657,7 @@ class list
656
657
  //! <b>Throws</b>: Nothing.
657
658
  //!
658
659
  //! <b>Complexity</b>: Constant.
659
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
660
+ BOOST_CONTAINER_NODISCARD inline
660
661
  const_reference front() const BOOST_NOEXCEPT_OR_NOTHROW
661
662
  {
662
663
  BOOST_ASSERT(!this->empty());
@@ -671,7 +672,7 @@ class list
671
672
  //! <b>Throws</b>: Nothing.
672
673
  //!
673
674
  //! <b>Complexity</b>: Constant.
674
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
675
+ BOOST_CONTAINER_NODISCARD inline
675
676
  reference back() BOOST_NOEXCEPT_OR_NOTHROW
676
677
  {
677
678
  BOOST_ASSERT(!this->empty());
@@ -686,7 +687,7 @@ class list
686
687
  //! <b>Throws</b>: Nothing.
687
688
  //!
688
689
  //! <b>Complexity</b>: Constant.
689
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
690
+ BOOST_CONTAINER_NODISCARD inline
690
691
  const_reference back() const BOOST_NOEXCEPT_OR_NOTHROW
691
692
  {
692
693
  BOOST_ASSERT(!this->empty());
@@ -1168,10 +1169,12 @@ class list
1168
1169
  //!
1169
1170
  //! <b>Complexity</b>: Linear time. It performs exactly size() comparisons for equality.
1170
1171
  //!
1172
+ //! <b>Returns</b>: The number of removed elements.
1173
+ //!
1171
1174
  //! <b>Note</b>: The relative order of elements that are not removed is unchanged,
1172
1175
  //! and iterators to elements that are not removed remain valid.
1173
- void remove(const T& value)
1174
- { this->remove_if(equal_to_value_type(value)); }
1176
+ size_type remove(const T& value)
1177
+ { return this->remove_if(equal_to_value_type(value)); }
1175
1178
 
1176
1179
  //! <b>Effects</b>: Removes all the elements for which a specified
1177
1180
  //! predicate is satisfied.
@@ -1180,30 +1183,36 @@ class list
1180
1183
  //!
1181
1184
  //! <b>Complexity</b>: Linear time. It performs exactly size() calls to the predicate.
1182
1185
  //!
1186
+ //! <b>Returns</b>: The number of removed elements.
1187
+ //!
1183
1188
  //! <b>Note</b>: The relative order of elements that are not removed is unchanged,
1184
1189
  //! and iterators to elements that are not removed remain valid.
1185
1190
  template <class Pred>
1186
- void remove_if(Pred pred)
1191
+ size_type remove_if(Pred pred)
1187
1192
  {
1188
1193
  typedef value_to_node_compare<Node, Pred> value_to_node_compare_type;
1189
- this->icont().remove_and_dispose_if(value_to_node_compare_type(pred), Destroyer(this->node_alloc()));
1194
+ return this->icont().remove_and_dispose_if(value_to_node_compare_type(pred), Destroyer(this->node_alloc()));
1190
1195
  }
1191
1196
 
1192
1197
  //! <b>Effects</b>: Removes adjacent duplicate elements or adjacent
1193
1198
  //! elements that are equal from the list.
1194
1199
  //!
1200
+ //! <b>Returns</b>: The number of removed elements.
1201
+ //!
1195
1202
  //! <b>Throws</b>: If comparison throws.
1196
1203
  //!
1197
1204
  //! <b>Complexity</b>: Linear time (size()-1 comparisons equality comparisons).
1198
1205
  //!
1199
1206
  //! <b>Note</b>: The relative order of elements that are not removed is unchanged,
1200
1207
  //! and iterators to elements that are not removed remain valid.
1201
- void unique()
1202
- { this->unique(value_equal_t()); }
1208
+ size_type unique()
1209
+ { return this->unique(value_equal_t()); }
1203
1210
 
1204
1211
  //! <b>Effects</b>: Removes adjacent duplicate elements or adjacent
1205
1212
  //! elements that satisfy some binary predicate from the list.
1206
1213
  //!
1214
+ //! <b>Returns</b>: The number of removed elements.
1215
+ //!
1207
1216
  //! <b>Throws</b>: If pred throws.
1208
1217
  //!
1209
1218
  //! <b>Complexity</b>: Linear time (size()-1 comparisons calls to pred()).
@@ -1211,10 +1220,10 @@ class list
1211
1220
  //! <b>Note</b>: The relative order of elements that are not removed is unchanged,
1212
1221
  //! and iterators to elements that are not removed remain valid.
1213
1222
  template <class BinaryPredicate>
1214
- void unique(BinaryPredicate binary_pred)
1223
+ size_type unique(BinaryPredicate binary_pred)
1215
1224
  {
1216
1225
  typedef value_to_node_compare<Node, BinaryPredicate> value_to_node_compare_type;
1217
- this->icont().unique_and_dispose(value_to_node_compare_type(binary_pred), Destroyer(this->node_alloc()));
1226
+ return this->icont().unique_and_dispose(value_to_node_compare_type(binary_pred), Destroyer(this->node_alloc()));
1218
1227
  }
1219
1228
 
1220
1229
  //! <b>Requires</b>: The lists x and *this must be distinct.
@@ -1329,42 +1338,42 @@ class list
1329
1338
  //! <b>Effects</b>: Returns true if x and y are equal
1330
1339
  //!
1331
1340
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1332
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1341
+ BOOST_CONTAINER_NODISCARD inline
1333
1342
  friend bool operator==(const list& x, const list& y)
1334
1343
  { return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); }
1335
1344
 
1336
1345
  //! <b>Effects</b>: Returns true if x and y are unequal
1337
1346
  //!
1338
1347
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1339
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1348
+ BOOST_CONTAINER_NODISCARD inline
1340
1349
  friend bool operator!=(const list& x, const list& y)
1341
1350
  { return !(x == y); }
1342
1351
 
1343
1352
  //! <b>Effects</b>: Returns true if x is less than y
1344
1353
  //!
1345
1354
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1346
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1355
+ BOOST_CONTAINER_NODISCARD inline
1347
1356
  friend bool operator<(const list& x, const list& y)
1348
1357
  { return boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); }
1349
1358
 
1350
1359
  //! <b>Effects</b>: Returns true if x is greater than y
1351
1360
  //!
1352
1361
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1353
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1362
+ BOOST_CONTAINER_NODISCARD inline
1354
1363
  friend bool operator>(const list& x, const list& y)
1355
1364
  { return y < x; }
1356
1365
 
1357
1366
  //! <b>Effects</b>: Returns true if x is equal or less than y
1358
1367
  //!
1359
1368
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1360
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1369
+ BOOST_CONTAINER_NODISCARD inline
1361
1370
  friend bool operator<=(const list& x, const list& y)
1362
1371
  { return !(y < x); }
1363
1372
 
1364
1373
  //! <b>Effects</b>: Returns true if x is equal or greater than y
1365
1374
  //!
1366
1375
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1367
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1376
+ BOOST_CONTAINER_NODISCARD inline
1368
1377
  friend bool operator>=(const list& x, const list& y)
1369
1378
  { return !(x < y); }
1370
1379
 
@@ -1492,28 +1501,27 @@ class list
1492
1501
  //! <b>Complexity</b>: Linear.
1493
1502
  template <class T, class A, class U>
1494
1503
  inline typename list<T, A>::size_type erase(list<T, A>& c, const U& v)
1495
- {
1496
- typename list<T, A>::size_type old_size = c.size();
1497
- c.remove_if(equal_to_value<U>(v));
1498
- return old_size - c.size();
1499
- }
1504
+ { return c.remove_if(equal_to_value<U>(v)); }
1500
1505
 
1501
1506
  //! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
1502
1507
  //!
1503
1508
  //! <b>Complexity</b>: Linear.
1504
1509
  template <class T, class A, class Pred>
1505
1510
  inline typename list<T, A>::size_type erase_if(list<T, A>& c, Pred pred)
1506
- {
1507
- typename list<T, A>::size_type old_size = c.size();
1508
- c.remove_if(pred);
1509
- return old_size - c.size();
1510
- }
1511
+ { return c.remove_if(pred); }
1511
1512
 
1512
1513
  #ifndef BOOST_CONTAINER_NO_CXX17_CTAD
1514
+
1515
+ //! <b>Deduction guide</b>: allows a `list` to be constructed from the iterator
1516
+ //! range <code>[first, last)</code>, deducing the element type from the value type
1517
+ //! of `InputIterator` and using the default allocator.
1513
1518
  template <typename InputIterator>
1514
1519
  list(InputIterator, InputIterator) ->
1515
1520
  list<typename iterator_traits<InputIterator>::value_type>;
1516
1521
 
1522
+ //! <b>Deduction guide</b>: allows a `list` to be constructed from the iterator
1523
+ //! range <code>[first, last)</code>, deducing the element type from the value type
1524
+ //! of `InputIterator` and taking the allocator type from the supplied allocator.
1517
1525
  template <typename InputIterator, typename ValueAllocator>
1518
1526
  list(InputIterator, InputIterator, ValueAllocator const&) ->
1519
1527
  list<typename iterator_traits<InputIterator>::value_type, ValueAllocator>;
@@ -1529,7 +1537,7 @@ template <class T, class Allocator>
1529
1537
  struct has_trivial_destructor_after_move<boost::container::list<T, Allocator> >
1530
1538
  {
1531
1539
  typedef typename boost::container::list<T, Allocator>::allocator_type allocator_type;
1532
- typedef typename ::boost::container::allocator_traits<allocator_type>::pointer pointer;
1540
+ typedef typename boost::container::allocator_traits<allocator_type>::pointer pointer;
1533
1541
  BOOST_STATIC_CONSTEXPR bool value = ::boost::has_trivial_destructor_after_move<allocator_type>::value &&
1534
1542
  ::boost::has_trivial_destructor_after_move<pointer>::value;
1535
1543
  };