passenger 6.0.14 → 6.0.27

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 (1978) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG +380 -85
  3. data/CONTRIBUTING.md +2 -2
  4. data/CONTRIBUTORS +8 -0
  5. data/LICENSE +1 -1
  6. data/README.md +3 -3
  7. data/Rakefile +15 -4
  8. data/bin/passenger +2 -2
  9. data/bin/passenger-config +2 -2
  10. data/bin/passenger-install-apache2-module +7 -2
  11. data/bin/passenger-install-nginx-module +24 -8
  12. data/bin/passenger-memory-stats +2 -2
  13. data/bin/passenger-status +2 -2
  14. data/build/agent.rb +2 -4
  15. data/build/apache2.rb +3 -3
  16. data/build/basics.rb +14 -6
  17. data/build/common_library.rb +3 -8
  18. data/build/cxx_tests.rb +20 -9
  19. data/build/integration_tests.rb +10 -9
  20. data/build/misc.rb +2 -4
  21. data/build/nginx.rb +2 -2
  22. data/build/node_tests.rb +2 -2
  23. data/build/oxt_tests.rb +2 -2
  24. data/build/packaging.rb +2 -2
  25. data/build/ruby_extension.rb +2 -2
  26. data/build/ruby_tests.rb +3 -3
  27. data/build/schema_printer.rb +2 -4
  28. data/build/support/cplusplus.rb +2 -2
  29. data/build/support/cxx_dependency_map.rb +249 -311
  30. data/build/support/general.rb +2 -2
  31. data/build/support/vendor/cxx_hinted_parser/LICENSE.md +1 -1
  32. data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser/parser.rb +2 -2
  33. data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser.rb +2 -2
  34. data/build/support/vendor/cxxcodebuilder/LICENSE.md +1 -1
  35. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +2 -2
  36. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/initializer_builder.rb +2 -2
  37. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder.rb +2 -2
  38. data/build/test_basics.rb +27 -13
  39. data/dev/copy_boost_headers +96 -77
  40. data/dev/index_cxx_dependencies.rb +1 -1
  41. data/dev/nginx_version_sha256 +72 -0
  42. data/doc/AiInstructions.md +112 -0
  43. data/doc/CxxMockingStrategy.md +42 -0
  44. data/doc/CxxTestingGuide.md +110 -0
  45. data/doc/DesignAspects/LimitedGemDependencies.md +47 -0
  46. data/doc/DesignAspects/NoGemActivationDuringRubyLoaderInitialization.md +27 -0
  47. data/doc/TempFileHandling.md +15 -0
  48. data/package.json +15 -15
  49. data/passenger.gemspec +8 -2
  50. data/resources/templates/apache2/deployment_example.txt.erb +1 -1
  51. data/resources/templates/nginx/deployment_example.txt.erb +1 -1
  52. data/resources/templates/standalone/http.erb +1 -0
  53. data/resources/templates/standalone/server.erb +2 -0
  54. data/src/agent/AgentMain.cpp +4 -10
  55. data/src/agent/Core/ApiServer.h +3 -4
  56. data/src/agent/Core/ApplicationPool/AbstractSession.h +12 -3
  57. data/src/agent/Core/ApplicationPool/BasicGroupInfo.h +2 -2
  58. data/src/agent/Core/ApplicationPool/BasicProcessInfo.h +2 -2
  59. data/src/agent/Core/ApplicationPool/Common.h +2 -2
  60. data/src/agent/Core/ApplicationPool/Context.h +7 -4
  61. data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +10 -2
  62. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +12 -4
  63. data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +10 -2
  64. data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +11 -2
  65. data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +11 -2
  66. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +85 -5
  67. data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +66 -21
  68. data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +10 -2
  69. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +11 -3
  70. data/src/agent/Core/ApplicationPool/Group/Verification.cpp +10 -2
  71. data/src/agent/Core/ApplicationPool/Group.h +18 -8
  72. data/src/agent/Core/ApplicationPool/Implementation.cpp +2 -5
  73. data/src/agent/Core/ApplicationPool/Options.h +3 -4
  74. data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +7 -2
  75. data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +7 -2
  76. data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +7 -2
  77. data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +7 -2
  78. data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +7 -2
  79. data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +7 -2
  80. data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +7 -2
  81. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +17 -3
  82. data/src/agent/Core/ApplicationPool/Pool.h +2 -4
  83. data/src/agent/Core/ApplicationPool/Process.cpp +2 -2
  84. data/src/agent/Core/ApplicationPool/Process.h +24 -8
  85. data/src/agent/Core/ApplicationPool/Session.h +22 -22
  86. data/src/agent/Core/ApplicationPool/Socket.h +17 -7
  87. data/src/agent/Core/ApplicationPool/TestSession.h +76 -17
  88. data/src/agent/Core/Config.h +17 -40
  89. data/src/agent/Core/ConfigChange.cpp +3 -43
  90. data/src/agent/Core/ConfigChange.h +2 -2
  91. data/src/agent/Core/Controller/AppResponse.h +2 -3
  92. data/src/agent/Core/Controller/BufferBody.cpp +2 -2
  93. data/src/agent/Core/Controller/CheckoutSession.cpp +125 -16
  94. data/src/agent/Core/Controller/Client.h +2 -3
  95. data/src/agent/Core/Controller/Config.cpp +2 -2
  96. data/src/agent/Core/Controller/Config.h +14 -5
  97. data/src/agent/Core/Controller/ForwardResponse.cpp +2 -2
  98. data/src/agent/Core/Controller/Hooks.cpp +15 -2
  99. data/src/agent/Core/Controller/Implementation.cpp +2 -2
  100. data/src/agent/Core/Controller/InitRequest.cpp +4 -3
  101. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +2 -2
  102. data/src/agent/Core/Controller/InternalUtils.cpp +14 -2
  103. data/src/agent/Core/Controller/Miscellaneous.cpp +2 -2
  104. data/src/agent/Core/Controller/Request.h +5 -4
  105. data/src/agent/Core/Controller/SendRequest.cpp +4 -4
  106. data/src/agent/Core/Controller/StateInspection.cpp +2 -2
  107. data/src/agent/Core/Controller/TurboCaching.h +2 -2
  108. data/src/agent/Core/Controller.h +15 -15
  109. data/src/agent/Core/CoreMain.cpp +14 -75
  110. data/src/agent/Core/OptionParser.h +11 -9
  111. data/src/agent/Core/ResponseCache.h +5 -4
  112. data/src/agent/Core/SecurityUpdateChecker.h +7 -8
  113. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +2 -2
  114. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h.cxxcodebuilder +2 -2
  115. data/src/agent/Core/SpawningKit/Config.h +2 -2
  116. data/src/agent/Core/SpawningKit/Context.h +2 -2
  117. data/src/agent/Core/SpawningKit/DirectSpawner.h +2 -2
  118. data/src/agent/Core/SpawningKit/DummySpawner.h +2 -2
  119. data/src/agent/Core/SpawningKit/ErrorRenderer.h +7 -2
  120. data/src/agent/Core/SpawningKit/Exceptions.h +2 -2
  121. data/src/agent/Core/SpawningKit/Factory.h +2 -2
  122. data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +2 -2
  123. data/src/agent/Core/SpawningKit/Handshake/Perform.h +6 -6
  124. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +3 -55
  125. data/src/agent/Core/SpawningKit/Handshake/Session.h +5 -2
  126. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +7 -4
  127. data/src/agent/Core/SpawningKit/Journey.h +2 -2
  128. data/src/agent/Core/SpawningKit/PipeWatcher.h +20 -5
  129. data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h +2 -2
  130. data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h.cxxcodebuilder +2 -2
  131. data/src/agent/Core/SpawningKit/Result.h +2 -2
  132. data/src/agent/Core/SpawningKit/SmartSpawner.h +8 -4
  133. data/src/agent/Core/SpawningKit/Spawner.h +6 -2
  134. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +4 -4
  135. data/src/agent/Core/TelemetryCollector.h +2 -2
  136. data/src/agent/ExecHelper/ExecHelperMain.cpp +12 -14
  137. data/src/agent/FileReadHelper/FileReadHelperMain.cpp +9 -12
  138. data/src/{cxx_supportlib/FileTools/LargeFiles.h → agent/MainFunctions.h} +12 -17
  139. data/src/agent/Shared/ApiAccountUtils.h +2 -2
  140. data/src/agent/Shared/ApiServerUtils.h +5 -4
  141. data/src/agent/Shared/ApplicationPoolApiKey.h +2 -2
  142. data/src/agent/Shared/Fundamentals/AbortHandler.cpp +90 -11
  143. data/src/agent/Shared/Fundamentals/AbortHandler.h +4 -2
  144. data/src/agent/Shared/Fundamentals/Initialization.cpp +12 -6
  145. data/src/agent/Shared/Fundamentals/Initialization.h +5 -5
  146. data/src/agent/Shared/Fundamentals/Utils.cpp +2 -2
  147. data/src/agent/Shared/Fundamentals/Utils.h +2 -2
  148. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +33 -13
  149. data/src/agent/SystemMetrics/SystemMetricsMain.cpp +3 -2
  150. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +8 -6
  151. data/src/agent/Watchdog/AgentWatcher.cpp +2 -2
  152. data/src/agent/Watchdog/ApiServer.h +3 -3
  153. data/src/agent/Watchdog/Config.h +6 -23
  154. data/src/agent/Watchdog/CoreWatcher.cpp +2 -2
  155. data/src/agent/Watchdog/InstanceDirToucher.cpp +2 -2
  156. data/src/agent/Watchdog/WatchdogMain.cpp +15 -23
  157. data/src/apache2_module/Bucket.cpp +2 -2
  158. data/src/apache2_module/Bucket.h +2 -2
  159. data/src/apache2_module/CBindings.cpp +2 -2
  160. data/src/apache2_module/Config.cpp +2 -2
  161. data/src/apache2_module/Config.h +2 -2
  162. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +12 -22
  163. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp.cxxcodebuilder +2 -2
  164. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +7 -2
  165. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp.cxxcodebuilder +2 -2
  166. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +32 -62
  167. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp.cxxcodebuilder +2 -2
  168. data/src/apache2_module/ConfigGeneral/Common.h +2 -2
  169. data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +7 -5
  170. data/src/apache2_module/ConfigGeneral/SetterFuncs.h +2 -2
  171. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +7 -2
  172. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp.cxxcodebuilder +2 -2
  173. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +5 -2
  174. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp.cxxcodebuilder +2 -2
  175. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +15 -2
  176. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +2 -2
  177. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +9 -2
  178. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp.cxxcodebuilder +2 -2
  179. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +18 -2
  180. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +5 -2
  181. data/src/apache2_module/DirectoryMapper.h +2 -2
  182. data/src/apache2_module/Hooks.cpp +29 -7
  183. data/src/apache2_module/Hooks.h +2 -2
  184. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +11 -46
  185. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +2 -2
  186. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +15 -55
  187. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +4 -3
  188. data/src/apache2_module/Utils.h +2 -2
  189. data/src/apache2_module/mod_passenger.c +2 -2
  190. data/src/cxx_supportlib/Algorithms/Hasher.cpp +3 -3
  191. data/src/cxx_supportlib/Algorithms/Hasher.h +6 -9
  192. data/src/cxx_supportlib/Algorithms/MovingAverage.h +3 -168
  193. data/src/cxx_supportlib/AppLocalConfigFileUtils.h +2 -2
  194. data/src/cxx_supportlib/AppTypeDetector/CBindings.cpp +2 -2
  195. data/src/cxx_supportlib/AppTypeDetector/CBindings.h +2 -2
  196. data/src/cxx_supportlib/AppTypeDetector/Detector.h +2 -2
  197. data/src/cxx_supportlib/BackgroundEventLoop.cpp +6 -2
  198. data/src/cxx_supportlib/BackgroundEventLoop.h +2 -2
  199. data/src/cxx_supportlib/ConfigKit/AsyncUtils.h +2 -2
  200. data/src/cxx_supportlib/ConfigKit/Common.h +3 -3
  201. data/src/cxx_supportlib/ConfigKit/ConfigKit.h +2 -2
  202. data/src/cxx_supportlib/ConfigKit/DummyTranslator.h +2 -2
  203. data/src/cxx_supportlib/ConfigKit/PrefixTranslator.h +2 -2
  204. data/src/cxx_supportlib/ConfigKit/Schema.h +2 -2
  205. data/src/cxx_supportlib/ConfigKit/SchemaUtils.h +2 -2
  206. data/src/cxx_supportlib/ConfigKit/Store.h +2 -2
  207. data/src/cxx_supportlib/ConfigKit/SubComponentUtils.h +2 -2
  208. data/src/cxx_supportlib/ConfigKit/TableTranslator.h +2 -2
  209. data/src/cxx_supportlib/ConfigKit/Translator.h +2 -2
  210. data/src/cxx_supportlib/ConfigKit/Utils.h +2 -2
  211. data/src/cxx_supportlib/Constants.h +4 -3
  212. data/src/cxx_supportlib/Constants.h.cxxcodebuilder +2 -2
  213. data/src/cxx_supportlib/DataStructures/HashedStaticString.h +2 -2
  214. data/src/cxx_supportlib/DataStructures/LString.cpp +2 -2
  215. data/src/cxx_supportlib/DataStructures/LString.h +6 -2
  216. data/src/cxx_supportlib/DataStructures/StringKeyTable.h +3 -3
  217. data/src/cxx_supportlib/DataStructures/StringMap.h +4 -6
  218. data/src/cxx_supportlib/Exceptions.cpp +2 -2
  219. data/src/cxx_supportlib/Exceptions.h +2 -2
  220. data/src/cxx_supportlib/FileDescriptor.h +2 -2
  221. data/src/cxx_supportlib/FileTools/FileManip.cpp +2 -2
  222. data/src/cxx_supportlib/FileTools/FileManip.h +4 -2
  223. data/src/cxx_supportlib/FileTools/PathManip.cpp +13 -4
  224. data/src/cxx_supportlib/FileTools/PathManip.h +2 -2
  225. data/src/cxx_supportlib/FileTools/PathManipCBindings.cpp +2 -2
  226. data/src/cxx_supportlib/FileTools/PathManipCBindings.h +2 -2
  227. data/src/cxx_supportlib/FileTools/PathSecurityCheck.cpp +2 -2
  228. data/src/cxx_supportlib/FileTools/PathSecurityCheck.h +2 -2
  229. data/src/cxx_supportlib/Hooks.h +2 -3
  230. data/src/cxx_supportlib/IOTools/BufferedIO.h +2 -2
  231. data/src/cxx_supportlib/IOTools/IOUtils.cpp +53 -68
  232. data/src/cxx_supportlib/IOTools/IOUtils.h +67 -75
  233. data/src/cxx_supportlib/IOTools/MessageIO.h +2 -2
  234. data/src/cxx_supportlib/IOTools/MessageSerialization.h +2 -2
  235. data/src/cxx_supportlib/InstanceDirectory.h +2 -2
  236. data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +5 -5
  237. data/src/cxx_supportlib/JsonTools/Autocast.h +2 -2
  238. data/src/cxx_supportlib/JsonTools/CBindings.cpp +2 -4
  239. data/src/cxx_supportlib/JsonTools/CBindings.h +2 -2
  240. data/src/cxx_supportlib/JsonTools/JsonUtils.h +6 -6
  241. data/src/cxx_supportlib/LoggingKit/Assert.h +2 -2
  242. data/src/cxx_supportlib/LoggingKit/Config.h +2 -2
  243. data/src/cxx_supportlib/LoggingKit/Context.h +18 -23
  244. data/src/cxx_supportlib/LoggingKit/Forward.h +2 -4
  245. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +38 -74
  246. data/src/cxx_supportlib/LoggingKit/Logging.h +2 -2
  247. data/src/cxx_supportlib/LoggingKit/LoggingKit.h +2 -2
  248. data/src/cxx_supportlib/LveLoggingDecorator.h +2 -2
  249. data/src/cxx_supportlib/MemoryKit/mbuf.cpp +14 -6
  250. data/src/cxx_supportlib/MemoryKit/mbuf.h +3 -3
  251. data/src/cxx_supportlib/MemoryKit/palloc.cpp +1 -1
  252. data/src/cxx_supportlib/MemoryKit/palloc.h +1 -1
  253. data/src/cxx_supportlib/ProcessManagement/Ruby.cpp +2 -2
  254. data/src/cxx_supportlib/ProcessManagement/Ruby.h +2 -2
  255. data/src/cxx_supportlib/ProcessManagement/Spawn.cpp +2 -2
  256. data/src/cxx_supportlib/ProcessManagement/Spawn.h +2 -2
  257. data/src/cxx_supportlib/ProcessManagement/Utils.cpp +3 -3
  258. data/src/cxx_supportlib/ProcessManagement/Utils.h +2 -2
  259. data/src/cxx_supportlib/RandomGenerator.h +2 -2
  260. data/src/cxx_supportlib/ResourceLocator.h +3 -3
  261. data/src/cxx_supportlib/SafeLibev.h +5 -5
  262. data/src/cxx_supportlib/SecurityKit/Crypto.cpp +5 -96
  263. data/src/cxx_supportlib/SecurityKit/Crypto.h +2 -10
  264. data/src/cxx_supportlib/SecurityKit/MemZeroGuard.h +2 -2
  265. data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +4 -2
  266. data/src/cxx_supportlib/ServerKit/Channel.h +2 -2
  267. data/src/cxx_supportlib/ServerKit/Client.h +2 -2
  268. data/src/cxx_supportlib/ServerKit/ClientRef.h +2 -2
  269. data/src/cxx_supportlib/ServerKit/Config.h +2 -2
  270. data/src/cxx_supportlib/ServerKit/Context.h +8 -2
  271. data/src/cxx_supportlib/ServerKit/CookieUtils.h +2 -2
  272. data/src/cxx_supportlib/ServerKit/Errors.h +5 -4
  273. data/src/cxx_supportlib/ServerKit/FdSinkChannel.h +2 -2
  274. data/src/cxx_supportlib/ServerKit/FdSourceChannel.h +2 -2
  275. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +2 -2
  276. data/src/cxx_supportlib/ServerKit/FileBufferedFdSinkChannel.h +2 -2
  277. data/src/cxx_supportlib/ServerKit/HeaderTable.h +2 -2
  278. data/src/cxx_supportlib/ServerKit/Hooks.h +4 -4
  279. data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +2 -2
  280. data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParserState.h +2 -2
  281. data/src/cxx_supportlib/ServerKit/HttpClient.h +2 -2
  282. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +105 -71
  283. data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +6 -3
  284. data/src/cxx_supportlib/ServerKit/HttpRequest.h +4 -4
  285. data/src/cxx_supportlib/ServerKit/HttpRequestRef.h +2 -2
  286. data/src/cxx_supportlib/ServerKit/HttpServer.h +20 -14
  287. data/src/cxx_supportlib/ServerKit/Implementation.cpp +2 -2
  288. data/src/cxx_supportlib/ServerKit/Server.h +2 -8
  289. data/src/cxx_supportlib/ServerKit/llerrors.h +84 -0
  290. data/src/cxx_supportlib/ServerKit/llhttp.c +10168 -0
  291. data/src/cxx_supportlib/ServerKit/llhttp.h +903 -0
  292. data/src/cxx_supportlib/ServerKit/llhttp_api.c +510 -0
  293. data/src/cxx_supportlib/ServerKit/llhttp_http.c +170 -0
  294. data/src/cxx_supportlib/ServerKit/llversion.h +12 -0
  295. data/src/cxx_supportlib/ServerKit/url_parser.c +574 -0
  296. data/src/cxx_supportlib/ServerKit/url_parser.h +74 -0
  297. data/src/cxx_supportlib/StaticString.h +5 -3
  298. data/src/cxx_supportlib/StrIntTools/DateParsing.h +3 -3
  299. data/src/cxx_supportlib/StrIntTools/StrIntUtils.cpp +14 -5
  300. data/src/cxx_supportlib/StrIntTools/StrIntUtils.h +9 -4
  301. data/src/cxx_supportlib/StrIntTools/StrIntUtilsNoStrictAliasing.cpp +2 -2
  302. data/src/cxx_supportlib/StrIntTools/StringScanning.h +2 -2
  303. data/src/cxx_supportlib/StrIntTools/Template.h +2 -2
  304. data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +2 -2
  305. data/src/cxx_supportlib/SystemTools/ProcessMetricsCollector.h +2 -2
  306. data/src/cxx_supportlib/SystemTools/SystemMetricsCollector.h +4 -6
  307. data/src/cxx_supportlib/SystemTools/SystemTime.cpp +2 -2
  308. data/src/cxx_supportlib/SystemTools/SystemTime.h +2 -2
  309. data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +16 -16
  310. data/src/cxx_supportlib/SystemTools/UserDatabase.h +8 -12
  311. data/src/cxx_supportlib/Utils/AnsiColorConstants.h +13 -11
  312. data/src/cxx_supportlib/Utils/AsyncSignalSafeUtils.h +4 -2
  313. data/src/cxx_supportlib/Utils/BlockingQueue.h +2 -2
  314. data/src/cxx_supportlib/Utils/CachedFileStat.cpp +2 -2
  315. data/src/cxx_supportlib/Utils/CachedFileStat.h +2 -2
  316. data/src/cxx_supportlib/Utils/CachedFileStat.hpp +2 -2
  317. data/src/cxx_supportlib/Utils/ClassUtils.h +2 -2
  318. data/src/cxx_supportlib/Utils/Curl.h +2 -2
  319. data/src/cxx_supportlib/Utils/FastStringStream.h +9 -9
  320. data/src/cxx_supportlib/Utils/FileChangeChecker.h +2 -2
  321. data/src/cxx_supportlib/Utils/HttpConstants.h +2 -2
  322. data/src/cxx_supportlib/Utils/IniFile.h +26 -27
  323. data/src/cxx_supportlib/Utils/MessagePassing.h +2 -2
  324. data/src/cxx_supportlib/Utils/OptionParsing.h +2 -2
  325. data/src/cxx_supportlib/Utils/ReleaseableScopedPointer.h +2 -2
  326. data/src/cxx_supportlib/Utils/ScopeGuard.h +2 -2
  327. data/src/cxx_supportlib/Utils/SpeedMeter.h +2 -5
  328. data/src/cxx_supportlib/Utils/Timer.h +2 -2
  329. data/src/cxx_supportlib/Utils/VariantMap.h +2 -2
  330. data/src/cxx_supportlib/Utils.cpp +3 -3
  331. data/src/cxx_supportlib/Utils.h +2 -32
  332. data/src/cxx_supportlib/WatchdogLauncher.cpp +2 -2
  333. data/src/cxx_supportlib/WatchdogLauncher.h +3 -5
  334. data/src/cxx_supportlib/WrapperRegistry/CBindings.cpp +2 -2
  335. data/src/cxx_supportlib/WrapperRegistry/CBindings.h +2 -2
  336. data/src/cxx_supportlib/WrapperRegistry/Entry.h +2 -2
  337. data/src/cxx_supportlib/WrapperRegistry/Registry.h +2 -2
  338. data/src/cxx_supportlib/oxt/backtrace.hpp +1 -1
  339. data/src/cxx_supportlib/oxt/detail/backtrace_disabled.hpp +1 -1
  340. data/src/cxx_supportlib/oxt/detail/backtrace_enabled.hpp +1 -1
  341. data/src/cxx_supportlib/oxt/detail/context.hpp +1 -1
  342. data/src/cxx_supportlib/oxt/detail/spin_lock_darwin.hpp +1 -1
  343. data/src/cxx_supportlib/oxt/detail/spin_lock_gcc_x86.hpp +1 -1
  344. data/src/cxx_supportlib/oxt/detail/spin_lock_portable.hpp +1 -1
  345. data/src/cxx_supportlib/oxt/detail/spin_lock_pthreads.hpp +1 -1
  346. data/src/cxx_supportlib/oxt/detail/tracable_exception_disabled.hpp +5 -1
  347. data/src/cxx_supportlib/oxt/detail/tracable_exception_enabled.hpp +2 -1
  348. data/src/cxx_supportlib/oxt/dynamic_thread_group.hpp +1 -1
  349. data/src/cxx_supportlib/oxt/implementation.cpp +53 -4
  350. data/src/cxx_supportlib/oxt/initialize.hpp +1 -1
  351. data/src/cxx_supportlib/oxt/macros.hpp +1 -1
  352. data/src/cxx_supportlib/oxt/spin_lock.hpp +1 -1
  353. data/src/cxx_supportlib/oxt/system_calls.cpp +13 -5
  354. data/src/cxx_supportlib/oxt/system_calls.hpp +4 -5
  355. data/src/cxx_supportlib/oxt/thread.hpp +2 -2
  356. data/src/cxx_supportlib/oxt/tracable_exception.hpp +1 -1
  357. data/src/cxx_supportlib/vendor-copy/adhoc_lve.h +2 -2
  358. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_iterator.hpp +11 -3
  359. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/find_iterator.hpp +27 -1
  360. data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +1 -1
  361. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_sunos.hpp +34 -0
  362. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +124 -26
  363. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +10 -18
  364. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +4 -5
  365. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +5 -1
  366. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_impl.hpp +183 -64
  367. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +170 -68
  368. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +83 -12
  369. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +40 -11
  370. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_aarch32.hpp +8 -1
  371. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_aarch64.hpp +8 -1
  372. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_arm.hpp +8 -1
  373. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/classify.hpp +19 -10
  374. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +19 -54
  375. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_ppc.hpp +105 -100
  376. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +107 -40
  377. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_x86.hpp +32 -5
  378. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +12 -13
  379. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +7 -8
  380. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +1 -1
  381. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +26 -27
  382. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +73 -72
  383. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/float_sizes.hpp +122 -35
  384. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +2 -3
  385. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +50 -12
  386. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_arm_asm_common.hpp +4 -0
  387. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_ppc_asm_common.hpp +33 -0
  388. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +7 -0
  389. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +15 -6
  390. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/alignment_of.hpp +3 -3
  391. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/has_unique_object_representations.hpp +143 -0
  392. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_enum.hpp +42 -0
  393. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_nothrow_default_constructible.hpp +46 -0
  394. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/remove_cv.hpp +42 -0
  395. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_darwin_ulock.hpp +58 -0
  396. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +64 -0
  397. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_darwin_ulock.hpp +158 -0
  398. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +3 -4
  399. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +10 -5
  400. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +4 -5
  401. data/src/cxx_supportlib/vendor-modified/boost/bind/apply.hpp +2 -60
  402. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +257 -1789
  403. data/src/cxx_supportlib/vendor-modified/boost/bind/{bind_cc.hpp → detail/bind_cc.hpp} +20 -20
  404. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf2_cc.hpp +210 -0
  405. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf_cc.hpp +405 -0
  406. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/integer_sequence.hpp +111 -0
  407. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/result_traits.hpp +13 -2
  408. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/tuple_for_each.hpp +64 -0
  409. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +140 -290
  410. data/src/cxx_supportlib/vendor-modified/boost/bind/placeholders.hpp +3 -16
  411. data/src/cxx_supportlib/vendor-modified/boost/bind/protect.hpp +0 -279
  412. data/src/cxx_supportlib/vendor-modified/boost/bind/std_placeholders.hpp +0 -6
  413. data/src/cxx_supportlib/vendor-modified/boost/chrono/config.hpp +2 -0
  414. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +4 -4
  415. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/is_evenly_divisible_by.hpp +1 -7
  416. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/requires_cxx11.hpp +23 -0
  417. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/scan_keyword.hpp +4 -2
  418. data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +10 -6
  419. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_get.hpp +1 -1
  420. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +4 -4
  421. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_put.hpp +5 -5
  422. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_style.hpp +1 -1
  423. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +3 -2
  424. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +3 -3
  425. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/timezone.hpp +2 -1
  426. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/ios_base_state_ptr.hpp +7 -7
  427. data/src/cxx_supportlib/vendor-modified/boost/chrono/io_v1/chrono_io.hpp +3 -3
  428. data/src/cxx_supportlib/vendor-modified/boost/chrono/system_clocks.hpp +1 -0
  429. data/src/cxx_supportlib/vendor-modified/boost/chrono/time_point.hpp +1 -1
  430. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +5 -1
  431. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +1 -1
  432. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +4 -4
  433. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +1 -1
  434. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +7 -1
  435. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +4 -1
  436. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx23.hpp +41 -0
  437. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +6 -1
  438. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +4 -0
  439. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +20 -3
  440. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +89 -0
  441. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +5 -0
  442. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +4 -1
  443. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +1 -0
  444. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +4 -0
  445. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +16 -5
  446. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +4 -2
  447. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +5 -0
  448. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +1 -0
  449. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +4 -0
  450. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +4 -0
  451. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +6 -0
  452. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +4 -0
  453. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +10 -0
  454. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +4 -0
  455. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +23 -3
  456. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +13 -0
  457. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +2 -0
  458. data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +19 -3
  459. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +139 -34
  460. data/src/cxx_supportlib/vendor-modified/boost/config/header_deprecated.hpp +1 -1
  461. data/src/cxx_supportlib/vendor-modified/boost/config/platform/wasm.hpp +6 -0
  462. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +45 -18
  463. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +11 -45
  464. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +42 -3
  465. data/src/cxx_supportlib/vendor-modified/boost/config/workaround.hpp +11 -0
  466. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +26 -21
  467. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +30 -26
  468. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +178 -39
  469. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +12 -12
  470. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +827 -303
  471. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +1 -1
  472. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +57 -57
  473. data/src/cxx_supportlib/vendor-modified/boost/container/detail/addressof.hpp +2 -10
  474. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +155 -179
  475. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +6 -6
  476. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocation_type.hpp +7 -7
  477. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +14 -15
  478. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_list.hpp +2 -2
  479. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_slist.hpp +2 -2
  480. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +24 -21
  481. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +12 -0
  482. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_end.hpp +3 -0
  483. data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +52 -16
  484. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_or_allocator_rebind.hpp +1 -2
  485. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +23 -13
  486. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +891 -182
  487. data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +121 -66
  488. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +42 -42
  489. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +310 -231
  490. data/src/cxx_supportlib/vendor-modified/boost/container/detail/function_detector.hpp +1 -1
  491. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +2 -2
  492. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +16 -12
  493. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_pair.hpp +91 -0
  494. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +8 -0
  495. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +213 -195
  496. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +10 -11
  497. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +4 -4
  498. data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +98 -12
  499. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +48 -12
  500. data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +8 -10
  501. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +268 -120
  502. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +1 -1
  503. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +12 -12
  504. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +49 -122
  505. data/src/cxx_supportlib/vendor-modified/boost/container/detail/placement_new.hpp +1 -7
  506. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common.hpp +1 -1
  507. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +2 -2
  508. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_resource.hpp +7 -11
  509. data/src/cxx_supportlib/vendor-modified/boost/container/detail/transform_iterator.hpp +28 -28
  510. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +265 -354
  511. data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +1 -0
  512. data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +3 -3
  513. data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +4 -4
  514. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +93 -11
  515. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +1364 -1296
  516. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +367 -260
  517. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +112 -93
  518. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +80 -125
  519. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +136 -119
  520. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +19 -14
  521. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +27 -21
  522. data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +35 -22
  523. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +158 -45
  524. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +8 -3
  525. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +4 -4
  526. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +1 -0
  527. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +7 -7
  528. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/synchronized_pool_resource.hpp +3 -3
  529. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/unsynchronized_pool_resource.hpp +3 -3
  530. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +81 -83
  531. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +93 -90
  532. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +82 -127
  533. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +229 -245
  534. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +198 -175
  535. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +131 -87
  536. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +373 -374
  537. data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +6 -7
  538. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +3 -3
  539. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +618 -631
  540. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_integral.hpp +146 -0
  541. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_mix.hpp +113 -0
  542. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_range.hpp +408 -0
  543. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_tuple_like.hpp +62 -0
  544. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/mulx.hpp +79 -0
  545. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +395 -581
  546. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +25 -24
  547. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_contiguous_range.hpp +98 -0
  548. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_described_class.hpp +37 -0
  549. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_range.hpp +41 -0
  550. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_tuple_like.hpp +36 -0
  551. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_unordered_range.hpp +38 -0
  552. data/src/cxx_supportlib/vendor-modified/boost/core/alignof.hpp +57 -0
  553. data/src/cxx_supportlib/vendor-modified/boost/core/alloc_construct.hpp +7 -81
  554. data/src/cxx_supportlib/vendor-modified/boost/core/allocator_access.hpp +448 -215
  555. data/src/cxx_supportlib/vendor-modified/boost/core/allocator_traits.hpp +112 -0
  556. data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +418 -45
  557. data/src/cxx_supportlib/vendor-modified/boost/core/checked_delete.hpp +29 -3
  558. data/src/cxx_supportlib/vendor-modified/boost/core/cmath.hpp +100 -1
  559. data/src/cxx_supportlib/vendor-modified/boost/core/data.hpp +46 -0
  560. data/src/cxx_supportlib/vendor-modified/boost/core/default_allocator.hpp +19 -9
  561. data/src/cxx_supportlib/vendor-modified/boost/core/detail/is_same.hpp +39 -0
  562. data/src/cxx_supportlib/vendor-modified/boost/core/detail/lwt_unattended.hpp +66 -0
  563. data/src/cxx_supportlib/vendor-modified/boost/core/detail/minstd_rand.hpp +58 -0
  564. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_pause.hpp +71 -0
  565. data/src/cxx_supportlib/vendor-modified/boost/{smart_ptr → core}/detail/sp_thread_sleep.hpp +39 -21
  566. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_yield.hpp +100 -0
  567. data/src/cxx_supportlib/vendor-modified/boost/core/detail/splitmix64.hpp +3 -3
  568. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +1272 -0
  569. data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +78 -21
  570. data/src/cxx_supportlib/vendor-modified/boost/core/fclose_deleter.hpp +53 -0
  571. data/src/cxx_supportlib/vendor-modified/boost/core/functor.hpp +41 -0
  572. data/src/cxx_supportlib/vendor-modified/boost/core/identity.hpp +61 -0
  573. data/src/cxx_supportlib/vendor-modified/boost/core/invoke_swap.hpp +93 -0
  574. data/src/cxx_supportlib/vendor-modified/boost/core/is_same.hpp +10 -15
  575. data/src/cxx_supportlib/vendor-modified/boost/core/launder.hpp +69 -0
  576. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +41 -37
  577. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +8 -54
  578. data/src/cxx_supportlib/vendor-modified/boost/core/make_span.hpp +59 -0
  579. data/src/cxx_supportlib/vendor-modified/boost/core/max_align.hpp +82 -0
  580. data/src/cxx_supportlib/vendor-modified/boost/core/memory_resource.hpp +108 -0
  581. data/src/cxx_supportlib/vendor-modified/boost/core/noinit_adaptor.hpp +3 -0
  582. data/src/cxx_supportlib/vendor-modified/boost/core/noncopyable.hpp +1 -1
  583. data/src/cxx_supportlib/vendor-modified/boost/core/null_deleter.hpp +7 -0
  584. data/src/cxx_supportlib/vendor-modified/boost/core/pointer_in_range.hpp +49 -0
  585. data/src/cxx_supportlib/vendor-modified/boost/core/pointer_traits.hpp +111 -60
  586. data/src/cxx_supportlib/vendor-modified/boost/core/quick_exit.hpp +1 -1
  587. data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +23 -16
  588. data/src/cxx_supportlib/vendor-modified/boost/core/serialization.hpp +131 -0
  589. data/src/cxx_supportlib/vendor-modified/boost/core/size.hpp +31 -0
  590. data/src/cxx_supportlib/vendor-modified/boost/core/snprintf.hpp +173 -0
  591. data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +401 -0
  592. data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +10 -40
  593. data/src/cxx_supportlib/vendor-modified/boost/core/type_name.hpp +1186 -0
  594. data/src/cxx_supportlib/vendor-modified/boost/core/verbose_terminate_handler.hpp +88 -0
  595. data/src/cxx_supportlib/vendor-modified/boost/core/yield_primitives.hpp +12 -0
  596. data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +1 -1
  597. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters.hpp +3 -3
  598. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters_limited.hpp +3 -3
  599. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +12 -13
  600. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/parsers.hpp +2 -2
  601. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.ipp +3 -3
  602. data/src/cxx_supportlib/vendor-modified/boost/date_time/iso_format.hpp +13 -13
  603. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_date_time.hpp +2 -2
  604. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/conversion.hpp +1 -1
  605. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_io.hpp +1 -1
  606. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters.hpp +4 -4
  607. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters_limited.hpp +2 -2
  608. data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_parser.hpp +1 -1
  609. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +1 -1
  610. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_parsing.hpp +2 -2
  611. data/src/cxx_supportlib/vendor-modified/boost/describe/bases.hpp +50 -0
  612. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +40 -0
  613. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/cx_streq.hpp +30 -0
  614. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/void_t.hpp +32 -0
  615. data/src/cxx_supportlib/vendor-modified/boost/describe/members.hpp +161 -0
  616. data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +33 -0
  617. data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +3 -7
  618. data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +24 -126
  619. data/src/cxx_supportlib/vendor-modified/boost/detail/workaround.hpp +3 -3
  620. data/src/cxx_supportlib/vendor-modified/boost/exception/current_exception_cast.hpp +1 -1
  621. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/clone_current_exception.hpp +1 -1
  622. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +1 -1
  623. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +58 -30
  624. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/is_output_streamable.hpp +1 -1
  625. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/object_hex_dump.hpp +1 -1
  626. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/requires_cxx11.hpp +24 -0
  627. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +1 -1
  628. data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +4 -4
  629. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +85 -3
  630. data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +1 -1
  631. data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +2 -2
  632. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string.hpp +2 -2
  633. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string_stub.hpp +1 -1
  634. data/src/cxx_supportlib/vendor-modified/boost/function/function0.hpp +1 -3
  635. data/src/cxx_supportlib/vendor-modified/boost/function/function1.hpp +1 -3
  636. data/src/cxx_supportlib/vendor-modified/boost/function/function10.hpp +1 -3
  637. data/src/cxx_supportlib/vendor-modified/boost/function/function2.hpp +1 -3
  638. data/src/cxx_supportlib/vendor-modified/boost/function/function3.hpp +1 -3
  639. data/src/cxx_supportlib/vendor-modified/boost/function/function4.hpp +1 -3
  640. data/src/cxx_supportlib/vendor-modified/boost/function/function5.hpp +1 -3
  641. data/src/cxx_supportlib/vendor-modified/boost/function/function6.hpp +1 -3
  642. data/src/cxx_supportlib/vendor-modified/boost/function/function7.hpp +1 -3
  643. data/src/cxx_supportlib/vendor-modified/boost/function/function8.hpp +1 -3
  644. data/src/cxx_supportlib/vendor-modified/boost/function/function9.hpp +1 -3
  645. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +71 -223
  646. data/src/cxx_supportlib/vendor-modified/boost/function/function_fwd.hpp +36 -41
  647. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +428 -452
  648. data/src/cxx_supportlib/vendor-modified/boost/function/function_typeof.hpp +1 -31
  649. data/src/cxx_supportlib/vendor-modified/boost/function.hpp +5 -61
  650. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +6 -10
  651. data/src/cxx_supportlib/vendor-modified/boost/integer/extended_euclidean.hpp +2 -2
  652. data/src/cxx_supportlib/vendor-modified/boost/integer/integer_log2.hpp +85 -80
  653. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +32 -25
  654. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +16 -13
  655. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +45 -45
  656. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +32 -25
  657. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +104 -97
  658. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +87 -90
  659. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +29 -20
  660. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +77 -8
  661. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +2 -2
  662. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algorithm.hpp +8 -8
  663. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +30 -30
  664. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/array_initializer.hpp +8 -7
  665. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +14 -14
  666. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +38 -39
  667. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +84 -15
  668. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +3 -3
  669. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +24 -24
  670. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/empty_node_checker.hpp +1 -1
  671. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/equal_to_value.hpp +1 -1
  672. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/exception_disposer.hpp +1 -32
  673. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/function_detector.hpp +1 -1
  674. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +14 -15
  675. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash.hpp +277 -0
  676. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +11 -49
  677. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_integral.hpp +119 -0
  678. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_mix.hpp +130 -0
  679. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +195 -115
  680. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +22 -26
  681. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iiterator.hpp +6 -6
  682. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +121 -75
  683. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +7 -7
  684. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +20 -20
  685. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +4 -4
  686. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/math.hpp +3 -3
  687. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +7 -1
  688. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +3 -3
  689. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_to_value.hpp +1 -1
  690. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +7 -17
  691. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +18 -18
  692. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/reverse_iterator.hpp +3 -140
  693. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +1 -1
  694. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/size_holder.hpp +14 -14
  695. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +26 -19
  696. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +2 -2
  697. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/transform_iterator.hpp +22 -22
  698. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +21 -21
  699. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +6 -6
  700. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +28 -28
  701. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/value_functors.hpp +10 -0
  702. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +70 -3
  703. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +1722 -995
  704. data/src/cxx_supportlib/vendor-modified/boost/intrusive/intrusive_fwd.hpp +2 -0
  705. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +84 -11
  706. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +68 -63
  707. data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +2 -2
  708. data/src/cxx_supportlib/vendor-modified/boost/intrusive/options.hpp +17 -3
  709. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pack_options.hpp +15 -11
  710. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +12 -4
  711. data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +11 -4
  712. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +16 -13
  713. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +38 -38
  714. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +32 -25
  715. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +32 -25
  716. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +18 -15
  717. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +22 -22
  718. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +80 -79
  719. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +32 -25
  720. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +16 -13
  721. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +38 -36
  722. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +22 -19
  723. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +25 -21
  724. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +44 -37
  725. data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +2 -2
  726. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +64 -54
  727. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +11 -11
  728. data/src/cxx_supportlib/vendor-modified/boost/io/ios_state.hpp +2 -2
  729. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +11 -0
  730. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_def.hpp +6 -6
  731. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_undef.hpp +1 -1
  732. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/enable_if.hpp +5 -5
  733. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +10 -11
  734. data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +148 -0
  735. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +2 -2
  736. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +106 -25
  737. data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +8 -4
  738. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +7 -13
  739. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +59 -0
  740. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +113 -131
  741. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +618 -646
  742. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +83 -74
  743. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +26 -33
  744. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +22 -29
  745. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +73 -0
  746. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
  747. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +23 -18
  748. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +7 -9
  749. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +22 -161
  750. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +9 -12
  751. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/chrono.cpp +4 -2
  752. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/process_cpu_clocks.cpp +3 -1
  753. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/thread_clock.cpp +3 -1
  754. data/src/cxx_supportlib/vendor-modified/boost/libs/random/src/random_device.cpp +3 -1
  755. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/posix_api.cpp +10 -18
  756. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +13 -14
  757. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +24 -14
  758. data/src/cxx_supportlib/vendor-modified/boost/limits.hpp +12 -12
  759. data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +7 -5
  760. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +48 -33
  761. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +92 -75
  762. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +216 -185
  763. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +11 -10
  764. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/heap_sort.hpp +22 -11
  765. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/insertion_sort.hpp +9 -0
  766. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +125 -165
  767. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge_sort.hpp +24 -15
  768. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/pdqsort.hpp +16 -5
  769. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/search.hpp +79 -0
  770. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/set_difference.hpp +8 -2
  771. data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +8 -5
  772. data/src/cxx_supportlib/vendor-modified/boost/move/algo/predicate.hpp +11 -11
  773. data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +0 -1
  774. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +22 -1
  775. data/src/cxx_supportlib/vendor-modified/boost/move/default_delete.hpp +5 -6
  776. data/src/cxx_supportlib/vendor-modified/boost/move/detail/addressof.hpp +61 -0
  777. data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +0 -1
  778. data/src/cxx_supportlib/vendor-modified/boost/move/detail/force_ptr.hpp +36 -0
  779. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +3 -3
  780. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +108 -9
  781. data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +53 -0
  782. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +9 -52
  783. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils_core.hpp +15 -0
  784. data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +24 -24
  785. data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +70 -26
  786. data/src/cxx_supportlib/vendor-modified/boost/move/detail/placement_new.hpp +2 -0
  787. data/src/cxx_supportlib/vendor-modified/boost/move/detail/reverse_iterator.hpp +40 -33
  788. data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_begin.hpp +7 -3
  789. data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_end.hpp +5 -0
  790. data/src/cxx_supportlib/vendor-modified/boost/move/detail/to_raw_pointer.hpp +1 -1
  791. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +90 -30
  792. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +90 -3
  793. data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +22 -22
  794. data/src/cxx_supportlib/vendor-modified/boost/move/make_unique.hpp +10 -0
  795. data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +65 -66
  796. data/src/cxx_supportlib/vendor-modified/boost/move/utility.hpp +2 -2
  797. data/src/cxx_supportlib/vendor-modified/boost/move/utility_core.hpp +38 -33
  798. data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +1386 -0
  799. data/src/cxx_supportlib/vendor-modified/boost/mp11/bind.hpp +120 -0
  800. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/config.hpp +149 -0
  801. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_append.hpp +321 -0
  802. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_copy_if.hpp +48 -0
  803. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_count.hpp +147 -0
  804. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_defer.hpp +119 -0
  805. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_fold.hpp +166 -0
  806. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_front.hpp +50 -0
  807. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_is_list.hpp +39 -0
  808. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_is_value_list.hpp +41 -0
  809. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_list.hpp +24 -0
  810. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_list_v.hpp +27 -0
  811. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +87 -0
  812. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_min_element.hpp +51 -0
  813. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_plus.hpp +84 -0
  814. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_remove_if.hpp +48 -0
  815. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_rename.hpp +54 -0
  816. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_value.hpp +25 -0
  817. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_void.hpp +32 -0
  818. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_with_index.hpp +385 -0
  819. data/src/cxx_supportlib/vendor-modified/boost/mp11/function.hpp +222 -0
  820. data/src/cxx_supportlib/vendor-modified/boost/mp11/integer_sequence.hpp +121 -0
  821. data/src/cxx_supportlib/vendor-modified/boost/mp11/integral.hpp +51 -0
  822. data/src/cxx_supportlib/vendor-modified/boost/mp11/list.hpp +481 -0
  823. data/src/cxx_supportlib/vendor-modified/boost/mp11/set.hpp +188 -0
  824. data/src/cxx_supportlib/vendor-modified/boost/mp11/utility.hpp +169 -0
  825. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +16 -0
  826. data/src/cxx_supportlib/vendor-modified/boost/mpl/and.hpp +1 -1
  827. data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +6 -6
  828. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/integral_wrapper.hpp +2 -1
  829. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp +1 -1
  830. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/template_arity.hpp +1 -1
  831. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/yes_no.hpp +2 -1
  832. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitand.hpp +1 -1
  833. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitor.hpp +1 -1
  834. data/src/cxx_supportlib/vendor-modified/boost/mpl/or.hpp +1 -1
  835. data/src/cxx_supportlib/vendor-modified/boost/next_prior.hpp +3 -44
  836. data/src/cxx_supportlib/vendor-modified/boost/nondet_random.hpp +22 -0
  837. data/src/cxx_supportlib/vendor-modified/boost/none.hpp +1 -1
  838. data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +15 -1
  839. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/int_float_mixture.hpp +5 -5
  840. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/sign_mixture.hpp +5 -5
  841. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/udt_builtin_mixture.hpp +5 -5
  842. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +4 -49
  843. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_aligned_storage.hpp +3 -4
  844. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +16 -7
  845. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_hash.hpp +49 -0
  846. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +49 -48
  847. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +11 -11
  848. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +9 -9
  849. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +31 -260
  850. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_utility.hpp +41 -0
  851. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +169 -599
  852. data/src/cxx_supportlib/vendor-modified/boost/optional/optional_io.hpp +4 -7
  853. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_keyword_arg_ref.hpp +2 -2
  854. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/unmatched_argument.hpp +1 -1
  855. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/overloads.hpp +1 -1
  856. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tag.hpp +4 -4
  857. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/unwrap_cv_reference.hpp +1 -1
  858. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/void.hpp +1 -1
  859. data/src/cxx_supportlib/vendor-modified/boost/parameter/binding.hpp +3 -3
  860. data/src/cxx_supportlib/vendor-modified/boost/parameter/match.hpp +1 -1
  861. data/src/cxx_supportlib/vendor-modified/boost/parameter/template_keyword.hpp +1 -1
  862. data/src/cxx_supportlib/vendor-modified/boost/parameter/value_type.hpp +3 -3
  863. data/src/cxx_supportlib/vendor-modified/boost/pointer_cast.hpp +12 -24
  864. data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +22 -9
  865. data/src/cxx_supportlib/vendor-modified/boost/pool/simple_segregated_storage.hpp +13 -0
  866. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/loongarch.h +41 -0
  867. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sparc.h +2 -2
  868. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +1 -0
  869. data/src/cxx_supportlib/vendor-modified/boost/predef/language/stdc.h +1 -1
  870. data/src/cxx_supportlib/vendor-modified/boost/predef/language/stdcpp.h +2 -2
  871. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/msvc.h +53 -0
  872. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std.h +1 -0
  873. data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
  874. data/src/cxx_supportlib/vendor-modified/boost/predef/os/vms.h +1 -1
  875. data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +1 -0
  876. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  877. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/has_opt.hpp +8 -2
  878. data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +5 -5
  879. data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +15 -15
  880. data/src/cxx_supportlib/vendor-modified/boost/random/inversive_congruential.hpp +1 -1
  881. data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +203 -0
  882. data/src/cxx_supportlib/vendor-modified/boost/random/subtract_with_carry.hpp +14 -14
  883. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real_distribution.hpp +2 -2
  884. data/src/cxx_supportlib/vendor-modified/boost/random.hpp +1 -0
  885. data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +4 -82
  886. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/gcd_lcm.hpp +53 -0
  887. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_evenly_divisible_by.hpp +32 -0
  888. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_ratio.hpp +28 -0
  889. data/src/cxx_supportlib/vendor-modified/boost/ratio/include.hpp +1 -3
  890. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio.hpp +5 -249
  891. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_fwd.hpp +30 -56
  892. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_io.hpp +0 -533
  893. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +8 -1
  894. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/icu.hpp +1 -1
  895. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/pattern_except.hpp +3 -2
  896. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +1 -0
  897. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +7 -7
  898. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_creator.hpp +4 -3
  899. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +23 -13
  900. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/icu.hpp +10 -10
  901. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +2 -0
  902. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/pattern_except.hpp +3 -2
  903. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_common.hpp +6 -0
  904. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_non_recursive.hpp +3 -1
  905. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_workaround.hpp +7 -7
  906. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +235 -104
  907. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +37 -43
  908. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +1 -23
  909. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +1 -0
  910. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/deprecated_macros.hpp +52 -0
  911. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +14 -18
  912. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_sp_deleter.hpp +7 -15
  913. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +40 -91
  914. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_convertible.hpp +0 -16
  915. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +1 -0
  916. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +4 -2
  917. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +1 -1
  918. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +13 -14
  919. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +16 -17
  920. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +17 -56
  921. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +4 -1
  922. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_noexcept.hpp +5 -14
  923. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_type_traits.hpp +55 -0
  924. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +1 -0
  925. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp +11 -2
  926. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_std_atomic.hpp +5 -6
  927. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +4 -6
  928. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +7 -9
  929. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +32 -119
  930. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ref_counter.hpp +17 -18
  931. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared.hpp +2 -5
  932. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +10 -8
  933. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +28 -564
  934. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_unique.hpp +64 -0
  935. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +17 -20
  936. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +20 -21
  937. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +34 -66
  938. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +79 -370
  939. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +31 -88
  940. data/src/cxx_supportlib/vendor-modified/boost/static_assert.hpp +2 -1
  941. data/src/cxx_supportlib/vendor-modified/boost/system/detail/append_int.hpp +32 -0
  942. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +26 -8
  943. data/src/cxx_supportlib/vendor-modified/boost/system/detail/enable_if.hpp +3 -12
  944. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +38 -50
  945. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +76 -49
  946. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +261 -159
  947. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +145 -58
  948. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +7 -7
  949. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category_message.hpp +17 -5
  950. data/src/cxx_supportlib/vendor-modified/boost/system/detail/interop_category.hpp +7 -7
  951. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_same.hpp +3 -13
  952. data/src/cxx_supportlib/vendor-modified/boost/system/detail/mutex.hpp +128 -0
  953. data/src/cxx_supportlib/vendor-modified/boost/system/detail/snprintf.hpp +1 -43
  954. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category.hpp +20 -77
  955. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category_impl.hpp +97 -0
  956. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category.hpp +7 -7
  957. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +8 -20
  958. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_message.hpp +71 -0
  959. data/src/cxx_supportlib/vendor-modified/boost/system/errc.hpp +9 -2
  960. data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +30 -59
  961. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/deque.hpp +1 -24
  962. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/functional.hpp +1 -14
  963. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/list.hpp +1 -14
  964. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_arg.hpp +2 -12
  965. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_traits.hpp +0 -11
  966. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/config.hpp +0 -2
  967. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/default_delete.hpp +0 -16
  968. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/pointer_traits.hpp +0 -11
  969. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/scoped_allocator.hpp +0 -11
  970. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/shared_ptr.hpp +0 -19
  971. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/unique_ptr.hpp +4 -6
  972. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/queue.hpp +2 -26
  973. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/tuple.hpp +1 -18
  974. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/vector.hpp +1 -14
  975. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/invoke.hpp +11 -4
  976. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_to_unsigned.hpp +55 -0
  977. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_trim.hpp +29 -0
  978. data/src/cxx_supportlib/vendor-modified/boost/thread/externally_locked.hpp +5 -5
  979. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +0 -1
  980. data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_any.hpp +3 -2
  981. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +1 -1
  982. data/src/cxx_supportlib/vendor-modified/boost/thread/scoped_thread.hpp +9 -0
  983. data/src/cxx_supportlib/vendor-modified/boost/thread/synchronized_value.hpp +4 -4
  984. data/src/cxx_supportlib/vendor-modified/boost/thread/thread_guard.hpp +5 -0
  985. data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +104 -6
  986. data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +2 -2
  987. data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +25 -24
  988. data/src/cxx_supportlib/vendor-modified/boost/tuple/tuple.hpp +1 -1
  989. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +4 -1
  990. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_helper.hpp +27 -27
  991. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +27 -27
  992. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_swappable_cxx_11.hpp +70 -0
  993. data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +22 -8
  994. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +2 -1
  995. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_floating_point.hpp +22 -0
  996. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_function.hpp +1 -1
  997. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_integral.hpp +3 -0
  998. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_function_pointer.hpp +1 -1
  999. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_swappable.hpp +4 -24
  1000. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_swappable.hpp +92 -0
  1001. data/src/cxx_supportlib/vendor-modified/boost/typeof/decltype.hpp +2 -3
  1002. data/src/cxx_supportlib/vendor-modified/boost/typeof/incr_registration_group.hpp +1 -10
  1003. data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +5 -6
  1004. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/bitset.hpp +2 -4
  1005. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/complex.hpp +2 -4
  1006. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/deque.hpp +2 -5
  1007. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/fstream.hpp +2 -15
  1008. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/functional.hpp +4 -51
  1009. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iostream.hpp +2 -6
  1010. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/istream.hpp +2 -9
  1011. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iterator.hpp +2 -46
  1012. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/list.hpp +2 -5
  1013. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/locale.hpp +2 -29
  1014. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/map.hpp +2 -9
  1015. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/memory.hpp +4 -9
  1016. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/ostream.hpp +2 -6
  1017. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/queue.hpp +2 -5
  1018. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/set.hpp +2 -9
  1019. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/sstream.hpp +2 -19
  1020. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/stack.hpp +2 -5
  1021. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/streambuf.hpp +2 -5
  1022. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/string.hpp +2 -12
  1023. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/utility.hpp +2 -4
  1024. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/valarray.hpp +2 -10
  1025. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/vector.hpp +2 -5
  1026. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof.hpp +8 -202
  1027. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +1055 -0
  1028. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map_fwd.hpp +66 -0
  1029. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +917 -0
  1030. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set_fwd.hpp +67 -0
  1031. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_map.hpp +1202 -0
  1032. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_map_fwd.hpp +67 -0
  1033. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_set.hpp +1065 -0
  1034. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_set_fwd.hpp +67 -0
  1035. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/allocator_constructed.hpp +59 -0
  1036. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/archive_constructed.hpp +71 -0
  1037. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/bad_archive_exception.hpp +27 -0
  1038. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/concurrent_static_asserts.hpp +127 -0
  1039. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +900 -0
  1040. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +1993 -0
  1041. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +2404 -0
  1042. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/cumulative_stats.hpp +177 -0
  1043. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/element_type.hpp +64 -0
  1044. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_map_types.hpp +94 -0
  1045. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_set_types.hpp +50 -0
  1046. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/ignore_wshadow.hpp +35 -0
  1047. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_handle.hpp +319 -0
  1048. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_map_handle.hpp +56 -0
  1049. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_map_types.hpp +150 -0
  1050. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_set_handle.hpp +48 -0
  1051. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_set_types.hpp +101 -0
  1052. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/reentrancy_check.hpp +138 -0
  1053. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/restore_wshadow.hpp +11 -0
  1054. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/rw_spinlock.hpp +179 -0
  1055. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +661 -0
  1056. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/tuple_rotate_right.hpp +53 -0
  1057. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/types_constructibility.hpp +172 -0
  1058. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +1463 -3502
  1059. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +10 -31
  1060. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/mulx.hpp +129 -0
  1061. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/narrow_cast.hpp +44 -0
  1062. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/opt_storage.hpp +30 -0
  1063. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/prime_fmod.hpp +214 -0
  1064. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialization_version.hpp +74 -0
  1065. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_container.hpp +204 -0
  1066. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_fca_container.hpp +156 -0
  1067. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_tracked_address.hpp +104 -0
  1068. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/set.hpp +8 -30
  1069. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/static_assert.hpp +16 -0
  1070. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/throw_exception.hpp +30 -0
  1071. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +237 -0
  1072. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/xmx.hpp +75 -0
  1073. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +70 -0
  1074. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +821 -0
  1075. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +59 -0
  1076. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +631 -0
  1077. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +58 -0
  1078. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +760 -994
  1079. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +35 -13
  1080. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +895 -0
  1081. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map_fwd.hpp +59 -0
  1082. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +707 -0
  1083. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set_fwd.hpp +58 -0
  1084. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_printers.hpp +414 -0
  1085. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +539 -664
  1086. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +35 -15
  1087. data/src/cxx_supportlib/vendor-modified/boost/utility/base_from_member.hpp +2 -1
  1088. data/src/cxx_supportlib/vendor-modified/boost/utility/binary.hpp +3 -2
  1089. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +1 -43
  1090. data/src/cxx_supportlib/vendor-modified/boost/utility/in_place_factory.hpp +6 -0
  1091. data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +13 -2
  1092. data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +6 -2
  1093. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +24 -3
  1094. data/src/cxx_supportlib/vendor-modified/boost/utility/swap.hpp +4 -1
  1095. data/src/cxx_supportlib/vendor-modified/boost/utility/typed_in_place_factory.hpp +6 -1
  1096. data/src/cxx_supportlib/vendor-modified/boost/utility/value_init.hpp +12 -8
  1097. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  1098. data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +2 -9
  1099. data/src/cxx_supportlib/vendor-modified/modp_b64_strict_aliasing.cpp +3 -3
  1100. data/src/helper-scripts/backtrace-sanitizer.rb +2 -2
  1101. data/src/helper-scripts/crash-watch.rb +1 -1
  1102. data/src/helper-scripts/download_binaries/extconf.rb +2 -2
  1103. data/src/helper-scripts/meteor-loader.rb +9 -4
  1104. data/src/helper-scripts/node-loader.js +2 -2
  1105. data/src/helper-scripts/prespawn +2 -2
  1106. data/src/helper-scripts/rack-loader.rb +2 -2
  1107. data/src/helper-scripts/rack-preloader.rb +2 -2
  1108. data/src/helper-scripts/wsgi-loader.py +36 -19
  1109. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +26 -34
  1110. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c.cxxcodebuilder +2 -2
  1111. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +14 -2
  1112. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c.cxxcodebuilder +2 -2
  1113. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +38 -50
  1114. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c.cxxcodebuilder +2 -2
  1115. data/src/nginx_module/ConfigGeneral/ManifestGeneration.c +2 -2
  1116. data/src/nginx_module/Configuration.c +8 -3
  1117. data/src/nginx_module/Configuration.h +1 -1
  1118. data/src/nginx_module/ContentHandler.c +1 -1
  1119. data/src/nginx_module/ContentHandler.h +1 -1
  1120. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +13 -2
  1121. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +2 -2
  1122. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +38 -2
  1123. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c.cxxcodebuilder +2 -2
  1124. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +29 -2
  1125. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +2 -2
  1126. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +8 -2
  1127. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c.cxxcodebuilder +2 -2
  1128. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +10 -2
  1129. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h.cxxcodebuilder +2 -2
  1130. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +7 -26
  1131. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +2 -2
  1132. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +13 -50
  1133. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +2 -2
  1134. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +6 -18
  1135. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h.cxxcodebuilder +2 -2
  1136. data/src/nginx_module/StaticContentHandler.c +1 -1
  1137. data/src/nginx_module/StaticContentHandler.h +1 -1
  1138. data/src/nginx_module/ngx_http_passenger_module.c +2 -6
  1139. data/src/nginx_module/ngx_http_passenger_module.h +1 -1
  1140. data/src/nodejs_supportlib/phusion_passenger/line_reader.js +2 -2
  1141. data/src/ruby_native_extension/extconf.rb +3 -3
  1142. data/src/ruby_native_extension/passenger_native_support.c +22 -5
  1143. data/src/ruby_supportlib/phusion_passenger/abstract_installer.rb +2 -2
  1144. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +2 -2
  1145. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +2 -2
  1146. data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +2 -2
  1147. data/src/ruby_supportlib/phusion_passenger/admin_tools.rb +2 -2
  1148. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +22 -26
  1149. data/src/ruby_supportlib/phusion_passenger/apache2/config_utils.rb +2 -2
  1150. data/src/ruby_supportlib/phusion_passenger/common_library.rb +18 -10
  1151. data/src/ruby_supportlib/phusion_passenger/config/about_command.rb +2 -2
  1152. data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +2 -2
  1153. data/src/ruby_supportlib/phusion_passenger/config/api_call_command.rb +2 -2
  1154. data/src/ruby_supportlib/phusion_passenger/config/build_native_support_command.rb +2 -2
  1155. data/src/ruby_supportlib/phusion_passenger/config/command.rb +2 -2
  1156. data/src/ruby_supportlib/phusion_passenger/config/compile_agent_command.rb +2 -2
  1157. data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +8 -4
  1158. data/src/ruby_supportlib/phusion_passenger/config/detach_process_command.rb +2 -2
  1159. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +2 -2
  1160. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +2 -2
  1161. data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +2 -2
  1162. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +12 -2
  1163. data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +2 -2
  1164. data/src/ruby_supportlib/phusion_passenger/config/list_instances_command.rb +2 -2
  1165. data/src/ruby_supportlib/phusion_passenger/config/main.rb +2 -2
  1166. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +15 -7
  1167. data/src/ruby_supportlib/phusion_passenger/config/reopen_logs_command.rb +2 -2
  1168. data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +2 -2
  1169. data/src/ruby_supportlib/phusion_passenger/config/system_metrics_command.rb +2 -2
  1170. data/src/ruby_supportlib/phusion_passenger/config/system_properties_command.rb +2 -2
  1171. data/src/ruby_supportlib/phusion_passenger/config/utils.rb +2 -2
  1172. data/src/ruby_supportlib/phusion_passenger/config/validate_install_command.rb +2 -2
  1173. data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +2 -2
  1174. data/src/ruby_supportlib/phusion_passenger/constants.rb +3 -2
  1175. data/src/ruby_supportlib/phusion_passenger/debug_logging.rb +2 -2
  1176. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +15 -5
  1177. data/src/ruby_supportlib/phusion_passenger/message_channel.rb +2 -2
  1178. data/src/ruby_supportlib/phusion_passenger/message_client.rb +2 -2
  1179. data/src/ruby_supportlib/phusion_passenger/native_support.rb +12 -7
  1180. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +21 -30
  1181. data/src/ruby_supportlib/phusion_passenger/packaging.rb +3 -2
  1182. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +11 -12
  1183. data/src/ruby_supportlib/phusion_passenger/platform_info/apache_detector.rb +2 -2
  1184. data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +3 -3
  1185. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +56 -14
  1186. data/src/ruby_supportlib/phusion_passenger/platform_info/crypto.rb +2 -2
  1187. data/src/ruby_supportlib/phusion_passenger/platform_info/curl.rb +2 -2
  1188. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +9 -31
  1189. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/gems.rb +10 -0
  1190. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/libs.rb +6 -6
  1191. data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +2 -2
  1192. data/src/ruby_supportlib/phusion_passenger/platform_info/networking.rb +2 -2
  1193. data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +2 -2
  1194. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +7 -37
  1195. data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +13 -14
  1196. data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +4 -4
  1197. data/src/ruby_supportlib/phusion_passenger/platform_info/zlib.rb +2 -2
  1198. data/src/ruby_supportlib/phusion_passenger/platform_info.rb +2 -2
  1199. data/src/ruby_supportlib/phusion_passenger/plugin.rb +2 -2
  1200. data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +14 -8
  1201. data/src/ruby_supportlib/phusion_passenger/public_api.rb +5 -2
  1202. data/src/ruby_supportlib/phusion_passenger/rack/handler.rb +73 -0
  1203. data/src/ruby_supportlib/phusion_passenger/rack/out_of_band_gc.rb +2 -2
  1204. data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +14 -3
  1205. data/src/ruby_supportlib/phusion_passenger/rack_handler.rb +32 -58
  1206. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -2
  1207. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +2 -2
  1208. data/src/ruby_supportlib/phusion_passenger/ruby_core_enhancements.rb +7 -2
  1209. data/src/ruby_supportlib/phusion_passenger/ruby_core_io_enhancements.rb +2 -2
  1210. data/src/ruby_supportlib/phusion_passenger/simple_benchmarking.rb +2 -2
  1211. data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +2 -2
  1212. data/src/ruby_supportlib/phusion_passenger/standalone/command.rb +2 -2
  1213. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +27 -23
  1214. data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +2 -2
  1215. data/src/ruby_supportlib/phusion_passenger/standalone/control_utils.rb +2 -2
  1216. data/src/ruby_supportlib/phusion_passenger/standalone/main.rb +2 -2
  1217. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +6 -3
  1218. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +3 -3
  1219. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +2 -6
  1220. data/src/ruby_supportlib/phusion_passenger/standalone/status_command.rb +3 -4
  1221. data/src/ruby_supportlib/phusion_passenger/standalone/stop_command.rb +9 -3
  1222. data/src/ruby_supportlib/phusion_passenger/standalone/version_command.rb +2 -2
  1223. data/src/ruby_supportlib/phusion_passenger/utils/ansi_colors.rb +2 -2
  1224. data/src/ruby_supportlib/phusion_passenger/utils/download.rb +2 -2
  1225. data/src/ruby_supportlib/phusion_passenger/utils/file_system_watcher.rb +2 -2
  1226. data/src/ruby_supportlib/phusion_passenger/utils/hosts_file_parser.rb +2 -2
  1227. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +7 -198
  1228. data/src/ruby_supportlib/phusion_passenger/utils/lock.rb +2 -2
  1229. data/src/ruby_supportlib/phusion_passenger/utils/native_support_utils.rb +2 -2
  1230. data/src/ruby_supportlib/phusion_passenger/utils/progress_bar.rb +2 -2
  1231. data/src/ruby_supportlib/phusion_passenger/utils/strscan.rb +67 -0
  1232. data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +2 -2
  1233. data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +2 -2
  1234. data/src/ruby_supportlib/phusion_passenger/utils.rb +8 -17
  1235. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +2 -2
  1236. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/base.rb +1 -1
  1237. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +5 -1
  1238. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +6 -2
  1239. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/utils.rb +1 -1
  1240. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/version.rb +1 -1
  1241. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/lock_file.rb +1 -1
  1242. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/spawn.rb +1 -1
  1243. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/version.rb +1 -1
  1244. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +1 -1
  1245. data/src/ruby_supportlib/phusion_passenger.rb +11 -11
  1246. data/src/schema_printer/SchemaPrinterMain.cpp +2 -6
  1247. data/src/schema_printer/SchemaPrinterMain.cpp.cxxcodebuilder +2 -2
  1248. metadata +211 -741
  1249. data/dev/webpacketpp.patch +0 -39
  1250. data/src/agent/Core/AdminPanelConnector.h +0 -681
  1251. data/src/cxx_supportlib/DataStructures/HashMap.h +0 -60
  1252. data/src/cxx_supportlib/FileTools/LargeFiles.cpp +0 -41
  1253. data/src/cxx_supportlib/ServerKit/http_parser.cpp +0 -2265
  1254. data/src/cxx_supportlib/ServerKit/http_parser.h +0 -330
  1255. data/src/cxx_supportlib/WebSocketCommandReverseServer.h +0 -975
  1256. data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +0 -19
  1257. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of.hpp +0 -54
  1258. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of_forward.hpp +0 -20
  1259. data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +0 -21
  1260. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc.hpp +0 -52
  1261. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of.hpp +0 -31
  1262. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of_cxx11.hpp +0 -23
  1263. data/src/cxx_supportlib/vendor-modified/boost/align/detail/element_type.hpp +0 -91
  1264. data/src/cxx_supportlib/vendor-modified/boost/align/detail/integral_constant.hpp +0 -53
  1265. data/src/cxx_supportlib/vendor-modified/boost/align/detail/min_size.hpp +0 -26
  1266. data/src/cxx_supportlib/vendor-modified/boost/array.hpp +0 -456
  1267. data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +0 -302
  1268. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +0 -179
  1269. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +0 -179
  1270. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +0 -224
  1271. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +0 -37
  1272. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +0 -1267
  1273. data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +0 -135
  1274. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +0 -1305
  1275. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +0 -705
  1276. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +0 -292
  1277. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +0 -1296
  1278. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +0 -800
  1279. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +0 -909
  1280. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +0 -578
  1281. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +0 -1917
  1282. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +0 -2600
  1283. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +0 -409
  1284. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +0 -689
  1285. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +0 -1122
  1286. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +0 -454
  1287. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +0 -38
  1288. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +0 -823
  1289. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +0 -723
  1290. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +0 -756
  1291. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +0 -2500
  1292. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +0 -255
  1293. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +0 -27
  1294. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +0 -281
  1295. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +0 -27
  1296. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +0 -247
  1297. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +0 -27
  1298. data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +0 -523
  1299. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +0 -361
  1300. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +0 -237
  1301. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +0 -176
  1302. data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +0 -501
  1303. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +0 -220
  1304. data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +0 -138
  1305. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +0 -1138
  1306. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +0 -330
  1307. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +0 -40
  1308. data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +0 -132
  1309. data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +0 -114
  1310. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +0 -40
  1311. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +0 -34
  1312. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +0 -32
  1313. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +0 -66
  1314. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +0 -165
  1315. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +0 -71
  1316. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +0 -1073
  1317. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/blocking_executor_op.hpp +0 -109
  1318. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +0 -68
  1319. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +0 -652
  1320. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +0 -128
  1321. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bulk_executor_op.hpp +0 -90
  1322. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +0 -127
  1323. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +0 -68
  1324. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +0 -192
  1325. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +0 -90
  1326. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +0 -94
  1327. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +0 -122
  1328. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +0 -151
  1329. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +0 -1938
  1330. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +0 -416
  1331. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +0 -33
  1332. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +0 -62
  1333. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +0 -34
  1334. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +0 -337
  1335. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +0 -38
  1336. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +0 -141
  1337. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +0 -150
  1338. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +0 -150
  1339. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +0 -224
  1340. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +0 -278
  1341. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +0 -50
  1342. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +0 -85
  1343. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_function.hpp +0 -206
  1344. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +0 -86
  1345. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +0 -41
  1346. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +0 -82
  1347. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +0 -46
  1348. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +0 -33
  1349. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +0 -93
  1350. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +0 -70
  1351. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +0 -67
  1352. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +0 -101
  1353. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +0 -54
  1354. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +0 -290
  1355. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +0 -45
  1356. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +0 -80
  1357. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +0 -268
  1358. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +0 -561
  1359. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +0 -527
  1360. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +0 -333
  1361. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +0 -120
  1362. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +0 -610
  1363. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +0 -101
  1364. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +0 -462
  1365. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +0 -111
  1366. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +0 -819
  1367. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +0 -173
  1368. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +0 -398
  1369. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +0 -115
  1370. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +0 -601
  1371. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +0 -76
  1372. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +0 -131
  1373. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +0 -65
  1374. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +0 -48
  1375. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +0 -86
  1376. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +0 -48
  1377. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +0 -225
  1378. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_serial_port_service.ipp +0 -151
  1379. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +0 -302
  1380. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +0 -160
  1381. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/scheduler.ipp +0 -661
  1382. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +0 -126
  1383. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +0 -359
  1384. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +0 -96
  1385. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +0 -199
  1386. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +0 -670
  1387. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +0 -3966
  1388. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +0 -187
  1389. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +0 -356
  1390. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +0 -160
  1391. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +0 -89
  1392. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +0 -204
  1393. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/thread_context.ipp +0 -37
  1394. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +0 -47
  1395. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +0 -99
  1396. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +0 -103
  1397. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +0 -86
  1398. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_object_impl.hpp +0 -174
  1399. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +0 -314
  1400. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +0 -128
  1401. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +0 -72
  1402. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +0 -254
  1403. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/limits.hpp +0 -26
  1404. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +0 -61
  1405. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +0 -64
  1406. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +0 -135
  1407. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +0 -50
  1408. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/non_const_lvalue.hpp +0 -56
  1409. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +0 -45
  1410. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +0 -108
  1411. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +0 -49
  1412. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +0 -61
  1413. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +0 -66
  1414. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +0 -70
  1415. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +0 -71
  1416. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +0 -521
  1417. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +0 -62
  1418. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +0 -69
  1419. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +0 -70
  1420. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +0 -173
  1421. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +0 -216
  1422. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +0 -164
  1423. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +0 -40
  1424. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +0 -91
  1425. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +0 -149
  1426. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +0 -177
  1427. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +0 -120
  1428. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_global.hpp +0 -82
  1429. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +0 -78
  1430. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +0 -87
  1431. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +0 -66
  1432. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +0 -111
  1433. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +0 -81
  1434. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +0 -218
  1435. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +0 -511
  1436. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +0 -100
  1437. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_serial_port_service.hpp +0 -239
  1438. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +0 -244
  1439. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +0 -125
  1440. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +0 -161
  1441. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +0 -166
  1442. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +0 -147
  1443. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +0 -164
  1444. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +0 -158
  1445. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +0 -607
  1446. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +0 -654
  1447. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +0 -100
  1448. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +0 -32
  1449. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_fwd.hpp +0 -42
  1450. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +0 -73
  1451. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +0 -214
  1452. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +0 -107
  1453. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +0 -44
  1454. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +0 -142
  1455. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +0 -47
  1456. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +0 -152
  1457. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +0 -147
  1458. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +0 -160
  1459. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler.hpp +0 -231
  1460. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_operation.hpp +0 -80
  1461. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_thread_info.hpp +0 -42
  1462. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +0 -103
  1463. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +0 -89
  1464. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +0 -48
  1465. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +0 -250
  1466. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +0 -166
  1467. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +0 -46
  1468. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +0 -92
  1469. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +0 -49
  1470. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +0 -51
  1471. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +0 -231
  1472. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +0 -100
  1473. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +0 -385
  1474. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +0 -318
  1475. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +0 -93
  1476. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +0 -419
  1477. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +0 -64
  1478. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/source_location.hpp +0 -47
  1479. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +0 -54
  1480. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +0 -190
  1481. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +0 -64
  1482. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_global.hpp +0 -72
  1483. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +0 -75
  1484. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +0 -83
  1485. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +0 -73
  1486. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +0 -175
  1487. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +0 -146
  1488. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +0 -49
  1489. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +0 -62
  1490. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +0 -53
  1491. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +0 -101
  1492. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +0 -258
  1493. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +0 -55
  1494. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +0 -53
  1495. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +0 -391
  1496. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +0 -70
  1497. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +0 -105
  1498. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +0 -68
  1499. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +0 -35
  1500. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +0 -42
  1501. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +0 -71
  1502. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +0 -158
  1503. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +0 -294
  1504. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +0 -92
  1505. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +0 -51
  1506. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +0 -130
  1507. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +0 -153
  1508. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +0 -329
  1509. data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +0 -123
  1510. data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +0 -361
  1511. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +0 -339
  1512. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +0 -2348
  1513. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bad_executor.hpp +0 -49
  1514. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +0 -1553
  1515. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +0 -1214
  1516. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +0 -401
  1517. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_guarantee.hpp +0 -1217
  1518. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +0 -493
  1519. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +0 -235
  1520. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +0 -223
  1521. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_invocable.hpp +0 -154
  1522. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_operation.hpp +0 -107
  1523. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_receiver.hpp +0 -130
  1524. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/bulk_sender.hpp +0 -263
  1525. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/submit_receiver.hpp +0 -235
  1526. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/void_receiver.hpp +0 -92
  1527. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +0 -289
  1528. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +0 -254
  1529. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/bad_executor.ipp +0 -42
  1530. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/receiver_invocation_error.ipp +0 -38
  1531. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/invocable_archetype.hpp +0 -73
  1532. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +0 -1118
  1533. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +0 -228
  1534. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/operation_state.hpp +0 -96
  1535. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +0 -869
  1536. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/prefer_only.hpp +0 -333
  1537. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver.hpp +0 -282
  1538. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver_invocation_error.hpp +0 -50
  1539. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +0 -867
  1540. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +0 -291
  1541. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/scheduler.hpp +0 -88
  1542. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/sender.hpp +0 -313
  1543. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +0 -254
  1544. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +0 -254
  1545. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +0 -487
  1546. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +0 -251
  1547. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +0 -454
  1548. data/src/cxx_supportlib/vendor-modified/boost/asio/execution.hpp +0 -48
  1549. data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +0 -414
  1550. data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +0 -349
  1551. data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +0 -304
  1552. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +0 -73
  1553. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_single.hpp +0 -137
  1554. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +0 -133
  1555. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +0 -538
  1556. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +0 -157
  1557. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +0 -1057
  1558. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +0 -607
  1559. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/completion_handler_erasure.hpp +0 -160
  1560. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +0 -120
  1561. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_traits.hpp +0 -185
  1562. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +0 -181
  1563. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/append.hpp +0 -219
  1564. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +0 -231
  1565. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_tuple.hpp +0 -248
  1566. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/deferred.hpp +0 -106
  1567. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +0 -434
  1568. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/prepend.hpp +0 -219
  1569. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +0 -100
  1570. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +0 -217
  1571. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +0 -73
  1572. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +0 -608
  1573. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +0 -284
  1574. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +0 -195
  1575. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +0 -125
  1576. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +0 -135
  1577. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +0 -112
  1578. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +0 -123
  1579. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +0 -124
  1580. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +0 -129
  1581. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +0 -106
  1582. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +0 -56
  1583. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +0 -113
  1584. data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +0 -46
  1585. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +0 -762
  1586. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +0 -500
  1587. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +0 -480
  1588. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +0 -348
  1589. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +0 -689
  1590. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +0 -906
  1591. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +0 -258
  1592. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +0 -132
  1593. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +0 -253
  1594. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +0 -130
  1595. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.hpp +0 -111
  1596. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +0 -84
  1597. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +0 -302
  1598. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +0 -45
  1599. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +0 -64
  1600. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +0 -446
  1601. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +0 -177
  1602. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/multiple_exceptions.ipp +0 -51
  1603. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +0 -258
  1604. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +0 -1201
  1605. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +0 -735
  1606. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +0 -3317
  1607. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +0 -611
  1608. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +0 -61
  1609. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +0 -556
  1610. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +0 -519
  1611. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +0 -85
  1612. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +0 -36
  1613. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +0 -94
  1614. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +0 -187
  1615. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +0 -356
  1616. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +0 -143
  1617. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +0 -293
  1618. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +0 -1030
  1619. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +0 -1102
  1620. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +0 -646
  1621. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +0 -1552
  1622. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +0 -378
  1623. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +0 -35
  1624. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +0 -20
  1625. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +0 -292
  1626. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +0 -357
  1627. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +0 -164
  1628. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +0 -136
  1629. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +0 -384
  1630. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +0 -185
  1631. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +0 -131
  1632. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +0 -55
  1633. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +0 -293
  1634. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +0 -1078
  1635. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +0 -115
  1636. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +0 -194
  1637. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +0 -246
  1638. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +0 -313
  1639. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +0 -143
  1640. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +0 -201
  1641. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +0 -568
  1642. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +0 -44
  1643. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +0 -117
  1644. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +0 -69
  1645. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +0 -241
  1646. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +0 -69
  1647. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +0 -212
  1648. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +0 -69
  1649. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +0 -352
  1650. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +0 -45
  1651. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +0 -56
  1652. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.hpp +0 -56
  1653. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +0 -218
  1654. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +0 -55
  1655. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +0 -187
  1656. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +0 -193
  1657. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +0 -263
  1658. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +0 -237
  1659. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +0 -131
  1660. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +0 -45
  1661. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +0 -157
  1662. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +0 -113
  1663. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +0 -72
  1664. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +0 -71
  1665. data/src/cxx_supportlib/vendor-modified/boost/asio/is_applicable_property.hpp +0 -63
  1666. data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +0 -48
  1667. data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +0 -61
  1668. data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +0 -61
  1669. data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +0 -249
  1670. data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +0 -103
  1671. data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +0 -82
  1672. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +0 -141
  1673. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +0 -133
  1674. data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +0 -92
  1675. data/src/cxx_supportlib/vendor-modified/boost/asio/multiple_exceptions.hpp +0 -60
  1676. data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +0 -128
  1677. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +0 -153
  1678. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +0 -710
  1679. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +0 -503
  1680. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +0 -39
  1681. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +0 -92
  1682. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +0 -39
  1683. data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +0 -128
  1684. data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +0 -738
  1685. data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +0 -328
  1686. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +0 -1390
  1687. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +0 -740
  1688. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +0 -3033
  1689. data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +0 -68
  1690. data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +0 -575
  1691. data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +0 -356
  1692. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +0 -38
  1693. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +0 -169
  1694. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +0 -30
  1695. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +0 -561
  1696. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +0 -346
  1697. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +0 -763
  1698. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +0 -211
  1699. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +0 -121
  1700. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +0 -172
  1701. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +0 -69
  1702. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +0 -365
  1703. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +0 -167
  1704. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +0 -427
  1705. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +0 -103
  1706. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +0 -34
  1707. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +0 -68
  1708. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +0 -74
  1709. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +0 -71
  1710. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +0 -208
  1711. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +0 -64
  1712. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +0 -78
  1713. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +0 -129
  1714. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/host_name_verification.hpp +0 -92
  1715. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +0 -69
  1716. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +0 -1247
  1717. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +0 -104
  1718. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/host_name_verification.ipp +0 -75
  1719. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +0 -166
  1720. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +0 -29
  1721. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +0 -100
  1722. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +0 -974
  1723. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +0 -54
  1724. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +0 -69
  1725. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +0 -65
  1726. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +0 -28
  1727. data/src/cxx_supportlib/vendor-modified/boost/asio/static_thread_pool.hpp +0 -33
  1728. data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +0 -44
  1729. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +0 -571
  1730. data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +0 -35
  1731. data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +0 -92
  1732. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +0 -686
  1733. data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +0 -44
  1734. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +0 -282
  1735. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +0 -1133
  1736. data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +0 -88
  1737. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_free.hpp +0 -116
  1738. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_member.hpp +0 -116
  1739. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_free.hpp +0 -114
  1740. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_member.hpp +0 -114
  1741. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/equality_comparable.hpp +0 -106
  1742. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_free.hpp +0 -110
  1743. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_member.hpp +0 -110
  1744. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_free.hpp +0 -110
  1745. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_member.hpp +0 -110
  1746. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_free.hpp +0 -110
  1747. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_member.hpp +0 -110
  1748. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_static_constexpr_member.hpp +0 -110
  1749. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_free.hpp +0 -110
  1750. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_member.hpp +0 -110
  1751. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_free.hpp +0 -110
  1752. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_member.hpp +0 -110
  1753. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_free.hpp +0 -110
  1754. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_member.hpp +0 -110
  1755. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_free.hpp +0 -110
  1756. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_member.hpp +0 -110
  1757. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_free.hpp +0 -114
  1758. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_member.hpp +0 -114
  1759. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_free.hpp +0 -236
  1760. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_member.hpp +0 -236
  1761. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_free.hpp +0 -110
  1762. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_member.hpp +0 -110
  1763. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_query.hpp +0 -110
  1764. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require.hpp +0 -125
  1765. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require_concept.hpp +0 -126
  1766. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_free.hpp +0 -114
  1767. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_member.hpp +0 -114
  1768. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +0 -24
  1769. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +0 -35
  1770. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +0 -40
  1771. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +0 -20
  1772. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +0 -26
  1773. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +0 -256
  1774. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +0 -27
  1775. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +0 -26
  1776. data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +0 -21
  1777. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +0 -168
  1778. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +0 -162
  1779. data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +0 -73
  1780. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +0 -23
  1781. data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +0 -58
  1782. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +0 -437
  1783. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_overlapped_handle.hpp +0 -363
  1784. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +0 -512
  1785. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +0 -496
  1786. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +0 -40
  1787. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_handle.hpp +0 -41
  1788. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +0 -147
  1789. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +0 -39
  1790. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +0 -39
  1791. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +0 -1348
  1792. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +0 -748
  1793. data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +0 -23
  1794. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +0 -187
  1795. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_windows.hpp +0 -201
  1796. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_windows.hpp +0 -67
  1797. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_windows.hpp +0 -55
  1798. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_windows.hpp +0 -150
  1799. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf2_cc.hpp +0 -228
  1800. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf_cc.hpp +0 -441
  1801. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_template.hpp +0 -345
  1802. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_cc.hpp +0 -103
  1803. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_template.hpp +0 -1047
  1804. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_vw.hpp +0 -130
  1805. data/src/cxx_supportlib/vendor-modified/boost/bind/storage.hpp +0 -475
  1806. data/src/cxx_supportlib/vendor-modified/boost/checked_delete.hpp +0 -17
  1807. data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +0 -71
  1808. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/float_functions.hpp +0 -336
  1809. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_float.hpp +0 -271
  1810. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/limits.hpp +0 -62
  1811. data/src/cxx_supportlib/vendor-modified/boost/container_hash/extensions.hpp +0 -361
  1812. data/src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp +0 -21
  1813. data/src/cxx_supportlib/vendor-modified/boost/detail/container_fwd.hpp +0 -157
  1814. data/src/cxx_supportlib/vendor-modified/boost/function/detail/function_iterate.hpp +0 -16
  1815. data/src/cxx_supportlib/vendor-modified/boost/function/detail/gen_maybe_include.pl +0 -39
  1816. data/src/cxx_supportlib/vendor-modified/boost/function/detail/maybe_include.hpp +0 -369
  1817. data/src/cxx_supportlib/vendor-modified/boost/function/detail/prologue.hpp +0 -26
  1818. data/src/cxx_supportlib/vendor-modified/boost/function/gen_function_N.pl +0 -26
  1819. data/src/cxx_supportlib/vendor-modified/boost/functional/hash_fwd.hpp +0 -6
  1820. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +0 -1058
  1821. data/src/cxx_supportlib/vendor-modified/boost/pointer_to_other.hpp +0 -55
  1822. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/abs.hpp +0 -89
  1823. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/gcd.hpp +0 -124
  1824. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/lcm.hpp +0 -126
  1825. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/sign.hpp +0 -89
  1826. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/overflow_helpers.hpp +0 -367
  1827. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/ratio_io.hpp +0 -1342
  1828. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/abs.hpp +0 -30
  1829. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/arithmetic.hpp +0 -22
  1830. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/comparison.hpp +0 -19
  1831. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/divides.hpp +0 -30
  1832. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/equal_to.hpp +0 -30
  1833. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/gcd.hpp +0 -30
  1834. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater.hpp +0 -30
  1835. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater_equal.hpp +0 -30
  1836. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/lcm.hpp +0 -30
  1837. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less.hpp +0 -30
  1838. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less_equal.hpp +0 -30
  1839. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/minus.hpp +0 -30
  1840. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/negate.hpp +0 -30
  1841. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/not_equal_to.hpp +0 -30
  1842. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/numeric_cast.hpp +0 -31
  1843. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/plus.hpp +0 -30
  1844. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_c_tag.hpp +0 -25
  1845. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_constant.hpp +0 -15
  1846. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/sign.hpp +0 -30
  1847. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/times.hpp +0 -30
  1848. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/indexed_bit_flag.hpp +0 -54
  1849. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/operator_bool.hpp +0 -64
  1850. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_forward.hpp +0 -52
  1851. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_nullptr_t.hpp +0 -45
  1852. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_obsolete.hpp +0 -32
  1853. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_thread_pause.hpp +0 -51
  1854. data/src/cxx_supportlib/vendor-modified/boost/swap.hpp +0 -17
  1855. data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +0 -278
  1856. data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +0 -297
  1857. data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +0 -265
  1858. data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +0 -100
  1859. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -58
  1860. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +0 -34
  1861. data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +0 -118
  1862. data/src/cxx_supportlib/vendor-modified/boost/typeof/integral_template_param.hpp +0 -80
  1863. data/src/cxx_supportlib/vendor-modified/boost/typeof/message.hpp +0 -8
  1864. data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +0 -121
  1865. data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +0 -60
  1866. data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +0 -38
  1867. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions.hpp +0 -50
  1868. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +0 -135
  1869. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_fundamental.hpp +0 -61
  1870. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +0 -32
  1871. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +0 -160
  1872. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +0 -149
  1873. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +0 -27
  1874. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_template_param.hpp +0 -37
  1875. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +0 -187
  1876. data/src/cxx_supportlib/vendor-modified/boost/typeof/unsupported.hpp +0 -29
  1877. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +0 -166
  1878. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +0 -321
  1879. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +0 -471
  1880. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +0 -621
  1881. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +0 -171
  1882. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +0 -63
  1883. data/src/cxx_supportlib/vendor-modified/websocketpp/COPYING +0 -145
  1884. data/src/cxx_supportlib/vendor-modified/websocketpp/changelog.md +0 -444
  1885. data/src/cxx_supportlib/vendor-modified/websocketpp/readme.md +0 -49
  1886. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/base64/base64.hpp +0 -178
  1887. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/client.hpp +0 -33
  1888. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/close.hpp +0 -353
  1889. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/asio.hpp +0 -141
  1890. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/asio_ssl.hpp +0 -39
  1891. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/chrono.hpp +0 -68
  1892. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/connection_hdl.hpp +0 -52
  1893. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/cpp11.hpp +0 -162
  1894. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/functional.hpp +0 -100
  1895. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/md5.hpp +0 -448
  1896. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/memory.hpp +0 -88
  1897. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/network.hpp +0 -106
  1898. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/platforms.hpp +0 -46
  1899. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/random.hpp +0 -82
  1900. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/regex.hpp +0 -59
  1901. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/stdint.hpp +0 -73
  1902. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/system_error.hpp +0 -84
  1903. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/thread.hpp +0 -88
  1904. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/time.hpp +0 -56
  1905. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/type_traits.hpp +0 -65
  1906. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/concurrency/basic.hpp +0 -46
  1907. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/concurrency/none.hpp +0 -80
  1908. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio.hpp +0 -77
  1909. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio_client.hpp +0 -77
  1910. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio_no_tls.hpp +0 -73
  1911. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio_no_tls_client.hpp +0 -73
  1912. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/boost_config.hpp +0 -72
  1913. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/core.hpp +0 -297
  1914. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/core_client.hpp +0 -294
  1915. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/debug.hpp +0 -286
  1916. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/debug_asio.hpp +0 -77
  1917. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/debug_asio_no_tls.hpp +0 -73
  1918. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/minimal_client.hpp +0 -72
  1919. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/minimal_server.hpp +0 -312
  1920. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/connection.hpp +0 -1642
  1921. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/connection_base.hpp +0 -38
  1922. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/endpoint.hpp +0 -700
  1923. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/endpoint_base.hpp +0 -38
  1924. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/error.hpp +0 -277
  1925. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/extensions/extension.hpp +0 -102
  1926. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/extensions/permessage_deflate/disabled.hpp +0 -129
  1927. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/extensions/permessage_deflate/enabled.hpp +0 -817
  1928. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/frame.hpp +0 -864
  1929. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/constants.hpp +0 -308
  1930. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/impl/parser.hpp +0 -200
  1931. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/impl/request.hpp +0 -191
  1932. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/impl/response.hpp +0 -266
  1933. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/parser.hpp +0 -629
  1934. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/request.hpp +0 -124
  1935. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/response.hpp +0 -188
  1936. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/impl/connection_impl.hpp +0 -2375
  1937. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/impl/endpoint_impl.hpp +0 -269
  1938. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/impl/utilities_impl.hpp +0 -87
  1939. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/basic.hpp +0 -199
  1940. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/levels.hpp +0 -203
  1941. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/stub.hpp +0 -119
  1942. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/syslog.hpp +0 -146
  1943. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/message_buffer/alloc.hpp +0 -105
  1944. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/message_buffer/message.hpp +0 -340
  1945. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/message_buffer/pool.hpp +0 -229
  1946. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/base.hpp +0 -299
  1947. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi00.hpp +0 -462
  1948. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi07.hpp +0 -78
  1949. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi08.hpp +0 -83
  1950. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi13.hpp +0 -1078
  1951. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/processor.hpp +0 -407
  1952. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/random/none.hpp +0 -60
  1953. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/random/random_device.hpp +0 -80
  1954. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/roles/client_endpoint.hpp +0 -173
  1955. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/roles/server_endpoint.hpp +0 -195
  1956. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/server.hpp +0 -33
  1957. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/sha1/sha1.hpp +0 -189
  1958. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/base.hpp +0 -232
  1959. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/connection.hpp +0 -1197
  1960. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/endpoint.hpp +0 -1182
  1961. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/security/base.hpp +0 -159
  1962. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/security/none.hpp +0 -372
  1963. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/security/tls.hpp +0 -474
  1964. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/base/connection.hpp +0 -238
  1965. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/base/endpoint.hpp +0 -77
  1966. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/debug/base.hpp +0 -104
  1967. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/debug/connection.hpp +0 -412
  1968. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/debug/endpoint.hpp +0 -140
  1969. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/iostream/base.hpp +0 -133
  1970. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/iostream/connection.hpp +0 -714
  1971. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/iostream/endpoint.hpp +0 -222
  1972. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/stub/base.hpp +0 -95
  1973. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/stub/connection.hpp +0 -286
  1974. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/stub/endpoint.hpp +0 -140
  1975. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/uri.hpp +0 -356
  1976. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/utf8_validator.hpp +0 -154
  1977. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/utilities.hpp +0 -180
  1978. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/version.hpp +0 -61
@@ -1,6 +1,7 @@
1
-
2
1
  // Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard.
3
2
  // Copyright (C) 2005-2011 Daniel James.
3
+ // Copyright (C) 2022-2023 Christian Mazakas
4
+ // Copyright (C) 2024 Joaquin M Lopez Munoz.
4
5
  // Distributed under the Boost Software License, Version 1.0. (See accompanying
5
6
  // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6
7
 
@@ -14,14 +15,13 @@
14
15
  #pragma once
15
16
  #endif
16
17
 
17
- #include <boost/core/explicit_operator_bool.hpp>
18
- #include <boost/functional/hash.hpp>
19
- #include <boost/move/move.hpp>
18
+ #include <boost/unordered/detail/serialize_fca_container.hpp>
20
19
  #include <boost/unordered/detail/set.hpp>
20
+ #include <boost/unordered/detail/type_traits.hpp>
21
+
22
+ #include <boost/container_hash/hash.hpp>
21
23
 
22
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
23
24
  #include <initializer_list>
24
- #endif
25
25
 
26
26
  #if defined(BOOST_MSVC)
27
27
  #pragma warning(push)
@@ -38,9 +38,6 @@ namespace boost {
38
38
  namespace unordered {
39
39
  template <class T, class H, class P, class A> class unordered_set
40
40
  {
41
- #if defined(BOOST_UNORDERED_USE_MOVE)
42
- BOOST_COPYABLE_AND_MOVABLE(unordered_set)
43
- #endif
44
41
  template <typename, typename, typename, typename>
45
42
  friend class unordered_multiset;
46
43
 
@@ -55,8 +52,6 @@ namespace boost {
55
52
  typedef boost::unordered::detail::set<A, T, H, P> types;
56
53
  typedef typename types::value_allocator_traits value_allocator_traits;
57
54
  typedef typename types::table table;
58
- typedef typename table::node_pointer node_pointer;
59
- typedef typename table::link_pointer link_pointer;
60
55
 
61
56
  public:
62
57
  typedef typename value_allocator_traits::pointer pointer;
@@ -68,9 +63,9 @@ namespace boost {
68
63
  typedef std::size_t size_type;
69
64
  typedef std::ptrdiff_t difference_type;
70
65
 
71
- typedef typename table::iterator iterator;
66
+ typedef typename table::c_iterator iterator;
72
67
  typedef typename table::c_iterator const_iterator;
73
- typedef typename table::l_iterator local_iterator;
68
+ typedef typename table::cl_iterator local_iterator;
74
69
  typedef typename table::cl_iterator const_local_iterator;
75
70
  typedef typename types::node_type node_type;
76
71
  typedef typename types::insert_return_type insert_return_type;
@@ -95,33 +90,31 @@ namespace boost {
95
90
 
96
91
  unordered_set(unordered_set const&);
97
92
 
98
- #if defined(BOOST_UNORDERED_USE_MOVE) || \
99
- !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
100
- unordered_set(BOOST_RV_REF(unordered_set) other)
101
- BOOST_NOEXCEPT_IF(table::nothrow_move_constructible)
93
+ unordered_set(unordered_set&& other)
94
+ noexcept(table::nothrow_move_constructible)
102
95
  : table_(other.table_, boost::unordered::detail::move_tag())
103
96
  {
104
97
  // The move is done in table_
105
98
  }
106
- #endif
107
99
 
108
100
  explicit unordered_set(allocator_type const&);
109
101
 
110
102
  unordered_set(unordered_set const&, allocator_type const&);
111
103
 
112
- unordered_set(BOOST_RV_REF(unordered_set), allocator_type const&);
104
+ unordered_set(unordered_set&&, allocator_type const&);
113
105
 
114
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
115
106
  unordered_set(std::initializer_list<value_type>,
116
107
  size_type = boost::unordered::detail::default_bucket_count,
117
108
  const hasher& = hasher(), const key_equal& l = key_equal(),
118
109
  const allocator_type& = allocator_type());
119
- #endif
120
110
 
121
111
  explicit unordered_set(size_type, const allocator_type&);
122
112
 
123
113
  explicit unordered_set(size_type, const hasher&, const allocator_type&);
124
114
 
115
+ template <class InputIterator>
116
+ unordered_set(InputIterator, InputIterator, const allocator_type&);
117
+
125
118
  template <class InputIt>
126
119
  unordered_set(InputIt, InputIt, size_type, const allocator_type&);
127
120
 
@@ -129,339 +122,206 @@ namespace boost {
129
122
  unordered_set(
130
123
  InputIt, InputIt, size_type, const hasher&, const allocator_type&);
131
124
 
132
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
125
+ unordered_set(std::initializer_list<value_type>, const allocator_type&);
126
+
133
127
  unordered_set(
134
128
  std::initializer_list<value_type>, size_type, const allocator_type&);
135
129
 
136
130
  unordered_set(std::initializer_list<value_type>, size_type, const hasher&,
137
131
  const allocator_type&);
138
- #endif
139
132
 
140
133
  // Destructor
141
134
 
142
- ~unordered_set() BOOST_NOEXCEPT;
143
-
144
- // Assign
135
+ ~unordered_set() noexcept;
145
136
 
146
- #if defined(BOOST_UNORDERED_USE_MOVE)
147
- unordered_set& operator=(BOOST_COPY_ASSIGN_REF(unordered_set) x)
148
- {
149
- table_.assign(x.table_, boost::unordered::detail::true_type());
150
- return *this;
151
- }
137
+ // Assign
152
138
 
153
- unordered_set& operator=(BOOST_RV_REF(unordered_set) x)
154
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
155
- boost::is_nothrow_move_assignable<H>::value&&
156
- boost::is_nothrow_move_assignable<P>::value)
157
- {
158
- table_.move_assign(x.table_, boost::unordered::detail::true_type());
159
- return *this;
160
- }
161
- #else
162
139
  unordered_set& operator=(unordered_set const& x)
163
140
  {
164
- table_.assign(x.table_, boost::unordered::detail::true_type());
141
+ table_.assign(x.table_, std::true_type());
165
142
  return *this;
166
143
  }
167
144
 
168
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
169
145
  unordered_set& operator=(unordered_set&& x)
170
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
171
- boost::is_nothrow_move_assignable<H>::value&&
172
- boost::is_nothrow_move_assignable<P>::value)
146
+ noexcept(value_allocator_traits::is_always_equal::value&&
147
+ std::is_nothrow_move_assignable<H>::value&&
148
+ std::is_nothrow_move_assignable<P>::value)
173
149
  {
174
- table_.move_assign(x.table_, boost::unordered::detail::true_type());
150
+ table_.move_assign(x.table_, std::true_type());
175
151
  return *this;
176
152
  }
177
- #endif
178
- #endif
179
153
 
180
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
181
154
  unordered_set& operator=(std::initializer_list<value_type>);
182
- #endif
183
155
 
184
- allocator_type get_allocator() const BOOST_NOEXCEPT
156
+ allocator_type get_allocator() const noexcept
185
157
  {
186
- return table_.node_alloc();
158
+ return allocator_type(table_.node_alloc());
187
159
  }
188
160
 
189
161
  // iterators
190
162
 
191
- iterator begin() BOOST_NOEXCEPT { return iterator(table_.begin()); }
163
+ iterator begin() noexcept { return iterator(table_.begin()); }
192
164
 
193
- const_iterator begin() const BOOST_NOEXCEPT
165
+ const_iterator begin() const noexcept
194
166
  {
195
167
  return const_iterator(table_.begin());
196
168
  }
197
169
 
198
- iterator end() BOOST_NOEXCEPT { return iterator(); }
170
+ iterator end() noexcept { return iterator(); }
199
171
 
200
- const_iterator end() const BOOST_NOEXCEPT { return const_iterator(); }
172
+ const_iterator end() const noexcept { return const_iterator(); }
201
173
 
202
- const_iterator cbegin() const BOOST_NOEXCEPT
174
+ const_iterator cbegin() const noexcept
203
175
  {
204
176
  return const_iterator(table_.begin());
205
177
  }
206
178
 
207
- const_iterator cend() const BOOST_NOEXCEPT { return const_iterator(); }
179
+ const_iterator cend() const noexcept { return const_iterator(); }
208
180
 
209
181
  // size and capacity
210
182
 
211
- bool empty() const BOOST_NOEXCEPT { return table_.size_ == 0; }
212
-
213
- size_type size() const BOOST_NOEXCEPT { return table_.size_; }
214
-
215
- size_type max_size() const BOOST_NOEXCEPT;
216
-
217
- // emplace
218
-
219
- #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
220
-
221
- template <class... Args>
222
- std::pair<iterator, bool> emplace(BOOST_FWD_REF(Args)... args)
223
- {
224
- return table_.emplace_unique(
225
- table::extractor::extract(boost::forward<Args>(args)...),
226
- boost::forward<Args>(args)...);
227
- }
228
-
229
- #else
230
-
231
- #if !BOOST_UNORDERED_SUN_WORKAROUNDS1
232
-
233
- // 0 argument emplace requires special treatment in case
234
- // the container is instantiated with a value type that
235
- // doesn't have a default constructor.
236
-
237
- std::pair<iterator, bool> emplace(
238
- boost::unordered::detail::empty_emplace =
239
- boost::unordered::detail::empty_emplace(),
240
- value_type v = value_type())
183
+ BOOST_ATTRIBUTE_NODISCARD bool empty() const noexcept
241
184
  {
242
- return this->emplace(boost::move(v));
185
+ return table_.size_ == 0;
243
186
  }
244
187
 
245
- #endif
188
+ size_type size() const noexcept { return table_.size_; }
246
189
 
247
- template <typename A0>
248
- std::pair<iterator, bool> emplace(BOOST_FWD_REF(A0) a0)
249
- {
250
- return table_.emplace_unique(
251
- table::extractor::extract(boost::forward<A0>(a0)),
252
- boost::unordered::detail::create_emplace_args(
253
- boost::forward<A0>(a0)));
254
- }
190
+ size_type max_size() const noexcept;
255
191
 
256
- template <typename A0, typename A1>
257
- std::pair<iterator, bool> emplace(
258
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
259
- {
260
- return table_.emplace_unique(
261
- table::extractor::extract(
262
- boost::forward<A0>(a0), boost::forward<A1>(a1)),
263
- boost::unordered::detail::create_emplace_args(
264
- boost::forward<A0>(a0), boost::forward<A1>(a1)));
265
- }
192
+ // emplace
266
193
 
267
- template <typename A0, typename A1, typename A2>
268
- std::pair<iterator, bool> emplace(
269
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
194
+ template <class... Args> std::pair<iterator, bool> emplace(Args&&... args)
270
195
  {
271
196
  return table_.emplace_unique(
272
- table::extractor::extract(
273
- boost::forward<A0>(a0), boost::forward<A1>(a1)),
274
- boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
275
- boost::forward<A1>(a1), boost::forward<A2>(a2)));
197
+ table::extractor::extract(detail::as_const(args)...),
198
+ std::forward<Args>(args)...);
276
199
  }
277
200
 
278
- #endif
279
-
280
- #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
281
-
282
201
  template <class... Args>
283
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(Args)... args)
202
+ iterator emplace_hint(const_iterator hint, Args&&... args)
284
203
  {
285
204
  return table_.emplace_hint_unique(hint,
286
- table::extractor::extract(boost::forward<Args>(args)...),
287
- boost::forward<Args>(args)...);
288
- }
289
-
290
- #else
291
-
292
- #if !BOOST_UNORDERED_SUN_WORKAROUNDS1
293
-
294
- iterator emplace_hint(const_iterator hint,
295
- boost::unordered::detail::empty_emplace =
296
- boost::unordered::detail::empty_emplace(),
297
- value_type v = value_type())
298
- {
299
- return this->emplace_hint(hint, boost::move(v));
205
+ table::extractor::extract(detail::as_const(args)...),
206
+ std::forward<Args>(args)...);
300
207
  }
301
208
 
302
- #endif
303
-
304
- template <typename A0>
305
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(A0) a0)
209
+ std::pair<iterator, bool> insert(value_type const& x)
306
210
  {
307
- return table_.emplace_hint_unique(hint,
308
- table::extractor::extract(boost::forward<A0>(a0)),
309
- boost::unordered::detail::create_emplace_args(
310
- boost::forward<A0>(a0)));
211
+ return this->emplace(x);
311
212
  }
312
213
 
313
- template <typename A0, typename A1>
314
- iterator emplace_hint(
315
- const_iterator hint, BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
214
+ std::pair<iterator, bool> insert(value_type&& x)
316
215
  {
317
- return table_.emplace_hint_unique(hint,
318
- table::extractor::extract(
319
- boost::forward<A0>(a0), boost::forward<A1>(a1)),
320
- boost::unordered::detail::create_emplace_args(
321
- boost::forward<A0>(a0), boost::forward<A1>(a1)));
216
+ return this->emplace(std::move(x));
322
217
  }
323
218
 
324
- template <typename A0, typename A1, typename A2>
325
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(A0) a0,
326
- BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
219
+ template <class Key>
220
+ typename boost::enable_if_c<
221
+ detail::transparent_non_iterable<Key, unordered_set>::value,
222
+ std::pair<iterator, bool> >::type
223
+ insert(Key&& k)
327
224
  {
328
- return table_.emplace_hint_unique(hint,
329
- table::extractor::extract(
330
- boost::forward<A0>(a0), boost::forward<A1>(a1)),
331
- boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
332
- boost::forward<A1>(a1), boost::forward<A2>(a2)));
225
+ return table_.try_emplace_unique(std::forward<Key>(k));
333
226
  }
334
227
 
335
- #endif
336
-
337
- #if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
338
-
339
- #define BOOST_UNORDERED_EMPLACE(z, n, _) \
340
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
341
- std::pair<iterator, bool> emplace( \
342
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
343
- { \
344
- return table_.emplace_unique( \
345
- table::extractor::extract( \
346
- boost::forward<A0>(a0), boost::forward<A1>(a1)), \
347
- boost::unordered::detail::create_emplace_args( \
348
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
349
- } \
350
- \
351
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
352
- iterator emplace_hint( \
353
- const_iterator hint, BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
354
- { \
355
- return table_.emplace_hint_unique(hint, \
356
- table::extractor::extract( \
357
- boost::forward<A0>(a0), boost::forward<A1>(a1)), \
358
- boost::unordered::detail::create_emplace_args( \
359
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
360
- }
361
-
362
- BOOST_UNORDERED_EMPLACE(1, 4, _)
363
- BOOST_UNORDERED_EMPLACE(1, 5, _)
364
- BOOST_UNORDERED_EMPLACE(1, 6, _)
365
- BOOST_UNORDERED_EMPLACE(1, 7, _)
366
- BOOST_UNORDERED_EMPLACE(1, 8, _)
367
- BOOST_UNORDERED_EMPLACE(1, 9, _)
368
- BOOST_PP_REPEAT_FROM_TO(10, BOOST_PP_INC(BOOST_UNORDERED_EMPLACE_LIMIT),
369
- BOOST_UNORDERED_EMPLACE, _)
370
-
371
- #undef BOOST_UNORDERED_EMPLACE
372
-
373
- #endif
374
-
375
- std::pair<iterator, bool> insert(value_type const& x)
376
- {
377
- return this->emplace(x);
378
- }
379
-
380
- std::pair<iterator, bool> insert(BOOST_UNORDERED_RV_REF(value_type) x)
228
+ iterator insert(const_iterator hint, value_type const& x)
381
229
  {
382
- return this->emplace(boost::move(x));
230
+ return this->emplace_hint(hint, x);
383
231
  }
384
232
 
385
- iterator insert(const_iterator hint, value_type const& x)
233
+ iterator insert(const_iterator hint, value_type&& x)
386
234
  {
387
- return this->emplace_hint(hint, x);
235
+ return this->emplace_hint(hint, std::move(x));
388
236
  }
389
237
 
390
- iterator insert(const_iterator hint, BOOST_UNORDERED_RV_REF(value_type) x)
238
+ template <class Key>
239
+ typename boost::enable_if_c<
240
+ detail::transparent_non_iterable<Key, unordered_set>::value,
241
+ iterator>::type
242
+ insert(const_iterator hint, Key&& k)
391
243
  {
392
- return this->emplace_hint(hint, boost::move(x));
244
+ return table_.try_emplace_hint_unique(hint, std::forward<Key>(k));
393
245
  }
394
246
 
395
247
  template <class InputIt> void insert(InputIt, InputIt);
396
248
 
397
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
398
249
  void insert(std::initializer_list<value_type>);
399
- #endif
400
250
 
401
251
  // extract
402
252
 
403
253
  node_type extract(const_iterator position)
404
254
  {
405
255
  return node_type(
406
- table_.extract_by_iterator_unique(position), table_.node_alloc());
256
+ table_.extract_by_iterator_unique(position),
257
+ allocator_type(table_.node_alloc()));
407
258
  }
408
259
 
409
260
  node_type extract(const key_type& k)
410
261
  {
411
- return node_type(table_.extract_by_key(k), table_.node_alloc());
262
+ return node_type(
263
+ table_.extract_by_key_impl(k),
264
+ allocator_type(table_.node_alloc()));
412
265
  }
413
266
 
414
- insert_return_type insert(BOOST_RV_REF(node_type) np)
267
+ template <class Key>
268
+ typename boost::enable_if_c<
269
+ detail::transparent_non_iterable<Key, unordered_set>::value,
270
+ node_type>::type
271
+ extract(const Key& k)
272
+ {
273
+ return node_type(
274
+ table_.extract_by_key_impl(k),
275
+ allocator_type(table_.node_alloc()));
276
+ }
277
+
278
+ insert_return_type insert(node_type&& np)
415
279
  {
416
280
  insert_return_type result;
417
281
  table_.move_insert_node_type_unique(np, result);
418
- return boost::move(result);
282
+ return result;
419
283
  }
420
284
 
421
- iterator insert(const_iterator hint, BOOST_RV_REF(node_type) np)
285
+ iterator insert(const_iterator hint, node_type&& np)
422
286
  {
423
287
  return table_.move_insert_node_type_with_hint_unique(hint, np);
424
288
  }
425
289
 
426
- #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \
427
- (BOOST_COMP_GNUC && BOOST_COMP_GNUC < BOOST_VERSION_NUMBER(4, 6, 0))
428
- private:
429
- // Note: Use r-value node_type to insert.
430
- insert_return_type insert(node_type&);
431
- iterator insert(const_iterator, node_type& np);
432
-
433
- public:
434
- #endif
435
-
436
290
  iterator erase(const_iterator);
437
291
  size_type erase(const key_type&);
438
292
  iterator erase(const_iterator, const_iterator);
293
+
294
+ template <class Key>
295
+ typename boost::enable_if_c<
296
+ detail::transparent_non_iterable<Key, unordered_set>::value,
297
+ size_type>::type
298
+ erase(Key&& k)
299
+ {
300
+ return table_.erase_key_unique_impl(std::forward<Key>(k));
301
+ }
302
+
439
303
  BOOST_UNORDERED_DEPRECATED("Use erase instead")
440
304
  void quick_erase(const_iterator it) { erase(it); }
441
305
  BOOST_UNORDERED_DEPRECATED("Use erase instead")
442
306
  void erase_return_void(const_iterator it) { erase(it); }
443
307
 
444
308
  void swap(unordered_set&)
445
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
446
- boost::is_nothrow_swappable<H>::value&&
447
- boost::is_nothrow_swappable<P>::value);
448
- void clear() BOOST_NOEXCEPT { table_.clear_impl(); }
309
+ noexcept(value_allocator_traits::is_always_equal::value&&
310
+ boost::unordered::detail::is_nothrow_swappable<H>::value&&
311
+ boost::unordered::detail::is_nothrow_swappable<P>::value);
312
+ void clear() noexcept { table_.clear_impl(); }
449
313
 
450
314
  template <typename H2, typename P2>
451
315
  void merge(boost::unordered_set<T, H2, P2, A>& source);
452
316
 
453
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
454
317
  template <typename H2, typename P2>
455
318
  void merge(boost::unordered_set<T, H2, P2, A>&& source);
456
- #endif
457
319
 
458
320
  template <typename H2, typename P2>
459
321
  void merge(boost::unordered_multiset<T, H2, P2, A>& source);
460
322
 
461
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
462
323
  template <typename H2, typename P2>
463
324
  void merge(boost::unordered_multiset<T, H2, P2, A>&& source);
464
- #endif
465
325
 
466
326
  // observers
467
327
 
@@ -472,24 +332,64 @@ namespace boost {
472
332
 
473
333
  const_iterator find(const key_type&) const;
474
334
 
335
+ template <class Key>
336
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
337
+ const_iterator>::type
338
+ find(const Key& k) const
339
+ {
340
+ return const_iterator(table_.find(k));
341
+ }
342
+
475
343
  template <class CompatibleKey, class CompatibleHash,
476
344
  class CompatiblePredicate>
477
345
  const_iterator find(CompatibleKey const&, CompatibleHash const&,
478
346
  CompatiblePredicate const&) const;
479
347
 
348
+ bool contains(key_type const& k) const
349
+ {
350
+ return table_.find(k) != this->end();
351
+ }
352
+
353
+ template <class Key>
354
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
355
+ bool>::type
356
+ contains(const Key& k) const
357
+ {
358
+ return table_.find(k) != this->end();
359
+ }
360
+
480
361
  size_type count(const key_type&) const;
481
362
 
363
+ template <class Key>
364
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
365
+ size_type>::type
366
+ count(const Key& k) const
367
+ {
368
+ return table_.find(k) != this->end() ? 1 : 0;
369
+ }
370
+
482
371
  std::pair<const_iterator, const_iterator> equal_range(
483
372
  const key_type&) const;
484
373
 
485
- // bucket interface
486
-
487
- size_type bucket_count() const BOOST_NOEXCEPT
374
+ template <class Key>
375
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
376
+ std::pair<const_iterator, const_iterator> >::type
377
+ equal_range(Key const& k) const
488
378
  {
489
- return table_.bucket_count_;
379
+ iterator n = table_.find(k);
380
+ iterator m = n;
381
+ if (m != this->end()) {
382
+ ++m;
383
+ }
384
+
385
+ return std::make_pair(const_iterator(n), const_iterator(m));
490
386
  }
491
387
 
492
- size_type max_bucket_count() const BOOST_NOEXCEPT
388
+ // bucket interface
389
+
390
+ size_type bucket_count() const noexcept { return table_.bucket_count(); }
391
+
392
+ size_type max_bucket_count() const noexcept
493
393
  {
494
394
  return table_.max_bucket_count();
495
395
  }
@@ -501,14 +401,22 @@ namespace boost {
501
401
  return table_.hash_to_bucket(table_.hash(k));
502
402
  }
503
403
 
404
+ template <class Key>
405
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
406
+ size_type>::type
407
+ bucket(Key&& k) const
408
+ {
409
+ return table_.hash_to_bucket(table_.hash(std::forward<Key>(k)));
410
+ }
411
+
504
412
  local_iterator begin(size_type n)
505
413
  {
506
- return local_iterator(table_.begin(n), n, table_.bucket_count_);
414
+ return local_iterator(table_.begin(n));
507
415
  }
508
416
 
509
417
  const_local_iterator begin(size_type n) const
510
418
  {
511
- return const_local_iterator(table_.begin(n), n, table_.bucket_count_);
419
+ return const_local_iterator(table_.begin(n));
512
420
  }
513
421
 
514
422
  local_iterator end(size_type) { return local_iterator(); }
@@ -520,7 +428,7 @@ namespace boost {
520
428
 
521
429
  const_local_iterator cbegin(size_type n) const
522
430
  {
523
- return const_local_iterator(table_.begin(n), n, table_.bucket_count_);
431
+ return const_local_iterator(table_.begin(n));
524
432
  }
525
433
 
526
434
  const_local_iterator cend(size_type) const
@@ -530,9 +438,9 @@ namespace boost {
530
438
 
531
439
  // hash policy
532
440
 
533
- float load_factor() const BOOST_NOEXCEPT;
534
- float max_load_factor() const BOOST_NOEXCEPT { return table_.mlf_; }
535
- void max_load_factor(float) BOOST_NOEXCEPT;
441
+ float load_factor() const noexcept;
442
+ float max_load_factor() const noexcept { return table_.mlf_; }
443
+ void max_load_factor(float) noexcept;
536
444
  void rehash(size_type);
537
445
  void reserve(size_type);
538
446
 
@@ -544,6 +452,13 @@ namespace boost {
544
452
  #endif
545
453
  }; // class template unordered_set
546
454
 
455
+ template <class Archive, class K, class H, class P, class A>
456
+ void serialize(
457
+ Archive& ar, unordered_set<K, H, P, A>& c, unsigned int version)
458
+ {
459
+ detail::serialize_fca_container(ar, c, version);
460
+ }
461
+
547
462
  #if BOOST_UNORDERED_TEMPLATE_DEDUCTION_GUIDES
548
463
 
549
464
  template <class InputIterator,
@@ -552,49 +467,75 @@ namespace boost {
552
467
  class Pred =
553
468
  std::equal_to<typename std::iterator_traits<InputIterator>::value_type>,
554
469
  class Allocator = std::allocator<
555
- typename std::iterator_traits<InputIterator>::value_type> >
470
+ typename std::iterator_traits<InputIterator>::value_type>,
471
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
472
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
473
+ class = std::enable_if_t<detail::is_pred_v<Pred> >,
474
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
556
475
  unordered_set(InputIterator, InputIterator,
557
476
  std::size_t = boost::unordered::detail::default_bucket_count,
558
477
  Hash = Hash(), Pred = Pred(), Allocator = Allocator())
559
- ->unordered_set<typename std::iterator_traits<InputIterator>::value_type,
478
+ -> unordered_set<typename std::iterator_traits<InputIterator>::value_type,
560
479
  Hash, Pred, Allocator>;
561
480
 
562
481
  template <class T, class Hash = boost::hash<T>,
563
- class Pred = std::equal_to<T>, class Allocator = std::allocator<T> >
482
+ class Pred = std::equal_to<T>, class Allocator = std::allocator<T>,
483
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
484
+ class = std::enable_if_t<detail::is_pred_v<Pred> >,
485
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
564
486
  unordered_set(std::initializer_list<T>,
565
487
  std::size_t = boost::unordered::detail::default_bucket_count,
566
488
  Hash = Hash(), Pred = Pred(), Allocator = Allocator())
567
- ->unordered_set<T, Hash, Pred, Allocator>;
489
+ -> unordered_set<T, Hash, Pred, Allocator>;
568
490
 
569
- template <class InputIterator, class Allocator>
491
+ template <class InputIterator, class Allocator,
492
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
493
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
570
494
  unordered_set(InputIterator, InputIterator, std::size_t, Allocator)
571
- ->unordered_set<typename std::iterator_traits<InputIterator>::value_type,
495
+ -> unordered_set<typename std::iterator_traits<InputIterator>::value_type,
572
496
  boost::hash<typename std::iterator_traits<InputIterator>::value_type>,
573
497
  std::equal_to<typename std::iterator_traits<InputIterator>::value_type>,
574
498
  Allocator>;
575
499
 
576
- template <class InputIterator, class Hash, class Allocator>
500
+ template <class InputIterator, class Hash, class Allocator,
501
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
502
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
503
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
577
504
  unordered_set(InputIterator, InputIterator, std::size_t, Hash, Allocator)
578
- ->unordered_set<typename std::iterator_traits<InputIterator>::value_type,
505
+ -> unordered_set<typename std::iterator_traits<InputIterator>::value_type,
579
506
  Hash,
580
507
  std::equal_to<typename std::iterator_traits<InputIterator>::value_type>,
581
508
  Allocator>;
582
509
 
583
- template <class T, class Allocator>
510
+ template <class T, class Allocator,
511
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
584
512
  unordered_set(std::initializer_list<T>, std::size_t, Allocator)
585
- ->unordered_set<T, boost::hash<T>, std::equal_to<T>, Allocator>;
513
+ -> unordered_set<T, boost::hash<T>, std::equal_to<T>, Allocator>;
586
514
 
587
- template <class T, class Hash, class Allocator>
515
+ template <class T, class Hash, class Allocator,
516
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
517
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
588
518
  unordered_set(std::initializer_list<T>, std::size_t, Hash, Allocator)
589
- ->unordered_set<T, Hash, std::equal_to<T>, Allocator>;
519
+ -> unordered_set<T, Hash, std::equal_to<T>, Allocator>;
520
+
521
+ template <class InputIterator, class Allocator,
522
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
523
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
524
+ unordered_set(InputIterator, InputIterator, Allocator)
525
+ -> unordered_set<typename std::iterator_traits<InputIterator>::value_type,
526
+ boost::hash<typename std::iterator_traits<InputIterator>::value_type>,
527
+ std::equal_to<typename std::iterator_traits<InputIterator>::value_type>,
528
+ Allocator>;
529
+
530
+ template <class T, class Allocator,
531
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
532
+ unordered_set(std::initializer_list<T>, Allocator)
533
+ -> unordered_set<T, boost::hash<T>, std::equal_to<T>, Allocator>;
590
534
 
591
535
  #endif
592
536
 
593
537
  template <class T, class H, class P, class A> class unordered_multiset
594
538
  {
595
- #if defined(BOOST_UNORDERED_USE_MOVE)
596
- BOOST_COPYABLE_AND_MOVABLE(unordered_multiset)
597
- #endif
598
539
  template <typename, typename, typename, typename>
599
540
  friend class unordered_set;
600
541
 
@@ -609,8 +550,6 @@ namespace boost {
609
550
  typedef boost::unordered::detail::set<A, T, H, P> types;
610
551
  typedef typename types::value_allocator_traits value_allocator_traits;
611
552
  typedef typename types::table table;
612
- typedef typename table::node_pointer node_pointer;
613
- typedef typename table::link_pointer link_pointer;
614
553
 
615
554
  public:
616
555
  typedef typename value_allocator_traits::pointer pointer;
@@ -622,9 +561,9 @@ namespace boost {
622
561
  typedef std::size_t size_type;
623
562
  typedef std::ptrdiff_t difference_type;
624
563
 
625
- typedef typename table::iterator iterator;
564
+ typedef typename table::c_iterator iterator;
626
565
  typedef typename table::c_iterator const_iterator;
627
- typedef typename table::l_iterator local_iterator;
566
+ typedef typename table::cl_iterator local_iterator;
628
567
  typedef typename table::cl_iterator const_local_iterator;
629
568
  typedef typename types::node_type node_type;
630
569
 
@@ -648,35 +587,32 @@ namespace boost {
648
587
 
649
588
  unordered_multiset(unordered_multiset const&);
650
589
 
651
- #if defined(BOOST_UNORDERED_USE_MOVE) || \
652
- !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
653
- unordered_multiset(BOOST_RV_REF(unordered_multiset) other)
654
- BOOST_NOEXCEPT_IF(table::nothrow_move_constructible)
590
+ unordered_multiset(unordered_multiset&& other)
591
+ noexcept(table::nothrow_move_constructible)
655
592
  : table_(other.table_, boost::unordered::detail::move_tag())
656
593
  {
657
594
  // The move is done in table_
658
595
  }
659
- #endif
660
596
 
661
597
  explicit unordered_multiset(allocator_type const&);
662
598
 
663
599
  unordered_multiset(unordered_multiset const&, allocator_type const&);
664
600
 
665
- unordered_multiset(
666
- BOOST_RV_REF(unordered_multiset), allocator_type const&);
601
+ unordered_multiset(unordered_multiset&&, allocator_type const&);
667
602
 
668
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
669
603
  unordered_multiset(std::initializer_list<value_type>,
670
604
  size_type = boost::unordered::detail::default_bucket_count,
671
605
  const hasher& = hasher(), const key_equal& l = key_equal(),
672
606
  const allocator_type& = allocator_type());
673
- #endif
674
607
 
675
608
  explicit unordered_multiset(size_type, const allocator_type&);
676
609
 
677
610
  explicit unordered_multiset(
678
611
  size_type, const hasher&, const allocator_type&);
679
612
 
613
+ template <class InputIterator>
614
+ unordered_multiset(InputIterator, InputIterator, const allocator_type&);
615
+
680
616
  template <class InputIt>
681
617
  unordered_multiset(InputIt, InputIt, size_type, const allocator_type&);
682
618
 
@@ -684,268 +620,107 @@ namespace boost {
684
620
  unordered_multiset(
685
621
  InputIt, InputIt, size_type, const hasher&, const allocator_type&);
686
622
 
687
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
623
+ unordered_multiset(
624
+ std::initializer_list<value_type>, const allocator_type&);
625
+
688
626
  unordered_multiset(
689
627
  std::initializer_list<value_type>, size_type, const allocator_type&);
690
628
 
691
629
  unordered_multiset(std::initializer_list<value_type>, size_type,
692
630
  const hasher&, const allocator_type&);
693
- #endif
694
631
 
695
632
  // Destructor
696
633
 
697
- ~unordered_multiset() BOOST_NOEXCEPT;
698
-
699
- // Assign
700
-
701
- #if defined(BOOST_UNORDERED_USE_MOVE)
702
- unordered_multiset& operator=(BOOST_COPY_ASSIGN_REF(unordered_multiset) x)
703
- {
704
- table_.assign(x.table_, boost::unordered::detail::false_type());
705
- return *this;
706
- }
634
+ ~unordered_multiset() noexcept;
707
635
 
708
- unordered_multiset& operator=(BOOST_RV_REF(unordered_multiset) x)
709
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
710
- boost::is_nothrow_move_assignable<H>::value&&
711
- boost::is_nothrow_move_assignable<P>::value)
712
- {
713
- table_.move_assign(x.table_, boost::unordered::detail::false_type());
714
- return *this;
715
- }
716
- #else
636
+ // Assign
717
637
  unordered_multiset& operator=(unordered_multiset const& x)
718
638
  {
719
- table_.assign(x.table_, boost::unordered::detail::false_type());
639
+ table_.assign(x.table_, std::false_type());
720
640
  return *this;
721
641
  }
722
642
 
723
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
724
643
  unordered_multiset& operator=(unordered_multiset&& x)
725
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
726
- boost::is_nothrow_move_assignable<H>::value&&
727
- boost::is_nothrow_move_assignable<P>::value)
644
+ noexcept(value_allocator_traits::is_always_equal::value&&
645
+ std::is_nothrow_move_assignable<H>::value&&
646
+ std::is_nothrow_move_assignable<P>::value)
728
647
  {
729
- table_.move_assign(x.table_, boost::unordered::detail::false_type());
648
+ table_.move_assign(x.table_, std::false_type());
730
649
  return *this;
731
650
  }
732
- #endif
733
- #endif
734
651
 
735
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
736
652
  unordered_multiset& operator=(std::initializer_list<value_type>);
737
- #endif
738
653
 
739
- allocator_type get_allocator() const BOOST_NOEXCEPT
654
+ allocator_type get_allocator() const noexcept
740
655
  {
741
- return table_.node_alloc();
656
+ return allocator_type(table_.node_alloc());
742
657
  }
743
658
 
744
659
  // iterators
745
660
 
746
- iterator begin() BOOST_NOEXCEPT { return iterator(table_.begin()); }
661
+ iterator begin() noexcept { return iterator(table_.begin()); }
747
662
 
748
- const_iterator begin() const BOOST_NOEXCEPT
663
+ const_iterator begin() const noexcept
749
664
  {
750
665
  return const_iterator(table_.begin());
751
666
  }
752
667
 
753
- iterator end() BOOST_NOEXCEPT { return iterator(); }
668
+ iterator end() noexcept { return iterator(); }
754
669
 
755
- const_iterator end() const BOOST_NOEXCEPT { return const_iterator(); }
670
+ const_iterator end() const noexcept { return const_iterator(); }
756
671
 
757
- const_iterator cbegin() const BOOST_NOEXCEPT
672
+ const_iterator cbegin() const noexcept
758
673
  {
759
674
  return const_iterator(table_.begin());
760
675
  }
761
676
 
762
- const_iterator cend() const BOOST_NOEXCEPT { return const_iterator(); }
677
+ const_iterator cend() const noexcept { return const_iterator(); }
763
678
 
764
679
  // size and capacity
765
680
 
766
- bool empty() const BOOST_NOEXCEPT { return table_.size_ == 0; }
767
-
768
- size_type size() const BOOST_NOEXCEPT { return table_.size_; }
769
-
770
- size_type max_size() const BOOST_NOEXCEPT;
771
-
772
- // emplace
773
-
774
- #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
775
-
776
- template <class... Args> iterator emplace(BOOST_FWD_REF(Args)... args)
681
+ BOOST_ATTRIBUTE_NODISCARD bool empty() const noexcept
777
682
  {
778
- return iterator(table_.emplace_equiv(
779
- boost::unordered::detail::func::construct_node_from_args(
780
- table_.node_alloc(), boost::forward<Args>(args)...)));
683
+ return table_.size_ == 0;
781
684
  }
782
685
 
783
- #else
784
-
785
- #if !BOOST_UNORDERED_SUN_WORKAROUNDS1
786
-
787
- // 0 argument emplace requires special treatment in case
788
- // the container is instantiated with a value type that
789
- // doesn't have a default constructor.
686
+ size_type size() const noexcept { return table_.size_; }
790
687
 
791
- iterator emplace(boost::unordered::detail::empty_emplace =
792
- boost::unordered::detail::empty_emplace(),
793
- value_type v = value_type())
794
- {
795
- return this->emplace(boost::move(v));
796
- }
688
+ size_type max_size() const noexcept;
797
689
 
798
- #endif
690
+ // emplace
799
691
 
800
- template <typename A0> iterator emplace(BOOST_FWD_REF(A0) a0)
692
+ template <class... Args> iterator emplace(Args&&... args)
801
693
  {
802
694
  return iterator(table_.emplace_equiv(
803
695
  boost::unordered::detail::func::construct_node_from_args(
804
- table_.node_alloc(), boost::unordered::detail::create_emplace_args(
805
- boost::forward<A0>(a0)))));
696
+ table_.node_alloc(), std::forward<Args>(args)...)));
806
697
  }
807
698
 
808
- template <typename A0, typename A1>
809
- iterator emplace(BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
810
- {
811
- return iterator(table_.emplace_equiv(
812
- boost::unordered::detail::func::construct_node_from_args(
813
- table_.node_alloc(),
814
- boost::unordered::detail::create_emplace_args(
815
- boost::forward<A0>(a0), boost::forward<A1>(a1)))));
816
- }
817
-
818
- template <typename A0, typename A1, typename A2>
819
- iterator emplace(
820
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
821
- {
822
- return iterator(table_.emplace_equiv(
823
- boost::unordered::detail::func::construct_node_from_args(
824
- table_.node_alloc(),
825
- boost::unordered::detail::create_emplace_args(
826
- boost::forward<A0>(a0), boost::forward<A1>(a1),
827
- boost::forward<A2>(a2)))));
828
- }
829
-
830
- #endif
831
-
832
- #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
833
-
834
699
  template <class... Args>
835
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(Args)... args)
836
- {
837
- return iterator(table_.emplace_hint_equiv(
838
- hint, boost::unordered::detail::func::construct_node_from_args(
839
- table_.node_alloc(), boost::forward<Args>(args)...)));
840
- }
841
-
842
- #else
843
-
844
- #if !BOOST_UNORDERED_SUN_WORKAROUNDS1
845
-
846
- iterator emplace_hint(const_iterator hint,
847
- boost::unordered::detail::empty_emplace =
848
- boost::unordered::detail::empty_emplace(),
849
- value_type v = value_type())
850
- {
851
- return this->emplace_hint(hint, boost::move(v));
852
- }
853
-
854
- #endif
855
-
856
- template <typename A0>
857
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(A0) a0)
858
- {
859
- return iterator(table_.emplace_hint_equiv(hint,
860
- boost::unordered::detail::func::construct_node_from_args(
861
- table_.node_alloc(), boost::unordered::detail::create_emplace_args(
862
- boost::forward<A0>(a0)))));
863
- }
864
-
865
- template <typename A0, typename A1>
866
- iterator emplace_hint(
867
- const_iterator hint, BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
700
+ iterator emplace_hint(const_iterator hint, Args&&... args)
868
701
  {
869
702
  return iterator(table_.emplace_hint_equiv(
870
703
  hint, boost::unordered::detail::func::construct_node_from_args(
871
- table_.node_alloc(),
872
- boost::unordered::detail::create_emplace_args(
873
- boost::forward<A0>(a0), boost::forward<A1>(a1)))));
704
+ table_.node_alloc(), std::forward<Args>(args)...)));
874
705
  }
875
706
 
876
- template <typename A0, typename A1, typename A2>
877
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(A0) a0,
878
- BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
879
- {
880
- return iterator(table_.emplace_hint_equiv(
881
- hint, boost::unordered::detail::func::construct_node_from_args(
882
- table_.node_alloc(),
883
- boost::unordered::detail::create_emplace_args(
884
- boost::forward<A0>(a0), boost::forward<A1>(a1),
885
- boost::forward<A2>(a2)))));
886
- }
887
-
888
- #endif
889
-
890
- #if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
891
-
892
- #define BOOST_UNORDERED_EMPLACE(z, n, _) \
893
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
894
- iterator emplace(BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
895
- { \
896
- return iterator(table_.emplace_equiv( \
897
- boost::unordered::detail::func::construct_node_from_args( \
898
- table_.node_alloc(), \
899
- boost::unordered::detail::create_emplace_args( \
900
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))))); \
901
- } \
902
- \
903
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
904
- iterator emplace_hint( \
905
- const_iterator hint, BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
906
- { \
907
- return iterator(table_.emplace_hint_equiv( \
908
- hint, boost::unordered::detail::func::construct_node_from_args( \
909
- table_.node_alloc(), \
910
- boost::unordered::detail::create_emplace_args( \
911
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))))); \
912
- }
913
-
914
- BOOST_UNORDERED_EMPLACE(1, 4, _)
915
- BOOST_UNORDERED_EMPLACE(1, 5, _)
916
- BOOST_UNORDERED_EMPLACE(1, 6, _)
917
- BOOST_UNORDERED_EMPLACE(1, 7, _)
918
- BOOST_UNORDERED_EMPLACE(1, 8, _)
919
- BOOST_UNORDERED_EMPLACE(1, 9, _)
920
- BOOST_PP_REPEAT_FROM_TO(10, BOOST_PP_INC(BOOST_UNORDERED_EMPLACE_LIMIT),
921
- BOOST_UNORDERED_EMPLACE, _)
922
-
923
- #undef BOOST_UNORDERED_EMPLACE
924
-
925
- #endif
926
-
927
707
  iterator insert(value_type const& x) { return this->emplace(x); }
928
708
 
929
- iterator insert(BOOST_UNORDERED_RV_REF(value_type) x)
930
- {
931
- return this->emplace(boost::move(x));
932
- }
709
+ iterator insert(value_type&& x) { return this->emplace(std::move(x)); }
933
710
 
934
711
  iterator insert(const_iterator hint, value_type const& x)
935
712
  {
936
713
  return this->emplace_hint(hint, x);
937
714
  }
938
715
 
939
- iterator insert(const_iterator hint, BOOST_UNORDERED_RV_REF(value_type) x)
716
+ iterator insert(const_iterator hint, value_type&& x)
940
717
  {
941
- return this->emplace_hint(hint, boost::move(x));
718
+ return this->emplace_hint(hint, std::move(x));
942
719
  }
943
720
 
944
721
  template <class InputIt> void insert(InputIt, InputIt);
945
722
 
946
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
947
723
  void insert(std::initializer_list<value_type>);
948
- #endif
949
724
 
950
725
  // extract
951
726
 
@@ -957,31 +732,40 @@ namespace boost {
957
732
 
958
733
  node_type extract(const key_type& k)
959
734
  {
960
- return node_type(table_.extract_by_key(k), table_.node_alloc());
735
+ return node_type(table_.extract_by_key_impl(k), table_.node_alloc());
961
736
  }
962
737
 
963
- iterator insert(BOOST_RV_REF(node_type) np)
738
+ template <class Key>
739
+ typename boost::enable_if_c<
740
+ detail::transparent_non_iterable<Key, unordered_multiset>::value,
741
+ node_type>::type
742
+ extract(const Key& k)
743
+ {
744
+ return node_type(table_.extract_by_key_impl(k), table_.node_alloc());
745
+ }
746
+
747
+ iterator insert(node_type&& np)
964
748
  {
965
749
  return table_.move_insert_node_type_equiv(np);
966
750
  }
967
751
 
968
- iterator insert(const_iterator hint, BOOST_RV_REF(node_type) np)
752
+ iterator insert(const_iterator hint, node_type&& np)
969
753
  {
970
754
  return table_.move_insert_node_type_with_hint_equiv(hint, np);
971
755
  }
972
756
 
973
- #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \
974
- (BOOST_COMP_GNUC && BOOST_COMP_GNUC < BOOST_VERSION_NUMBER(4, 6, 0))
975
- private:
976
- // Note: Use r-value node_type to insert.
977
- iterator insert(node_type&);
978
- iterator insert(const_iterator, node_type& np);
979
-
980
- public:
981
- #endif
982
-
983
757
  iterator erase(const_iterator);
984
758
  size_type erase(const key_type&);
759
+
760
+ template <class Key>
761
+ typename boost::enable_if_c<
762
+ detail::transparent_non_iterable<Key, unordered_multiset>::value,
763
+ size_type>::type
764
+ erase(const Key& k)
765
+ {
766
+ return table_.erase_key_equiv_impl(k);
767
+ }
768
+
985
769
  iterator erase(const_iterator, const_iterator);
986
770
  BOOST_UNORDERED_DEPRECATED("Use erase instead")
987
771
  void quick_erase(const_iterator it) { erase(it); }
@@ -989,26 +773,22 @@ namespace boost {
989
773
  void erase_return_void(const_iterator it) { erase(it); }
990
774
 
991
775
  void swap(unordered_multiset&)
992
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
993
- boost::is_nothrow_swappable<H>::value&&
994
- boost::is_nothrow_swappable<P>::value);
995
- void clear() BOOST_NOEXCEPT { table_.clear_impl(); }
776
+ noexcept(value_allocator_traits::is_always_equal::value&&
777
+ boost::unordered::detail::is_nothrow_swappable<H>::value&&
778
+ boost::unordered::detail::is_nothrow_swappable<P>::value);
779
+ void clear() noexcept { table_.clear_impl(); }
996
780
 
997
781
  template <typename H2, typename P2>
998
782
  void merge(boost::unordered_multiset<T, H2, P2, A>& source);
999
783
 
1000
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
1001
784
  template <typename H2, typename P2>
1002
785
  void merge(boost::unordered_multiset<T, H2, P2, A>&& source);
1003
- #endif
1004
786
 
1005
787
  template <typename H2, typename P2>
1006
788
  void merge(boost::unordered_set<T, H2, P2, A>& source);
1007
789
 
1008
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
1009
790
  template <typename H2, typename P2>
1010
791
  void merge(boost::unordered_set<T, H2, P2, A>&& source);
1011
- #endif
1012
792
 
1013
793
  // observers
1014
794
 
@@ -1019,24 +799,60 @@ namespace boost {
1019
799
 
1020
800
  const_iterator find(const key_type&) const;
1021
801
 
802
+ template <class Key>
803
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
804
+ const_iterator>::type
805
+ find(const Key& k) const
806
+ {
807
+ return table_.find(k);
808
+ }
809
+
1022
810
  template <class CompatibleKey, class CompatibleHash,
1023
811
  class CompatiblePredicate>
1024
812
  const_iterator find(CompatibleKey const&, CompatibleHash const&,
1025
813
  CompatiblePredicate const&) const;
1026
814
 
815
+ bool contains(const key_type& k) const
816
+ {
817
+ return table_.find(k) != this->end();
818
+ }
819
+
820
+ template <class Key>
821
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
822
+ bool>::type
823
+ contains(const Key& k) const
824
+ {
825
+ return table_.find(k) != this->end();
826
+ }
827
+
1027
828
  size_type count(const key_type&) const;
1028
829
 
830
+ template <class Key>
831
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
832
+ size_type>::type
833
+ count(const Key& k) const
834
+ {
835
+ return table_.group_count(k);
836
+ }
837
+
1029
838
  std::pair<const_iterator, const_iterator> equal_range(
1030
839
  const key_type&) const;
1031
840
 
1032
- // bucket interface
1033
-
1034
- size_type bucket_count() const BOOST_NOEXCEPT
841
+ template <class Key>
842
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
843
+ std::pair<const_iterator, const_iterator> >::type
844
+ equal_range(const Key& k) const
1035
845
  {
1036
- return table_.bucket_count_;
846
+ iterator first = table_.find(k);
847
+ iterator last = table_.next_group(k, first);
848
+ return std::make_pair(const_iterator(first), const_iterator(last));
1037
849
  }
1038
850
 
1039
- size_type max_bucket_count() const BOOST_NOEXCEPT
851
+ // bucket interface
852
+
853
+ size_type bucket_count() const noexcept { return table_.bucket_count(); }
854
+
855
+ size_type max_bucket_count() const noexcept
1040
856
  {
1041
857
  return table_.max_bucket_count();
1042
858
  }
@@ -1048,14 +864,22 @@ namespace boost {
1048
864
  return table_.hash_to_bucket(table_.hash(k));
1049
865
  }
1050
866
 
867
+ template <class Key>
868
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
869
+ size_type>::type
870
+ bucket(Key&& k) const
871
+ {
872
+ return table_.hash_to_bucket(table_.hash(std::forward<Key>(k)));
873
+ }
874
+
1051
875
  local_iterator begin(size_type n)
1052
876
  {
1053
- return local_iterator(table_.begin(n), n, table_.bucket_count_);
877
+ return local_iterator(table_.begin(n));
1054
878
  }
1055
879
 
1056
880
  const_local_iterator begin(size_type n) const
1057
881
  {
1058
- return const_local_iterator(table_.begin(n), n, table_.bucket_count_);
882
+ return const_local_iterator(table_.begin(n));
1059
883
  }
1060
884
 
1061
885
  local_iterator end(size_type) { return local_iterator(); }
@@ -1067,7 +891,7 @@ namespace boost {
1067
891
 
1068
892
  const_local_iterator cbegin(size_type n) const
1069
893
  {
1070
- return const_local_iterator(table_.begin(n), n, table_.bucket_count_);
894
+ return const_local_iterator(table_.begin(n));
1071
895
  }
1072
896
 
1073
897
  const_local_iterator cend(size_type) const
@@ -1077,9 +901,9 @@ namespace boost {
1077
901
 
1078
902
  // hash policy
1079
903
 
1080
- float load_factor() const BOOST_NOEXCEPT;
1081
- float max_load_factor() const BOOST_NOEXCEPT { return table_.mlf_; }
1082
- void max_load_factor(float) BOOST_NOEXCEPT;
904
+ float load_factor() const noexcept;
905
+ float max_load_factor() const noexcept { return table_.mlf_; }
906
+ void max_load_factor(float) noexcept;
1083
907
  void rehash(size_type);
1084
908
  void reserve(size_type);
1085
909
 
@@ -1091,6 +915,13 @@ namespace boost {
1091
915
  #endif
1092
916
  }; // class template unordered_multiset
1093
917
 
918
+ template <class Archive, class K, class H, class P, class A>
919
+ void serialize(
920
+ Archive& ar, unordered_multiset<K, H, P, A>& c, unsigned int version)
921
+ {
922
+ detail::serialize_fca_container(ar, c, version);
923
+ }
924
+
1094
925
  #if BOOST_UNORDERED_TEMPLATE_DEDUCTION_GUIDES
1095
926
 
1096
927
  template <class InputIterator,
@@ -1099,52 +930,80 @@ namespace boost {
1099
930
  class Pred =
1100
931
  std::equal_to<typename std::iterator_traits<InputIterator>::value_type>,
1101
932
  class Allocator = std::allocator<
1102
- typename std::iterator_traits<InputIterator>::value_type> >
933
+ typename std::iterator_traits<InputIterator>::value_type>,
934
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
935
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
936
+ class = std::enable_if_t<detail::is_pred_v<Pred> >,
937
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1103
938
  unordered_multiset(InputIterator, InputIterator,
1104
939
  std::size_t = boost::unordered::detail::default_bucket_count,
1105
940
  Hash = Hash(), Pred = Pred(), Allocator = Allocator())
1106
- ->unordered_multiset<
941
+ -> unordered_multiset<
1107
942
  typename std::iterator_traits<InputIterator>::value_type, Hash, Pred,
1108
943
  Allocator>;
1109
944
 
1110
945
  template <class T, class Hash = boost::hash<T>,
1111
- class Pred = std::equal_to<T>, class Allocator = std::allocator<T> >
946
+ class Pred = std::equal_to<T>, class Allocator = std::allocator<T>,
947
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
948
+ class = std::enable_if_t<detail::is_pred_v<Pred> >,
949
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1112
950
  unordered_multiset(std::initializer_list<T>,
1113
951
  std::size_t = boost::unordered::detail::default_bucket_count,
1114
952
  Hash = Hash(), Pred = Pred(), Allocator = Allocator())
1115
- ->unordered_multiset<T, Hash, Pred, Allocator>;
953
+ -> unordered_multiset<T, Hash, Pred, Allocator>;
1116
954
 
1117
- template <class InputIterator, class Allocator>
955
+ template <class InputIterator, class Allocator,
956
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
957
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1118
958
  unordered_multiset(InputIterator, InputIterator, std::size_t, Allocator)
1119
- ->unordered_multiset<
959
+ -> unordered_multiset<
1120
960
  typename std::iterator_traits<InputIterator>::value_type,
1121
961
  boost::hash<typename std::iterator_traits<InputIterator>::value_type>,
1122
962
  std::equal_to<typename std::iterator_traits<InputIterator>::value_type>,
1123
963
  Allocator>;
1124
964
 
1125
- template <class InputIterator, class Hash, class Allocator>
965
+ template <class InputIterator, class Hash, class Allocator,
966
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
967
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
968
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1126
969
  unordered_multiset(
1127
970
  InputIterator, InputIterator, std::size_t, Hash, Allocator)
1128
- ->unordered_multiset<
971
+ -> unordered_multiset<
1129
972
  typename std::iterator_traits<InputIterator>::value_type, Hash,
1130
973
  std::equal_to<typename std::iterator_traits<InputIterator>::value_type>,
1131
974
  Allocator>;
1132
975
 
1133
- template <class T, class Allocator>
976
+ template <class T, class Allocator,
977
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1134
978
  unordered_multiset(std::initializer_list<T>, std::size_t, Allocator)
1135
- ->unordered_multiset<T, boost::hash<T>, std::equal_to<T>, Allocator>;
979
+ -> unordered_multiset<T, boost::hash<T>, std::equal_to<T>, Allocator>;
1136
980
 
1137
- template <class T, class Hash, class Allocator>
981
+ template <class T, class Hash, class Allocator,
982
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
983
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1138
984
  unordered_multiset(std::initializer_list<T>, std::size_t, Hash, Allocator)
1139
- ->unordered_multiset<T, Hash, std::equal_to<T>, Allocator>;
985
+ -> unordered_multiset<T, Hash, std::equal_to<T>, Allocator>;
986
+
987
+ template <class InputIterator, class Allocator,
988
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
989
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
990
+ unordered_multiset(InputIterator, InputIterator, Allocator)
991
+ -> unordered_multiset<
992
+ typename std::iterator_traits<InputIterator>::value_type,
993
+ boost::hash<typename std::iterator_traits<InputIterator>::value_type>,
994
+ std::equal_to<typename std::iterator_traits<InputIterator>::value_type>,
995
+ Allocator>;
996
+
997
+ template <class T, class Allocator,
998
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
999
+ unordered_multiset(std::initializer_list<T>, Allocator)
1000
+ -> unordered_multiset<T, boost::hash<T>, std::equal_to<T>, Allocator>;
1140
1001
 
1141
1002
  #endif
1142
1003
 
1143
1004
  ////////////////////////////////////////////////////////////////////////////
1144
1005
  template <class T, class H, class P, class A>
1145
1006
  unordered_set<T, H, P, A>::unordered_set()
1146
- : table_(boost::unordered::detail::default_bucket_count, hasher(),
1147
- key_equal(), allocator_type())
1148
1007
  {
1149
1008
  }
1150
1009
 
@@ -1170,9 +1029,8 @@ namespace boost {
1170
1029
  unordered_set::value_allocator_traits::
1171
1030
  select_on_container_copy_construction(other.get_allocator()))
1172
1031
  {
1173
- if (other.table_.size_) {
1174
- table_.copy_buckets(
1175
- other.table_, boost::unordered::detail::true_type());
1032
+ if (other.size()) {
1033
+ table_.copy_buckets(other.table_, std::true_type());
1176
1034
  }
1177
1035
  }
1178
1036
 
@@ -1189,21 +1047,18 @@ namespace boost {
1189
1047
  : table_(other.table_, a)
1190
1048
  {
1191
1049
  if (other.table_.size_) {
1192
- table_.copy_buckets(
1193
- other.table_, boost::unordered::detail::true_type());
1050
+ table_.copy_buckets(other.table_, std::true_type());
1194
1051
  }
1195
1052
  }
1196
1053
 
1197
1054
  template <class T, class H, class P, class A>
1198
1055
  unordered_set<T, H, P, A>::unordered_set(
1199
- BOOST_RV_REF(unordered_set) other, allocator_type const& a)
1056
+ unordered_set&& other, allocator_type const& a)
1200
1057
  : table_(other.table_, a, boost::unordered::detail::move_tag())
1201
1058
  {
1202
1059
  table_.move_construct_buckets(other.table_);
1203
1060
  }
1204
1061
 
1205
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1206
-
1207
1062
  template <class T, class H, class P, class A>
1208
1063
  unordered_set<T, H, P, A>::unordered_set(
1209
1064
  std::initializer_list<value_type> list, size_type n, const hasher& hf,
@@ -1215,8 +1070,6 @@ namespace boost {
1215
1070
  this->insert(list.begin(), list.end());
1216
1071
  }
1217
1072
 
1218
- #endif
1219
-
1220
1073
  template <class T, class H, class P, class A>
1221
1074
  unordered_set<T, H, P, A>::unordered_set(
1222
1075
  size_type n, const allocator_type& a)
@@ -1231,6 +1084,17 @@ namespace boost {
1231
1084
  {
1232
1085
  }
1233
1086
 
1087
+ template <class T, class H, class P, class A>
1088
+ template <class InputIterator>
1089
+ unordered_set<T, H, P, A>::unordered_set(
1090
+ InputIterator f, InputIterator l, const allocator_type& a)
1091
+ : table_(boost::unordered::detail::initial_size(
1092
+ f, l, detail::default_bucket_count),
1093
+ hasher(), key_equal(), a)
1094
+ {
1095
+ this->insert(f, l);
1096
+ }
1097
+
1234
1098
  template <class T, class H, class P, class A>
1235
1099
  template <class InputIt>
1236
1100
  unordered_set<T, H, P, A>::unordered_set(
@@ -1251,7 +1115,15 @@ namespace boost {
1251
1115
  this->insert(f, l);
1252
1116
  }
1253
1117
 
1254
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1118
+ template <class T, class H, class P, class A>
1119
+ unordered_set<T, H, P, A>::unordered_set(
1120
+ std::initializer_list<value_type> list, const allocator_type& a)
1121
+ : table_(boost::unordered::detail::initial_size(
1122
+ list.begin(), list.end(), detail::default_bucket_count),
1123
+ hasher(), key_equal(), a)
1124
+ {
1125
+ this->insert(list.begin(), list.end());
1126
+ }
1255
1127
 
1256
1128
  template <class T, class H, class P, class A>
1257
1129
  unordered_set<T, H, P, A>::unordered_set(
@@ -1275,15 +1147,11 @@ namespace boost {
1275
1147
  this->insert(list.begin(), list.end());
1276
1148
  }
1277
1149
 
1278
- #endif
1279
-
1280
1150
  template <class T, class H, class P, class A>
1281
- unordered_set<T, H, P, A>::~unordered_set() BOOST_NOEXCEPT
1151
+ unordered_set<T, H, P, A>::~unordered_set() noexcept
1282
1152
  {
1283
1153
  }
1284
1154
 
1285
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1286
-
1287
1155
  template <class T, class H, class P, class A>
1288
1156
  unordered_set<T, H, P, A>& unordered_set<T, H, P, A>::operator=(
1289
1157
  std::initializer_list<value_type> list)
@@ -1293,12 +1161,10 @@ namespace boost {
1293
1161
  return *this;
1294
1162
  }
1295
1163
 
1296
- #endif
1297
-
1298
1164
  // size and capacity
1299
1165
 
1300
1166
  template <class T, class H, class P, class A>
1301
- std::size_t unordered_set<T, H, P, A>::max_size() const BOOST_NOEXCEPT
1167
+ std::size_t unordered_set<T, H, P, A>::max_size() const noexcept
1302
1168
  {
1303
1169
  using namespace std;
1304
1170
 
@@ -1321,49 +1187,39 @@ namespace boost {
1321
1187
  }
1322
1188
  }
1323
1189
 
1324
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1325
1190
  template <class T, class H, class P, class A>
1326
1191
  void unordered_set<T, H, P, A>::insert(
1327
1192
  std::initializer_list<value_type> list)
1328
1193
  {
1329
1194
  this->insert(list.begin(), list.end());
1330
1195
  }
1331
- #endif
1332
1196
 
1333
1197
  template <class T, class H, class P, class A>
1334
1198
  typename unordered_set<T, H, P, A>::iterator
1335
1199
  unordered_set<T, H, P, A>::erase(const_iterator position)
1336
1200
  {
1337
- node_pointer node = table::get_node(position);
1338
- BOOST_ASSERT(node);
1339
- node_pointer next = table::next_node(node);
1340
- table_.erase_nodes_unique(node, next);
1341
- return iterator(next);
1201
+ return table_.erase_node(position);
1342
1202
  }
1343
1203
 
1344
1204
  template <class T, class H, class P, class A>
1345
1205
  typename unordered_set<T, H, P, A>::size_type
1346
1206
  unordered_set<T, H, P, A>::erase(const key_type& k)
1347
1207
  {
1348
- return table_.erase_key_unique(k);
1208
+ return table_.erase_key_unique_impl(k);
1349
1209
  }
1350
1210
 
1351
1211
  template <class T, class H, class P, class A>
1352
1212
  typename unordered_set<T, H, P, A>::iterator
1353
1213
  unordered_set<T, H, P, A>::erase(const_iterator first, const_iterator last)
1354
1214
  {
1355
- node_pointer last_node = table::get_node(last);
1356
- if (first == last)
1357
- return iterator(last_node);
1358
- table_.erase_nodes_unique(table::get_node(first), last_node);
1359
- return iterator(last_node);
1215
+ return table_.erase_nodes_range(first, last);
1360
1216
  }
1361
1217
 
1362
1218
  template <class T, class H, class P, class A>
1363
1219
  void unordered_set<T, H, P, A>::swap(unordered_set& other)
1364
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
1365
- boost::is_nothrow_swappable<H>::value&&
1366
- boost::is_nothrow_swappable<P>::value)
1220
+ noexcept(value_allocator_traits::is_always_equal::value&&
1221
+ boost::unordered::detail::is_nothrow_swappable<H>::value&&
1222
+ boost::unordered::detail::is_nothrow_swappable<P>::value)
1367
1223
  {
1368
1224
  table_.swap(other.table_);
1369
1225
  }
@@ -1392,7 +1248,6 @@ namespace boost {
1392
1248
  table_.merge_unique(source.table_);
1393
1249
  }
1394
1250
 
1395
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
1396
1251
  template <class T, class H, class P, class A>
1397
1252
  template <typename H2, typename P2>
1398
1253
  void unordered_set<T, H, P, A>::merge(
@@ -1400,7 +1255,6 @@ namespace boost {
1400
1255
  {
1401
1256
  table_.merge_unique(source.table_);
1402
1257
  }
1403
- #endif
1404
1258
 
1405
1259
  template <class T, class H, class P, class A>
1406
1260
  template <typename H2, typename P2>
@@ -1410,7 +1264,6 @@ namespace boost {
1410
1264
  table_.merge_unique(source.table_);
1411
1265
  }
1412
1266
 
1413
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
1414
1267
  template <class T, class H, class P, class A>
1415
1268
  template <typename H2, typename P2>
1416
1269
  void unordered_set<T, H, P, A>::merge(
@@ -1418,7 +1271,6 @@ namespace boost {
1418
1271
  {
1419
1272
  table_.merge_unique(source.table_);
1420
1273
  }
1421
- #endif
1422
1274
 
1423
1275
  // lookup
1424
1276
 
@@ -1426,7 +1278,7 @@ namespace boost {
1426
1278
  typename unordered_set<T, H, P, A>::const_iterator
1427
1279
  unordered_set<T, H, P, A>::find(const key_type& k) const
1428
1280
  {
1429
- return const_iterator(table_.find_node(k));
1281
+ return const_iterator(table_.find(k));
1430
1282
  }
1431
1283
 
1432
1284
  template <class T, class H, class P, class A>
@@ -1436,8 +1288,7 @@ namespace boost {
1436
1288
  unordered_set<T, H, P, A>::find(CompatibleKey const& k,
1437
1289
  CompatibleHash const& hash, CompatiblePredicate const& eq) const
1438
1290
  {
1439
- return const_iterator(
1440
- table_.find_node_impl(table::policy::apply_hash(hash, k), k, eq));
1291
+ return table_.transparent_find(k, hash, eq);
1441
1292
  }
1442
1293
 
1443
1294
  template <class T, class H, class P, class A>
@@ -1452,9 +1303,12 @@ namespace boost {
1452
1303
  typename unordered_set<T, H, P, A>::const_iterator>
1453
1304
  unordered_set<T, H, P, A>::equal_range(const key_type& k) const
1454
1305
  {
1455
- node_pointer n = table_.find_node(k);
1456
- return std::make_pair(
1457
- const_iterator(n), const_iterator(n ? table::next_node(n) : n));
1306
+ iterator first = table_.find(k);
1307
+ iterator second = first;
1308
+ if (second != this->end()) {
1309
+ ++second;
1310
+ }
1311
+ return std::make_pair(first, second);
1458
1312
  }
1459
1313
 
1460
1314
  template <class T, class H, class P, class A>
@@ -1467,15 +1321,19 @@ namespace boost {
1467
1321
  // hash policy
1468
1322
 
1469
1323
  template <class T, class H, class P, class A>
1470
- float unordered_set<T, H, P, A>::load_factor() const BOOST_NOEXCEPT
1324
+ float unordered_set<T, H, P, A>::load_factor() const noexcept
1471
1325
  {
1472
- BOOST_ASSERT(table_.bucket_count_ != 0);
1326
+ if (table_.size_ == 0) {
1327
+ return 0.0f;
1328
+ }
1329
+
1330
+ BOOST_ASSERT(table_.bucket_count() != 0);
1473
1331
  return static_cast<float>(table_.size_) /
1474
- static_cast<float>(table_.bucket_count_);
1332
+ static_cast<float>(table_.bucket_count());
1475
1333
  }
1476
1334
 
1477
1335
  template <class T, class H, class P, class A>
1478
- void unordered_set<T, H, P, A>::max_load_factor(float m) BOOST_NOEXCEPT
1336
+ void unordered_set<T, H, P, A>::max_load_factor(float m) noexcept
1479
1337
  {
1480
1338
  table_.max_load_factor(m);
1481
1339
  }
@@ -1489,8 +1347,7 @@ namespace boost {
1489
1347
  template <class T, class H, class P, class A>
1490
1348
  void unordered_set<T, H, P, A>::reserve(size_type n)
1491
1349
  {
1492
- table_.rehash(static_cast<std::size_t>(
1493
- std::ceil(static_cast<double>(n) / table_.mlf_)));
1350
+ table_.reserve(n);
1494
1351
  }
1495
1352
 
1496
1353
  template <class T, class H, class P, class A>
@@ -1520,9 +1377,8 @@ namespace boost {
1520
1377
  }
1521
1378
 
1522
1379
  template <class T, class H, class P, class A>
1523
- inline void swap(
1524
- unordered_set<T, H, P, A>& m1, unordered_set<T, H, P, A>& m2)
1525
- BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(m1.swap(m2)))
1380
+ inline void swap(unordered_set<T, H, P, A>& m1,
1381
+ unordered_set<T, H, P, A>& m2) noexcept(noexcept(m1.swap(m2)))
1526
1382
  {
1527
1383
  #if BOOST_WORKAROUND(BOOST_CODEGEARC, BOOST_TESTED_AT(0x0613))
1528
1384
  struct dummy
@@ -1533,12 +1389,17 @@ namespace boost {
1533
1389
  m1.swap(m2);
1534
1390
  }
1535
1391
 
1392
+ template <class K, class H, class P, class A, class Predicate>
1393
+ typename unordered_set<K, H, P, A>::size_type erase_if(
1394
+ unordered_set<K, H, P, A>& c, Predicate pred)
1395
+ {
1396
+ return detail::erase_if(c, pred);
1397
+ }
1398
+
1536
1399
  ////////////////////////////////////////////////////////////////////////////
1537
1400
 
1538
1401
  template <class T, class H, class P, class A>
1539
1402
  unordered_multiset<T, H, P, A>::unordered_multiset()
1540
- : table_(boost::unordered::detail::default_bucket_count, hasher(),
1541
- key_equal(), allocator_type())
1542
1403
  {
1543
1404
  }
1544
1405
 
@@ -1567,8 +1428,7 @@ namespace boost {
1567
1428
  select_on_container_copy_construction(other.get_allocator()))
1568
1429
  {
1569
1430
  if (other.table_.size_) {
1570
- table_.copy_buckets(
1571
- other.table_, boost::unordered::detail::false_type());
1431
+ table_.copy_buckets(other.table_, std::false_type());
1572
1432
  }
1573
1433
  }
1574
1434
 
@@ -1585,21 +1445,18 @@ namespace boost {
1585
1445
  : table_(other.table_, a)
1586
1446
  {
1587
1447
  if (other.table_.size_) {
1588
- table_.copy_buckets(
1589
- other.table_, boost::unordered::detail::false_type());
1448
+ table_.copy_buckets(other.table_, std::false_type());
1590
1449
  }
1591
1450
  }
1592
1451
 
1593
1452
  template <class T, class H, class P, class A>
1594
1453
  unordered_multiset<T, H, P, A>::unordered_multiset(
1595
- BOOST_RV_REF(unordered_multiset) other, allocator_type const& a)
1454
+ unordered_multiset&& other, allocator_type const& a)
1596
1455
  : table_(other.table_, a, boost::unordered::detail::move_tag())
1597
1456
  {
1598
1457
  table_.move_construct_buckets(other.table_);
1599
1458
  }
1600
1459
 
1601
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1602
-
1603
1460
  template <class T, class H, class P, class A>
1604
1461
  unordered_multiset<T, H, P, A>::unordered_multiset(
1605
1462
  std::initializer_list<value_type> list, size_type n, const hasher& hf,
@@ -1611,8 +1468,6 @@ namespace boost {
1611
1468
  this->insert(list.begin(), list.end());
1612
1469
  }
1613
1470
 
1614
- #endif
1615
-
1616
1471
  template <class T, class H, class P, class A>
1617
1472
  unordered_multiset<T, H, P, A>::unordered_multiset(
1618
1473
  size_type n, const allocator_type& a)
@@ -1627,6 +1482,17 @@ namespace boost {
1627
1482
  {
1628
1483
  }
1629
1484
 
1485
+ template <class T, class H, class P, class A>
1486
+ template <class InputIterator>
1487
+ unordered_multiset<T, H, P, A>::unordered_multiset(
1488
+ InputIterator f, InputIterator l, const allocator_type& a)
1489
+ : table_(boost::unordered::detail::initial_size(
1490
+ f, l, detail::default_bucket_count),
1491
+ hasher(), key_equal(), a)
1492
+ {
1493
+ this->insert(f, l);
1494
+ }
1495
+
1630
1496
  template <class T, class H, class P, class A>
1631
1497
  template <class InputIt>
1632
1498
  unordered_multiset<T, H, P, A>::unordered_multiset(
@@ -1647,7 +1513,15 @@ namespace boost {
1647
1513
  this->insert(f, l);
1648
1514
  }
1649
1515
 
1650
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1516
+ template <class T, class H, class P, class A>
1517
+ unordered_multiset<T, H, P, A>::unordered_multiset(
1518
+ std::initializer_list<value_type> list, const allocator_type& a)
1519
+ : table_(boost::unordered::detail::initial_size(
1520
+ list.begin(), list.end(), detail::default_bucket_count),
1521
+ hasher(), key_equal(), a)
1522
+ {
1523
+ this->insert(list.begin(), list.end());
1524
+ }
1651
1525
 
1652
1526
  template <class T, class H, class P, class A>
1653
1527
  unordered_multiset<T, H, P, A>::unordered_multiset(
@@ -1671,15 +1545,11 @@ namespace boost {
1671
1545
  this->insert(list.begin(), list.end());
1672
1546
  }
1673
1547
 
1674
- #endif
1675
-
1676
1548
  template <class T, class H, class P, class A>
1677
- unordered_multiset<T, H, P, A>::~unordered_multiset() BOOST_NOEXCEPT
1549
+ unordered_multiset<T, H, P, A>::~unordered_multiset() noexcept
1678
1550
  {
1679
1551
  }
1680
1552
 
1681
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1682
-
1683
1553
  template <class T, class H, class P, class A>
1684
1554
  unordered_multiset<T, H, P, A>& unordered_multiset<T, H, P, A>::operator=(
1685
1555
  std::initializer_list<value_type> list)
@@ -1689,12 +1559,10 @@ namespace boost {
1689
1559
  return *this;
1690
1560
  }
1691
1561
 
1692
- #endif
1693
-
1694
1562
  // size and capacity
1695
1563
 
1696
1564
  template <class T, class H, class P, class A>
1697
- std::size_t unordered_multiset<T, H, P, A>::max_size() const BOOST_NOEXCEPT
1565
+ std::size_t unordered_multiset<T, H, P, A>::max_size() const noexcept
1698
1566
  {
1699
1567
  using namespace std;
1700
1568
 
@@ -1714,24 +1582,19 @@ namespace boost {
1714
1582
  table_.insert_range_equiv(first, last);
1715
1583
  }
1716
1584
 
1717
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1718
1585
  template <class T, class H, class P, class A>
1719
1586
  void unordered_multiset<T, H, P, A>::insert(
1720
1587
  std::initializer_list<value_type> list)
1721
1588
  {
1722
1589
  this->insert(list.begin(), list.end());
1723
1590
  }
1724
- #endif
1725
1591
 
1726
1592
  template <class T, class H, class P, class A>
1727
1593
  typename unordered_multiset<T, H, P, A>::iterator
1728
1594
  unordered_multiset<T, H, P, A>::erase(const_iterator position)
1729
1595
  {
1730
- node_pointer node = table::get_node(position);
1731
- BOOST_ASSERT(node);
1732
- node_pointer next = table::next_node(node);
1733
- table_.erase_nodes_equiv(node, next);
1734
- return iterator(next);
1596
+ BOOST_ASSERT(position != this->end());
1597
+ return table_.erase_node(position);
1735
1598
  }
1736
1599
 
1737
1600
  template <class T, class H, class P, class A>
@@ -1746,18 +1609,14 @@ namespace boost {
1746
1609
  unordered_multiset<T, H, P, A>::erase(
1747
1610
  const_iterator first, const_iterator last)
1748
1611
  {
1749
- node_pointer last_node = table::get_node(last);
1750
- if (first == last)
1751
- return iterator(last_node);
1752
- table_.erase_nodes_equiv(table::get_node(first), last_node);
1753
- return iterator(last_node);
1612
+ return table_.erase_nodes_range(first, last);
1754
1613
  }
1755
1614
 
1756
1615
  template <class T, class H, class P, class A>
1757
1616
  void unordered_multiset<T, H, P, A>::swap(unordered_multiset& other)
1758
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
1759
- boost::is_nothrow_swappable<H>::value&&
1760
- boost::is_nothrow_swappable<P>::value)
1617
+ noexcept(value_allocator_traits::is_always_equal::value&&
1618
+ boost::unordered::detail::is_nothrow_swappable<H>::value&&
1619
+ boost::unordered::detail::is_nothrow_swappable<P>::value)
1761
1620
  {
1762
1621
  table_.swap(other.table_);
1763
1622
  }
@@ -1788,7 +1647,6 @@ namespace boost {
1788
1647
  }
1789
1648
  }
1790
1649
 
1791
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
1792
1650
  template <class T, class H, class P, class A>
1793
1651
  template <typename H2, typename P2>
1794
1652
  void unordered_multiset<T, H, P, A>::merge(
@@ -1798,7 +1656,6 @@ namespace boost {
1798
1656
  insert(source.extract(source.begin()));
1799
1657
  }
1800
1658
  }
1801
- #endif
1802
1659
 
1803
1660
  template <class T, class H, class P, class A>
1804
1661
  template <typename H2, typename P2>
@@ -1810,7 +1667,6 @@ namespace boost {
1810
1667
  }
1811
1668
  }
1812
1669
 
1813
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
1814
1670
  template <class T, class H, class P, class A>
1815
1671
  template <typename H2, typename P2>
1816
1672
  void unordered_multiset<T, H, P, A>::merge(
@@ -1820,7 +1676,6 @@ namespace boost {
1820
1676
  insert(source.extract(source.begin()));
1821
1677
  }
1822
1678
  }
1823
- #endif
1824
1679
 
1825
1680
  // lookup
1826
1681
 
@@ -1828,7 +1683,7 @@ namespace boost {
1828
1683
  typename unordered_multiset<T, H, P, A>::const_iterator
1829
1684
  unordered_multiset<T, H, P, A>::find(const key_type& k) const
1830
1685
  {
1831
- return const_iterator(table_.find_node(k));
1686
+ return const_iterator(table_.find(k));
1832
1687
  }
1833
1688
 
1834
1689
  template <class T, class H, class P, class A>
@@ -1838,16 +1693,14 @@ namespace boost {
1838
1693
  unordered_multiset<T, H, P, A>::find(CompatibleKey const& k,
1839
1694
  CompatibleHash const& hash, CompatiblePredicate const& eq) const
1840
1695
  {
1841
- return const_iterator(
1842
- table_.find_node_impl(table::policy::apply_hash(hash, k), k, eq));
1696
+ return table_.transparent_find(k, hash, eq);
1843
1697
  }
1844
1698
 
1845
1699
  template <class T, class H, class P, class A>
1846
1700
  typename unordered_multiset<T, H, P, A>::size_type
1847
1701
  unordered_multiset<T, H, P, A>::count(const key_type& k) const
1848
1702
  {
1849
- node_pointer n = table_.find_node(k);
1850
- return n ? table_.group_count(n) : 0;
1703
+ return table_.group_count(k);
1851
1704
  }
1852
1705
 
1853
1706
  template <class T, class H, class P, class A>
@@ -1855,9 +1708,9 @@ namespace boost {
1855
1708
  typename unordered_multiset<T, H, P, A>::const_iterator>
1856
1709
  unordered_multiset<T, H, P, A>::equal_range(const key_type& k) const
1857
1710
  {
1858
- node_pointer n = table_.find_node(k);
1859
- return std::make_pair(
1860
- const_iterator(n), const_iterator(n ? table_.next_group(n) : n));
1711
+ iterator n = table_.find(k);
1712
+ return std::make_pair(const_iterator(n),
1713
+ const_iterator(n == end() ? n : table_.next_group(k, n)));
1861
1714
  }
1862
1715
 
1863
1716
  template <class T, class H, class P, class A>
@@ -1870,15 +1723,19 @@ namespace boost {
1870
1723
  // hash policy
1871
1724
 
1872
1725
  template <class T, class H, class P, class A>
1873
- float unordered_multiset<T, H, P, A>::load_factor() const BOOST_NOEXCEPT
1726
+ float unordered_multiset<T, H, P, A>::load_factor() const noexcept
1874
1727
  {
1875
- BOOST_ASSERT(table_.bucket_count_ != 0);
1728
+ if (table_.size_ == 0) {
1729
+ return 0.0f;
1730
+ }
1731
+
1732
+ BOOST_ASSERT(table_.bucket_count() != 0);
1876
1733
  return static_cast<float>(table_.size_) /
1877
- static_cast<float>(table_.bucket_count_);
1734
+ static_cast<float>(table_.bucket_count());
1878
1735
  }
1879
1736
 
1880
1737
  template <class T, class H, class P, class A>
1881
- void unordered_multiset<T, H, P, A>::max_load_factor(float m) BOOST_NOEXCEPT
1738
+ void unordered_multiset<T, H, P, A>::max_load_factor(float m) noexcept
1882
1739
  {
1883
1740
  table_.max_load_factor(m);
1884
1741
  }
@@ -1892,8 +1749,7 @@ namespace boost {
1892
1749
  template <class T, class H, class P, class A>
1893
1750
  void unordered_multiset<T, H, P, A>::reserve(size_type n)
1894
1751
  {
1895
- table_.rehash(static_cast<std::size_t>(
1896
- std::ceil(static_cast<double>(n) / table_.mlf_)));
1752
+ table_.reserve(n);
1897
1753
  }
1898
1754
 
1899
1755
  template <class T, class H, class P, class A>
@@ -1923,9 +1779,8 @@ namespace boost {
1923
1779
  }
1924
1780
 
1925
1781
  template <class T, class H, class P, class A>
1926
- inline void swap(
1927
- unordered_multiset<T, H, P, A>& m1, unordered_multiset<T, H, P, A>& m2)
1928
- BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(m1.swap(m2)))
1782
+ inline void swap(unordered_multiset<T, H, P, A>& m1,
1783
+ unordered_multiset<T, H, P, A>& m2) noexcept(noexcept(m1.swap(m2)))
1929
1784
  {
1930
1785
  #if BOOST_WORKAROUND(BOOST_CODEGEARC, BOOST_TESTED_AT(0x0613))
1931
1786
  struct dummy
@@ -1936,10 +1791,15 @@ namespace boost {
1936
1791
  m1.swap(m2);
1937
1792
  }
1938
1793
 
1939
- template <typename N, typename T, typename A> class node_handle_set
1794
+ template <class K, class H, class P, class A, class Predicate>
1795
+ typename unordered_multiset<K, H, P, A>::size_type erase_if(
1796
+ unordered_multiset<K, H, P, A>& c, Predicate pred)
1940
1797
  {
1941
- BOOST_MOVABLE_BUT_NOT_COPYABLE(node_handle_set)
1798
+ return detail::erase_if(c, pred);
1799
+ }
1942
1800
 
1801
+ template <typename N, typename T, typename A> class node_handle_set
1802
+ {
1943
1803
  template <typename Types> friend struct ::boost::unordered::detail::table;
1944
1804
  template <class T2, class H2, class P2, class A2>
1945
1805
  friend class unordered_set;
@@ -1972,10 +1832,9 @@ namespace boost {
1972
1832
  }
1973
1833
 
1974
1834
  public:
1975
- BOOST_CONSTEXPR node_handle_set() BOOST_NOEXCEPT : ptr_(),
1976
- has_alloc_(false)
1977
- {
1978
- }
1835
+ constexpr node_handle_set() noexcept : ptr_(), has_alloc_(false) {}
1836
+ node_handle_set(node_handle_set const&) = delete;
1837
+ node_handle_set& operator=(node_handle_set const&) = delete;
1979
1838
 
1980
1839
  ~node_handle_set()
1981
1840
  {
@@ -1986,14 +1845,14 @@ namespace boost {
1986
1845
  }
1987
1846
  }
1988
1847
 
1989
- node_handle_set(BOOST_RV_REF(node_handle_set) n) BOOST_NOEXCEPT
1990
- : ptr_(n.ptr_),
1991
- alloc_(boost::move(n.alloc_))
1848
+ node_handle_set(node_handle_set&& n) noexcept
1849
+ : ptr_(n.ptr_),
1850
+ alloc_(std::move(n.alloc_))
1992
1851
  {
1993
1852
  n.ptr_ = node_pointer();
1994
1853
  }
1995
1854
 
1996
- node_handle_set& operator=(BOOST_RV_REF(node_handle_set) n)
1855
+ node_handle_set& operator=(node_handle_set&& n)
1997
1856
  {
1998
1857
  BOOST_ASSERT(!alloc_.has_value() ||
1999
1858
  value_allocator_traits::
@@ -2010,7 +1869,7 @@ namespace boost {
2010
1869
  if (!alloc_.has_value() ||
2011
1870
  value_allocator_traits::propagate_on_container_move_assignment::
2012
1871
  value) {
2013
- alloc_ = boost::move(n.alloc_);
1872
+ alloc_ = std::move(n.alloc_);
2014
1873
  }
2015
1874
  ptr_ = n.ptr_;
2016
1875
  n.ptr_ = node_pointer();
@@ -2022,15 +1881,21 @@ namespace boost {
2022
1881
 
2023
1882
  allocator_type get_allocator() const { return *alloc_; }
2024
1883
 
2025
- BOOST_EXPLICIT_OPERATOR_BOOL_NOEXCEPT()
1884
+ explicit operator bool() const noexcept
1885
+ {
1886
+ return !this->operator!();
1887
+ }
2026
1888
 
2027
- bool operator!() const BOOST_NOEXCEPT { return ptr_ ? 0 : 1; }
1889
+ bool operator!() const noexcept { return ptr_ ? 0 : 1; }
2028
1890
 
2029
- bool empty() const BOOST_NOEXCEPT { return ptr_ ? 0 : 1; }
1891
+ BOOST_ATTRIBUTE_NODISCARD bool empty() const noexcept
1892
+ {
1893
+ return ptr_ ? 0 : 1;
1894
+ }
2030
1895
 
2031
- void swap(node_handle_set& n) BOOST_NOEXCEPT_IF(
2032
- value_allocator_traits::propagate_on_container_swap::value ||
2033
- value_allocator_traits::is_always_equal::value)
1896
+ void swap(node_handle_set& n)
1897
+ noexcept(value_allocator_traits::propagate_on_container_swap::value ||
1898
+ value_allocator_traits::is_always_equal::value)
2034
1899
  {
2035
1900
  BOOST_ASSERT(
2036
1901
  !alloc_.has_value() || !n.alloc_.has_value() ||
@@ -2038,60 +1903,70 @@ namespace boost {
2038
1903
  alloc_ == n.alloc_);
2039
1904
  if (value_allocator_traits::propagate_on_container_swap::value ||
2040
1905
  !alloc_.has_value() || !n.alloc_.has_value()) {
2041
- boost::swap(alloc_, n.alloc_);
1906
+ boost::core::invoke_swap(alloc_, n.alloc_);
2042
1907
  }
2043
- boost::swap(ptr_, n.ptr_);
1908
+ boost::core::invoke_swap(ptr_, n.ptr_);
2044
1909
  }
2045
1910
  };
2046
1911
 
2047
1912
  template <typename N, typename T, typename A>
2048
1913
  void swap(node_handle_set<N, T, A>& x, node_handle_set<N, T, A>& y)
2049
- BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(x.swap(y)))
1914
+ noexcept(noexcept(x.swap(y)))
2050
1915
  {
2051
1916
  x.swap(y);
2052
1917
  }
2053
1918
 
2054
- template <typename N, typename T, typename A> struct insert_return_type_set
1919
+ template <class Iter, class NodeType> struct insert_return_type_set
2055
1920
  {
2056
- private:
2057
- BOOST_MOVABLE_BUT_NOT_COPYABLE(insert_return_type_set)
2058
-
2059
- typedef typename boost::unordered::detail::rebind_wrap<A, T>::type
2060
- value_allocator;
2061
- typedef N node_;
2062
-
2063
1921
  public:
1922
+ Iter position;
2064
1923
  bool inserted;
2065
- boost::unordered::iterator_detail::c_iterator<node_> position;
2066
- boost::unordered::node_handle_set<N, T, A> node;
1924
+ NodeType node;
2067
1925
 
2068
- insert_return_type_set() : inserted(false), position(), node() {}
1926
+ insert_return_type_set() : position(), inserted(false), node() {}
1927
+ insert_return_type_set(insert_return_type_set const&) = delete;
1928
+ insert_return_type_set& operator=(insert_return_type_set const&) = delete;
2069
1929
 
2070
- insert_return_type_set(BOOST_RV_REF(insert_return_type_set)
2071
- x) BOOST_NOEXCEPT : inserted(x.inserted),
2072
- position(x.position),
2073
- node(boost::move(x.node))
1930
+ insert_return_type_set(insert_return_type_set&& x) noexcept
1931
+ : position(x.position),
1932
+ inserted(x.inserted),
1933
+ node(std::move(x.node))
2074
1934
  {
2075
1935
  }
2076
1936
 
2077
- insert_return_type_set& operator=(BOOST_RV_REF(insert_return_type_set) x)
1937
+ insert_return_type_set& operator=(insert_return_type_set&& x)
2078
1938
  {
2079
1939
  inserted = x.inserted;
2080
1940
  position = x.position;
2081
- node = boost::move(x.node);
1941
+ node = std::move(x.node);
2082
1942
  return *this;
2083
1943
  }
2084
1944
  };
2085
1945
 
2086
- template <typename N, typename T, typename A>
2087
- void swap(
2088
- insert_return_type_set<N, T, A>& x, insert_return_type_set<N, T, A>& y)
1946
+ template <class Iter, class NodeType>
1947
+ void swap(insert_return_type_set<Iter, NodeType>& x,
1948
+ insert_return_type_set<Iter, NodeType>& y)
2089
1949
  {
2090
- boost::swap(x.node, y.node);
2091
- boost::swap(x.inserted, y.inserted);
2092
- boost::swap(x.position, y.position);
1950
+ boost::core::invoke_swap(x.node, y.node);
1951
+ boost::core::invoke_swap(x.inserted, y.inserted);
1952
+ boost::core::invoke_swap(x.position, y.position);
2093
1953
  }
2094
1954
  } // namespace unordered
1955
+
1956
+ namespace serialization {
1957
+ template <class K, class H, class P, class A>
1958
+ struct version<boost::unordered_set<K, H, P, A> >
1959
+ {
1960
+ BOOST_STATIC_CONSTANT(int, value = 1);
1961
+ };
1962
+
1963
+ template <class K, class H, class P, class A>
1964
+ struct version<boost::unordered_multiset<K, H, P, A> >
1965
+ {
1966
+ BOOST_STATIC_CONSTANT(int, value = 1);
1967
+ };
1968
+ } // namespace serialization
1969
+
2095
1970
  } // namespace boost
2096
1971
 
2097
1972
  #if defined(BOOST_MSVC)