passenger 5.3.7 → 6.0.26

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 (3185) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG +651 -19
  3. data/CONTRIBUTING.md +1 -1
  4. data/CONTRIBUTORS +26 -0
  5. data/LICENSE +1 -1
  6. data/README.md +5 -12
  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 +25 -8
  12. data/bin/passenger-memory-stats +67 -14
  13. data/bin/passenger-status +46 -6
  14. data/build/agent.rb +5 -3
  15. data/build/apache2.rb +3 -3
  16. data/build/basics.rb +12 -6
  17. data/build/common_library.rb +8 -7
  18. data/build/cxx_tests.rb +20 -9
  19. data/build/integration_tests.rb +10 -9
  20. data/build/misc.rb +5 -3
  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 +6 -4
  25. data/build/ruby_extension.rb +2 -2
  26. data/build/ruby_tests.rb +3 -3
  27. data/build/schema_printer.rb +2 -2
  28. data/build/support/cplusplus.rb +2 -2
  29. data/build/support/cxx_dependency_map.rb +329 -59
  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 +57 -4
  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 +29 -15
  39. data/dev/copy_boost_headers +142 -79
  40. data/dev/index_cxx_dependencies.rb +1 -1
  41. data/dev/nginx_version_sha256 +72 -0
  42. data/dev/websocketpp.patch +39 -0
  43. data/doc/DesignAspects/LimitedGemDependencies.md +39 -0
  44. data/doc/DesignAspects/NoGemActivationDuringRubyLoaderInitialization.md +27 -0
  45. data/doc/templates/markdown.html.erb +2 -6
  46. data/package.json +20 -18
  47. data/passenger.gemspec +17 -3
  48. data/resources/mime.types +1 -0
  49. data/resources/release.txt +1 -0
  50. data/resources/templates/apache2/deployment_example.txt.erb +1 -1
  51. data/resources/templates/config/installation_utils/user_support_binaries_dir_not_writable.txt.erb +1 -0
  52. data/resources/templates/error_renderer/with_details/dist/bundle.js +2 -33
  53. data/resources/templates/error_renderer/with_details/dist/styles.css +2 -2
  54. data/resources/templates/error_renderer/with_details/src/GetHelpView.jsx +1 -1
  55. data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.css +0 -0
  56. data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.js +0 -0
  57. data/resources/templates/error_renderer/with_details/src/bootstrap/config.json +0 -0
  58. data/resources/templates/error_renderer/with_details/src/index.html.template +0 -2
  59. data/resources/templates/error_renderer/with_details/webpack.config.js +13 -16
  60. data/resources/templates/error_renderer/without_details/dist/bundle.js +0 -1
  61. data/resources/templates/error_renderer/without_details/dist/styles.css +1 -1
  62. data/resources/templates/error_renderer/without_details/webpack.config.js +13 -16
  63. data/resources/templates/nginx/deployment_example.txt.erb +1 -1
  64. data/resources/templates/standalone/global.erb +4 -0
  65. data/resources/templates/standalone/http.erb +3 -0
  66. data/resources/templates/standalone/rails_asset_pipeline.erb +1 -1
  67. data/resources/templates/standalone/server.erb +4 -0
  68. data/src/agent/AgentMain.cpp +7 -9
  69. data/src/agent/Core/AdminPanelConnector.h +5 -6
  70. data/src/agent/Core/ApiServer.h +38 -3
  71. data/src/agent/Core/ApplicationPool/AbstractSession.h +2 -2
  72. data/src/agent/Core/ApplicationPool/BasicGroupInfo.h +2 -2
  73. data/src/agent/Core/ApplicationPool/BasicProcessInfo.h +2 -2
  74. data/src/agent/Core/ApplicationPool/Common.h +2 -2
  75. data/src/agent/Core/ApplicationPool/Context.h +7 -4
  76. data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +10 -2
  77. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +14 -6
  78. data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +10 -2
  79. data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +11 -2
  80. data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +12 -3
  81. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +86 -6
  82. data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +42 -12
  83. data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +10 -2
  84. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +15 -4
  85. data/src/agent/Core/ApplicationPool/Group/Verification.cpp +10 -2
  86. data/src/agent/Core/ApplicationPool/Group.h +19 -8
  87. data/src/agent/Core/ApplicationPool/Implementation.cpp +2 -3
  88. data/src/agent/Core/ApplicationPool/Options.h +36 -13
  89. data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +7 -2
  90. data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +8 -3
  91. data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +7 -2
  92. data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +7 -2
  93. data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +7 -2
  94. data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +7 -2
  95. data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +8 -3
  96. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +18 -4
  97. data/src/agent/Core/ApplicationPool/Pool.h +12 -6
  98. data/src/agent/Core/ApplicationPool/Process.cpp +2 -2
  99. data/src/agent/Core/ApplicationPool/Process.h +27 -8
  100. data/src/agent/Core/ApplicationPool/Session.h +8 -3
  101. data/src/agent/Core/ApplicationPool/Socket.h +2 -2
  102. data/src/agent/Core/ApplicationPool/TestSession.h +2 -2
  103. data/src/agent/Core/Config.h +39 -8
  104. data/src/agent/Core/ConfigChange.cpp +2 -2
  105. data/src/agent/Core/ConfigChange.h +2 -2
  106. data/src/agent/Core/Controller/AppResponse.h +2 -3
  107. data/src/agent/Core/Controller/BufferBody.cpp +2 -2
  108. data/src/agent/Core/Controller/CheckoutSession.cpp +50 -16
  109. data/src/agent/Core/Controller/Client.h +2 -2
  110. data/src/agent/Core/Controller/Config.cpp +2 -2
  111. data/src/agent/Core/Controller/Config.h +55 -13
  112. data/src/agent/Core/Controller/ForwardResponse.cpp +15 -2
  113. data/src/agent/Core/Controller/Hooks.cpp +2 -2
  114. data/src/agent/Core/Controller/Implementation.cpp +2 -2
  115. data/src/agent/Core/Controller/InitRequest.cpp +21 -10
  116. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +5 -2
  117. data/src/agent/Core/Controller/InternalUtils.cpp +34 -8
  118. data/src/agent/Core/Controller/Miscellaneous.cpp +2 -2
  119. data/src/agent/Core/Controller/Request.h +2 -2
  120. data/src/agent/Core/Controller/SendRequest.cpp +4 -4
  121. data/src/agent/Core/Controller/StateInspection.cpp +2 -2
  122. data/src/agent/Core/Controller/TurboCaching.h +2 -2
  123. data/src/agent/Core/Controller.h +8 -3
  124. data/src/agent/Core/CoreMain.cpp +78 -54
  125. data/src/agent/Core/OptionParser.h +23 -2
  126. data/src/agent/Core/ResponseCache.h +5 -4
  127. data/src/agent/Core/SecurityUpdateChecker.h +7 -7
  128. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +22 -2
  129. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h.cxxcodebuilder +2 -2
  130. data/src/agent/Core/SpawningKit/Config.h +26 -2
  131. data/src/agent/Core/SpawningKit/Context.h +3 -2
  132. data/src/agent/Core/SpawningKit/DirectSpawner.h +2 -2
  133. data/src/agent/Core/SpawningKit/DummySpawner.h +2 -2
  134. data/src/agent/Core/SpawningKit/ErrorRenderer.h +7 -2
  135. data/src/agent/Core/SpawningKit/Exceptions.h +2 -2
  136. data/src/agent/Core/SpawningKit/Factory.h +2 -2
  137. data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +3 -3
  138. data/src/agent/Core/SpawningKit/Handshake/Perform.h +8 -7
  139. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +8 -56
  140. data/src/agent/Core/SpawningKit/Handshake/Session.h +5 -2
  141. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +12 -6
  142. data/src/agent/Core/SpawningKit/Journey.h +2 -2
  143. data/src/agent/Core/SpawningKit/PipeWatcher.h +21 -6
  144. data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h +2 -2
  145. data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h.cxxcodebuilder +2 -2
  146. data/src/agent/Core/SpawningKit/Result.h +2 -2
  147. data/src/agent/Core/SpawningKit/SmartSpawner.h +9 -5
  148. data/src/agent/Core/SpawningKit/Spawner.h +29 -7
  149. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +17 -10
  150. data/src/agent/Core/TelemetryCollector.h +4 -3
  151. data/src/agent/ExecHelper/ExecHelperMain.cpp +12 -14
  152. data/src/agent/FileReadHelper/FileReadHelperMain.cpp +195 -0
  153. data/src/agent/MainFunctions.h +38 -0
  154. data/src/agent/Shared/ApiAccountUtils.h +2 -2
  155. data/src/agent/Shared/ApiServerUtils.h +6 -5
  156. data/src/agent/Shared/ApplicationPoolApiKey.h +4 -2
  157. data/src/agent/Shared/Fundamentals/AbortHandler.cpp +90 -11
  158. data/src/agent/Shared/Fundamentals/AbortHandler.h +4 -2
  159. data/src/agent/Shared/Fundamentals/Initialization.cpp +12 -6
  160. data/src/agent/Shared/Fundamentals/Initialization.h +5 -5
  161. data/src/agent/Shared/Fundamentals/Utils.cpp +2 -2
  162. data/src/agent/Shared/Fundamentals/Utils.h +2 -2
  163. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +36 -12
  164. data/src/agent/SystemMetrics/SystemMetricsMain.cpp +3 -2
  165. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +10 -6
  166. data/src/agent/Watchdog/AgentWatcher.cpp +2 -2
  167. data/src/agent/Watchdog/ApiServer.h +3 -3
  168. data/src/agent/Watchdog/Config.h +22 -3
  169. data/src/agent/Watchdog/CoreWatcher.cpp +2 -2
  170. data/src/agent/Watchdog/InstanceDirToucher.cpp +3 -3
  171. data/src/agent/Watchdog/WatchdogMain.cpp +23 -22
  172. data/src/apache2_module/Bucket.cpp +2 -2
  173. data/src/apache2_module/Bucket.h +2 -2
  174. data/src/apache2_module/CBindings.cpp +2 -2
  175. data/src/apache2_module/Config.cpp +3 -3
  176. data/src/apache2_module/Config.h +2 -2
  177. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +68 -28
  178. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp.cxxcodebuilder +2 -2
  179. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +32 -2
  180. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp.cxxcodebuilder +2 -2
  181. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +121 -3
  182. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp.cxxcodebuilder +2 -2
  183. data/src/apache2_module/ConfigGeneral/Common.h +2 -2
  184. data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +7 -5
  185. data/src/apache2_module/ConfigGeneral/SetterFuncs.h +2 -2
  186. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +25 -2
  187. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp.cxxcodebuilder +2 -2
  188. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +14 -2
  189. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp.cxxcodebuilder +2 -2
  190. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +65 -2
  191. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +2 -2
  192. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +37 -2
  193. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp.cxxcodebuilder +2 -2
  194. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +84 -4
  195. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +5 -2
  196. data/src/apache2_module/DirectoryMapper.h +16 -5
  197. data/src/apache2_module/Hooks.cpp +51 -7
  198. data/src/apache2_module/Hooks.h +2 -2
  199. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +31 -2
  200. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +2 -2
  201. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +57 -21
  202. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +4 -3
  203. data/src/apache2_module/Utils.h +2 -2
  204. data/src/apache2_module/mod_passenger.c +2 -2
  205. data/src/cxx_supportlib/Algorithms/Hasher.cpp +2 -2
  206. data/src/cxx_supportlib/Algorithms/Hasher.h +2 -2
  207. data/src/cxx_supportlib/Algorithms/MovingAverage.h +2 -8
  208. data/src/cxx_supportlib/AppLocalConfigFileUtils.h +148 -0
  209. data/src/cxx_supportlib/AppTypeDetector/CBindings.cpp +14 -3
  210. data/src/cxx_supportlib/AppTypeDetector/CBindings.h +4 -2
  211. data/src/cxx_supportlib/AppTypeDetector/Detector.h +40 -6
  212. data/src/cxx_supportlib/BackgroundEventLoop.cpp +7 -3
  213. data/src/cxx_supportlib/BackgroundEventLoop.h +2 -2
  214. data/src/cxx_supportlib/ConfigKit/AsyncUtils.h +2 -2
  215. data/src/cxx_supportlib/ConfigKit/Common.h +3 -3
  216. data/src/cxx_supportlib/ConfigKit/ConfigKit.h +2 -2
  217. data/src/cxx_supportlib/ConfigKit/DummyTranslator.h +2 -2
  218. data/src/cxx_supportlib/ConfigKit/PrefixTranslator.h +2 -2
  219. data/src/cxx_supportlib/ConfigKit/Schema.h +3 -3
  220. data/src/cxx_supportlib/ConfigKit/SchemaUtils.h +2 -2
  221. data/src/cxx_supportlib/ConfigKit/Store.h +2 -2
  222. data/src/cxx_supportlib/ConfigKit/SubComponentUtils.h +2 -2
  223. data/src/cxx_supportlib/ConfigKit/TableTranslator.h +2 -2
  224. data/src/cxx_supportlib/ConfigKit/Translator.h +3 -3
  225. data/src/cxx_supportlib/ConfigKit/Utils.h +2 -2
  226. data/src/cxx_supportlib/Constants.h +7 -5
  227. data/src/cxx_supportlib/Constants.h.cxxcodebuilder +2 -2
  228. data/src/cxx_supportlib/DataStructures/HashMap.h +2 -2
  229. data/src/cxx_supportlib/DataStructures/HashedStaticString.h +4 -2
  230. data/src/cxx_supportlib/DataStructures/LString.cpp +2 -2
  231. data/src/cxx_supportlib/DataStructures/LString.h +6 -2
  232. data/src/cxx_supportlib/DataStructures/StringKeyTable.h +3 -3
  233. data/src/cxx_supportlib/DataStructures/StringMap.h +2 -3
  234. data/src/cxx_supportlib/Exceptions.cpp +2 -2
  235. data/src/cxx_supportlib/Exceptions.h +2 -2
  236. data/src/cxx_supportlib/FileDescriptor.h +10 -2
  237. data/src/cxx_supportlib/FileTools/FileManip.cpp +12 -3
  238. data/src/cxx_supportlib/FileTools/FileManip.h +18 -2
  239. data/src/cxx_supportlib/FileTools/LargeFiles.h +2 -2
  240. data/src/cxx_supportlib/FileTools/PathManip.cpp +13 -4
  241. data/src/cxx_supportlib/FileTools/PathManip.h +2 -2
  242. data/src/cxx_supportlib/FileTools/PathManipCBindings.cpp +2 -2
  243. data/src/cxx_supportlib/FileTools/PathManipCBindings.h +2 -2
  244. data/src/cxx_supportlib/FileTools/PathSecurityCheck.cpp +2 -2
  245. data/src/cxx_supportlib/FileTools/PathSecurityCheck.h +2 -2
  246. data/src/cxx_supportlib/Hooks.h +3 -2
  247. data/src/cxx_supportlib/IOTools/BufferedIO.h +3 -3
  248. data/src/cxx_supportlib/IOTools/IOUtils.cpp +8 -12
  249. data/src/cxx_supportlib/IOTools/IOUtils.h +2 -2
  250. data/src/cxx_supportlib/IOTools/MessageIO.h +3 -3
  251. data/src/cxx_supportlib/IOTools/MessageSerialization.h +2 -2
  252. data/src/cxx_supportlib/InstanceDirectory.h +2 -2
  253. data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +5 -5
  254. data/src/cxx_supportlib/JsonTools/Autocast.h +2 -2
  255. data/src/cxx_supportlib/JsonTools/CBindings.cpp +2 -4
  256. data/src/cxx_supportlib/JsonTools/CBindings.h +2 -2
  257. data/src/cxx_supportlib/JsonTools/JsonUtils.h +6 -6
  258. data/src/cxx_supportlib/LoggingKit/Assert.h +2 -2
  259. data/src/cxx_supportlib/LoggingKit/Config.h +4 -2
  260. data/src/cxx_supportlib/LoggingKit/Context.h +18 -23
  261. data/src/cxx_supportlib/LoggingKit/Forward.h +2 -4
  262. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +53 -83
  263. data/src/cxx_supportlib/LoggingKit/Logging.h +2 -2
  264. data/src/cxx_supportlib/LoggingKit/LoggingKit.h +2 -2
  265. data/src/cxx_supportlib/LveLoggingDecorator.h +2 -2
  266. data/src/cxx_supportlib/MemoryKit/mbuf.cpp +14 -6
  267. data/src/cxx_supportlib/MemoryKit/mbuf.h +3 -3
  268. data/src/cxx_supportlib/MemoryKit/palloc.cpp +1 -1
  269. data/src/cxx_supportlib/MemoryKit/palloc.h +1 -1
  270. data/src/cxx_supportlib/ProcessManagement/Ruby.cpp +2 -2
  271. data/src/cxx_supportlib/ProcessManagement/Ruby.h +2 -2
  272. data/src/cxx_supportlib/ProcessManagement/Spawn.cpp +2 -2
  273. data/src/cxx_supportlib/ProcessManagement/Spawn.h +2 -2
  274. data/src/cxx_supportlib/ProcessManagement/Utils.cpp +3 -3
  275. data/src/cxx_supportlib/ProcessManagement/Utils.h +2 -2
  276. data/src/cxx_supportlib/RandomGenerator.h +2 -2
  277. data/src/cxx_supportlib/ResourceLocator.h +3 -3
  278. data/src/cxx_supportlib/SafeLibev.h +6 -6
  279. data/src/cxx_supportlib/SecurityKit/Crypto.cpp +5 -96
  280. data/src/cxx_supportlib/SecurityKit/Crypto.h +2 -10
  281. data/src/cxx_supportlib/SecurityKit/MemZeroGuard.h +2 -2
  282. data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +3 -3
  283. data/src/cxx_supportlib/ServerKit/Channel.h +2 -2
  284. data/src/cxx_supportlib/ServerKit/Client.h +2 -2
  285. data/src/cxx_supportlib/ServerKit/ClientRef.h +2 -2
  286. data/src/cxx_supportlib/ServerKit/Config.h +2 -2
  287. data/src/cxx_supportlib/ServerKit/Context.h +8 -2
  288. data/src/cxx_supportlib/ServerKit/CookieUtils.h +2 -2
  289. data/src/cxx_supportlib/ServerKit/Errors.h +5 -4
  290. data/src/cxx_supportlib/ServerKit/FdSinkChannel.h +2 -2
  291. data/src/cxx_supportlib/ServerKit/FdSourceChannel.h +2 -2
  292. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +2 -2
  293. data/src/cxx_supportlib/ServerKit/FileBufferedFdSinkChannel.h +2 -2
  294. data/src/cxx_supportlib/ServerKit/HeaderTable.h +2 -2
  295. data/src/cxx_supportlib/ServerKit/Hooks.h +4 -4
  296. data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +3 -3
  297. data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParserState.h +2 -2
  298. data/src/cxx_supportlib/ServerKit/HttpClient.h +2 -2
  299. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +103 -71
  300. data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +6 -3
  301. data/src/cxx_supportlib/ServerKit/HttpRequest.h +4 -4
  302. data/src/cxx_supportlib/ServerKit/HttpRequestRef.h +2 -2
  303. data/src/cxx_supportlib/ServerKit/HttpServer.h +20 -14
  304. data/src/cxx_supportlib/ServerKit/Implementation.cpp +2 -2
  305. data/src/cxx_supportlib/ServerKit/Server.h +2 -8
  306. data/src/cxx_supportlib/ServerKit/llerrors.h +84 -0
  307. data/src/cxx_supportlib/ServerKit/llhttp.c +10168 -0
  308. data/src/cxx_supportlib/ServerKit/llhttp.h +903 -0
  309. data/src/cxx_supportlib/ServerKit/llhttp_api.c +510 -0
  310. data/src/cxx_supportlib/ServerKit/llhttp_http.c +170 -0
  311. data/src/cxx_supportlib/ServerKit/llversion.h +12 -0
  312. data/src/cxx_supportlib/ServerKit/url_parser.c +574 -0
  313. data/src/cxx_supportlib/ServerKit/url_parser.h +74 -0
  314. data/src/cxx_supportlib/StaticString.h +7 -3
  315. data/src/cxx_supportlib/StrIntTools/DateParsing.h +3 -3
  316. data/src/cxx_supportlib/StrIntTools/StrIntUtils.cpp +14 -5
  317. data/src/cxx_supportlib/StrIntTools/StrIntUtils.h +7 -2
  318. data/src/cxx_supportlib/StrIntTools/StrIntUtilsNoStrictAliasing.cpp +2 -2
  319. data/src/cxx_supportlib/StrIntTools/StringScanning.h +2 -2
  320. data/src/cxx_supportlib/StrIntTools/Template.h +2 -2
  321. data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +59 -4
  322. data/src/cxx_supportlib/SystemTools/ProcessMetricsCollector.h +3 -3
  323. data/src/cxx_supportlib/SystemTools/SystemMetricsCollector.h +4 -4
  324. data/src/cxx_supportlib/SystemTools/SystemTime.cpp +2 -2
  325. data/src/cxx_supportlib/SystemTools/SystemTime.h +2 -2
  326. data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +16 -16
  327. data/src/cxx_supportlib/SystemTools/UserDatabase.h +8 -12
  328. data/src/cxx_supportlib/Utils/AnsiColorConstants.h +13 -11
  329. data/src/cxx_supportlib/Utils/AsyncSignalSafeUtils.h +4 -2
  330. data/src/cxx_supportlib/Utils/BlockingQueue.h +2 -2
  331. data/src/cxx_supportlib/Utils/CachedFileStat.cpp +2 -2
  332. data/src/cxx_supportlib/Utils/CachedFileStat.h +2 -2
  333. data/src/cxx_supportlib/Utils/CachedFileStat.hpp +2 -2
  334. data/src/cxx_supportlib/Utils/ClassUtils.h +2 -2
  335. data/src/cxx_supportlib/Utils/Curl.h +2 -2
  336. data/src/cxx_supportlib/Utils/FastStringStream.h +2 -2
  337. data/src/cxx_supportlib/Utils/FileChangeChecker.h +2 -2
  338. data/src/cxx_supportlib/Utils/HttpConstants.h +3 -3
  339. data/src/cxx_supportlib/Utils/IniFile.h +2 -2
  340. data/src/cxx_supportlib/Utils/MessagePassing.h +2 -2
  341. data/src/cxx_supportlib/Utils/OptionParsing.h +2 -2
  342. data/src/cxx_supportlib/Utils/ReleaseableScopedPointer.h +2 -2
  343. data/src/cxx_supportlib/Utils/ScopeGuard.h +2 -2
  344. data/src/cxx_supportlib/Utils/SpeedMeter.h +2 -5
  345. data/src/cxx_supportlib/Utils/Timer.h +2 -2
  346. data/src/cxx_supportlib/Utils/VariantMap.h +2 -2
  347. data/src/cxx_supportlib/Utils.cpp +3 -3
  348. data/src/cxx_supportlib/Utils.h +2 -2
  349. data/src/cxx_supportlib/WatchdogLauncher.cpp +2 -2
  350. data/src/cxx_supportlib/WatchdogLauncher.h +3 -5
  351. data/src/cxx_supportlib/WebSocketCommandReverseServer.h +22 -21
  352. data/src/cxx_supportlib/WrapperRegistry/CBindings.cpp +2 -2
  353. data/src/cxx_supportlib/WrapperRegistry/CBindings.h +2 -2
  354. data/src/cxx_supportlib/WrapperRegistry/Entry.h +2 -2
  355. data/src/cxx_supportlib/WrapperRegistry/Registry.h +2 -2
  356. data/src/cxx_supportlib/oxt/backtrace.hpp +1 -1
  357. data/src/cxx_supportlib/oxt/detail/backtrace_disabled.hpp +1 -1
  358. data/src/cxx_supportlib/oxt/detail/backtrace_enabled.hpp +1 -1
  359. data/src/cxx_supportlib/oxt/detail/context.hpp +1 -1
  360. data/src/cxx_supportlib/oxt/detail/spin_lock_darwin.hpp +1 -1
  361. data/src/cxx_supportlib/oxt/detail/spin_lock_gcc_x86.hpp +1 -1
  362. data/src/cxx_supportlib/oxt/detail/spin_lock_portable.hpp +1 -1
  363. data/src/cxx_supportlib/oxt/detail/spin_lock_pthreads.hpp +1 -1
  364. data/src/cxx_supportlib/oxt/detail/tracable_exception_disabled.hpp +1 -1
  365. data/src/cxx_supportlib/oxt/detail/tracable_exception_enabled.hpp +1 -1
  366. data/src/cxx_supportlib/oxt/dynamic_thread_group.hpp +6 -2
  367. data/src/cxx_supportlib/oxt/implementation.cpp +13 -3
  368. data/src/cxx_supportlib/oxt/initialize.hpp +1 -1
  369. data/src/cxx_supportlib/oxt/macros.hpp +1 -1
  370. data/src/cxx_supportlib/oxt/spin_lock.hpp +1 -1
  371. data/src/cxx_supportlib/oxt/system_calls.cpp +22 -15
  372. data/src/cxx_supportlib/oxt/system_calls.hpp +1 -1
  373. data/src/cxx_supportlib/oxt/thread.hpp +3 -3
  374. data/src/cxx_supportlib/oxt/tracable_exception.hpp +1 -1
  375. data/src/cxx_supportlib/vendor-copy/adhoc_lve.h +2 -2
  376. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/compare.hpp +3 -3
  377. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/case_conv.hpp +5 -2
  378. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/classification.hpp +3 -1
  379. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_format_all.hpp +2 -0
  380. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_iterator.hpp +11 -3
  381. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/finder.hpp +15 -15
  382. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/formatter.hpp +1 -1
  383. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/trim.hpp +3 -3
  384. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/find_format.hpp +1 -2
  385. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/find_iterator.hpp +27 -1
  386. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/finder.hpp +0 -4
  387. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/formatter.hpp +0 -1
  388. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/iter_find.hpp +8 -0
  389. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/predicate.hpp +4 -3
  390. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/split.hpp +12 -0
  391. data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +47 -0
  392. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +41 -0
  393. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_sunos.hpp +34 -0
  394. data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +28 -0
  395. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_executor.hpp +338 -0
  396. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_handler.hpp +824 -0
  397. data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +353 -0
  398. data/src/cxx_supportlib/vendor-modified/boost/asio/append.hpp +67 -0
  399. data/src/cxx_supportlib/vendor-modified/boost/asio/as_tuple.hpp +154 -0
  400. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +115 -32
  401. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +223 -0
  402. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +119 -33
  403. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_immediate_executor.hpp +283 -0
  404. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +37 -0
  405. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +834 -107
  406. data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +144 -0
  407. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +651 -329
  408. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +206 -124
  409. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_file.hpp +826 -0
  410. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +4 -8
  411. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +691 -0
  412. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +657 -331
  413. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +628 -0
  414. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +376 -171
  415. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +413 -114
  416. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +325 -68
  417. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +427 -248
  418. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +1239 -517
  419. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +22 -121
  420. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +16 -81
  421. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +746 -0
  422. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +494 -252
  423. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +13 -15
  424. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +3 -3
  425. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +251 -132
  426. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +624 -0
  427. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +598 -0
  428. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +615 -0
  429. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +235 -182
  430. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_immediate_executor.hpp +618 -0
  431. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +961 -370
  432. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer_registration.hpp +320 -0
  433. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +55 -39
  434. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +1 -1
  435. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +61 -47
  436. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +1 -1
  437. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +55 -39
  438. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +1 -1
  439. data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +4 -4
  440. data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_after.hpp +303 -0
  441. data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_at.hpp +296 -0
  442. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +247 -0
  443. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +237 -0
  444. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +159 -0
  445. data/src/cxx_supportlib/vendor-modified/boost/asio/co_composed.hpp +1323 -0
  446. data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +525 -0
  447. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +50 -1
  448. data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +130 -0
  449. data/src/cxx_supportlib/vendor-modified/boost/asio/composed.hpp +415 -0
  450. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +468 -181
  451. data/src/cxx_supportlib/vendor-modified/boost/asio/connect_pipe.hpp +85 -0
  452. data/src/cxx_supportlib/vendor-modified/boost/asio/consign.hpp +77 -0
  453. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +7 -7
  454. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +1 -1
  455. data/src/cxx_supportlib/vendor-modified/boost/asio/default_completion_token.hpp +91 -0
  456. data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +154 -43
  457. data/src/cxx_supportlib/vendor-modified/boost/asio/deferred.hpp +721 -0
  458. data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +107 -0
  459. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +2 -10
  460. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +2 -4
  461. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +1 -1
  462. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +24 -10
  463. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +166 -0
  464. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +4 -3
  465. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +265 -370
  466. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/blocking_executor_op.hpp +109 -0
  467. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +1 -1
  468. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +300 -7
  469. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +2 -2
  470. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +1 -1
  471. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +2 -23
  472. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +1 -1
  473. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +12 -7
  474. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_message.hpp +129 -0
  475. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_payload.hpp +222 -0
  476. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_payload_handler.hpp +81 -0
  477. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/composed_work.hpp +254 -0
  478. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +1 -1
  479. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +9 -1
  480. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +1 -1
  481. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +700 -722
  482. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +40 -11
  483. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +1 -5
  484. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +3 -23
  485. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +1 -1
  486. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +74 -13
  487. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +1 -1
  488. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +65 -7
  489. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +76 -16
  490. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +75 -16
  491. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +36 -7
  492. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +36 -7
  493. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +3 -5
  494. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +2 -2
  495. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/exception.hpp +31 -0
  496. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_function.hpp +154 -0
  497. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +6 -6
  498. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +1 -1
  499. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +3 -43
  500. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +5 -10
  501. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +32 -0
  502. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +3 -5
  503. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +31 -145
  504. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +1 -1
  505. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +27 -1
  506. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +24 -27
  507. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +452 -36
  508. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +1 -1
  509. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +1 -1
  510. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +605 -85
  511. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +21 -1
  512. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +28 -5
  513. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +21 -1
  514. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +47 -8
  515. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +20 -14
  516. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +47 -7
  517. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_descriptor_service.ipp +207 -0
  518. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_file_service.ipp +142 -0
  519. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_service.hpp +114 -0
  520. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_service.ipp +916 -0
  521. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_socket_service_base.ipp +251 -0
  522. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +21 -1
  523. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +49 -7
  524. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +1 -1
  525. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +11 -6
  526. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +8 -4
  527. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +1 -1
  528. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_serial_port_service.ipp +170 -0
  529. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +1 -1
  530. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +1 -1
  531. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +23 -13
  532. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +32 -20
  533. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +39 -35
  534. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/scheduler.ipp +110 -6
  535. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +25 -1
  536. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +74 -7
  537. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +2 -3
  538. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +1 -1
  539. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +185 -28
  540. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +828 -355
  541. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +19 -10
  542. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +209 -42
  543. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +25 -1
  544. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +8 -40
  545. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +34 -9
  546. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/thread_context.ipp +37 -0
  547. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +10 -6
  548. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +17 -11
  549. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +1 -1
  550. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_defer.hpp +209 -0
  551. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_dispatch.hpp +195 -0
  552. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_post.hpp +209 -0
  553. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiation_base.hpp +64 -0
  554. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +1 -1
  555. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_object_impl.hpp +179 -0
  556. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_at_op.hpp +197 -0
  557. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_op.hpp +192 -0
  558. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_service.hpp +689 -0
  559. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_at_op.hpp +191 -0
  560. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_op.hpp +187 -0
  561. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_file_service.hpp +263 -0
  562. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_null_buffers_op.hpp +116 -0
  563. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_operation.hpp +86 -0
  564. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_service.hpp +321 -0
  565. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_accept_op.hpp +282 -0
  566. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_connect_op.hpp +142 -0
  567. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recv_op.hpp +207 -0
  568. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvfrom_op.hpp +208 -0
  569. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvmsg_op.hpp +194 -0
  570. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_send_op.hpp +193 -0
  571. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_sendto_op.hpp +196 -0
  572. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_service.hpp +631 -0
  573. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_service_base.hpp +665 -0
  574. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_wait_op.hpp +114 -0
  575. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +89 -32
  576. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +1 -1
  577. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +1 -1
  578. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +37 -8
  579. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/limits.hpp +1 -6
  580. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +1 -1
  581. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +83 -27
  582. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +3 -5
  583. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/non_const_lvalue.hpp +45 -0
  584. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +1 -1
  585. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +7 -1
  586. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +1 -1
  587. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +1 -1
  588. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +1 -5
  589. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +19 -4
  590. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +1 -1
  591. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +63 -52
  592. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +1 -1
  593. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +1 -1
  594. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +1 -1
  595. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +1 -1
  596. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +1 -1
  597. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +1 -1
  598. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +2 -2
  599. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +30 -8
  600. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +15 -2
  601. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +1 -1
  602. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_global.hpp +1 -1
  603. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +1 -1
  604. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_serial_port_service.hpp +251 -0
  605. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +1 -1
  606. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +1 -1
  607. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +1 -1
  608. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +1 -1
  609. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +60 -7
  610. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +237 -55
  611. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +49 -8
  612. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +139 -33
  613. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +59 -10
  614. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +81 -19
  615. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +81 -16
  616. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +65 -13
  617. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +86 -20
  618. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +81 -17
  619. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +198 -91
  620. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +319 -75
  621. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +49 -8
  622. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +29 -5
  623. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +8 -2
  624. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +45 -1
  625. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +26 -16
  626. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +4 -4
  627. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +35 -17
  628. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +1 -1
  629. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +35 -19
  630. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +24 -22
  631. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +37 -19
  632. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler.hpp +36 -8
  633. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_operation.hpp +1 -1
  634. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_task.hpp +51 -0
  635. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_thread_info.hpp +1 -1
  636. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +1 -1
  637. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +1 -1
  638. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +1 -1
  639. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +59 -6
  640. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +2 -3
  641. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +1 -1
  642. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +11 -7
  643. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +1 -1
  644. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +5 -1
  645. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +90 -15
  646. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +1 -1
  647. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +71 -33
  648. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +1 -1
  649. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +2 -2
  650. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +12 -1
  651. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/source_location.hpp +47 -0
  652. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +3 -5
  653. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +13 -6
  654. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +1 -6
  655. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_global.hpp +1 -6
  656. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +1 -6
  657. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +1 -6
  658. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +1 -6
  659. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +36 -5
  660. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +8 -6
  661. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +1 -1
  662. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +7 -9
  663. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +10 -1
  664. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +11 -1
  665. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +164 -25
  666. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +18 -9
  667. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +7 -3
  668. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timed_cancel_op.hpp +363 -0
  669. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +33 -2
  670. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +1 -1
  671. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +6 -2
  672. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +1 -1
  673. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +3 -1
  674. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +3 -1
  675. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +1 -1
  676. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +132 -40
  677. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/utility.hpp +85 -0
  678. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +13 -8
  679. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +6 -2
  680. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +2 -2
  681. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +85 -14
  682. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +33 -129
  683. data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +136 -47
  684. data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +30 -1
  685. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +280 -0
  686. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +1935 -0
  687. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bad_executor.hpp +48 -0
  688. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +1362 -0
  689. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +1082 -0
  690. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +193 -0
  691. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +192 -0
  692. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +118 -0
  693. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/bad_executor.ipp +42 -0
  694. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/invocable_archetype.hpp +45 -0
  695. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +1004 -0
  696. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +186 -0
  697. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +755 -0
  698. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/prefer_only.hpp +330 -0
  699. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +753 -0
  700. data/src/cxx_supportlib/vendor-modified/boost/asio/execution.hpp +33 -0
  701. data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +3 -26
  702. data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +66 -44
  703. data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +239 -47
  704. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +38 -0
  705. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_single.hpp +134 -0
  706. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +38 -0
  707. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +538 -0
  708. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +516 -0
  709. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +516 -0
  710. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +154 -0
  711. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel.hpp +72 -0
  712. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_error.hpp +88 -0
  713. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_traits.hpp +303 -0
  714. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +35 -0
  715. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_spawn.hpp +138 -177
  716. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/concurrent_channel.hpp +72 -0
  717. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +295 -0
  718. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro_traits.hpp +230 -0
  719. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +38 -0
  720. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_operation.hpp +363 -0
  721. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_receive_op.hpp +128 -0
  722. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_functions.hpp +202 -0
  723. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_op.hpp +149 -0
  724. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +681 -0
  725. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_completion_handler.hpp +171 -0
  726. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +142 -0
  727. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/has_signature.hpp +56 -0
  728. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/impl/channel_service.hpp +625 -0
  729. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +199 -0
  730. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +183 -0
  731. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/channel_error.ipp +63 -0
  732. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +1224 -0
  733. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +790 -0
  734. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +257 -0
  735. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_coro.hpp +216 -0
  736. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_promise.hpp +68 -0
  737. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +457 -0
  738. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +38 -0
  739. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +226 -0
  740. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +191 -0
  741. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +113 -0
  742. data/src/cxx_supportlib/vendor-modified/boost/asio/file_base.hpp +168 -0
  743. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +2 -6
  744. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +4 -4
  745. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +1 -1
  746. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +1 -1
  747. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +4 -4
  748. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +4 -4
  749. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +4 -4
  750. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +1 -1
  751. data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +1 -6
  752. data/src/cxx_supportlib/vendor-modified/boost/asio/immediate.hpp +144 -0
  753. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_completion_executor.ipp +128 -0
  754. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_io_executor.ipp +136 -0
  755. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +171 -0
  756. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +278 -0
  757. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +1198 -0
  758. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +160 -185
  759. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +154 -181
  760. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_after.hpp +270 -0
  761. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_at.hpp +270 -0
  762. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancellation_signal.ipp +98 -0
  763. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +459 -0
  764. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +281 -438
  765. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect_pipe.hpp +75 -0
  766. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect_pipe.ipp +151 -0
  767. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +146 -0
  768. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/deferred.hpp +149 -0
  769. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +79 -0
  770. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +4 -4
  771. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.hpp +7 -37
  772. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +1 -1
  773. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +72 -141
  774. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +8 -3
  775. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +220 -132
  776. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +5 -3
  777. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/multiple_exceptions.ipp +47 -0
  778. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +172 -0
  779. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +529 -342
  780. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +202 -280
  781. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +1840 -672
  782. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +289 -0
  783. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +1 -1
  784. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +1 -1
  785. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +1183 -318
  786. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +15 -3
  787. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +2 -2
  788. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +26 -7
  789. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +115 -21
  790. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +198 -48
  791. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +74 -8
  792. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +303 -0
  793. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +186 -417
  794. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +446 -340
  795. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +171 -263
  796. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +699 -70
  797. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +87 -75
  798. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +1 -1
  799. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +1 -1
  800. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +52 -31
  801. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +124 -32
  802. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +13 -19
  803. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +16 -22
  804. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +114 -43
  805. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +13 -18
  806. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +15 -20
  807. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +19 -4
  808. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +46 -27
  809. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +337 -243
  810. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +1 -1
  811. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +4 -8
  812. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +17 -1
  813. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +12 -16
  814. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +21 -19
  815. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +10 -14
  816. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +2 -2
  817. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +1 -1
  818. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +7 -7
  819. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +1 -1
  820. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +23 -22
  821. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +1 -1
  822. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +11 -15
  823. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +1 -1
  824. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +28 -36
  825. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +1 -1
  826. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +1 -1
  827. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.hpp +1 -1
  828. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +6 -4
  829. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +1 -1
  830. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +6 -4
  831. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +8 -8
  832. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +17 -21
  833. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +14 -18
  834. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +1 -1
  835. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +1 -1
  836. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +9 -9
  837. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +7 -7
  838. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +3 -3
  839. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +4 -4
  840. data/src/cxx_supportlib/vendor-modified/boost/asio/is_applicable_property.hpp +63 -0
  841. data/src/cxx_supportlib/vendor-modified/boost/asio/is_contiguous_iterator.hpp +47 -0
  842. data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +1 -1
  843. data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +1 -1
  844. data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +1 -1
  845. data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +10 -6
  846. data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +14 -19
  847. data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +4 -4
  848. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +7 -1
  849. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +10 -8
  850. data/src/cxx_supportlib/vendor-modified/boost/asio/local/seq_packet_protocol.hpp +86 -0
  851. data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +4 -4
  852. data/src/cxx_supportlib/vendor-modified/boost/asio/multiple_exceptions.hpp +54 -0
  853. data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +4 -64
  854. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +35 -105
  855. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +273 -82
  856. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +283 -86
  857. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +5 -612
  858. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +2 -2
  859. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +3 -326
  860. data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +149 -43
  861. data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +581 -0
  862. data/src/cxx_supportlib/vendor-modified/boost/asio/prepend.hpp +68 -0
  863. data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +315 -0
  864. data/src/cxx_supportlib/vendor-modified/boost/asio/random_access_file.hpp +37 -0
  865. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +777 -177
  866. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +231 -74
  867. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +1849 -471
  868. data/src/cxx_supportlib/vendor-modified/boost/asio/readable_pipe.hpp +37 -0
  869. data/src/cxx_supportlib/vendor-modified/boost/asio/recycling_allocator.hpp +140 -0
  870. data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +106 -0
  871. data/src/cxx_supportlib/vendor-modified/boost/asio/registered_buffer.hpp +346 -0
  872. data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +437 -0
  873. data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +347 -0
  874. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +3 -736
  875. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +1 -1
  876. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +3 -422
  877. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_base.hpp +173 -0
  878. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +26 -26
  879. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +640 -105
  880. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +7 -3
  881. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +38 -21
  882. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +7 -2
  883. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +10 -1
  884. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +7 -2
  885. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +65 -10
  886. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +9 -5
  887. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +75 -71
  888. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +1 -1
  889. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +5 -1
  890. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +1 -1
  891. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +7 -2
  892. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +17 -2
  893. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +89 -6
  894. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +2 -2
  895. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +12 -3
  896. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +21 -7
  897. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/host_name_verification.hpp +92 -0
  898. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +1 -1
  899. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +242 -79
  900. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +29 -5
  901. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/host_name_verification.ipp +75 -0
  902. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +5 -1
  903. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +2 -1
  904. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +7 -3
  905. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +423 -142
  906. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +1 -1
  907. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +1 -1
  908. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +1 -1
  909. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +2 -1
  910. data/src/cxx_supportlib/vendor-modified/boost/asio/static_thread_pool.hpp +33 -0
  911. data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +1 -6
  912. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +311 -40
  913. data/src/cxx_supportlib/vendor-modified/boost/asio/stream_file.hpp +37 -0
  914. data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +1 -1
  915. data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +18 -6
  916. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +570 -28
  917. data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +1 -6
  918. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +269 -0
  919. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +773 -42
  920. data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +1 -1
  921. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/equality_comparable.hpp +102 -0
  922. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_member.hpp +106 -0
  923. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_free.hpp +106 -0
  924. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_member.hpp +106 -0
  925. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_free.hpp +106 -0
  926. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_member.hpp +106 -0
  927. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_static_constexpr_member.hpp +103 -0
  928. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_free.hpp +106 -0
  929. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_member.hpp +106 -0
  930. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_free.hpp +106 -0
  931. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_member.hpp +106 -0
  932. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_query.hpp +104 -0
  933. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require.hpp +117 -0
  934. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require_concept.hpp +118 -0
  935. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +1 -1
  936. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +2 -2
  937. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +1 -1
  938. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +1 -1
  939. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +1 -1
  940. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +82 -43
  941. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +1 -1
  942. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +1 -1
  943. data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +1 -1
  944. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +163 -0
  945. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +21 -21
  946. data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +3 -7
  947. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +2 -2
  948. data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +1 -1
  949. data/src/cxx_supportlib/vendor-modified/boost/asio/writable_pipe.hpp +37 -0
  950. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +772 -173
  951. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +237 -73
  952. data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +1 -1
  953. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +72 -28
  954. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +197 -0
  955. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +170 -11
  956. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_flag.hpp +12 -3
  957. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +97 -0
  958. data/src/cxx_supportlib/vendor-modified/boost/atomic/capabilities.hpp +2 -191
  959. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +8 -1
  960. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/aligned_variable.hpp +57 -0
  961. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag_impl.hpp +129 -0
  962. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_impl.hpp +1265 -0
  963. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +1228 -0
  964. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +102 -12
  965. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +43 -11
  966. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/capabilities.hpp +217 -0
  967. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_aarch32.hpp +53 -0
  968. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_aarch64.hpp +65 -0
  969. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_alpha.hpp +34 -0
  970. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_arm.hpp +103 -0
  971. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_ppc.hpp +55 -0
  972. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_sparc.hpp +34 -0
  973. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_x86.hpp +74 -0
  974. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_msvc_arm.hpp +34 -0
  975. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_msvc_x86.hpp +61 -0
  976. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_atomic.hpp +100 -75
  977. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_sync.hpp +0 -7
  978. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/cas_based_exchange.hpp +50 -0
  979. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/classify.hpp +90 -0
  980. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +57 -64
  981. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_operations.hpp +50 -0
  982. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_operations_fwd.hpp +38 -0
  983. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch32.hpp +1121 -0
  984. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch64.hpp +1909 -0
  985. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_alpha.hpp +867 -0
  986. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_arm.hpp +1417 -0
  987. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_ppc.hpp +1218 -0
  988. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_sparc.hpp +215 -0
  989. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +1110 -0
  990. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_arm.hpp +828 -0
  991. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_x86.hpp +903 -0
  992. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations.hpp +49 -0
  993. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +194 -0
  994. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated_fwd.hpp +38 -0
  995. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_fwd.hpp +38 -0
  996. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_cas_based.hpp +94 -0
  997. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_atomic.hpp +306 -0
  998. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_sync.hpp +263 -0
  999. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_linux_arm.hpp +169 -0
  1000. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extending_cas_based_arithmetic.hpp +72 -0
  1001. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_operations_fwd.hpp +4 -1
  1002. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +22 -12
  1003. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +13 -10
  1004. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_operations_fwd.hpp +4 -1
  1005. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +59 -40
  1006. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch32.hpp +1060 -0
  1007. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch64.hpp +1330 -0
  1008. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_arm.hpp +363 -355
  1009. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +167 -163
  1010. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_x86.hpp +232 -102
  1011. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_generic.hpp +9 -17
  1012. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_arm.hpp +6 -4
  1013. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_x86.hpp +119 -92
  1014. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_operations.hpp +41 -0
  1015. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch32.hpp +60 -0
  1016. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch64.hpp +58 -0
  1017. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_alpha.hpp +53 -0
  1018. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_arm.hpp +90 -0
  1019. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_ppc.hpp +68 -0
  1020. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_sparc.hpp +70 -0
  1021. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_x86.hpp +69 -0
  1022. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_arm.hpp +66 -0
  1023. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_x86.hpp +66 -0
  1024. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations.hpp +41 -0
  1025. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations_emulated.hpp +50 -0
  1026. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_atomic.hpp +75 -0
  1027. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_sync.hpp +53 -0
  1028. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_linux_arm.hpp +64 -0
  1029. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/float_sizes.hpp +122 -35
  1030. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/footer.hpp +24 -0
  1031. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_operations_fwd.hpp +4 -1
  1032. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +13 -8
  1033. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_generic.hpp +6 -3
  1034. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +185 -0
  1035. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_arm_asm_common.hpp +79 -0
  1036. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_atomic_memory_order_utils.hpp +66 -0
  1037. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_ppc_asm_common.hpp +33 -0
  1038. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/header.hpp +72 -0
  1039. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +25 -1
  1040. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/integral_conversions.hpp +108 -0
  1041. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +35 -11
  1042. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/intptr.hpp +46 -0
  1043. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/lock_pool.hpp +151 -0
  1044. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/memory_order_utils.hpp +47 -0
  1045. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/once_flag.hpp +43 -0
  1046. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_aarch32_common.hpp +53 -0
  1047. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_aarch64_common.hpp +53 -0
  1048. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm_common.hpp +8 -79
  1049. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc_common.hpp +4 -1
  1050. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_common.hpp +7 -2
  1051. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +30 -5
  1052. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +80 -34
  1053. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_traits.hpp +187 -0
  1054. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/alignment_of.hpp +51 -0
  1055. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/has_unique_object_representations.hpp +143 -0
  1056. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_enum.hpp +42 -0
  1057. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_floating_point.hpp +3 -2
  1058. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_nothrow_default_constructible.hpp +46 -0
  1059. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_copyable.hpp +45 -0
  1060. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/remove_cv.hpp +42 -0
  1061. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_capabilities.hpp +363 -0
  1062. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_darwin_ulock.hpp +58 -0
  1063. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_dragonfly_umtx.hpp +30 -0
  1064. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_freebsd_umtx.hpp +40 -0
  1065. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_futex.hpp +31 -0
  1066. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +64 -0
  1067. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_operations.hpp +28 -0
  1068. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_operations_fwd.hpp +43 -0
  1069. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_darwin_ulock.hpp +158 -0
  1070. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_dragonfly_umtx.hpp +75 -0
  1071. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +96 -0
  1072. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_freebsd_umtx.hpp +119 -0
  1073. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_futex.hpp +111 -0
  1074. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_generic.hpp +143 -0
  1075. data/src/cxx_supportlib/vendor-modified/boost/atomic/fences.hpp +7 -18
  1076. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +90 -0
  1077. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_flag.hpp +40 -0
  1078. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +97 -0
  1079. data/src/cxx_supportlib/vendor-modified/boost/atomic.hpp +9 -0
  1080. data/src/cxx_supportlib/vendor-modified/boost/bind/apply.hpp +4 -49
  1081. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +263 -1815
  1082. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_cc.hpp +117 -0
  1083. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf2_cc.hpp +210 -0
  1084. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf_cc.hpp +405 -0
  1085. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/integer_sequence.hpp +111 -0
  1086. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/result_traits.hpp +165 -0
  1087. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/tuple_for_each.hpp +64 -0
  1088. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +143 -279
  1089. data/src/cxx_supportlib/vendor-modified/boost/bind/placeholders.hpp +13 -14
  1090. data/src/cxx_supportlib/vendor-modified/boost/bind/protect.hpp +24 -259
  1091. data/src/cxx_supportlib/vendor-modified/boost/bind/std_placeholders.hpp +33 -0
  1092. data/src/cxx_supportlib/vendor-modified/boost/cerrno.hpp +4 -320
  1093. data/src/cxx_supportlib/vendor-modified/boost/chrono/config.hpp +2 -0
  1094. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +14 -14
  1095. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp +34 -34
  1096. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/thread_clock.hpp +4 -4
  1097. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/chrono.hpp +34 -14
  1098. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp +27 -27
  1099. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/thread_clock.hpp +4 -4
  1100. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/is_evenly_divisible_by.hpp +1 -7
  1101. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/requires_cxx11.hpp +23 -0
  1102. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/scan_keyword.hpp +4 -2
  1103. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/system.hpp +5 -4
  1104. data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +10 -6
  1105. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_get.hpp +1 -1
  1106. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +4 -4
  1107. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_put.hpp +5 -5
  1108. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_style.hpp +1 -1
  1109. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +3 -2
  1110. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +4 -4
  1111. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/timezone.hpp +2 -1
  1112. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/ios_base_state_ptr.hpp +7 -7
  1113. data/src/cxx_supportlib/vendor-modified/boost/chrono/io_v1/chrono_io.hpp +3 -3
  1114. data/src/cxx_supportlib/vendor-modified/boost/chrono/system_clocks.hpp +3 -2
  1115. data/src/cxx_supportlib/vendor-modified/boost/chrono/time_point.hpp +1 -1
  1116. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +178 -167
  1117. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +39 -47
  1118. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/space_optimized.hpp +32 -38
  1119. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer.hpp +12 -9
  1120. data/src/cxx_supportlib/vendor-modified/boost/concept/assert.hpp +2 -2
  1121. data/src/cxx_supportlib/vendor-modified/boost/concept/detail/general.hpp +24 -3
  1122. data/src/cxx_supportlib/vendor-modified/boost/concept/detail/has_constraints.hpp +3 -3
  1123. data/src/cxx_supportlib/vendor-modified/boost/concept/usage.hpp +8 -1
  1124. data/src/cxx_supportlib/vendor-modified/boost/concept_check.hpp +20 -20
  1125. data/src/cxx_supportlib/vendor-modified/boost/config/abi_prefix.hpp +1 -1
  1126. data/src/cxx_supportlib/vendor-modified/boost/config/abi_suffix.hpp +1 -3
  1127. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +211 -0
  1128. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +212 -0
  1129. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +47 -0
  1130. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +65 -0
  1131. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +59 -0
  1132. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx23.hpp +41 -0
  1133. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx98.hpp +23 -0
  1134. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +78 -19
  1135. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +13 -3
  1136. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +38 -4
  1137. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +89 -0
  1138. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +164 -10
  1139. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/comeau.hpp +1 -1
  1140. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +40 -11
  1141. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +374 -52
  1142. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +10 -1
  1143. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +41 -11
  1144. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +9 -2
  1145. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/greenhills.hpp +1 -1
  1146. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +7 -1
  1147. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +14 -1
  1148. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/kai.hpp +1 -1
  1149. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +10 -1
  1150. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +10 -1
  1151. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +9 -3
  1152. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +9 -0
  1153. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +15 -0
  1154. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +10 -1
  1155. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +54 -10
  1156. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +22 -0
  1157. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +5 -0
  1158. data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +218 -0
  1159. data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_compiler_config.hpp +1 -2
  1160. data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_platform_config.hpp +5 -0
  1161. data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_stdlib_config.hpp +13 -2
  1162. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +303 -5
  1163. data/src/cxx_supportlib/vendor-modified/boost/config/header_deprecated.hpp +1 -1
  1164. data/src/cxx_supportlib/vendor-modified/boost/config/platform/bsd.hpp +5 -8
  1165. data/src/cxx_supportlib/vendor-modified/boost/config/platform/vxworks.hpp +63 -74
  1166. data/src/cxx_supportlib/vendor-modified/boost/config/platform/wasm.hpp +23 -0
  1167. data/src/cxx_supportlib/vendor-modified/boost/config/requires_threads.hpp +1 -1
  1168. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +76 -10
  1169. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcomo.hpp +1 -0
  1170. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +51 -4
  1171. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +144 -11
  1172. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/modena.hpp +1 -0
  1173. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/msl.hpp +1 -0
  1174. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/roguewave.hpp +2 -1
  1175. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/sgi.hpp +1 -0
  1176. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/stlport.hpp +6 -5
  1177. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/vacpp.hpp +1 -0
  1178. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/xlcpp_zos.hpp +1 -0
  1179. data/src/cxx_supportlib/vendor-modified/boost/config/user.hpp +2 -2
  1180. data/src/cxx_supportlib/vendor-modified/boost/config/workaround.hpp +26 -0
  1181. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +291 -18
  1182. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +43 -35
  1183. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +205 -41
  1184. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +132 -38
  1185. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +981 -361
  1186. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +25 -22
  1187. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +838 -463
  1188. data/src/cxx_supportlib/vendor-modified/boost/container/detail/addressof.hpp +2 -10
  1189. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +199 -133
  1190. data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +28 -0
  1191. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +4 -4
  1192. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocation_type.hpp +7 -7
  1193. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +16 -16
  1194. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_list.hpp +4 -3
  1195. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_slist.hpp +4 -3
  1196. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +73 -13
  1197. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +11 -3
  1198. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_end.hpp +3 -0
  1199. data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +52 -16
  1200. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_or_allocator_rebind.hpp +4 -0
  1201. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +21 -116
  1202. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +991 -148
  1203. data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +181 -57
  1204. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +68 -68
  1205. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +443 -239
  1206. data/src/cxx_supportlib/vendor-modified/boost/container/detail/function_detector.hpp +1 -1
  1207. data/src/cxx_supportlib/vendor-modified/boost/container/detail/guards_dended.hpp +198 -0
  1208. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +18 -1
  1209. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +36 -1
  1210. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_pair.hpp +91 -0
  1211. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +24 -0
  1212. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +228 -194
  1213. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +55 -2
  1214. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +60 -2
  1215. data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +135 -40
  1216. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +48 -23
  1217. data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +28 -9
  1218. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +352 -152
  1219. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +3 -3
  1220. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +12 -12
  1221. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +152 -105
  1222. data/src/cxx_supportlib/vendor-modified/boost/container/detail/placement_new.hpp +1 -7
  1223. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common.hpp +1 -1
  1224. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +3 -3
  1225. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_resource.hpp +7 -11
  1226. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +6 -0
  1227. data/src/cxx_supportlib/vendor-modified/boost/container/detail/thread_mutex.hpp +181 -0
  1228. data/src/cxx_supportlib/vendor-modified/boost/container/detail/transform_iterator.hpp +28 -28
  1229. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +464 -351
  1230. data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +5 -0
  1231. data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_functors.hpp +9 -13
  1232. data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +3 -3
  1233. data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +1 -1
  1234. data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +6 -15
  1235. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +138 -4
  1236. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +3041 -0
  1237. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +874 -314
  1238. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +391 -126
  1239. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +150 -120
  1240. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +634 -254
  1241. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +33 -13
  1242. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +30 -24
  1243. data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +35 -22
  1244. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +433 -7
  1245. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/devector.hpp +51 -0
  1246. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_set.hpp +3 -3
  1247. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/global_resource.hpp +1 -4
  1248. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +37 -3
  1249. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +10 -7
  1250. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +9 -9
  1251. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +92 -8
  1252. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/synchronized_pool_resource.hpp +7 -6
  1253. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/unsynchronized_pool_resource.hpp +4 -4
  1254. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +79 -81
  1255. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +445 -180
  1256. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +142 -113
  1257. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +325 -263
  1258. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +386 -228
  1259. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +243 -161
  1260. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +601 -455
  1261. data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +155 -41
  1262. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +3 -3
  1263. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +977 -1017
  1264. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_integral.hpp +146 -0
  1265. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_mix.hpp +113 -0
  1266. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_range.hpp +408 -0
  1267. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_tuple_like.hpp +62 -0
  1268. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/mulx.hpp +79 -0
  1269. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +395 -580
  1270. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +25 -24
  1271. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_contiguous_range.hpp +98 -0
  1272. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_described_class.hpp +37 -0
  1273. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_range.hpp +41 -0
  1274. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_tuple_like.hpp +36 -0
  1275. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_unordered_range.hpp +38 -0
  1276. data/src/cxx_supportlib/vendor-modified/boost/core/addressof.hpp +2 -2
  1277. data/src/cxx_supportlib/vendor-modified/boost/core/alignof.hpp +57 -0
  1278. data/src/cxx_supportlib/vendor-modified/boost/core/alloc_construct.hpp +95 -0
  1279. data/src/cxx_supportlib/vendor-modified/boost/core/allocator_access.hpp +834 -0
  1280. data/src/cxx_supportlib/vendor-modified/boost/core/allocator_traits.hpp +112 -0
  1281. data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +954 -0
  1282. data/src/cxx_supportlib/vendor-modified/boost/core/checked_delete.hpp +35 -7
  1283. data/src/cxx_supportlib/vendor-modified/boost/core/cmath.hpp +298 -0
  1284. data/src/cxx_supportlib/vendor-modified/boost/core/data.hpp +46 -0
  1285. data/src/cxx_supportlib/vendor-modified/boost/core/default_allocator.hpp +158 -0
  1286. data/src/cxx_supportlib/vendor-modified/boost/core/detail/is_same.hpp +39 -0
  1287. data/src/cxx_supportlib/vendor-modified/boost/core/detail/lwt_unattended.hpp +66 -0
  1288. data/src/cxx_supportlib/vendor-modified/boost/core/detail/minstd_rand.hpp +58 -0
  1289. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_pause.hpp +71 -0
  1290. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_sleep.hpp +122 -0
  1291. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_yield.hpp +100 -0
  1292. data/src/cxx_supportlib/vendor-modified/boost/core/detail/splitmix64.hpp +54 -0
  1293. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +1272 -0
  1294. data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +203 -0
  1295. data/src/cxx_supportlib/vendor-modified/boost/core/exchange.hpp +49 -0
  1296. data/src/cxx_supportlib/vendor-modified/boost/core/explicit_operator_bool.hpp +9 -0
  1297. data/src/cxx_supportlib/vendor-modified/boost/core/fclose_deleter.hpp +53 -0
  1298. data/src/cxx_supportlib/vendor-modified/boost/core/first_scalar.hpp +45 -0
  1299. data/src/cxx_supportlib/vendor-modified/boost/core/functor.hpp +41 -0
  1300. data/src/cxx_supportlib/vendor-modified/boost/core/identity.hpp +61 -0
  1301. data/src/cxx_supportlib/vendor-modified/boost/core/ignore_unused.hpp +32 -2
  1302. data/src/cxx_supportlib/vendor-modified/boost/core/invoke_swap.hpp +93 -0
  1303. data/src/cxx_supportlib/vendor-modified/boost/core/is_same.hpp +10 -15
  1304. data/src/cxx_supportlib/vendor-modified/boost/core/launder.hpp +69 -0
  1305. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +269 -145
  1306. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +43 -8
  1307. data/src/cxx_supportlib/vendor-modified/boost/core/make_span.hpp +59 -0
  1308. data/src/cxx_supportlib/vendor-modified/boost/core/max_align.hpp +82 -0
  1309. data/src/cxx_supportlib/vendor-modified/boost/core/memory_resource.hpp +108 -0
  1310. data/src/cxx_supportlib/vendor-modified/boost/core/no_exceptions_support.hpp +14 -2
  1311. data/src/cxx_supportlib/vendor-modified/boost/core/noinit_adaptor.hpp +90 -0
  1312. data/src/cxx_supportlib/vendor-modified/boost/core/noncopyable.hpp +16 -1
  1313. data/src/cxx_supportlib/vendor-modified/boost/core/null_deleter.hpp +7 -0
  1314. data/src/cxx_supportlib/vendor-modified/boost/core/nvp.hpp +57 -0
  1315. data/src/cxx_supportlib/vendor-modified/boost/core/pointer_in_range.hpp +49 -0
  1316. data/src/cxx_supportlib/vendor-modified/boost/core/pointer_traits.hpp +112 -60
  1317. data/src/cxx_supportlib/vendor-modified/boost/core/quick_exit.hpp +59 -0
  1318. data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +61 -17
  1319. data/src/cxx_supportlib/vendor-modified/boost/core/serialization.hpp +131 -0
  1320. data/src/cxx_supportlib/vendor-modified/boost/core/size.hpp +31 -0
  1321. data/src/cxx_supportlib/vendor-modified/boost/core/snprintf.hpp +173 -0
  1322. data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +401 -0
  1323. data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +12 -32
  1324. data/src/cxx_supportlib/vendor-modified/boost/core/type_name.hpp +1186 -0
  1325. data/src/cxx_supportlib/vendor-modified/boost/core/typeinfo.hpp +26 -10
  1326. data/src/cxx_supportlib/vendor-modified/boost/core/uncaught_exceptions.hpp +155 -0
  1327. data/src/cxx_supportlib/vendor-modified/boost/core/use_default.hpp +17 -0
  1328. data/src/cxx_supportlib/vendor-modified/boost/core/verbose_terminate_handler.hpp +88 -0
  1329. data/src/cxx_supportlib/vendor-modified/boost/core/yield_primitives.hpp +12 -0
  1330. data/src/cxx_supportlib/vendor-modified/boost/cregex.hpp +4 -0
  1331. data/src/cxx_supportlib/vendor-modified/boost/cstdint.hpp +5 -5
  1332. data/src/cxx_supportlib/vendor-modified/boost/current_function.hpp +3 -3
  1333. data/src/cxx_supportlib/vendor-modified/boost/date_time/c_time.hpp +9 -4
  1334. data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +9 -41
  1335. data/src/cxx_supportlib/vendor-modified/boost/date_time/constrained_value.hpp +19 -11
  1336. data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +24 -24
  1337. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration.hpp +17 -22
  1338. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration_types.hpp +44 -49
  1339. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_facet.hpp +5 -6
  1340. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_generators.hpp +24 -19
  1341. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_iterator.hpp +8 -8
  1342. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_parsing.hpp +51 -25
  1343. data/src/cxx_supportlib/vendor-modified/boost/date_time/dst_rules.hpp +56 -56
  1344. data/src/cxx_supportlib/vendor-modified/boost/date_time/dst_transition_generators.hpp +2 -2
  1345. data/src/cxx_supportlib/vendor-modified/boost/date_time/find_match.hpp +42 -0
  1346. data/src/cxx_supportlib/vendor-modified/boost/date_time/format_date_parser.hpp +98 -98
  1347. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters.hpp +3 -3
  1348. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters_limited.hpp +3 -3
  1349. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +34 -27
  1350. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day.hpp +4 -4
  1351. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration.hpp +44 -32
  1352. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration_types.hpp +2 -2
  1353. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_month.hpp +51 -23
  1354. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_serialize.hpp +29 -27
  1355. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_weekday.hpp +43 -9
  1356. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_year.hpp +3 -3
  1357. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/parsers.hpp +34 -15
  1358. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.hpp +15 -17
  1359. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.ipp +30 -25
  1360. data/src/cxx_supportlib/vendor-modified/boost/date_time/int_adapter.hpp +57 -37
  1361. data/src/cxx_supportlib/vendor-modified/boost/date_time/iso_format.hpp +13 -13
  1362. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_date_time.hpp +2 -2
  1363. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_time_io.hpp +3 -0
  1364. data/src/cxx_supportlib/vendor-modified/boost/date_time/locale_config.hpp +3 -3
  1365. data/src/cxx_supportlib/vendor-modified/boost/date_time/period.hpp +44 -47
  1366. data/src/cxx_supportlib/vendor-modified/boost/date_time/period_formatter.hpp +34 -31
  1367. data/src/cxx_supportlib/vendor-modified/boost/date_time/period_parser.hpp +27 -28
  1368. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/conversion.hpp +1 -1
  1369. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/date_duration_operators.hpp +8 -8
  1370. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_config.hpp +13 -26
  1371. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +7 -7
  1372. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_io.hpp +1 -1
  1373. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/ptime.hpp +22 -4
  1374. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters.hpp +4 -4
  1375. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters_limited.hpp +2 -2
  1376. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_parsers.hpp +4 -0
  1377. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_serialize.hpp +28 -12
  1378. data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_formatter.hpp +1 -0
  1379. data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_parser.hpp +1 -6
  1380. data/src/cxx_supportlib/vendor-modified/boost/date_time/string_parse_tree.hpp +5 -3
  1381. data/src/cxx_supportlib/vendor-modified/boost/date_time/strings_from_facet.hpp +4 -2
  1382. data/src/cxx_supportlib/vendor-modified/boost/date_time/time.hpp +24 -3
  1383. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +56 -44
  1384. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +9 -12
  1385. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_iterator.hpp +8 -8
  1386. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_parsing.hpp +5 -10
  1387. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_resolution_traits.hpp +18 -18
  1388. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_system_counted.hpp +65 -50
  1389. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_system_split.hpp +43 -30
  1390. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_zone_base.hpp +1 -1
  1391. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_zone_names.hpp +1 -1
  1392. data/src/cxx_supportlib/vendor-modified/boost/date_time/tz_db_base.hpp +0 -1
  1393. data/src/cxx_supportlib/vendor-modified/boost/date_time/wrapping_int.hpp +16 -15
  1394. data/src/cxx_supportlib/vendor-modified/boost/date_time/year_month_day.hpp +7 -5
  1395. data/src/cxx_supportlib/vendor-modified/boost/describe/bases.hpp +50 -0
  1396. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +40 -0
  1397. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/cx_streq.hpp +30 -0
  1398. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/void_t.hpp +32 -0
  1399. data/src/cxx_supportlib/vendor-modified/boost/describe/members.hpp +161 -0
  1400. data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +33 -0
  1401. data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +7 -11
  1402. data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +38 -47
  1403. data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +6 -97
  1404. data/src/cxx_supportlib/vendor-modified/boost/detail/reference_content.hpp +7 -7
  1405. data/src/cxx_supportlib/vendor-modified/boost/detail/workaround.hpp +3 -3
  1406. data/src/cxx_supportlib/vendor-modified/boost/exception/current_exception_cast.hpp +10 -4
  1407. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/clone_current_exception.hpp +10 -4
  1408. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +12 -7
  1409. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +135 -34
  1410. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/is_output_streamable.hpp +9 -4
  1411. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/object_hex_dump.hpp +9 -4
  1412. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/requires_cxx11.hpp +24 -0
  1413. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/shared_ptr.hpp +2 -2
  1414. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +11 -5
  1415. data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +18 -9
  1416. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +118 -70
  1417. data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +9 -4
  1418. data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +12 -10
  1419. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string.hpp +10 -5
  1420. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string_stub.hpp +9 -4
  1421. data/src/cxx_supportlib/vendor-modified/boost/exception_ptr.hpp +2 -2
  1422. data/src/cxx_supportlib/vendor-modified/boost/foreach.hpp +16 -9
  1423. data/src/cxx_supportlib/vendor-modified/boost/function/function0.hpp +1 -3
  1424. data/src/cxx_supportlib/vendor-modified/boost/function/function1.hpp +1 -3
  1425. data/src/cxx_supportlib/vendor-modified/boost/function/function10.hpp +1 -3
  1426. data/src/cxx_supportlib/vendor-modified/boost/function/function2.hpp +1 -3
  1427. data/src/cxx_supportlib/vendor-modified/boost/function/function3.hpp +1 -3
  1428. data/src/cxx_supportlib/vendor-modified/boost/function/function4.hpp +1 -3
  1429. data/src/cxx_supportlib/vendor-modified/boost/function/function5.hpp +1 -3
  1430. data/src/cxx_supportlib/vendor-modified/boost/function/function6.hpp +1 -3
  1431. data/src/cxx_supportlib/vendor-modified/boost/function/function7.hpp +1 -3
  1432. data/src/cxx_supportlib/vendor-modified/boost/function/function8.hpp +1 -3
  1433. data/src/cxx_supportlib/vendor-modified/boost/function/function9.hpp +1 -3
  1434. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +77 -237
  1435. data/src/cxx_supportlib/vendor-modified/boost/function/function_fwd.hpp +36 -41
  1436. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +456 -464
  1437. data/src/cxx_supportlib/vendor-modified/boost/function/function_typeof.hpp +1 -31
  1438. data/src/cxx_supportlib/vendor-modified/boost/function.hpp +5 -61
  1439. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor.hpp +2 -2
  1440. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_ct.hpp +3 -3
  1441. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +35 -33
  1442. data/src/cxx_supportlib/vendor-modified/boost/integer/extended_euclidean.hpp +83 -0
  1443. data/src/cxx_supportlib/vendor-modified/boost/integer/integer_log2.hpp +86 -81
  1444. data/src/cxx_supportlib/vendor-modified/boost/integer/integer_mask.hpp +2 -2
  1445. data/src/cxx_supportlib/vendor-modified/boost/integer/mod_inverse.hpp +53 -0
  1446. data/src/cxx_supportlib/vendor-modified/boost/integer/static_log2.hpp +4 -5
  1447. data/src/cxx_supportlib/vendor-modified/boost/integer/static_min_max.hpp +3 -2
  1448. data/src/cxx_supportlib/vendor-modified/boost/integer.hpp +4 -4
  1449. data/src/cxx_supportlib/vendor-modified/boost/integer_fwd.hpp +2 -2
  1450. data/src/cxx_supportlib/vendor-modified/boost/integer_traits.hpp +3 -3
  1451. data/src/cxx_supportlib/vendor-modified/boost/intrusive/any_hook.hpp +4 -4
  1452. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +99 -100
  1453. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +51 -52
  1454. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +83 -83
  1455. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +101 -102
  1456. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +155 -164
  1457. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +164 -158
  1458. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +36 -28
  1459. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +88 -19
  1460. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +5 -5
  1461. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algorithm.hpp +8 -8
  1462. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +44 -44
  1463. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/array_initializer.hpp +10 -8
  1464. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +23 -23
  1465. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +38 -40
  1466. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +85 -16
  1467. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +1 -0
  1468. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +3 -3
  1469. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +27 -27
  1470. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/empty_node_checker.hpp +1 -1
  1471. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/equal_to_value.hpp +1 -1
  1472. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/exception_disposer.hpp +1 -32
  1473. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +14 -15
  1474. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash.hpp +277 -0
  1475. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +54 -0
  1476. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_integral.hpp +119 -0
  1477. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_mix.hpp +130 -0
  1478. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +204 -115
  1479. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +26 -22
  1480. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iiterator.hpp +6 -6
  1481. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +126 -80
  1482. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +7 -7
  1483. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +30 -18
  1484. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +6 -6
  1485. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/math.hpp +11 -64
  1486. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +8 -1
  1487. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +4 -4
  1488. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_to_value.hpp +1 -1
  1489. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +6 -17
  1490. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +24 -24
  1491. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/reverse_iterator.hpp +3 -140
  1492. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +3 -1
  1493. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/size_holder.hpp +14 -14
  1494. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +36 -17
  1495. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +3 -3
  1496. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/transform_iterator.hpp +22 -22
  1497. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +38 -26
  1498. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +9 -9
  1499. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +45 -26
  1500. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/twin.hpp +49 -0
  1501. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/value_functors.hpp +52 -0
  1502. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +66 -4
  1503. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +1763 -1039
  1504. data/src/cxx_supportlib/vendor-modified/boost/intrusive/intrusive_fwd.hpp +5 -0
  1505. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +98 -18
  1506. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +113 -111
  1507. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list_hook.hpp +10 -10
  1508. data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +4 -4
  1509. data/src/cxx_supportlib/vendor-modified/boost/intrusive/options.hpp +26 -4
  1510. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pack_options.hpp +21 -11
  1511. data/src/cxx_supportlib/vendor-modified/boost/intrusive/parent_from_member.hpp +2 -2
  1512. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +7 -4
  1513. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +31 -23
  1514. data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +13 -6
  1515. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +51 -52
  1516. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +74 -74
  1517. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +101 -102
  1518. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set_hook.hpp +12 -12
  1519. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +109 -110
  1520. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +68 -77
  1521. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +81 -81
  1522. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +178 -186
  1523. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist_hook.hpp +8 -6
  1524. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +107 -108
  1525. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +54 -55
  1526. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +99 -97
  1527. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +141 -115
  1528. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +88 -83
  1529. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +158 -152
  1530. data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +6 -4
  1531. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +128 -114
  1532. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +17 -17
  1533. data/src/cxx_supportlib/vendor-modified/boost/io/ios_state.hpp +361 -315
  1534. data/src/cxx_supportlib/vendor-modified/boost/io_fwd.hpp +45 -49
  1535. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +12 -1
  1536. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_def.hpp +10 -10
  1537. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_undef.hpp +1 -1
  1538. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/enable_if.hpp +5 -5
  1539. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +13 -13
  1540. data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +65 -0
  1541. data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +148 -0
  1542. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +3 -3
  1543. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +2 -2
  1544. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +107 -26
  1545. data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +8 -4
  1546. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +24 -25
  1547. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +59 -0
  1548. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +154 -172
  1549. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +619 -647
  1550. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +89 -77
  1551. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +35 -45
  1552. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +23 -29
  1553. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +73 -0
  1554. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +2 -2
  1555. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +33 -28
  1556. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +10 -9
  1557. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +23 -157
  1558. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +10 -13
  1559. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/chrono.cpp +4 -2
  1560. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/process_cpu_clocks.cpp +3 -1
  1561. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/thread_clock.cpp +3 -1
  1562. data/src/cxx_supportlib/vendor-modified/boost/libs/random/src/random_device.cpp +4 -2
  1563. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/posix_api.cpp +20 -25
  1564. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +13 -122
  1565. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/static_mutex.cpp +8 -2
  1566. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +24 -22
  1567. data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +16 -5
  1568. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/future.cpp +1 -1
  1569. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once.cpp +0 -1
  1570. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once_atomic.cpp +4 -3
  1571. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +50 -29
  1572. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/tss_null.cpp +2 -2
  1573. data/src/cxx_supportlib/vendor-modified/boost/limits.hpp +12 -12
  1574. data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +6 -12
  1575. data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +5 -5
  1576. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +107 -62
  1577. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +119 -86
  1578. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +322 -489
  1579. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +11 -10
  1580. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/heap_sort.hpp +22 -11
  1581. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/insertion_sort.hpp +9 -0
  1582. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +463 -120
  1583. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge_sort.hpp +87 -10
  1584. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/pdqsort.hpp +16 -5
  1585. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/search.hpp +79 -0
  1586. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/set_difference.hpp +9 -3
  1587. data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +8 -5
  1588. data/src/cxx_supportlib/vendor-modified/boost/move/algo/predicate.hpp +24 -9
  1589. data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +0 -1
  1590. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +32 -11
  1591. data/src/cxx_supportlib/vendor-modified/boost/move/default_delete.hpp +32 -6
  1592. data/src/cxx_supportlib/vendor-modified/boost/move/detail/addressof.hpp +61 -0
  1593. data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +1 -1
  1594. data/src/cxx_supportlib/vendor-modified/boost/move/detail/force_ptr.hpp +36 -0
  1595. data/src/cxx_supportlib/vendor-modified/boost/move/detail/fwd_macros.hpp +12 -0
  1596. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +109 -9
  1597. data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +53 -0
  1598. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +10 -32
  1599. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils_core.hpp +11 -6
  1600. data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +24 -24
  1601. data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +268 -0
  1602. data/src/cxx_supportlib/vendor-modified/boost/move/detail/reverse_iterator.hpp +40 -33
  1603. data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_begin.hpp +5 -1
  1604. data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_end.hpp +2 -0
  1605. data/src/cxx_supportlib/vendor-modified/boost/move/detail/to_raw_pointer.hpp +1 -1
  1606. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +341 -70
  1607. data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +1 -27
  1608. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +90 -3
  1609. data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +21 -21
  1610. data/src/cxx_supportlib/vendor-modified/boost/move/make_unique.hpp +10 -0
  1611. data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +65 -66
  1612. data/src/cxx_supportlib/vendor-modified/boost/move/utility.hpp +2 -2
  1613. data/src/cxx_supportlib/vendor-modified/boost/move/utility_core.hpp +38 -33
  1614. data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +1386 -0
  1615. data/src/cxx_supportlib/vendor-modified/boost/mp11/bind.hpp +120 -0
  1616. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/config.hpp +149 -0
  1617. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_append.hpp +321 -0
  1618. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_copy_if.hpp +48 -0
  1619. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_count.hpp +147 -0
  1620. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_defer.hpp +119 -0
  1621. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_fold.hpp +166 -0
  1622. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_front.hpp +50 -0
  1623. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_is_list.hpp +39 -0
  1624. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_is_value_list.hpp +41 -0
  1625. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_list.hpp +24 -0
  1626. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_list_v.hpp +27 -0
  1627. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +87 -0
  1628. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_min_element.hpp +51 -0
  1629. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_plus.hpp +84 -0
  1630. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_remove_if.hpp +48 -0
  1631. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_rename.hpp +54 -0
  1632. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_value.hpp +25 -0
  1633. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_void.hpp +32 -0
  1634. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_with_index.hpp +385 -0
  1635. data/src/cxx_supportlib/vendor-modified/boost/mp11/function.hpp +222 -0
  1636. data/src/cxx_supportlib/vendor-modified/boost/mp11/integer_sequence.hpp +121 -0
  1637. data/src/cxx_supportlib/vendor-modified/boost/mp11/integral.hpp +51 -0
  1638. data/src/cxx_supportlib/vendor-modified/boost/mp11/list.hpp +481 -0
  1639. data/src/cxx_supportlib/vendor-modified/boost/mp11/set.hpp +188 -0
  1640. data/src/cxx_supportlib/vendor-modified/boost/mp11/utility.hpp +169 -0
  1641. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +16 -0
  1642. data/src/cxx_supportlib/vendor-modified/boost/mpl/and.hpp +1 -1
  1643. data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +31 -11
  1644. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/common_name_wknd.hpp +2 -2
  1645. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/adl.hpp +1 -1
  1646. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/arrays.hpp +1 -1
  1647. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/bcc.hpp +2 -2
  1648. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/bind.hpp +1 -1
  1649. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/compiler.hpp +2 -2
  1650. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/ctps.hpp +1 -1
  1651. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/dtp.hpp +3 -3
  1652. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/forwarding.hpp +1 -1
  1653. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/integral.hpp +1 -1
  1654. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/operators.hpp +1 -1
  1655. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/overload_resolution.hpp +1 -1
  1656. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/preprocessor.hpp +1 -1
  1657. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/ttp.hpp +2 -2
  1658. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/count_impl.hpp +1 -1
  1659. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/fold_impl_body.hpp +3 -3
  1660. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/has_rebind.hpp +4 -4
  1661. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/integral_wrapper.hpp +3 -2
  1662. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/lambda_support.hpp +3 -3
  1663. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/nested_type_wknd.hpp +1 -1
  1664. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp +1 -1
  1665. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/enum.hpp +12 -0
  1666. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/params.hpp +12 -0
  1667. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/size_impl.hpp +1 -1
  1668. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/static_cast.hpp +1 -1
  1669. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/template_arity.hpp +1 -1
  1670. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/yes_no.hpp +2 -1
  1671. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitand.hpp +1 -1
  1672. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitor.hpp +1 -1
  1673. data/src/cxx_supportlib/vendor-modified/boost/mpl/has_xxx.hpp +4 -4
  1674. data/src/cxx_supportlib/vendor-modified/boost/mpl/if.hpp +1 -1
  1675. data/src/cxx_supportlib/vendor-modified/boost/mpl/integral_c.hpp +1 -1
  1676. data/src/cxx_supportlib/vendor-modified/boost/mpl/lower_bound.hpp +1 -1
  1677. data/src/cxx_supportlib/vendor-modified/boost/mpl/numeric_cast.hpp +1 -1
  1678. data/src/cxx_supportlib/vendor-modified/boost/mpl/or.hpp +1 -1
  1679. data/src/cxx_supportlib/vendor-modified/boost/mpl/string.hpp +6 -6
  1680. data/src/cxx_supportlib/vendor-modified/boost/mpl/upper_bound.hpp +1 -1
  1681. data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/at.hpp +1 -1
  1682. data/src/cxx_supportlib/vendor-modified/boost/next_prior.hpp +3 -44
  1683. data/src/cxx_supportlib/vendor-modified/boost/nondet_random.hpp +22 -0
  1684. data/src/cxx_supportlib/vendor-modified/boost/none.hpp +5 -5
  1685. data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +11 -1
  1686. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/cast.hpp +1 -1
  1687. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/converter_policies.hpp +5 -5
  1688. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/converter.hpp +1 -1
  1689. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/int_float_mixture.hpp +5 -5
  1690. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/meta.hpp +1 -1
  1691. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/sign_mixture.hpp +5 -5
  1692. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/udt_builtin_mixture.hpp +5 -5
  1693. data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +33 -24
  1694. data/src/cxx_supportlib/vendor-modified/boost/optional/bad_optional_access.hpp +9 -0
  1695. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +9 -3
  1696. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +17 -17
  1697. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_aligned_storage.hpp +1 -1
  1698. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +4 -4
  1699. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_hash.hpp +49 -0
  1700. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +30 -4
  1701. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +1 -1
  1702. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +6 -6
  1703. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +41 -30
  1704. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +304 -128
  1705. data/src/cxx_supportlib/vendor-modified/boost/optional/optional_io.hpp +3 -2
  1706. data/src/cxx_supportlib/vendor-modified/boost/parameter/are_tagged_arguments.hpp +125 -0
  1707. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/always_true_predicate.hpp +42 -0
  1708. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/arg_list.hpp +1253 -359
  1709. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/as_lvalue.hpp +25 -0
  1710. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/augment_predicate.hpp +198 -0
  1711. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/cast.hpp +7 -136
  1712. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/default.hpp +101 -59
  1713. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/has_nested_template_fn.hpp +111 -0
  1714. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/is_maybe.hpp +42 -16
  1715. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/is_placeholder.hpp +64 -0
  1716. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/is_tagged_argument.hpp +95 -0
  1717. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/lambda_tag.hpp +16 -0
  1718. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/maybe.hpp +128 -97
  1719. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/name.hpp +93 -0
  1720. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/as_parameter_requirements.hpp +32 -0
  1721. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/deduce_tag.hpp +217 -0
  1722. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/deduced_item.hpp +34 -0
  1723. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/insert_tagged.hpp +23 -0
  1724. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/is_named_argument.hpp +43 -0
  1725. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/item.hpp +47 -0
  1726. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/make_arg_list.hpp +438 -0
  1727. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/make_deduced_items.hpp +53 -0
  1728. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/make_items.hpp +45 -0
  1729. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/make_parameter_spec_items.hpp +244 -0
  1730. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/parameter_requirements.hpp +25 -0
  1731. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/predicate.hpp +87 -0
  1732. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/satisfies.hpp +142 -0
  1733. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_deduced.hpp +59 -0
  1734. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_keyword_arg.hpp +30 -0
  1735. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_keyword_arg_ref.hpp +67 -0
  1736. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_template_keyword_arg.hpp +30 -0
  1737. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_type.hpp +89 -0
  1738. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/unmatched_argument.hpp +41 -0
  1739. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/parameter_requirements.hpp +7 -20
  1740. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/parenthesized_type.hpp +8 -31
  1741. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pp_impl/argument_pack.hpp +91 -0
  1742. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pp_impl/match.hpp +55 -0
  1743. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pp_impl/unwrap_predicate.hpp +97 -0
  1744. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/binary_seq_for_each.hpp +1638 -0
  1745. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/binary_seq_for_each_inc.hpp +1796 -0
  1746. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/binary_seq_to_args.hpp +65 -0
  1747. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/convert_binary_seq.hpp +57 -0
  1748. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/flatten.hpp +7 -110
  1749. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/for_each.hpp +7 -98
  1750. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/for_each_pred.hpp +1029 -0
  1751. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/argument_specs.hpp +24 -0
  1752. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/arity_range.hpp +42 -0
  1753. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/flatten.hpp +143 -0
  1754. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/for_each.hpp +152 -0
  1755. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/forwarding_overloads.hpp +509 -0
  1756. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/function_cast.hpp +730 -0
  1757. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/function_dispatch_layer.hpp +474 -0
  1758. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/function_dispatch_tuple.hpp +33 -0
  1759. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/function_forward_match.hpp +43 -0
  1760. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/function_name.hpp +152 -0
  1761. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/no_spec_overloads.hpp +331 -0
  1762. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/parenthesized_return_type.hpp +122 -0
  1763. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/parenthesized_type.hpp +34 -0
  1764. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/specification.hpp +109 -0
  1765. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/impl/split_args.hpp +71 -0
  1766. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/inc_binary_seq.hpp +78 -0
  1767. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/is_binary.hpp +31 -0
  1768. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/is_nullary.hpp +32 -0
  1769. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/no_perfect_forwarding_begin.hpp +165 -0
  1770. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/no_perfect_forwarding_end.hpp +24 -0
  1771. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/nullptr.hpp +18 -0
  1772. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/overloads.hpp +92 -0
  1773. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/qualifier.hpp +88 -0
  1774. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/seq_enum.hpp +26 -0
  1775. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/seq_merge.hpp +1807 -0
  1776. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/result_of0.hpp +46 -29
  1777. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/set.hpp +94 -42
  1778. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tag.hpp +156 -34
  1779. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tagged_argument.hpp +874 -159
  1780. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tagged_argument_fwd.hpp +38 -0
  1781. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/template_keyword.hpp +76 -34
  1782. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/unwrap_cv_reference.hpp +161 -78
  1783. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/use_default.hpp +17 -0
  1784. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/use_default_tag.hpp +29 -0
  1785. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/void.hpp +26 -17
  1786. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/yesno.hpp +30 -14
  1787. data/src/cxx_supportlib/vendor-modified/boost/parameter/binding.hpp +158 -74
  1788. data/src/cxx_supportlib/vendor-modified/boost/parameter/compose.hpp +210 -0
  1789. data/src/cxx_supportlib/vendor-modified/boost/parameter/config.hpp +75 -6
  1790. data/src/cxx_supportlib/vendor-modified/boost/parameter/deduced.hpp +132 -0
  1791. data/src/cxx_supportlib/vendor-modified/boost/parameter/is_argument_pack.hpp +29 -0
  1792. data/src/cxx_supportlib/vendor-modified/boost/parameter/keyword.hpp +724 -102
  1793. data/src/cxx_supportlib/vendor-modified/boost/parameter/keyword_fwd.hpp +23 -0
  1794. data/src/cxx_supportlib/vendor-modified/boost/parameter/macros.hpp +205 -72
  1795. data/src/cxx_supportlib/vendor-modified/boost/parameter/match.hpp +37 -44
  1796. data/src/cxx_supportlib/vendor-modified/boost/parameter/name.hpp +100 -126
  1797. data/src/cxx_supportlib/vendor-modified/boost/parameter/nested_keyword.hpp +111 -0
  1798. data/src/cxx_supportlib/vendor-modified/boost/parameter/optional.hpp +67 -0
  1799. data/src/cxx_supportlib/vendor-modified/boost/parameter/parameters.hpp +556 -887
  1800. data/src/cxx_supportlib/vendor-modified/boost/parameter/preprocessor.hpp +156 -1016
  1801. data/src/cxx_supportlib/vendor-modified/boost/parameter/preprocessor_no_spec.hpp +74 -0
  1802. data/src/cxx_supportlib/vendor-modified/boost/parameter/python.hpp +5 -6
  1803. data/src/cxx_supportlib/vendor-modified/boost/parameter/required.hpp +66 -0
  1804. data/src/cxx_supportlib/vendor-modified/boost/parameter/template_keyword.hpp +87 -0
  1805. data/src/cxx_supportlib/vendor-modified/boost/parameter/value_type.hpp +156 -74
  1806. data/src/cxx_supportlib/vendor-modified/boost/pool/detail/mutex.hpp +119 -25
  1807. data/src/cxx_supportlib/vendor-modified/boost/pool/object_pool.hpp +2 -2
  1808. data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +22 -9
  1809. data/src/cxx_supportlib/vendor-modified/boost/pool/pool_alloc.hpp +1 -1
  1810. data/src/cxx_supportlib/vendor-modified/boost/pool/simple_segregated_storage.hpp +13 -0
  1811. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/alpha.h +19 -13
  1812. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +97 -28
  1813. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/blackfin.h +16 -10
  1814. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/convex.h +19 -13
  1815. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/e2k.h +54 -0
  1816. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ia64.h +19 -13
  1817. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/loongarch.h +41 -0
  1818. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/m68k.h +33 -27
  1819. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/mips.h +31 -20
  1820. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/parisc.h +24 -18
  1821. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ppc.h +82 -30
  1822. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ptx.h +50 -0
  1823. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/pyramid.h +13 -7
  1824. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/riscv.h +48 -0
  1825. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/rs6k.h +23 -12
  1826. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sparc.h +26 -13
  1827. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/superh.h +29 -15
  1828. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sys370.h +15 -9
  1829. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sys390.h +15 -9
  1830. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/x86/32.h +31 -25
  1831. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/x86/64.h +19 -13
  1832. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/x86.h +4 -4
  1833. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/z.h +14 -8
  1834. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +4 -1
  1835. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/borland.h +12 -11
  1836. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/clang.h +10 -9
  1837. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/comeau.h +10 -9
  1838. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/compaq.h +13 -12
  1839. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/diab.h +10 -9
  1840. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/digitalmars.h +10 -9
  1841. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/dignus.h +10 -9
  1842. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/edg.h +10 -9
  1843. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/ekopath.h +10 -9
  1844. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/gcc.h +11 -10
  1845. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/gcc_xml.h +9 -8
  1846. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/greenhills.h +12 -11
  1847. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/hp_acc.h +10 -9
  1848. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/iar.h +10 -9
  1849. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/ibm.h +15 -14
  1850. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/intel.h +18 -17
  1851. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/kai.h +10 -9
  1852. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/llvm.h +9 -8
  1853. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/metaware.h +9 -8
  1854. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/metrowerks.h +14 -13
  1855. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/microtec.h +9 -8
  1856. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/mpw.h +12 -11
  1857. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/nvcc.h +74 -0
  1858. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/palm.h +10 -9
  1859. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/pgi.h +10 -9
  1860. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/sgi_mipspro.h +12 -11
  1861. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/sunpro.h +14 -13
  1862. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/tendra.h +9 -8
  1863. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/visualc.h +13 -12
  1864. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/watcom.h +10 -9
  1865. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler.h +1 -0
  1866. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/arm/versions.h +16 -10
  1867. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/arm.h +21 -19
  1868. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/ppc/versions.h +27 -21
  1869. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/ppc.h +21 -19
  1870. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86/versions.h +73 -67
  1871. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86.h +39 -37
  1872. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd/versions.h +24 -19
  1873. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd.h +25 -23
  1874. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd.h +95 -46
  1875. data/src/cxx_supportlib/vendor-modified/boost/predef/language/cuda.h +53 -0
  1876. data/src/cxx_supportlib/vendor-modified/boost/predef/language/objc.h +9 -8
  1877. data/src/cxx_supportlib/vendor-modified/boost/predef/language/stdc.h +11 -10
  1878. data/src/cxx_supportlib/vendor-modified/boost/predef/language/stdcpp.h +41 -34
  1879. data/src/cxx_supportlib/vendor-modified/boost/predef/language.h +1 -0
  1880. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/cloudabi.h +10 -9
  1881. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/gnu.h +12 -11
  1882. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/uc.h +10 -9
  1883. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/vms.h +9 -8
  1884. data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/zos.h +10 -9
  1885. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/cxx.h +11 -10
  1886. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/dinkumware.h +11 -10
  1887. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/libcomo.h +10 -9
  1888. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/modena.h +10 -9
  1889. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/msl.h +12 -11
  1890. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/msvc.h +53 -0
  1891. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/roguewave.h +11 -10
  1892. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/sgi.h +10 -9
  1893. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/stdcpp3.h +12 -11
  1894. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/stlport.h +13 -12
  1895. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/vacpp.h +9 -8
  1896. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std.h +1 -0
  1897. data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +107 -33
  1898. data/src/cxx_supportlib/vendor-modified/boost/predef/os/aix.h +14 -13
  1899. data/src/cxx_supportlib/vendor-modified/boost/predef/os/amigaos.h +10 -9
  1900. data/src/cxx_supportlib/vendor-modified/boost/predef/os/beos.h +9 -8
  1901. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/bsdi.h +10 -8
  1902. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/dragonfly.h +10 -8
  1903. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/free.h +11 -9
  1904. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/net.h +17 -15
  1905. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/open.h +60 -58
  1906. data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd.h +22 -23
  1907. data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +15 -9
  1908. data/src/cxx_supportlib/vendor-modified/boost/predef/os/haiku.h +9 -8
  1909. data/src/cxx_supportlib/vendor-modified/boost/predef/os/hpux.h +11 -10
  1910. data/src/cxx_supportlib/vendor-modified/boost/predef/os/ios.h +12 -11
  1911. data/src/cxx_supportlib/vendor-modified/boost/predef/os/irix.h +10 -9
  1912. data/src/cxx_supportlib/vendor-modified/boost/predef/os/linux.h +14 -10
  1913. data/src/cxx_supportlib/vendor-modified/boost/predef/os/macos.h +14 -13
  1914. data/src/cxx_supportlib/vendor-modified/boost/predef/os/os400.h +9 -8
  1915. data/src/cxx_supportlib/vendor-modified/boost/predef/os/qnxnto.h +12 -11
  1916. data/src/cxx_supportlib/vendor-modified/boost/predef/os/solaris.h +10 -9
  1917. data/src/cxx_supportlib/vendor-modified/boost/predef/os/unix.h +24 -22
  1918. data/src/cxx_supportlib/vendor-modified/boost/predef/os/vms.h +11 -10
  1919. data/src/cxx_supportlib/vendor-modified/boost/predef/os/windows.h +16 -15
  1920. data/src/cxx_supportlib/vendor-modified/boost/predef/os.h +0 -1
  1921. data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +19 -21
  1922. data/src/cxx_supportlib/vendor-modified/boost/predef/other/wordsize.h +73 -0
  1923. data/src/cxx_supportlib/vendor-modified/boost/predef/other/workaround.h +22 -14
  1924. data/src/cxx_supportlib/vendor-modified/boost/predef/other.h +3 -2
  1925. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/android.h +44 -0
  1926. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/cloudabi.h +9 -8
  1927. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/ios.h +14 -9
  1928. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw.h +12 -11
  1929. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw32.h +10 -9
  1930. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw64.h +10 -9
  1931. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_desktop.h +10 -9
  1932. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_phone.h +9 -8
  1933. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_runtime.h +10 -9
  1934. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_server.h +9 -8
  1935. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_store.h +10 -9
  1936. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_system.h +9 -8
  1937. data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_uwp.h +12 -11
  1938. data/src/cxx_supportlib/vendor-modified/boost/predef/platform.h +1 -1
  1939. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  1940. data/src/cxx_supportlib/vendor-modified/boost/predef/version_number.h +16 -14
  1941. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/add.hpp +54 -1
  1942. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/dec.hpp +33 -0
  1943. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/detail/is_1_number.hpp +21 -0
  1944. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/detail/is_maximum_number.hpp +22 -0
  1945. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/detail/is_minimum_number.hpp +21 -0
  1946. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/detail/maximum_number.hpp +19 -0
  1947. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/div.hpp +37 -1
  1948. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/inc.hpp +33 -0
  1949. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/limits/dec_1024.hpp +531 -0
  1950. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/limits/dec_256.hpp +276 -0
  1951. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/limits/dec_512.hpp +275 -0
  1952. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/limits/inc_1024.hpp +536 -0
  1953. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/limits/inc_256.hpp +275 -0
  1954. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/limits/inc_512.hpp +280 -0
  1955. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/mod.hpp +37 -1
  1956. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/mul.hpp +60 -1
  1957. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/sub.hpp +51 -1
  1958. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/detail/get_data.hpp +21 -21
  1959. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/enum.hpp +17 -1
  1960. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/insert.hpp +71 -0
  1961. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/remove.hpp +66 -0
  1962. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/replace.hpp +58 -0
  1963. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/to_list.hpp +7 -7
  1964. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/to_seq.hpp +7 -7
  1965. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/to_tuple.hpp +7 -7
  1966. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/comparison/limits/not_equal_1024.hpp +1044 -0
  1967. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/comparison/limits/not_equal_256.hpp +793 -0
  1968. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/comparison/limits/not_equal_512.hpp +532 -0
  1969. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/comparison/not_equal.hpp +44 -1
  1970. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +26 -34
  1971. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/limits.hpp +136 -3
  1972. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/deduce_d.hpp +27 -0
  1973. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/dmc/while.hpp +2 -3
  1974. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/edg/limits/while_1024.hpp +1044 -0
  1975. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/edg/limits/while_256.hpp +533 -0
  1976. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/edg/limits/while_512.hpp +532 -0
  1977. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/edg/while.hpp +27 -0
  1978. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/limits/while_1024.hpp +1044 -0
  1979. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/limits/while_256.hpp +533 -0
  1980. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/limits/while_512.hpp +532 -0
  1981. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/detail/while.hpp +27 -0
  1982. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/limits/while_1024.hpp +531 -0
  1983. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/limits/while_256.hpp +275 -0
  1984. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/limits/while_512.hpp +275 -0
  1985. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/control/while.hpp +75 -0
  1986. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/detail/auto_rec.hpp +41 -0
  1987. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/detail/dmc/auto_rec.hpp +2 -2
  1988. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/detail/limits/auto_rec_1024.hpp +532 -0
  1989. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/detail/limits/auto_rec_256.hpp +280 -0
  1990. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/detail/limits/auto_rec_512.hpp +276 -0
  1991. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/check_empty.hpp +19 -0
  1992. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/detail/is_empty.hpp +3 -3
  1993. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/intercept.hpp +29 -0
  1994. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/is_empty.hpp +0 -37
  1995. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/is_empty_variadic.hpp +28 -5
  1996. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/limits/intercept_1024.hpp +530 -0
  1997. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/limits/intercept_256.hpp +273 -0
  1998. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/limits/intercept_512.hpp +274 -0
  1999. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/overload.hpp +1 -3
  2000. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/va_opt.hpp +34 -0
  2001. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities.hpp +2 -0
  2002. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/forward1.hpp +27 -0
  2003. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/forward2.hpp +27 -0
  2004. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/forward3.hpp +27 -0
  2005. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/forward4.hpp +27 -0
  2006. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/forward5.hpp +27 -0
  2007. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward1_1024.hpp +2573 -0
  2008. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward1_256.hpp +1296 -0
  2009. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward1_512.hpp +1293 -0
  2010. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward2_1024.hpp +2573 -0
  2011. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward2_256.hpp +1296 -0
  2012. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward2_512.hpp +1293 -0
  2013. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward3_1024.hpp +2573 -0
  2014. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward3_256.hpp +1296 -0
  2015. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward3_512.hpp +1293 -0
  2016. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward4_1024.hpp +2573 -0
  2017. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward4_256.hpp +1296 -0
  2018. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward4_512.hpp +1293 -0
  2019. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward5_1024.hpp +2573 -0
  2020. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward5_256.hpp +1296 -0
  2021. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/forward5_512.hpp +1293 -0
  2022. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse1_1024.hpp +2571 -0
  2023. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse1_256.hpp +1296 -0
  2024. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse1_512.hpp +1291 -0
  2025. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse2_1024.hpp +2571 -0
  2026. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse2_256.hpp +1296 -0
  2027. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse2_512.hpp +1293 -0
  2028. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse3_1024.hpp +2571 -0
  2029. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse3_256.hpp +1296 -0
  2030. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse3_512.hpp +1293 -0
  2031. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse4_1024.hpp +2571 -0
  2032. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse4_256.hpp +1296 -0
  2033. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse4_512.hpp +1293 -0
  2034. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse5_1024.hpp +2571 -0
  2035. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse5_256.hpp +1296 -0
  2036. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/limits/reverse5_512.hpp +1293 -0
  2037. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/reverse1.hpp +25 -0
  2038. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/reverse2.hpp +25 -0
  2039. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/reverse3.hpp +25 -0
  2040. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/reverse4.hpp +25 -0
  2041. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/iter/reverse5.hpp +25 -0
  2042. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/limits/local_1024.hpp +1549 -0
  2043. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/limits/local_256.hpp +782 -0
  2044. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/limits/local_512.hpp +781 -0
  2045. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/limits/rlocal_1024.hpp +1549 -0
  2046. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/limits/rlocal_256.hpp +782 -0
  2047. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/limits/rlocal_512.hpp +781 -0
  2048. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/local.hpp +27 -0
  2049. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/iteration/detail/rlocal.hpp +25 -0
  2050. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/dmc/fold_left.hpp +3 -2
  2051. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/fold_left.hpp +28 -0
  2052. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/fold_right.hpp +29 -0
  2053. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/limits/fold_left_1024.hpp +1044 -0
  2054. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/limits/fold_left_256.hpp +533 -0
  2055. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/limits/fold_left_512.hpp +532 -0
  2056. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/limits/fold_right_1024.hpp +1557 -0
  2057. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/limits/fold_right_256.hpp +791 -0
  2058. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/edg/limits/fold_right_512.hpp +789 -0
  2059. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/fold_left.hpp +28 -0
  2060. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/fold_right.hpp +26 -0
  2061. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/limits/fold_left_1024.hpp +532 -0
  2062. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/limits/fold_left_256.hpp +275 -0
  2063. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/limits/fold_left_512.hpp +276 -0
  2064. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/limits/fold_right_1024.hpp +532 -0
  2065. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/limits/fold_right_256.hpp +275 -0
  2066. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/detail/limits/fold_right_512.hpp +276 -0
  2067. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/enum.hpp +13 -1
  2068. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/fold_left.hpp +60 -0
  2069. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/fold_right.hpp +44 -0
  2070. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/for_each_product.hpp +25 -6
  2071. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/limits/fold_left_1024.hpp +531 -0
  2072. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/limits/fold_left_256.hpp +275 -0
  2073. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/limits/fold_left_512.hpp +275 -0
  2074. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/reverse.hpp +35 -0
  2075. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/size.hpp +56 -1
  2076. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/to_array.hpp +21 -88
  2077. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/to_tuple.hpp +14 -14
  2078. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/logical/bool.hpp +22 -0
  2079. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/logical/limits/bool_1024.hpp +531 -0
  2080. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/logical/limits/bool_256.hpp +275 -0
  2081. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/logical/limits/bool_512.hpp +275 -0
  2082. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/punctuation/is_begin_parens.hpp +1 -5
  2083. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/punctuation/remove_parens.hpp +0 -4
  2084. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/deduce_r.hpp +27 -0
  2085. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/dmc/for.hpp +3 -2
  2086. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/edg/for.hpp +26 -0
  2087. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/edg/limits/for_1024.hpp +1044 -0
  2088. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/edg/limits/for_256.hpp +533 -0
  2089. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/edg/limits/for_512.hpp +532 -0
  2090. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/for.hpp +28 -0
  2091. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/limits/for_1024.hpp +1044 -0
  2092. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/limits/for_256.hpp +533 -0
  2093. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/limits/for_512.hpp +532 -0
  2094. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/detail/msvc/for.hpp +1 -0
  2095. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/for.hpp +121 -7
  2096. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/limits/for_1024.hpp +531 -0
  2097. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/limits/for_256.hpp +275 -0
  2098. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/limits/for_512.hpp +275 -0
  2099. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/limits/repeat_1024.hpp +1557 -0
  2100. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/limits/repeat_256.hpp +791 -0
  2101. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/limits/repeat_512.hpp +789 -0
  2102. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/repeat.hpp +22 -0
  2103. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/repeat_from_to.hpp +27 -0
  2104. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/binary_transform.hpp +6 -11
  2105. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/is_empty.hpp +11 -11
  2106. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/limits/split_1024.hpp +530 -0
  2107. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/limits/split_256.hpp +272 -0
  2108. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/limits/split_512.hpp +274 -0
  2109. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/split.hpp +23 -0
  2110. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/elem.hpp +23 -0
  2111. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/enum.hpp +23 -0
  2112. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/fold_left.hpp +52 -0
  2113. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/fold_right.hpp +37 -0
  2114. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/for_each.hpp +27 -27
  2115. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/for_each_i.hpp +28 -28
  2116. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/elem_1024.hpp +530 -0
  2117. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/elem_256.hpp +272 -0
  2118. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/elem_512.hpp +274 -0
  2119. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/enum_1024.hpp +530 -0
  2120. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/enum_256.hpp +272 -0
  2121. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/enum_512.hpp +274 -0
  2122. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/fold_left_1024.hpp +1556 -0
  2123. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/fold_left_256.hpp +1053 -0
  2124. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/fold_left_512.hpp +788 -0
  2125. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/fold_right_1024.hpp +530 -0
  2126. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/fold_right_256.hpp +273 -0
  2127. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/fold_right_512.hpp +274 -0
  2128. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/size_1024.hpp +1043 -0
  2129. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/size_256.hpp +532 -0
  2130. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/limits/size_512.hpp +531 -0
  2131. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/replace.hpp +7 -7
  2132. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/rest_n.hpp +16 -10
  2133. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/size.hpp +23 -0
  2134. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/variadic_seq_to_seq.hpp +0 -2
  2135. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/stringize.hpp +1 -1
  2136. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/detail/is_single_return.hpp +5 -5
  2137. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/eat.hpp +4 -18
  2138. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/elem.hpp +11 -157
  2139. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/insert.hpp +2 -7
  2140. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/reverse_128.hpp +403 -0
  2141. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/reverse_256.hpp +1171 -0
  2142. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/reverse_64.hpp +83 -0
  2143. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_list_128.hpp +595 -0
  2144. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_list_256.hpp +1747 -0
  2145. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_list_64.hpp +83 -0
  2146. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_seq_128.hpp +403 -0
  2147. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_seq_256.hpp +1171 -0
  2148. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_seq_64.hpp +84 -0
  2149. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/pop_back.hpp +16 -21
  2150. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/pop_front.hpp +16 -21
  2151. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/push_back.hpp +1 -6
  2152. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/push_front.hpp +1 -7
  2153. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/rem.hpp +21 -43
  2154. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/remove.hpp +16 -21
  2155. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/replace.hpp +2 -7
  2156. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/reverse.hpp +38 -25
  2157. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/size.hpp +13 -6
  2158. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/to_array.hpp +15 -12
  2159. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/to_list.hpp +37 -25
  2160. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/to_seq.hpp +38 -24
  2161. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/detail/has_opt.hpp +39 -0
  2162. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/detail/is_single_return.hpp +5 -5
  2163. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/elem.hpp +93 -71
  2164. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/has_opt.hpp +34 -0
  2165. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/limits/elem_128.hpp +275 -0
  2166. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/limits/elem_256.hpp +723 -0
  2167. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/limits/elem_64.hpp +81 -0
  2168. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/limits/size_128.hpp +47 -0
  2169. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/limits/size_256.hpp +53 -0
  2170. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/limits/size_64.hpp +23 -0
  2171. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/size.hpp +39 -4
  2172. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/to_array.hpp +15 -9
  2173. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/to_list.hpp +9 -2
  2174. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/to_seq.hpp +1 -3
  2175. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/to_tuple.hpp +1 -3
  2176. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic.hpp +1 -0
  2177. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/wstringize.hpp +1 -1
  2178. data/src/cxx_supportlib/vendor-modified/boost/random/additive_combine.hpp +2 -2
  2179. data/src/cxx_supportlib/vendor-modified/boost/random/detail/gray_coded_qrng.hpp +190 -0
  2180. data/src/cxx_supportlib/vendor-modified/boost/random/detail/int_float_pair.hpp +3 -4
  2181. data/src/cxx_supportlib/vendor-modified/boost/random/detail/integer_log2.hpp +1 -1
  2182. data/src/cxx_supportlib/vendor-modified/boost/random/detail/mixmax_skip_N17.ipp +287 -0
  2183. data/src/cxx_supportlib/vendor-modified/boost/random/detail/niederreiter_base2_table.hpp +514 -0
  2184. data/src/cxx_supportlib/vendor-modified/boost/random/detail/operators.hpp +1 -1
  2185. data/src/cxx_supportlib/vendor-modified/boost/random/detail/qrng_base.hpp +291 -0
  2186. data/src/cxx_supportlib/vendor-modified/boost/random/detail/seed.hpp +9 -11
  2187. data/src/cxx_supportlib/vendor-modified/boost/random/detail/seed_impl.hpp +13 -14
  2188. data/src/cxx_supportlib/vendor-modified/boost/random/detail/sobol_table.hpp +4107 -0
  2189. data/src/cxx_supportlib/vendor-modified/boost/random/discard_block.hpp +2 -2
  2190. data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +4 -0
  2191. data/src/cxx_supportlib/vendor-modified/boost/random/faure.hpp +367 -0
  2192. data/src/cxx_supportlib/vendor-modified/boost/random/generate_canonical.hpp +2 -3
  2193. data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +3 -3
  2194. data/src/cxx_supportlib/vendor-modified/boost/random/independent_bits.hpp +3 -3
  2195. data/src/cxx_supportlib/vendor-modified/boost/random/inversive_congruential.hpp +3 -4
  2196. data/src/cxx_supportlib/vendor-modified/boost/random/lagged_fibonacci.hpp +4 -4
  2197. data/src/cxx_supportlib/vendor-modified/boost/random/linear_congruential.hpp +5 -7
  2198. data/src/cxx_supportlib/vendor-modified/boost/random/linear_feedback_shift.hpp +3 -3
  2199. data/src/cxx_supportlib/vendor-modified/boost/random/mersenne_twister.hpp +2 -2
  2200. data/src/cxx_supportlib/vendor-modified/boost/random/mixmax.hpp +313 -0
  2201. data/src/cxx_supportlib/vendor-modified/boost/random/niederreiter_base2.hpp +360 -0
  2202. data/src/cxx_supportlib/vendor-modified/boost/random/random_device.hpp +2 -2
  2203. data/src/cxx_supportlib/vendor-modified/boost/random/shuffle_order.hpp +2 -2
  2204. data/src/cxx_supportlib/vendor-modified/boost/random/sobol.hpp +238 -0
  2205. data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +203 -0
  2206. data/src/cxx_supportlib/vendor-modified/boost/random/subtract_with_carry.hpp +18 -18
  2207. data/src/cxx_supportlib/vendor-modified/boost/random/traits.hpp +3 -3
  2208. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_int_distribution.hpp +7 -7
  2209. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real_distribution.hpp +4 -5
  2210. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_smallint.hpp +4 -5
  2211. data/src/cxx_supportlib/vendor-modified/boost/random/xor_combine.hpp +4 -2
  2212. data/src/cxx_supportlib/vendor-modified/boost/random.hpp +2 -0
  2213. data/src/cxx_supportlib/vendor-modified/boost/range/as_literal.hpp +43 -6
  2214. data/src/cxx_supportlib/vendor-modified/boost/range/begin.hpp +17 -15
  2215. data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +2 -2
  2216. data/src/cxx_supportlib/vendor-modified/boost/range/config.hpp +1 -1
  2217. data/src/cxx_supportlib/vendor-modified/boost/range/detail/common.hpp +1 -3
  2218. data/src/cxx_supportlib/vendor-modified/boost/range/detail/implementation_help.hpp +2 -2
  2219. data/src/cxx_supportlib/vendor-modified/boost/range/distance.hpp +11 -5
  2220. data/src/cxx_supportlib/vendor-modified/boost/range/end.hpp +18 -16
  2221. data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +3 -3
  2222. data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +0 -32
  2223. data/src/cxx_supportlib/vendor-modified/boost/range/rbegin.hpp +0 -13
  2224. data/src/cxx_supportlib/vendor-modified/boost/range/rend.hpp +0 -13
  2225. data/src/cxx_supportlib/vendor-modified/boost/range/size.hpp +1 -1
  2226. data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +4 -78
  2227. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/gcd_lcm.hpp +53 -0
  2228. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_evenly_divisible_by.hpp +32 -0
  2229. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_ratio.hpp +28 -0
  2230. data/src/cxx_supportlib/vendor-modified/boost/ratio/include.hpp +1 -3
  2231. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio.hpp +5 -249
  2232. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_fwd.hpp +30 -56
  2233. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_io.hpp +0 -533
  2234. data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +95 -51
  2235. data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +82 -76
  2236. data/src/cxx_supportlib/vendor-modified/boost/regex/config/borland.hpp +1 -1
  2237. data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +104 -101
  2238. data/src/cxx_supportlib/vendor-modified/boost/regex/pattern_except.hpp +4 -72
  2239. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +4 -140
  2240. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +8 -761
  2241. data/src/cxx_supportlib/vendor-modified/boost/regex/regex_traits.hpp +4 -0
  2242. data/src/cxx_supportlib/vendor-modified/boost/regex/user.hpp +2 -0
  2243. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +32 -16
  2244. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +50 -25
  2245. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +64 -30
  2246. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/c_regex_traits.hpp +342 -42
  2247. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +111 -28
  2248. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cregex.hpp +0 -117
  2249. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/icu.hpp +1516 -0
  2250. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/indexed_bit_flag.hpp +54 -0
  2251. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +18 -7
  2252. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +21 -12
  2253. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +39 -1
  2254. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/object_cache.hpp +171 -0
  2255. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/pattern_except.hpp +128 -0
  2256. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +42 -18
  2257. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +24 -10
  2258. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +57 -54
  2259. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +12 -12
  2260. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/primary_transform.hpp +1 -1
  2261. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/protected_call.hpp +3 -1
  2262. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex.hpp +0 -36
  2263. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +10 -8
  2264. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +2 -8
  2265. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +38 -7
  2266. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +3 -1
  2267. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +9 -15
  2268. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +1 -1
  2269. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +653 -36
  2270. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +7 -4
  2271. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/states.hpp +1 -1
  2272. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/sub_match.hpp +1 -1
  2273. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +1 -9
  2274. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +3 -11
  2275. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +871 -0
  2276. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +526 -40
  2277. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex.hpp +734 -0
  2278. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_creator.hpp +1576 -0
  2279. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +3130 -0
  2280. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/c_regex_traits.hpp +474 -0
  2281. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/char_regex_traits.hpp +59 -0
  2282. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cpp_regex_traits.hpp +1040 -0
  2283. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cregex.hpp +195 -0
  2284. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/error_type.hpp +59 -0
  2285. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/icu.hpp +1402 -0
  2286. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_category.hpp +84 -0
  2287. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_traits.hpp +32 -0
  2288. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_flags.hpp +156 -0
  2289. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_results.hpp +667 -0
  2290. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +173 -0
  2291. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/object_cache.hpp +160 -0
  2292. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/pattern_except.hpp +106 -0
  2293. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher.hpp +576 -0
  2294. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_common.hpp +921 -0
  2295. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_non_recursive.hpp +1874 -0
  2296. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/primary_transform.hpp +120 -0
  2297. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regbase.hpp +158 -0
  2298. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex.hpp +106 -0
  2299. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_format.hpp +1124 -0
  2300. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_fwd.hpp +73 -0
  2301. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_grep.hpp +98 -0
  2302. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_iterator.hpp +173 -0
  2303. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_match.hpp +92 -0
  2304. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_merge.hpp +71 -0
  2305. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_raw_buffer.hpp +213 -0
  2306. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_replace.hpp +77 -0
  2307. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_search.hpp +103 -0
  2308. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_split.hpp +152 -0
  2309. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_token_iterator.hpp +255 -0
  2310. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits.hpp +130 -0
  2311. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits_defaults.hpp +996 -0
  2312. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_workaround.hpp +159 -0
  2313. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/states.hpp +299 -0
  2314. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/sub_match.hpp +382 -0
  2315. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/syntax_type.hpp +105 -0
  2316. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_iterator.hpp +177 -0
  2317. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_token_iterator.hpp +312 -0
  2318. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +862 -0
  2319. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +1311 -0
  2320. data/src/cxx_supportlib/vendor-modified/boost/regex.hpp +4 -0
  2321. data/src/cxx_supportlib/vendor-modified/boost/regex_fwd.hpp +4 -0
  2322. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +94 -444
  2323. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +5 -5
  2324. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +8 -4
  2325. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc.hpp +7 -0
  2326. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_atomic.hpp +63 -0
  2327. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp +11 -0
  2328. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_nt.hpp +7 -0
  2329. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_pt.hpp +7 -0
  2330. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_spin.hpp +7 -0
  2331. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_std_atomic.hpp +8 -1
  2332. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_sync.hpp +13 -2
  2333. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +9 -9
  2334. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_sp_deleter.hpp +3 -3
  2335. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/requires_cxx11.hpp +23 -0
  2336. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +88 -48
  2337. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_convertible.hpp +1 -1
  2338. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +12 -16
  2339. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +15 -4
  2340. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +12 -4
  2341. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +17 -4
  2342. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +148 -0
  2343. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +15 -4
  2344. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +15 -4
  2345. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +15 -4
  2346. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +15 -4
  2347. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +15 -4
  2348. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +27 -17
  2349. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +18 -9
  2350. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +16 -5
  2351. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +12 -4
  2352. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +27 -18
  2353. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +12 -4
  2354. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +15 -4
  2355. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +48 -31
  2356. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +30 -0
  2357. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync_intrinsics.hpp +69 -0
  2358. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_typeinfo_.hpp +58 -0
  2359. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +7 -9
  2360. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +7 -0
  2361. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp +94 -0
  2362. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_nt.hpp +7 -0
  2363. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_pt.hpp +7 -0
  2364. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_std_atomic.hpp +13 -5
  2365. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_sync.hpp +8 -1
  2366. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +13 -141
  2367. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +1 -0
  2368. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +49 -12
  2369. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared.hpp +1 -0
  2370. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +23 -22
  2371. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +2 -1
  2372. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_unique.hpp +70 -0
  2373. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +3 -2
  2374. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +3 -2
  2375. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +6 -4
  2376. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +120 -40
  2377. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +80 -8
  2378. data/src/cxx_supportlib/vendor-modified/boost/static_assert.hpp +5 -4
  2379. data/src/cxx_supportlib/vendor-modified/boost/system/config.hpp +4 -24
  2380. data/src/cxx_supportlib/vendor-modified/boost/system/detail/append_int.hpp +32 -0
  2381. data/src/cxx_supportlib/vendor-modified/boost/system/detail/cerrno.hpp +329 -0
  2382. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +83 -0
  2383. data/src/cxx_supportlib/vendor-modified/boost/system/detail/enable_if.hpp +23 -0
  2384. data/src/cxx_supportlib/vendor-modified/boost/system/detail/errc.hpp +126 -0
  2385. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +183 -0
  2386. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +166 -0
  2387. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +659 -0
  2388. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +326 -0
  2389. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +123 -0
  2390. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category_message.hpp +120 -0
  2391. data/src/cxx_supportlib/vendor-modified/boost/system/detail/interop_category.hpp +107 -0
  2392. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_same.hpp +23 -0
  2393. data/src/cxx_supportlib/vendor-modified/boost/system/detail/mutex.hpp +128 -0
  2394. data/src/cxx_supportlib/vendor-modified/boost/system/detail/snprintf.hpp +28 -0
  2395. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category.hpp +84 -0
  2396. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category_impl.hpp +97 -0
  2397. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category.hpp +110 -0
  2398. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +61 -0
  2399. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_message.hpp +71 -0
  2400. data/src/cxx_supportlib/vendor-modified/boost/system/detail/throws.hpp +59 -0
  2401. data/src/cxx_supportlib/vendor-modified/boost/system/errc.hpp +57 -0
  2402. data/src/cxx_supportlib/vendor-modified/boost/system/error_category.hpp +13 -0
  2403. data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +12 -760
  2404. data/src/cxx_supportlib/vendor-modified/boost/system/error_condition.hpp +13 -0
  2405. data/src/cxx_supportlib/vendor-modified/boost/system/generic_category.hpp +13 -0
  2406. data/src/cxx_supportlib/vendor-modified/boost/system/is_error_code_enum.hpp +30 -0
  2407. data/src/cxx_supportlib/vendor-modified/boost/system/is_error_condition_enum.hpp +30 -0
  2408. data/src/cxx_supportlib/vendor-modified/boost/system/system_category.hpp +14 -0
  2409. data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +30 -59
  2410. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/deque_adaptor.hpp +1 -1
  2411. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/deque_base.hpp +1 -1
  2412. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_deque_base.hpp +9 -21
  2413. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_queue_base.hpp +9 -21
  2414. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_adaptor.hpp +1 -1
  2415. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_base.hpp +1 -1
  2416. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_op_status.hpp +3 -1
  2417. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_bounded_queue.hpp +1 -1
  2418. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_deque.hpp +3 -3
  2419. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_priority_queue.hpp +4 -4
  2420. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_queue.hpp +3 -3
  2421. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_timed_queue.hpp +80 -14
  2422. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/deque.hpp +1 -24
  2423. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/functional.hpp +1 -14
  2424. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/list.hpp +1 -14
  2425. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_arg.hpp +2 -12
  2426. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_traits.hpp +0 -11
  2427. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/config.hpp +0 -2
  2428. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/default_delete.hpp +0 -16
  2429. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/pointer_traits.hpp +0 -11
  2430. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/scoped_allocator.hpp +0 -11
  2431. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/shared_ptr.hpp +0 -19
  2432. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/unique_ptr.hpp +4 -6
  2433. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/queue.hpp +1 -24
  2434. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/tuple.hpp +1 -18
  2435. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/vector.hpp +1 -14
  2436. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +18 -3
  2437. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/invoke.hpp +27 -21
  2438. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/move.hpp +13 -6
  2439. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/nullary_function.hpp +8 -3
  2440. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/platform_time.hpp +8 -8
  2441. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_to_unsigned.hpp +55 -0
  2442. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_trim.hpp +29 -0
  2443. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +33 -12
  2444. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread_safety.hpp +160 -0
  2445. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/tss_hooks.hpp +2 -2
  2446. data/src/cxx_supportlib/vendor-modified/boost/thread/exceptions.hpp +3 -3
  2447. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +27 -1
  2448. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/executor.hpp +2 -0
  2449. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/executor_adaptor.hpp +2 -0
  2450. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/generic_executor_ref.hpp +2 -0
  2451. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/inline_executor.hpp +8 -0
  2452. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/loop_executor.hpp +4 -0
  2453. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduled_thread_pool.hpp +4 -0
  2454. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduler.hpp +2 -0
  2455. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduling_adaptor.hpp +3 -0
  2456. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/serial_executor.hpp +4 -0
  2457. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/serial_executor_cont.hpp +9 -2
  2458. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/thread_executor.hpp +6 -0
  2459. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/work.hpp +3 -1
  2460. data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/parallel/v2/task_region.hpp +6 -2
  2461. data/src/cxx_supportlib/vendor-modified/boost/thread/externally_locked.hpp +6 -5
  2462. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +12 -3
  2463. data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_any.hpp +4 -2
  2464. data/src/cxx_supportlib/vendor-modified/boost/thread/interruption.hpp +22 -0
  2465. data/src/cxx_supportlib/vendor-modified/boost/thread/lock_guard.hpp +4 -4
  2466. data/src/cxx_supportlib/vendor-modified/boost/thread/lockable_traits.hpp +31 -0
  2467. data/src/cxx_supportlib/vendor-modified/boost/thread/poly_lockable.hpp +7 -2
  2468. data/src/cxx_supportlib/vendor-modified/boost/thread/poly_shared_lockable.hpp +16 -12
  2469. data/src/cxx_supportlib/vendor-modified/boost/thread/poly_shared_lockable_adapter.hpp +3 -4
  2470. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +20 -26
  2471. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +8 -15
  2472. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +17 -88
  2473. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once.hpp +29 -28
  2474. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once_atomic.hpp +1 -1
  2475. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_helpers.hpp +163 -18
  2476. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +5 -4
  2477. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +25 -25
  2478. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +1 -1
  2479. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +21 -13
  2480. data/src/cxx_supportlib/vendor-modified/boost/thread/scoped_thread.hpp +9 -0
  2481. data/src/cxx_supportlib/vendor-modified/boost/thread/synchronized_value.hpp +4 -4
  2482. data/src/cxx_supportlib/vendor-modified/boost/thread/thread_guard.hpp +5 -0
  2483. data/src/cxx_supportlib/vendor-modified/boost/thread/tss.hpp +23 -41
  2484. data/src/cxx_supportlib/vendor-modified/boost/thread/user_scheduler.hpp +3 -0
  2485. data/src/cxx_supportlib/vendor-modified/boost/thread/v2/shared_mutex.hpp +1 -1
  2486. data/src/cxx_supportlib/vendor-modified/boost/thread/xtime.hpp +6 -6
  2487. data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +232 -56
  2488. data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +3 -2
  2489. data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +35 -30
  2490. data/src/cxx_supportlib/vendor-modified/boost/tuple/tuple.hpp +52 -1
  2491. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_pointer.hpp +1 -1
  2492. data/src/cxx_supportlib/vendor-modified/boost/type_traits/aligned_storage.hpp +1 -1
  2493. data/src/cxx_supportlib/vendor-modified/boost/type_traits/alignment_of.hpp +3 -3
  2494. data/src/cxx_supportlib/vendor-modified/boost/type_traits/conjunction.hpp +40 -0
  2495. data/src/cxx_supportlib/vendor-modified/boost/type_traits/copy_cv_ref.hpp +31 -0
  2496. data/src/cxx_supportlib/vendor-modified/boost/type_traits/copy_reference.hpp +35 -0
  2497. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_arithmetic_type.hpp +3 -1
  2498. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +36 -3
  2499. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/detector.hpp +1 -1
  2500. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_binary_operator.hpp +6 -6
  2501. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +55 -0
  2502. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +72 -0
  2503. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_03.hpp +108 -0
  2504. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_11.hpp +676 -0
  2505. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_msvc10_fix.hpp +30 -0
  2506. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_helper.hpp +27 -27
  2507. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_tester.hpp +415 -255
  2508. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +4 -3
  2509. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +27 -27
  2510. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +1345 -1542
  2511. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_03.hpp +117 -0
  2512. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp +697 -0
  2513. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_rvalue_reference_msvc10_fix.hpp +43 -0
  2514. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_swappable_cxx_11.hpp +70 -0
  2515. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected.hpp +1 -1
  2516. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected_or.hpp +1 -1
  2517. data/src/cxx_supportlib/vendor-modified/boost/type_traits/disjunction.hpp +40 -0
  2518. data/src/cxx_supportlib/vendor-modified/boost/type_traits/enable_if.hpp +37 -0
  2519. data/src/cxx_supportlib/vendor-modified/boost/type_traits/extent.hpp +2 -2
  2520. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_dereference.hpp +344 -0
  2521. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +11 -6
  2522. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +11 -6
  2523. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_copy.hpp +1 -1
  2524. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +11 -6
  2525. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_decrement.hpp +21 -0
  2526. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_increment.hpp +21 -0
  2527. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_decrement.hpp +21 -0
  2528. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_increment.hpp +22 -0
  2529. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_assign.hpp +1 -1
  2530. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_constructor.hpp +2 -1
  2531. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +6 -16
  2532. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_promotion.hpp +2 -2
  2533. data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +39 -15
  2534. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_array.hpp +2 -2
  2535. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_base_and_derived.hpp +2 -2
  2536. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_bounded_array.hpp +42 -0
  2537. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +6 -3
  2538. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_compound.hpp +1 -1
  2539. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_const.hpp +1 -1
  2540. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_constructible.hpp +1 -1
  2541. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_convertible.hpp +4 -4
  2542. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_assignable.hpp +3 -4
  2543. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_constructible.hpp +4 -6
  2544. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_default_constructible.hpp +1 -1
  2545. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_destructible.hpp +1 -1
  2546. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected.hpp +1 -1
  2547. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_convertible.hpp +1 -1
  2548. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_exact.hpp +1 -1
  2549. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_empty.hpp +4 -4
  2550. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_enum.hpp +4 -4
  2551. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_final.hpp +1 -1
  2552. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_floating_point.hpp +22 -0
  2553. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_function.hpp +4 -79
  2554. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_fundamental.hpp +1 -1
  2555. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_integral.hpp +6 -3
  2556. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_lvalue_reference.hpp +1 -1
  2557. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_function_pointer.hpp +3 -97
  2558. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_pointer.hpp +1 -1
  2559. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_noncopyable.hpp +39 -0
  2560. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +2 -2
  2561. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +2 -2
  2562. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_swappable.hpp +4 -24
  2563. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_pointer.hpp +1 -1
  2564. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_rvalue_reference.hpp +4 -0
  2565. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_same.hpp +1 -1
  2566. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_scoped_enum.hpp +26 -0
  2567. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_signed.hpp +2 -2
  2568. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_swappable.hpp +92 -0
  2569. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_trivially_copyable.hpp +31 -0
  2570. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_unbounded_array.hpp +41 -0
  2571. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_unscoped_enum.hpp +25 -0
  2572. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_unsigned.hpp +2 -2
  2573. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +105 -64
  2574. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_volatile.hpp +1 -1
  2575. data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_void.hpp +1 -1
  2576. data/src/cxx_supportlib/vendor-modified/boost/type_traits/negation.hpp +23 -0
  2577. data/src/cxx_supportlib/vendor-modified/boost/type_traits/nonesuch.hpp +1 -1
  2578. data/src/cxx_supportlib/vendor-modified/boost/type_traits/rank.hpp +4 -4
  2579. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_all_extents.hpp +1 -1
  2580. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_const.hpp +1 -1
  2581. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv.hpp +1 -1
  2582. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_extent.hpp +1 -1
  2583. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_volatile.hpp +1 -1
  2584. data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_with_alignment.hpp +3 -3
  2585. data/src/cxx_supportlib/vendor-modified/boost/typeof/constant.hpp +26 -0
  2586. data/src/cxx_supportlib/vendor-modified/boost/typeof/decltype.hpp +2 -3
  2587. data/src/cxx_supportlib/vendor-modified/boost/typeof/incr_registration_group.hpp +1 -10
  2588. data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +9 -10
  2589. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/bitset.hpp +2 -4
  2590. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/complex.hpp +2 -4
  2591. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/deque.hpp +2 -5
  2592. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/fstream.hpp +2 -15
  2593. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/functional.hpp +4 -51
  2594. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iostream.hpp +2 -6
  2595. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/istream.hpp +2 -9
  2596. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iterator.hpp +2 -46
  2597. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/list.hpp +2 -5
  2598. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/locale.hpp +2 -29
  2599. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/map.hpp +2 -9
  2600. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/memory.hpp +4 -9
  2601. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/ostream.hpp +2 -6
  2602. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/queue.hpp +2 -5
  2603. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/set.hpp +2 -9
  2604. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/sstream.hpp +2 -19
  2605. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/stack.hpp +2 -5
  2606. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/streambuf.hpp +2 -5
  2607. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/string.hpp +2 -12
  2608. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/utility.hpp +2 -4
  2609. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/valarray.hpp +2 -10
  2610. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/vector.hpp +2 -5
  2611. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof.hpp +8 -202
  2612. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +872 -0
  2613. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map_fwd.hpp +66 -0
  2614. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +728 -0
  2615. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set_fwd.hpp +67 -0
  2616. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/allocator_constructed.hpp +59 -0
  2617. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/archive_constructed.hpp +71 -0
  2618. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/bad_archive_exception.hpp +27 -0
  2619. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/concurrent_static_asserts.hpp +105 -0
  2620. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +900 -0
  2621. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +1792 -0
  2622. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +2380 -0
  2623. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/cumulative_stats.hpp +177 -0
  2624. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/element_type.hpp +64 -0
  2625. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_map_types.hpp +86 -0
  2626. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_set_types.hpp +44 -0
  2627. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/ignore_wshadow.hpp +35 -0
  2628. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_handle.hpp +204 -0
  2629. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_map_types.hpp +139 -0
  2630. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_set_types.hpp +92 -0
  2631. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/reentrancy_check.hpp +138 -0
  2632. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/restore_wshadow.hpp +11 -0
  2633. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/rw_spinlock.hpp +179 -0
  2634. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +661 -0
  2635. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/tuple_rotate_right.hpp +52 -0
  2636. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +1462 -3502
  2637. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +10 -14
  2638. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/mulx.hpp +129 -0
  2639. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/narrow_cast.hpp +44 -0
  2640. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/opt_storage.hpp +30 -0
  2641. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/prime_fmod.hpp +214 -0
  2642. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialization_version.hpp +74 -0
  2643. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_container.hpp +204 -0
  2644. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_fca_container.hpp +156 -0
  2645. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_tracked_address.hpp +104 -0
  2646. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/set.hpp +8 -13
  2647. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/static_assert.hpp +16 -0
  2648. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/throw_exception.hpp +30 -0
  2649. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +226 -0
  2650. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/xmx.hpp +75 -0
  2651. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +70 -0
  2652. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +812 -0
  2653. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +59 -0
  2654. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +622 -0
  2655. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +58 -0
  2656. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +768 -1002
  2657. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +35 -13
  2658. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +907 -0
  2659. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map_fwd.hpp +59 -0
  2660. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +711 -0
  2661. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set_fwd.hpp +58 -0
  2662. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +547 -672
  2663. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +35 -15
  2664. data/src/cxx_supportlib/vendor-modified/boost/utility/base_from_member.hpp +2 -1
  2665. data/src/cxx_supportlib/vendor-modified/boost/utility/binary.hpp +3 -2
  2666. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +4 -43
  2667. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_iterate.hpp +3 -3
  2668. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_variadic.hpp +190 -0
  2669. data/src/cxx_supportlib/vendor-modified/boost/utility/in_place_factory.hpp +6 -0
  2670. data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +33 -11
  2671. data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +11 -44
  2672. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +56 -52
  2673. data/src/cxx_supportlib/vendor-modified/boost/utility/swap.hpp +4 -1
  2674. data/src/cxx_supportlib/vendor-modified/boost/utility/typed_in_place_factory.hpp +6 -1
  2675. data/src/cxx_supportlib/vendor-modified/boost/utility/value_init.hpp +41 -75
  2676. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  2677. data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +2 -9
  2678. data/src/cxx_supportlib/vendor-modified/modp_b64_data.h +0 -4
  2679. data/src/cxx_supportlib/vendor-modified/modp_b64_strict_aliasing.cpp +7 -3
  2680. data/src/cxx_supportlib/vendor-modified/websocketpp/changelog.md +444 -0
  2681. data/src/cxx_supportlib/vendor-modified/websocketpp/readme.md +49 -0
  2682. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/close.hpp +353 -0
  2683. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/asio.hpp +141 -0
  2684. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/functional.hpp +100 -0
  2685. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/md5.hpp +448 -0
  2686. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/memory.hpp +88 -0
  2687. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/thread.hpp +88 -0
  2688. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/core.hpp +297 -0
  2689. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/connection.hpp +1642 -0
  2690. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/endpoint.hpp +700 -0
  2691. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/extensions/permessage_deflate/disabled.hpp +129 -0
  2692. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/extensions/permessage_deflate/enabled.hpp +817 -0
  2693. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/frame.hpp +853 -0
  2694. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/impl/parser.hpp +200 -0
  2695. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/parser.hpp +629 -0
  2696. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/impl/connection_impl.hpp +2375 -0
  2697. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/impl/endpoint_impl.hpp +269 -0
  2698. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/base.hpp +299 -0
  2699. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi13.hpp +1072 -0
  2700. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/roles/client_endpoint.hpp +173 -0
  2701. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/roles/server_endpoint.hpp +195 -0
  2702. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/sha1/sha1.hpp +189 -0
  2703. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/connection.hpp +1197 -0
  2704. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/endpoint.hpp +1182 -0
  2705. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/security/none.hpp +372 -0
  2706. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/security/tls.hpp +474 -0
  2707. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/base/endpoint.hpp +77 -0
  2708. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/debug/connection.hpp +412 -0
  2709. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/debug/endpoint.hpp +140 -0
  2710. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/iostream/connection.hpp +714 -0
  2711. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/iostream/endpoint.hpp +222 -0
  2712. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/stub/connection.hpp +286 -0
  2713. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/uri.hpp +356 -0
  2714. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/utilities.hpp +180 -0
  2715. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/version.hpp +61 -0
  2716. data/src/helper-scripts/backtrace-sanitizer.rb +2 -2
  2717. data/src/helper-scripts/crash-watch.rb +1 -1
  2718. data/src/helper-scripts/download_binaries/extconf.rb +2 -2
  2719. data/src/helper-scripts/meteor-loader.rb +9 -4
  2720. data/src/helper-scripts/node-loader.js +3 -3
  2721. data/src/helper-scripts/prespawn +3 -2
  2722. data/src/helper-scripts/rack-loader.rb +2 -2
  2723. data/src/helper-scripts/rack-preloader.rb +2 -2
  2724. data/src/helper-scripts/wsgi-loader.py +36 -19
  2725. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +98 -2
  2726. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c.cxxcodebuilder +2 -2
  2727. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +59 -2
  2728. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c.cxxcodebuilder +2 -2
  2729. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +122 -2
  2730. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c.cxxcodebuilder +2 -2
  2731. data/src/nginx_module/ConfigGeneral/ManifestGeneration.c +2 -2
  2732. data/src/nginx_module/Configuration.c +40 -11
  2733. data/src/nginx_module/Configuration.h +1 -1
  2734. data/src/nginx_module/ContentHandler.c +306 -24
  2735. data/src/nginx_module/ContentHandler.h +6 -1
  2736. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +49 -2
  2737. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +2 -2
  2738. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +86 -2
  2739. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c.cxxcodebuilder +2 -2
  2740. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +111 -2
  2741. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +2 -2
  2742. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +23 -2
  2743. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c.cxxcodebuilder +2 -2
  2744. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +36 -2
  2745. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h.cxxcodebuilder +2 -2
  2746. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +18 -2
  2747. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +2 -2
  2748. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +36 -2
  2749. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +2 -2
  2750. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +14 -2
  2751. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h.cxxcodebuilder +2 -2
  2752. data/src/nginx_module/StaticContentHandler.c +1 -1
  2753. data/src/nginx_module/StaticContentHandler.h +1 -1
  2754. data/src/nginx_module/config +2 -0
  2755. data/src/nginx_module/ngx_http_passenger_module.c +7 -4
  2756. data/src/nginx_module/ngx_http_passenger_module.h +6 -1
  2757. data/src/nodejs_supportlib/phusion_passenger/line_reader.js +2 -2
  2758. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/common.js +50 -29
  2759. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config/cli-config.js +20 -20
  2760. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config/npm-config.js +11 -11
  2761. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config/syslog-config.js +3 -3
  2762. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/config.js +8 -2
  2763. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/container.js +2 -1
  2764. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/logger.js +174 -146
  2765. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/console.js +4 -2
  2766. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/file.js +15 -5
  2767. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/http.js +14 -4
  2768. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports.js +26 -24
  2769. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston.js +5 -5
  2770. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/async/package.json +4 -13
  2771. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/colors/package.json +19 -33
  2772. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/cycle/package.json +11 -29
  2773. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/eyes/package.json +12 -40
  2774. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/isstream/package.json +3 -12
  2775. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/stack-trace/lib/stack-trace.js +49 -24
  2776. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/stack-trace/package.json +4 -16
  2777. data/src/nodejs_supportlib/vendor-copy/winston/package.json +11 -55
  2778. data/src/ruby_native_extension/extconf.rb +9 -2
  2779. data/src/ruby_native_extension/passenger_native_support.c +3 -2
  2780. data/src/ruby_supportlib/phusion_passenger/abstract_installer.rb +2 -2
  2781. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +2 -2
  2782. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +15 -3
  2783. data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +3 -3
  2784. data/src/ruby_supportlib/phusion_passenger/admin_tools.rb +3 -3
  2785. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +55 -2
  2786. data/src/ruby_supportlib/phusion_passenger/apache2/config_utils.rb +2 -2
  2787. data/src/ruby_supportlib/phusion_passenger/common_library.rb +19 -6
  2788. data/src/ruby_supportlib/phusion_passenger/config/about_command.rb +2 -2
  2789. data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +2 -2
  2790. data/src/ruby_supportlib/phusion_passenger/config/api_call_command.rb +2 -2
  2791. data/src/ruby_supportlib/phusion_passenger/config/build_native_support_command.rb +2 -2
  2792. data/src/ruby_supportlib/phusion_passenger/config/command.rb +2 -2
  2793. data/src/ruby_supportlib/phusion_passenger/config/compile_agent_command.rb +2 -2
  2794. data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +8 -4
  2795. data/src/ruby_supportlib/phusion_passenger/config/detach_process_command.rb +2 -2
  2796. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +3 -3
  2797. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +3 -3
  2798. data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +2 -2
  2799. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +12 -2
  2800. data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +2 -2
  2801. data/src/ruby_supportlib/phusion_passenger/config/list_instances_command.rb +2 -2
  2802. data/src/ruby_supportlib/phusion_passenger/config/main.rb +2 -2
  2803. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +16 -7
  2804. data/src/ruby_supportlib/phusion_passenger/config/reopen_logs_command.rb +2 -2
  2805. data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +18 -14
  2806. data/src/ruby_supportlib/phusion_passenger/config/system_metrics_command.rb +2 -2
  2807. data/src/ruby_supportlib/phusion_passenger/config/system_properties_command.rb +2 -2
  2808. data/src/ruby_supportlib/phusion_passenger/config/utils.rb +2 -2
  2809. data/src/ruby_supportlib/phusion_passenger/config/validate_install_command.rb +2 -2
  2810. data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +9 -4
  2811. data/src/ruby_supportlib/phusion_passenger/constants.rb +6 -4
  2812. data/src/ruby_supportlib/phusion_passenger/debug_logging.rb +2 -2
  2813. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +39 -12
  2814. data/src/ruby_supportlib/phusion_passenger/message_channel.rb +2 -2
  2815. data/src/ruby_supportlib/phusion_passenger/message_client.rb +2 -2
  2816. data/src/ruby_supportlib/phusion_passenger/native_support.rb +12 -7
  2817. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +84 -2
  2818. data/src/ruby_supportlib/phusion_passenger/packaging.rb +5 -3
  2819. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +12 -15
  2820. data/src/ruby_supportlib/phusion_passenger/platform_info/apache_detector.rb +2 -2
  2821. data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +25 -21
  2822. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +49 -8
  2823. data/src/ruby_supportlib/phusion_passenger/platform_info/crypto.rb +2 -2
  2824. data/src/ruby_supportlib/phusion_passenger/platform_info/curl.rb +5 -2
  2825. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +10 -4
  2826. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/gems.rb +10 -0
  2827. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/libs.rb +10 -6
  2828. data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +4 -3
  2829. data/src/ruby_supportlib/phusion_passenger/platform_info/networking.rb +2 -2
  2830. data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +7 -2
  2831. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +49 -30
  2832. data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +64 -0
  2833. data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +4 -4
  2834. data/src/ruby_supportlib/phusion_passenger/platform_info/zlib.rb +2 -2
  2835. data/src/ruby_supportlib/phusion_passenger/platform_info.rb +2 -2
  2836. data/src/ruby_supportlib/phusion_passenger/plugin.rb +2 -2
  2837. data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +14 -8
  2838. data/src/ruby_supportlib/phusion_passenger/public_api.rb +5 -2
  2839. data/src/ruby_supportlib/phusion_passenger/rack/handler.rb +73 -0
  2840. data/src/ruby_supportlib/phusion_passenger/rack/out_of_band_gc.rb +2 -2
  2841. data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +24 -3
  2842. data/src/ruby_supportlib/phusion_passenger/rack_handler.rb +32 -58
  2843. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +25 -20
  2844. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +13 -9
  2845. data/src/ruby_supportlib/phusion_passenger/ruby_core_enhancements.rb +7 -2
  2846. data/src/ruby_supportlib/phusion_passenger/ruby_core_io_enhancements.rb +2 -2
  2847. data/src/ruby_supportlib/phusion_passenger/simple_benchmarking.rb +2 -2
  2848. data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +3 -2
  2849. data/src/ruby_supportlib/phusion_passenger/standalone/command.rb +2 -2
  2850. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +53 -3
  2851. data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +2 -2
  2852. data/src/ruby_supportlib/phusion_passenger/standalone/control_utils.rb +2 -2
  2853. data/src/ruby_supportlib/phusion_passenger/standalone/main.rb +2 -2
  2854. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +13 -5
  2855. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +32 -21
  2856. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +3 -7
  2857. data/src/ruby_supportlib/phusion_passenger/standalone/status_command.rb +3 -4
  2858. data/src/ruby_supportlib/phusion_passenger/standalone/stop_command.rb +9 -3
  2859. data/src/ruby_supportlib/phusion_passenger/standalone/version_command.rb +2 -2
  2860. data/src/ruby_supportlib/phusion_passenger/utils/ansi_colors.rb +2 -2
  2861. data/src/ruby_supportlib/phusion_passenger/utils/download.rb +2 -2
  2862. data/src/ruby_supportlib/phusion_passenger/utils/file_system_watcher.rb +2 -2
  2863. data/src/ruby_supportlib/phusion_passenger/utils/hosts_file_parser.rb +2 -2
  2864. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +7 -198
  2865. data/src/ruby_supportlib/phusion_passenger/utils/lock.rb +2 -2
  2866. data/src/ruby_supportlib/phusion_passenger/utils/native_support_utils.rb +2 -2
  2867. data/src/ruby_supportlib/phusion_passenger/utils/progress_bar.rb +2 -2
  2868. data/src/ruby_supportlib/phusion_passenger/utils/strscan.rb +67 -0
  2869. data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +6 -0
  2870. data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +2 -2
  2871. data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +17 -13
  2872. data/src/ruby_supportlib/phusion_passenger/utils.rb +8 -17
  2873. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +2 -2
  2874. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/base.rb +1 -1
  2875. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +5 -1
  2876. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +6 -2
  2877. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/utils.rb +1 -1
  2878. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/version.rb +1 -1
  2879. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/lock_file.rb +1 -1
  2880. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/spawn.rb +1 -1
  2881. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/version.rb +1 -1
  2882. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +1 -1
  2883. data/src/ruby_supportlib/phusion_passenger.rb +12 -11
  2884. data/src/schema_printer/SchemaPrinterMain.cpp +2 -2
  2885. data/src/schema_printer/SchemaPrinterMain.cpp.cxxcodebuilder +2 -2
  2886. metadata +935 -308
  2887. data/src/cxx_supportlib/ServerKit/http_parser.cpp +0 -2265
  2888. data/src/cxx_supportlib/ServerKit/http_parser.h +0 -330
  2889. data/src/cxx_supportlib/vendor-copy/websocketpp/changelog.md +0 -342
  2890. data/src/cxx_supportlib/vendor-copy/websocketpp/readme.md +0 -49
  2891. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/close.hpp +0 -342
  2892. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/asio.hpp +0 -131
  2893. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/functional.hpp +0 -105
  2894. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/md5.hpp +0 -448
  2895. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/memory.hpp +0 -89
  2896. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/thread.hpp +0 -84
  2897. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/core.hpp +0 -285
  2898. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/connection.hpp +0 -1651
  2899. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/endpoint.hpp +0 -700
  2900. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/extensions/permessage_deflate/disabled.hpp +0 -128
  2901. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/extensions/permessage_deflate/enabled.hpp +0 -752
  2902. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/frame.hpp +0 -861
  2903. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/impl/parser.hpp +0 -196
  2904. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/parser.hpp +0 -619
  2905. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/impl/connection_impl.hpp +0 -2372
  2906. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/impl/endpoint_impl.hpp +0 -269
  2907. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/base.hpp +0 -299
  2908. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi13.hpp +0 -1056
  2909. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/roles/client_endpoint.hpp +0 -173
  2910. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/roles/server_endpoint.hpp +0 -190
  2911. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/sha1/sha1.hpp +0 -189
  2912. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/connection.hpp +0 -1204
  2913. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/endpoint.hpp +0 -1147
  2914. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/security/none.hpp +0 -370
  2915. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/security/tls.hpp +0 -484
  2916. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/base/endpoint.hpp +0 -77
  2917. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/debug/connection.hpp +0 -412
  2918. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/debug/endpoint.hpp +0 -140
  2919. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/iostream/connection.hpp +0 -714
  2920. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/iostream/endpoint.hpp +0 -222
  2921. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/stub/connection.hpp +0 -286
  2922. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/uri.hpp +0 -355
  2923. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/utilities.hpp +0 -182
  2924. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/version.hpp +0 -61
  2925. data/src/cxx_supportlib/vendor-modified/boost/array.hpp +0 -457
  2926. data/src/cxx_supportlib/vendor-modified/boost/asio/datagram_socket_service.hpp +0 -468
  2927. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer_service.hpp +0 -175
  2928. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +0 -93
  2929. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +0 -70
  2930. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +0 -67
  2931. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +0 -101
  2932. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +0 -57
  2933. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_serial_port_service.ipp +0 -154
  2934. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +0 -64
  2935. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +0 -216
  2936. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_serial_port_service.hpp +0 -238
  2937. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_fwd.hpp +0 -42
  2938. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +0 -64
  2939. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +0 -119
  2940. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detached.hpp +0 -67
  2941. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/co_spawn.hpp +0 -878
  2942. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/detached.hpp +0 -93
  2943. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/redirect_error.hpp +0 -296
  2944. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/redirect_error.hpp +0 -69
  2945. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental.hpp +0 -22
  2946. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +0 -83
  2947. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +0 -87
  2948. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_type.hpp +0 -52
  2949. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +0 -79
  2950. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +0 -80
  2951. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +0 -54
  2952. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +0 -79
  2953. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.cpp +0 -25
  2954. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_service.hpp +0 -202
  2955. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor_service.hpp +0 -281
  2956. data/src/cxx_supportlib/vendor-modified/boost/asio/raw_socket_service.hpp +0 -468
  2957. data/src/cxx_supportlib/vendor-modified/boost/asio/seq_packet_socket_service.hpp +0 -418
  2958. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_service.hpp +0 -251
  2959. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_service.hpp +0 -144
  2960. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_acceptor_service.hpp +0 -374
  2961. data/src/cxx_supportlib/vendor-modified/boost/asio/stream_socket_service.hpp +0 -414
  2962. data/src/cxx_supportlib/vendor-modified/boost/asio/waitable_timer_service.hpp +0 -212
  2963. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_handle.hpp +0 -275
  2964. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +0 -184
  2965. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +0 -378
  2966. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +0 -361
  2967. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +0 -383
  2968. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle_service.hpp +0 -185
  2969. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_handle.hpp +0 -333
  2970. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +0 -118
  2971. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +0 -380
  2972. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle_service.hpp +0 -216
  2973. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +0 -364
  2974. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle_service.hpp +0 -212
  2975. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag.hpp +0 -71
  2976. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_template.hpp +0 -1248
  2977. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_alpha.hpp +0 -34
  2978. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_arm.hpp +0 -39
  2979. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_ppc.hpp +0 -37
  2980. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_sparc.hpp +0 -34
  2981. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_x86.hpp +0 -40
  2982. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_msvc_arm.hpp +0 -34
  2983. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_msvc_x86.hpp +0 -55
  2984. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/hwcaps_gcc_arm.hpp +0 -67
  2985. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/hwcaps_gcc_ppc.hpp +0 -42
  2986. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/hwcaps_gcc_x86.hpp +0 -58
  2987. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/integral_extend.hpp +0 -105
  2988. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/lockpool.hpp +0 -51
  2989. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/operations.hpp +0 -24
  2990. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/operations_fwd.hpp +0 -35
  2991. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/operations_lockfree.hpp +0 -30
  2992. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_cas_based.hpp +0 -107
  2993. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_emulated.hpp +0 -162
  2994. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_extending_cas_based.hpp +0 -69
  2995. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_alpha.hpp +0 -876
  2996. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm.hpp +0 -1397
  2997. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_atomic.hpp +0 -392
  2998. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc.hpp +0 -1232
  2999. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sparc.hpp +0 -240
  3000. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sync.hpp +0 -240
  3001. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86.hpp +0 -563
  3002. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +0 -555
  3003. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_linux_arm.hpp +0 -180
  3004. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_arm.hpp +0 -824
  3005. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_x86.hpp +0 -908
  3006. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_type.hpp +0 -207
  3007. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_cc.hpp +0 -117
  3008. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf2_cc.hpp +0 -228
  3009. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf_cc.hpp +0 -441
  3010. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_template.hpp +0 -345
  3011. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_cc.hpp +0 -103
  3012. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_template.hpp +0 -1047
  3013. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_vw.hpp +0 -130
  3014. data/src/cxx_supportlib/vendor-modified/boost/bind/storage.hpp +0 -475
  3015. data/src/cxx_supportlib/vendor-modified/boost/bind.hpp +0 -41
  3016. data/src/cxx_supportlib/vendor-modified/boost/call_traits.hpp +0 -20
  3017. data/src/cxx_supportlib/vendor-modified/boost/checked_delete.hpp +0 -17
  3018. data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +0 -68
  3019. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/float_functions.hpp +0 -336
  3020. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_float.hpp +0 -271
  3021. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/limits.hpp +0 -62
  3022. data/src/cxx_supportlib/vendor-modified/boost/container_hash/extensions.hpp +0 -414
  3023. data/src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp +0 -21
  3024. data/src/cxx_supportlib/vendor-modified/boost/detail/call_traits.hpp +0 -172
  3025. data/src/cxx_supportlib/vendor-modified/boost/detail/container_fwd.hpp +0 -157
  3026. data/src/cxx_supportlib/vendor-modified/boost/detail/endian.hpp +0 -11
  3027. data/src/cxx_supportlib/vendor-modified/boost/detail/iterator.hpp +0 -39
  3028. data/src/cxx_supportlib/vendor-modified/boost/detail/no_exceptions_support.hpp +0 -17
  3029. data/src/cxx_supportlib/vendor-modified/boost/detail/sp_typeinfo.hpp +0 -36
  3030. data/src/cxx_supportlib/vendor-modified/boost/function/detail/function_iterate.hpp +0 -16
  3031. data/src/cxx_supportlib/vendor-modified/boost/function/detail/gen_maybe_include.pl +0 -39
  3032. data/src/cxx_supportlib/vendor-modified/boost/function/detail/maybe_include.hpp +0 -369
  3033. data/src/cxx_supportlib/vendor-modified/boost/function/detail/prologue.hpp +0 -26
  3034. data/src/cxx_supportlib/vendor-modified/boost/function/gen_function_N.pl +0 -26
  3035. data/src/cxx_supportlib/vendor-modified/boost/functional/hash_fwd.hpp +0 -6
  3036. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/c_regex_traits.cpp +0 -206
  3037. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cpp_regex_traits.cpp +0 -117
  3038. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cregex.cpp +0 -660
  3039. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/instances.cpp +0 -32
  3040. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex_raw_buffer.cpp +0 -72
  3041. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex_traits_defaults.cpp +0 -692
  3042. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wc_regex_traits.cpp +0 -314
  3043. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/winstances.cpp +0 -35
  3044. data/src/cxx_supportlib/vendor-modified/boost/math/policies/policy.hpp +0 -1040
  3045. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +0 -581
  3046. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/round_fwd.hpp +0 -93
  3047. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/fpclassify.hpp +0 -640
  3048. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +0 -1651
  3049. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/sign.hpp +0 -194
  3050. data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +0 -469
  3051. data/src/cxx_supportlib/vendor-modified/boost/math/tools/promotion.hpp +0 -182
  3052. data/src/cxx_supportlib/vendor-modified/boost/math/tools/real_cast.hpp +0 -31
  3053. data/src/cxx_supportlib/vendor-modified/boost/math/tools/user.hpp +0 -105
  3054. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/overloads.hpp +0 -88
  3055. data/src/cxx_supportlib/vendor-modified/boost/pointer_to_other.hpp +0 -55
  3056. data/src/cxx_supportlib/vendor-modified/boost/predef/detail/endian_compat.h +0 -26
  3057. data/src/cxx_supportlib/vendor-modified/boost/predef/os/android.h +0 -45
  3058. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/abs.hpp +0 -89
  3059. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/gcd.hpp +0 -124
  3060. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/lcm.hpp +0 -126
  3061. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/sign.hpp +0 -89
  3062. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/overflow_helpers.hpp +0 -367
  3063. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/ratio_io.hpp +0 -1342
  3064. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/abs.hpp +0 -30
  3065. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/arithmetic.hpp +0 -22
  3066. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/comparison.hpp +0 -19
  3067. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/divides.hpp +0 -30
  3068. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/equal_to.hpp +0 -30
  3069. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/gcd.hpp +0 -30
  3070. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater.hpp +0 -30
  3071. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater_equal.hpp +0 -30
  3072. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/lcm.hpp +0 -30
  3073. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less.hpp +0 -30
  3074. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less_equal.hpp +0 -30
  3075. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/minus.hpp +0 -30
  3076. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/negate.hpp +0 -30
  3077. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/not_equal_to.hpp +0 -30
  3078. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/numeric_cast.hpp +0 -31
  3079. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/plus.hpp +0 -30
  3080. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_c_tag.hpp +0 -25
  3081. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_constant.hpp +0 -15
  3082. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/sign.hpp +0 -30
  3083. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/times.hpp +0 -30
  3084. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +0 -455
  3085. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +0 -225
  3086. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_solaris.hpp +0 -59
  3087. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +0 -150
  3088. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +0 -160
  3089. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +0 -115
  3090. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync.hpp +0 -69
  3091. data/src/cxx_supportlib/vendor-modified/boost/swap.hpp +0 -17
  3092. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.ipp +0 -496
  3093. data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +0 -276
  3094. data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +0 -297
  3095. data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +0 -265
  3096. data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +0 -100
  3097. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -61
  3098. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +0 -34
  3099. data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +0 -118
  3100. data/src/cxx_supportlib/vendor-modified/boost/typeof/integral_template_param.hpp +0 -80
  3101. data/src/cxx_supportlib/vendor-modified/boost/typeof/message.hpp +0 -8
  3102. data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +0 -121
  3103. data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +0 -60
  3104. data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +0 -38
  3105. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions.hpp +0 -50
  3106. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +0 -135
  3107. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_fundamental.hpp +0 -61
  3108. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +0 -32
  3109. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +0 -160
  3110. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +0 -149
  3111. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +0 -27
  3112. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_template_param.hpp +0 -37
  3113. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +0 -186
  3114. data/src/cxx_supportlib/vendor-modified/boost/typeof/unsupported.hpp +0 -29
  3115. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +0 -166
  3116. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +0 -321
  3117. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +0 -471
  3118. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +0 -621
  3119. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +0 -171
  3120. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +0 -63
  3121. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/daily-rotate-file.js +0 -601
  3122. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/transports/webhook.js +0 -146
  3123. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/pkginfo/LICENSE +0 -19
  3124. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/pkginfo/lib/pkginfo.js +0 -136
  3125. data/src/nodejs_supportlib/vendor-copy/winston/node_modules/pkginfo/package.json +0 -56
  3126. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/COPYING +0 -0
  3127. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/base64/base64.hpp +0 -0
  3128. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/client.hpp +0 -0
  3129. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/asio_ssl.hpp +0 -0
  3130. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/chrono.hpp +0 -0
  3131. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/connection_hdl.hpp +0 -0
  3132. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/cpp11.hpp +0 -0
  3133. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/network.hpp +0 -0
  3134. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/platforms.hpp +0 -0
  3135. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/random.hpp +0 -0
  3136. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/regex.hpp +0 -0
  3137. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/stdint.hpp +0 -0
  3138. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/system_error.hpp +0 -0
  3139. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/time.hpp +0 -0
  3140. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/common/type_traits.hpp +0 -0
  3141. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/concurrency/basic.hpp +0 -0
  3142. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/concurrency/none.hpp +0 -0
  3143. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/asio.hpp +0 -0
  3144. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/asio_client.hpp +0 -0
  3145. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/asio_no_tls.hpp +0 -0
  3146. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/asio_no_tls_client.hpp +0 -0
  3147. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/boost_config.hpp +0 -0
  3148. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/core_client.hpp +0 -0
  3149. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/debug.hpp +0 -0
  3150. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/debug_asio.hpp +0 -0
  3151. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/debug_asio_no_tls.hpp +0 -0
  3152. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/minimal_client.hpp +0 -0
  3153. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/config/minimal_server.hpp +0 -0
  3154. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/connection_base.hpp +0 -0
  3155. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/endpoint_base.hpp +0 -0
  3156. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/error.hpp +0 -0
  3157. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/extensions/extension.hpp +0 -0
  3158. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/constants.hpp +0 -0
  3159. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/impl/request.hpp +0 -0
  3160. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/impl/response.hpp +0 -0
  3161. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/request.hpp +0 -0
  3162. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/http/response.hpp +0 -0
  3163. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/impl/utilities_impl.hpp +0 -0
  3164. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/logger/basic.hpp +0 -0
  3165. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/logger/levels.hpp +0 -0
  3166. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/logger/stub.hpp +0 -0
  3167. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/logger/syslog.hpp +0 -0
  3168. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/message_buffer/alloc.hpp +0 -0
  3169. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/message_buffer/message.hpp +0 -0
  3170. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/message_buffer/pool.hpp +0 -0
  3171. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/hybi00.hpp +0 -0
  3172. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/hybi07.hpp +0 -0
  3173. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/hybi08.hpp +0 -0
  3174. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/processors/processor.hpp +0 -0
  3175. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/random/none.hpp +0 -0
  3176. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/random/random_device.hpp +0 -0
  3177. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/server.hpp +0 -0
  3178. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/asio/base.hpp +0 -0
  3179. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/asio/security/base.hpp +0 -0
  3180. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/base/connection.hpp +0 -0
  3181. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/debug/base.hpp +0 -0
  3182. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/iostream/base.hpp +0 -0
  3183. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/stub/base.hpp +0 -0
  3184. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/transport/stub/endpoint.hpp +0 -0
  3185. /data/src/cxx_supportlib/{vendor-copy → vendor-modified}/websocketpp/websocketpp/utf8_validator.hpp +0 -0
@@ -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,15 +15,14 @@
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>
20
- #include <boost/type_traits/is_constructible.hpp>
21
18
  #include <boost/unordered/detail/map.hpp>
19
+ #include <boost/unordered/detail/serialize_fca_container.hpp>
20
+ #include <boost/unordered/detail/throw_exception.hpp>
21
+ #include <boost/unordered/detail/type_traits.hpp>
22
+
23
+ #include <boost/container_hash/hash.hpp>
22
24
 
23
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
24
25
  #include <initializer_list>
25
- #endif
26
26
 
27
27
  #if defined(BOOST_MSVC)
28
28
  #pragma warning(push)
@@ -39,9 +39,6 @@ namespace boost {
39
39
  namespace unordered {
40
40
  template <class K, class T, class H, class P, class A> class unordered_map
41
41
  {
42
- #if defined(BOOST_UNORDERED_USE_MOVE)
43
- BOOST_COPYABLE_AND_MOVABLE(unordered_map)
44
- #endif
45
42
  template <typename, typename, typename, typename, typename>
46
43
  friend class unordered_multimap;
47
44
 
@@ -49,16 +46,16 @@ namespace boost {
49
46
  typedef K key_type;
50
47
  typedef T mapped_type;
51
48
  typedef std::pair<const K, T> value_type;
52
- typedef H hasher;
53
- typedef P key_equal;
54
- typedef A allocator_type;
49
+ typedef typename boost::unordered::detail::type_identity<H>::type hasher;
50
+ typedef
51
+ typename boost::unordered::detail::type_identity<P>::type key_equal;
52
+ typedef typename boost::unordered::detail::type_identity<A>::type
53
+ allocator_type;
55
54
 
56
55
  private:
57
56
  typedef boost::unordered::detail::map<A, K, T, H, P> types;
58
57
  typedef typename types::value_allocator_traits value_allocator_traits;
59
58
  typedef typename types::table table;
60
- typedef typename table::node_pointer node_pointer;
61
- typedef typename table::link_pointer link_pointer;
62
59
 
63
60
  public:
64
61
  typedef typename value_allocator_traits::pointer pointer;
@@ -97,33 +94,31 @@ namespace boost {
97
94
 
98
95
  unordered_map(unordered_map const&);
99
96
 
100
- #if defined(BOOST_UNORDERED_USE_MOVE) || \
101
- !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
102
- unordered_map(BOOST_RV_REF(unordered_map) other)
103
- BOOST_NOEXCEPT_IF(table::nothrow_move_constructible)
97
+ unordered_map(unordered_map&& other)
98
+ noexcept(table::nothrow_move_constructible)
104
99
  : table_(other.table_, boost::unordered::detail::move_tag())
105
100
  {
106
101
  // The move is done in table_
107
102
  }
108
- #endif
109
103
 
110
104
  explicit unordered_map(allocator_type const&);
111
105
 
112
106
  unordered_map(unordered_map const&, allocator_type const&);
113
107
 
114
- unordered_map(BOOST_RV_REF(unordered_map), allocator_type const&);
108
+ unordered_map(unordered_map&&, allocator_type const&);
115
109
 
116
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
117
110
  unordered_map(std::initializer_list<value_type>,
118
111
  size_type = boost::unordered::detail::default_bucket_count,
119
112
  const hasher& = hasher(), const key_equal& l = key_equal(),
120
113
  const allocator_type& = allocator_type());
121
- #endif
122
114
 
123
115
  explicit unordered_map(size_type, const allocator_type&);
124
116
 
125
117
  explicit unordered_map(size_type, const hasher&, const allocator_type&);
126
118
 
119
+ template <class InputIterator>
120
+ unordered_map(InputIterator, InputIterator, const allocator_type&);
121
+
127
122
  template <class InputIt>
128
123
  unordered_map(InputIt, InputIt, size_type, const allocator_type&);
129
124
 
@@ -131,266 +126,106 @@ namespace boost {
131
126
  unordered_map(
132
127
  InputIt, InputIt, size_type, const hasher&, const allocator_type&);
133
128
 
134
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
129
+ unordered_map(std::initializer_list<value_type>, const allocator_type&);
130
+
135
131
  unordered_map(
136
132
  std::initializer_list<value_type>, size_type, const allocator_type&);
137
133
 
138
134
  unordered_map(std::initializer_list<value_type>, size_type, const hasher&,
139
135
  const allocator_type&);
140
- #endif
141
136
 
142
137
  // Destructor
143
138
 
144
- ~unordered_map() BOOST_NOEXCEPT;
145
-
146
- // Assign
139
+ ~unordered_map() noexcept;
147
140
 
148
- #if defined(BOOST_UNORDERED_USE_MOVE)
149
- unordered_map& operator=(BOOST_COPY_ASSIGN_REF(unordered_map) x)
150
- {
151
- table_.assign(x.table_, boost::unordered::detail::true_type());
152
- return *this;
153
- }
141
+ // Assign
154
142
 
155
- unordered_map& operator=(BOOST_RV_REF(unordered_map) x)
156
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
157
- boost::is_nothrow_move_assignable<H>::value&&
158
- boost::is_nothrow_move_assignable<P>::value)
159
- {
160
- table_.move_assign(x.table_, boost::unordered::detail::true_type());
161
- return *this;
162
- }
163
- #else
164
143
  unordered_map& operator=(unordered_map const& x)
165
144
  {
166
- table_.assign(x.table_, boost::unordered::detail::true_type());
145
+ table_.assign(x.table_, std::true_type());
167
146
  return *this;
168
147
  }
169
148
 
170
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
171
149
  unordered_map& operator=(unordered_map&& x)
172
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
173
- boost::is_nothrow_move_assignable<H>::value&&
174
- boost::is_nothrow_move_assignable<P>::value)
150
+ noexcept(value_allocator_traits::is_always_equal::value&&
151
+ std::is_nothrow_move_assignable<H>::value&&
152
+ std::is_nothrow_move_assignable<P>::value)
175
153
  {
176
- table_.move_assign(x.table_, boost::unordered::detail::true_type());
154
+ table_.move_assign(x.table_, std::true_type());
177
155
  return *this;
178
156
  }
179
- #endif
180
- #endif
181
157
 
182
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
183
158
  unordered_map& operator=(std::initializer_list<value_type>);
184
- #endif
185
159
 
186
- allocator_type get_allocator() const BOOST_NOEXCEPT
160
+ allocator_type get_allocator() const noexcept
187
161
  {
188
- return table_.node_alloc();
162
+ return allocator_type(table_.node_alloc());
189
163
  }
190
164
 
191
- // iterators
165
+ // // iterators
192
166
 
193
- iterator begin() BOOST_NOEXCEPT { return iterator(table_.begin()); }
167
+ iterator begin() noexcept { return table_.begin(); }
194
168
 
195
- const_iterator begin() const BOOST_NOEXCEPT
169
+ const_iterator begin() const noexcept
196
170
  {
197
171
  return const_iterator(table_.begin());
198
172
  }
199
173
 
200
- iterator end() BOOST_NOEXCEPT { return iterator(); }
174
+ iterator end() noexcept { return iterator(); }
201
175
 
202
- const_iterator end() const BOOST_NOEXCEPT { return const_iterator(); }
176
+ const_iterator end() const noexcept { return const_iterator(); }
203
177
 
204
- const_iterator cbegin() const BOOST_NOEXCEPT
178
+ const_iterator cbegin() const noexcept
205
179
  {
206
180
  return const_iterator(table_.begin());
207
181
  }
208
182
 
209
- const_iterator cend() const BOOST_NOEXCEPT { return const_iterator(); }
183
+ const_iterator cend() const noexcept { return const_iterator(); }
210
184
 
211
185
  // size and capacity
212
186
 
213
- bool empty() const BOOST_NOEXCEPT { return table_.size_ == 0; }
214
-
215
- size_type size() const BOOST_NOEXCEPT { return table_.size_; }
216
-
217
- size_type max_size() const BOOST_NOEXCEPT;
218
-
219
- // emplace
220
-
221
- #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
222
-
223
- template <class... Args>
224
- std::pair<iterator, bool> emplace(BOOST_FWD_REF(Args)... args)
187
+ BOOST_ATTRIBUTE_NODISCARD bool empty() const noexcept
225
188
  {
226
- return table_.emplace_unique(
227
- table::extractor::extract(boost::forward<Args>(args)...),
228
- boost::forward<Args>(args)...);
189
+ return table_.size_ == 0;
229
190
  }
230
191
 
231
- #else
232
-
233
- #if !BOOST_UNORDERED_SUN_WORKAROUNDS1
192
+ size_type size() const noexcept { return table_.size_; }
234
193
 
235
- // 0 argument emplace requires special treatment in case
236
- // the container is instantiated with a value type that
237
- // doesn't have a default constructor.
238
-
239
- std::pair<iterator, bool> emplace(
240
- boost::unordered::detail::empty_emplace =
241
- boost::unordered::detail::empty_emplace(),
242
- value_type v = value_type())
243
- {
244
- return this->emplace(boost::move(v));
245
- }
246
-
247
- #endif
248
-
249
- template <typename A0>
250
- std::pair<iterator, bool> emplace(BOOST_FWD_REF(A0) a0)
251
- {
252
- return table_.emplace_unique(
253
- table::extractor::extract(boost::forward<A0>(a0)),
254
- boost::unordered::detail::create_emplace_args(
255
- boost::forward<A0>(a0)));
256
- }
194
+ size_type max_size() const noexcept;
257
195
 
258
- template <typename A0, typename A1>
259
- std::pair<iterator, bool> emplace(
260
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
261
- {
262
- return table_.emplace_unique(
263
- table::extractor::extract(
264
- boost::forward<A0>(a0), boost::forward<A1>(a1)),
265
- boost::unordered::detail::create_emplace_args(
266
- boost::forward<A0>(a0), boost::forward<A1>(a1)));
267
- }
196
+ // emplace
268
197
 
269
- template <typename A0, typename A1, typename A2>
270
- std::pair<iterator, bool> emplace(
271
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
198
+ template <class... Args> std::pair<iterator, bool> emplace(Args&&... args)
272
199
  {
273
200
  return table_.emplace_unique(
274
- table::extractor::extract(
275
- boost::forward<A0>(a0), boost::forward<A1>(a1)),
276
- boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
277
- boost::forward<A1>(a1), boost::forward<A2>(a2)));
201
+ table::extractor::extract(std::forward<Args>(args)...),
202
+ std::forward<Args>(args)...);
278
203
  }
279
204
 
280
- #endif
281
-
282
- #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
283
-
284
205
  template <class... Args>
285
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(Args)... args)
286
- {
287
- return table_.emplace_hint_unique(hint,
288
- table::extractor::extract(boost::forward<Args>(args)...),
289
- boost::forward<Args>(args)...);
290
- }
291
-
292
- #else
293
-
294
- #if !BOOST_UNORDERED_SUN_WORKAROUNDS1
295
-
296
- iterator emplace_hint(const_iterator hint,
297
- boost::unordered::detail::empty_emplace =
298
- boost::unordered::detail::empty_emplace(),
299
- value_type v = value_type())
300
- {
301
- return this->emplace_hint(hint, boost::move(v));
302
- }
303
-
304
- #endif
305
-
306
- template <typename A0>
307
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(A0) a0)
206
+ iterator emplace_hint(const_iterator hint, Args&&... args)
308
207
  {
309
208
  return table_.emplace_hint_unique(hint,
310
- table::extractor::extract(boost::forward<A0>(a0)),
311
- boost::unordered::detail::create_emplace_args(
312
- boost::forward<A0>(a0)));
209
+ table::extractor::extract(std::forward<Args>(args)...),
210
+ std::forward<Args>(args)...);
313
211
  }
314
212
 
315
- template <typename A0, typename A1>
316
- iterator emplace_hint(
317
- const_iterator hint, BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
318
- {
319
- return table_.emplace_hint_unique(hint,
320
- table::extractor::extract(
321
- boost::forward<A0>(a0), boost::forward<A1>(a1)),
322
- boost::unordered::detail::create_emplace_args(
323
- boost::forward<A0>(a0), boost::forward<A1>(a1)));
324
- }
325
-
326
- template <typename A0, typename A1, typename A2>
327
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(A0) a0,
328
- BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
329
- {
330
- return table_.emplace_hint_unique(hint,
331
- table::extractor::extract(
332
- boost::forward<A0>(a0), boost::forward<A1>(a1)),
333
- boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
334
- boost::forward<A1>(a1), boost::forward<A2>(a2)));
335
- }
336
-
337
- #endif
338
-
339
- #if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
340
-
341
- #define BOOST_UNORDERED_EMPLACE(z, n, _) \
342
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
343
- std::pair<iterator, bool> emplace( \
344
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
345
- { \
346
- return table_.emplace_unique( \
347
- table::extractor::extract( \
348
- boost::forward<A0>(a0), boost::forward<A1>(a1)), \
349
- boost::unordered::detail::create_emplace_args( \
350
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
351
- } \
352
- \
353
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
354
- iterator emplace_hint( \
355
- const_iterator hint, BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
356
- { \
357
- return table_.emplace_hint_unique(hint, \
358
- table::extractor::extract( \
359
- boost::forward<A0>(a0), boost::forward<A1>(a1)), \
360
- boost::unordered::detail::create_emplace_args( \
361
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
362
- }
363
-
364
- BOOST_UNORDERED_EMPLACE(1, 4, _)
365
- BOOST_UNORDERED_EMPLACE(1, 5, _)
366
- BOOST_UNORDERED_EMPLACE(1, 6, _)
367
- BOOST_UNORDERED_EMPLACE(1, 7, _)
368
- BOOST_UNORDERED_EMPLACE(1, 8, _)
369
- BOOST_UNORDERED_EMPLACE(1, 9, _)
370
- BOOST_PP_REPEAT_FROM_TO(10, BOOST_PP_INC(BOOST_UNORDERED_EMPLACE_LIMIT),
371
- BOOST_UNORDERED_EMPLACE, _)
372
-
373
- #undef BOOST_UNORDERED_EMPLACE
374
-
375
- #endif
376
-
377
213
  std::pair<iterator, bool> insert(value_type const& x)
378
214
  {
379
215
  return this->emplace(x);
380
216
  }
381
217
 
382
- std::pair<iterator, bool> insert(BOOST_RV_REF(value_type) x)
218
+ std::pair<iterator, bool> insert(value_type&& x)
383
219
  {
384
- return this->emplace(boost::move(x));
220
+ return this->emplace(std::move(x));
385
221
  }
386
222
 
387
223
  template <class P2>
388
- std::pair<iterator, bool> insert(BOOST_RV_REF(P2) obj,
389
- typename boost::enable_if_c<
390
- boost::is_constructible<value_type, BOOST_RV_REF(P2)>::value,
391
- void*>::type = 0)
224
+ typename boost::enable_if<std::is_constructible<value_type, P2&&>,
225
+ std::pair<iterator, bool> >::type
226
+ insert(P2&& obj)
392
227
  {
393
- return this->emplace(boost::forward<P2>(obj));
228
+ return this->emplace(std::forward<P2>(obj));
394
229
  }
395
230
 
396
231
  iterator insert(const_iterator hint, value_type const& x)
@@ -398,311 +233,153 @@ namespace boost {
398
233
  return this->emplace_hint(hint, x);
399
234
  }
400
235
 
401
- iterator insert(const_iterator hint, BOOST_RV_REF(value_type) x)
236
+ iterator insert(const_iterator hint, value_type&& x)
402
237
  {
403
- return this->emplace_hint(hint, boost::move(x));
238
+ return this->emplace_hint(hint, std::move(x));
404
239
  }
405
240
 
406
241
  template <class P2>
407
- iterator insert(const_iterator hint, BOOST_RV_REF(P2) obj,
408
- typename boost::enable_if_c<
409
- boost::is_constructible<value_type, BOOST_RV_REF(P2)>::value,
410
- void*>::type = 0)
242
+ typename boost::enable_if<std::is_constructible<value_type, P2&&>,
243
+ iterator>::type
244
+ insert(const_iterator hint, P2&& obj)
411
245
  {
412
- return this->emplace_hint(hint, boost::forward<P2>(obj));
246
+ return this->emplace_hint(hint, std::forward<P2>(obj));
413
247
  }
414
248
 
415
249
  template <class InputIt> void insert(InputIt, InputIt);
416
250
 
417
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
418
251
  void insert(std::initializer_list<value_type>);
419
- #endif
420
252
 
421
253
  // extract
422
254
 
423
255
  node_type extract(const_iterator position)
424
256
  {
425
257
  return node_type(
426
- table_.extract_by_iterator_unique(position), table_.node_alloc());
258
+ table_.extract_by_iterator_unique(position),
259
+ allocator_type(table_.node_alloc()));
427
260
  }
428
261
 
429
262
  node_type extract(const key_type& k)
430
263
  {
431
- return node_type(table_.extract_by_key(k), table_.node_alloc());
432
- }
433
-
434
- insert_return_type insert(BOOST_RV_REF(node_type) np)
435
- {
436
- insert_return_type result;
437
- table_.move_insert_node_type_unique(np, result);
438
- return boost::move(result);
264
+ return node_type(
265
+ table_.extract_by_key_impl(k),
266
+ allocator_type(table_.node_alloc()));
439
267
  }
440
268
 
441
- iterator insert(const_iterator hint, BOOST_RV_REF(node_type) np)
269
+ template <class Key>
270
+ typename boost::enable_if_c<
271
+ detail::transparent_non_iterable<Key, unordered_map>::value,
272
+ node_type>::type
273
+ extract(Key&& k)
442
274
  {
443
- return table_.move_insert_node_type_with_hint_unique(hint, np);
275
+ return node_type(
276
+ table_.extract_by_key_impl(std::forward<Key>(k)),
277
+ allocator_type(table_.node_alloc()));
444
278
  }
445
279
 
446
- #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \
447
- (BOOST_COMP_GNUC && BOOST_COMP_GNUC < BOOST_VERSION_NUMBER(4, 6, 0))
448
- private:
449
- // Note: Use r-value node_type to insert.
450
- insert_return_type insert(node_type&);
451
- iterator insert(const_iterator, node_type& np);
452
-
453
- public:
454
- #endif
455
-
456
- #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
457
-
458
- template <class... Args>
459
- std::pair<iterator, bool> try_emplace(
460
- key_type const& k, BOOST_FWD_REF(Args)... args)
280
+ insert_return_type insert(node_type&& np)
461
281
  {
462
- return table_.try_emplace_unique(k, boost::forward<Args>(args)...);
282
+ insert_return_type result;
283
+ table_.move_insert_node_type_unique((node_type&)np, result);
284
+ return result;
463
285
  }
464
286
 
465
- template <class... Args>
466
- std::pair<iterator, bool> try_emplace(
467
- BOOST_RV_REF(key_type) k, BOOST_FWD_REF(Args)... args)
287
+ iterator insert(const_iterator hint, node_type&& np)
468
288
  {
469
- return table_.try_emplace_unique(
470
- boost::move(k), boost::forward<Args>(args)...);
289
+ return table_.move_insert_node_type_with_hint_unique(hint, np);
471
290
  }
472
291
 
473
292
  template <class... Args>
474
- iterator try_emplace(
475
- const_iterator hint, key_type const& k, BOOST_FWD_REF(Args)... args)
293
+ std::pair<iterator, bool> try_emplace(key_type const& k, Args&&... args)
476
294
  {
477
- return table_.try_emplace_hint_unique(
478
- hint, k, boost::forward<Args>(args)...);
295
+ return table_.try_emplace_unique(k, std::forward<Args>(args)...);
479
296
  }
480
297
 
481
298
  template <class... Args>
482
- iterator try_emplace(const_iterator hint, BOOST_RV_REF(key_type) k,
483
- BOOST_FWD_REF(Args)... args)
484
- {
485
- return table_.try_emplace_hint_unique(
486
- hint, boost::move(k), boost::forward<Args>(args)...);
487
- }
488
-
489
- #else
490
-
491
- // In order to make this a template, this handles both:
492
- // try_emplace(key const&)
493
- // try_emplace(key&&)
494
-
495
- template <typename Key>
496
- std::pair<iterator, bool> try_emplace(BOOST_FWD_REF(Key) k)
497
- {
498
- return table_.try_emplace_unique(boost::forward<Key>(k));
499
- }
500
-
501
- // In order to make this a template, this handles both:
502
- // try_emplace(const_iterator hint, key const&)
503
- // try_emplace(const_iterator hint, key&&)
504
-
505
- template <typename Key>
506
- iterator try_emplace(const_iterator hint, BOOST_FWD_REF(Key) k)
507
- {
508
- return table_.try_emplace_hint_unique(hint, boost::forward<Key>(k));
509
- }
510
-
511
- // try_emplace(key const&, Args&&...)
512
-
513
- template <typename A0>
514
- std::pair<iterator, bool> try_emplace(
515
- key_type const& k, BOOST_FWD_REF(A0) a0)
299
+ std::pair<iterator, bool> try_emplace(key_type&& k, Args&&... args)
516
300
  {
517
301
  return table_.try_emplace_unique(
518
- k, boost::unordered::detail::create_emplace_args(
519
- boost::forward<A0>(a0)));
302
+ std::move(k), std::forward<Args>(args)...);
520
303
  }
521
304
 
522
- template <typename A0, typename A1>
523
- std::pair<iterator, bool> try_emplace(
524
- key_type const& k, BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
305
+ template <class Key, class... Args>
306
+ typename boost::enable_if_c<
307
+ detail::transparent_non_iterable<Key, unordered_map>::value,
308
+ std::pair<iterator, bool> >::type
309
+ try_emplace(Key&& k, Args&&... args)
525
310
  {
526
311
  return table_.try_emplace_unique(
527
- k, boost::unordered::detail::create_emplace_args(
528
- boost::forward<A0>(a0), boost::forward<A1>(a1)));
312
+ std::forward<Key>(k), std::forward<Args>(args)...);
529
313
  }
530
314
 
531
- template <typename A0, typename A1, typename A2>
532
- std::pair<iterator, bool> try_emplace(key_type const& k,
533
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
534
- {
535
- return table_.try_emplace_unique(k,
536
- boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
537
- boost::forward<A1>(a1), boost::forward<A2>(a2)));
538
- }
539
-
540
- // try_emplace(key&&, Args&&...)
541
-
542
- template <typename A0>
543
- std::pair<iterator, bool> try_emplace(
544
- BOOST_RV_REF(key_type) k, BOOST_FWD_REF(A0) a0)
545
- {
546
- return table_.try_emplace_unique(
547
- boost::move(k), boost::unordered::detail::create_emplace_args(
548
- boost::forward<A0>(a0)));
549
- }
550
-
551
- template <typename A0, typename A1>
552
- std::pair<iterator, bool> try_emplace(
553
- BOOST_RV_REF(key_type) k, BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
554
- {
555
- return table_.try_emplace_unique(
556
- boost::move(k), boost::unordered::detail::create_emplace_args(
557
- boost::forward<A0>(a0), boost::forward<A1>(a1)));
558
- }
559
-
560
- template <typename A0, typename A1, typename A2>
561
- std::pair<iterator, bool> try_emplace(BOOST_RV_REF(key_type) k,
562
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
563
- {
564
- return table_.try_emplace_unique(boost::move(k),
565
- boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
566
- boost::forward<A1>(a1), boost::forward<A2>(a2)));
567
- }
568
-
569
- // try_emplace(const_iterator hint, key const&, Args&&...)
570
-
571
- template <typename A0>
315
+ template <class... Args>
572
316
  iterator try_emplace(
573
- const_iterator hint, key_type const& k, BOOST_FWD_REF(A0) a0)
317
+ const_iterator hint, key_type const& k, Args&&... args)
574
318
  {
575
319
  return table_.try_emplace_hint_unique(
576
- hint, k, boost::unordered::detail::create_emplace_args(
577
- boost::forward<A0>(a0)));
320
+ hint, k, std::forward<Args>(args)...);
578
321
  }
579
322
 
580
- template <typename A0, typename A1>
581
- iterator try_emplace(const_iterator hint, key_type const& k,
582
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
323
+ template <class... Args>
324
+ iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args)
583
325
  {
584
326
  return table_.try_emplace_hint_unique(
585
- hint, k, boost::unordered::detail::create_emplace_args(
586
- boost::forward<A0>(a0), boost::forward<A1>(a1)));
327
+ hint, std::move(k), std::forward<Args>(args)...);
587
328
  }
588
329
 
589
- template <typename A0, typename A1, typename A2>
590
- iterator try_emplace(const_iterator hint, key_type const& k,
591
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
330
+ template <class Key, class... Args>
331
+ typename boost::enable_if_c<
332
+ detail::transparent_non_iterable<Key, unordered_map>::value,
333
+ iterator>::type
334
+ try_emplace(const_iterator hint, Key&& k, Args&&... args)
592
335
  {
593
- return table_.try_emplace_hint_unique(hint, k,
594
- boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
595
- boost::forward<A1>(a1), boost::forward<A2>(a2)));
336
+ return table_.try_emplace_hint_unique(
337
+ hint, std::forward<Key>(k), std::forward<Args>(args)...);
596
338
  }
597
339
 
598
- // try_emplace(const_iterator hint, key&&, Args&&...)
599
-
600
- template <typename A0>
601
- iterator try_emplace(
602
- const_iterator hint, BOOST_RV_REF(key_type) k, BOOST_FWD_REF(A0) a0)
340
+ template <class M>
341
+ std::pair<iterator, bool> insert_or_assign(key_type const& k, M&& obj)
603
342
  {
604
- return table_.try_emplace_hint_unique(
605
- hint, boost::move(k), boost::unordered::detail::create_emplace_args(
606
- boost::forward<A0>(a0)));
607
- }
608
-
609
- template <typename A0, typename A1>
610
- iterator try_emplace(const_iterator hint, BOOST_RV_REF(key_type) k,
611
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
612
- {
613
- return table_.try_emplace_hint_unique(hint, boost::move(k),
614
- boost::unordered::detail::create_emplace_args(
615
- boost::forward<A0>(a0), boost::forward<A1>(a1)));
616
- }
617
-
618
- template <typename A0, typename A1, typename A2>
619
- iterator try_emplace(const_iterator hint, BOOST_RV_REF(key_type) k,
620
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
621
- {
622
- return table_.try_emplace_hint_unique(hint, boost::move(k),
623
- boost::unordered::detail::create_emplace_args(boost::forward<A0>(a0),
624
- boost::forward<A1>(a1), boost::forward<A2>(a2)));
625
- }
626
-
627
- #define BOOST_UNORDERED_TRY_EMPLACE(z, n, _) \
628
- \
629
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
630
- std::pair<iterator, bool> try_emplace( \
631
- key_type const& k, BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
632
- { \
633
- return table_.try_emplace_unique( \
634
- k, boost::unordered::detail::create_emplace_args( \
635
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
636
- } \
637
- \
638
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
639
- std::pair<iterator, bool> try_emplace(BOOST_RV_REF(key_type) k, \
640
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
641
- { \
642
- return table_.try_emplace_unique(boost::move(k), \
643
- boost::unordered::detail::create_emplace_args( \
644
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
645
- } \
646
- \
647
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
648
- iterator try_emplace(const_iterator hint, key_type const& k, \
649
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
650
- { \
651
- return table_.try_emplace_hint_unique( \
652
- hint, k, boost::unordered::detail::create_emplace_args( \
653
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
654
- } \
655
- \
656
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
657
- iterator try_emplace(const_iterator hint, BOOST_RV_REF(key_type) k, \
658
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
659
- { \
660
- return table_.try_emplace_hint_unique(hint, boost::move(k), \
661
- boost::unordered::detail::create_emplace_args( \
662
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))); \
663
- }
664
-
665
- BOOST_UNORDERED_TRY_EMPLACE(1, 4, _)
666
- BOOST_UNORDERED_TRY_EMPLACE(1, 5, _)
667
- BOOST_UNORDERED_TRY_EMPLACE(1, 6, _)
668
- BOOST_UNORDERED_TRY_EMPLACE(1, 7, _)
669
- BOOST_UNORDERED_TRY_EMPLACE(1, 8, _)
670
- BOOST_UNORDERED_TRY_EMPLACE(1, 9, _)
671
- BOOST_PP_REPEAT_FROM_TO(10, BOOST_PP_INC(BOOST_UNORDERED_EMPLACE_LIMIT),
672
- BOOST_UNORDERED_TRY_EMPLACE, _)
673
-
674
- #undef BOOST_UNORDERED_TRY_EMPLACE
675
-
676
- #endif
343
+ return table_.insert_or_assign_unique(k, std::forward<M>(obj));
344
+ }
677
345
 
678
346
  template <class M>
679
- std::pair<iterator, bool> insert_or_assign(
680
- key_type const& k, BOOST_FWD_REF(M) obj)
347
+ std::pair<iterator, bool> insert_or_assign(key_type&& k, M&& obj)
681
348
  {
682
- return table_.insert_or_assign_unique(k, boost::forward<M>(obj));
349
+ return table_.insert_or_assign_unique(
350
+ std::move(k), std::forward<M>(obj));
683
351
  }
684
352
 
685
- template <class M>
686
- std::pair<iterator, bool> insert_or_assign(
687
- BOOST_RV_REF(key_type) k, BOOST_FWD_REF(M) obj)
353
+ template <class Key, class M>
354
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
355
+ std::pair<iterator, bool> >::type
356
+ insert_or_assign(Key&& k, M&& obj)
688
357
  {
689
358
  return table_.insert_or_assign_unique(
690
- boost::move(k), boost::forward<M>(obj));
359
+ std::forward<Key>(k), std::forward<M>(obj));
691
360
  }
692
361
 
693
362
  template <class M>
694
- iterator insert_or_assign(
695
- const_iterator, key_type const& k, BOOST_FWD_REF(M) obj)
363
+ iterator insert_or_assign(const_iterator, key_type const& k, M&& obj)
696
364
  {
697
- return table_.insert_or_assign_unique(k, boost::forward<M>(obj)).first;
365
+ return table_.insert_or_assign_unique(k, std::forward<M>(obj)).first;
698
366
  }
699
367
 
700
368
  template <class M>
701
- iterator insert_or_assign(
702
- const_iterator, BOOST_RV_REF(key_type) k, BOOST_FWD_REF(M) obj)
369
+ iterator insert_or_assign(const_iterator, key_type&& k, M&& obj)
370
+ {
371
+ return table_
372
+ .insert_or_assign_unique(std::move(k), std::forward<M>(obj))
373
+ .first;
374
+ }
375
+
376
+ template <class Key, class M>
377
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
378
+ iterator>::type
379
+ insert_or_assign(const_iterator, Key&& k, M&& obj)
703
380
  {
704
381
  return table_
705
- .insert_or_assign_unique(boost::move(k), boost::forward<M>(obj))
382
+ .insert_or_assign_unique(std::forward<Key>(k), std::forward<M>(obj))
706
383
  .first;
707
384
  }
708
385
 
@@ -710,32 +387,38 @@ namespace boost {
710
387
  iterator erase(const_iterator);
711
388
  size_type erase(const key_type&);
712
389
  iterator erase(const_iterator, const_iterator);
390
+
391
+ template <class Key>
392
+ typename boost::enable_if_c<
393
+ detail::transparent_non_iterable<Key, unordered_map>::value,
394
+ size_type>::type
395
+ erase(Key&& k)
396
+ {
397
+ return table_.erase_key_unique_impl(std::forward<Key>(k));
398
+ }
399
+
713
400
  BOOST_UNORDERED_DEPRECATED("Use erase instead")
714
401
  void quick_erase(const_iterator it) { erase(it); }
715
402
  BOOST_UNORDERED_DEPRECATED("Use erase instead")
716
403
  void erase_return_void(const_iterator it) { erase(it); }
717
404
 
718
405
  void swap(unordered_map&)
719
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
720
- boost::is_nothrow_swappable<H>::value&&
721
- boost::is_nothrow_swappable<P>::value);
722
- void clear() BOOST_NOEXCEPT { table_.clear_impl(); }
406
+ noexcept(value_allocator_traits::is_always_equal::value&&
407
+ boost::unordered::detail::is_nothrow_swappable<H>::value&&
408
+ boost::unordered::detail::is_nothrow_swappable<P>::value);
409
+ void clear() noexcept { table_.clear_impl(); }
723
410
 
724
411
  template <typename H2, typename P2>
725
412
  void merge(boost::unordered_map<K, T, H2, P2, A>& source);
726
413
 
727
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
728
414
  template <typename H2, typename P2>
729
415
  void merge(boost::unordered_map<K, T, H2, P2, A>&& source);
730
- #endif
731
416
 
732
417
  template <typename H2, typename P2>
733
418
  void merge(boost::unordered_multimap<K, T, H2, P2, A>& source);
734
419
 
735
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
736
420
  template <typename H2, typename P2>
737
421
  void merge(boost::unordered_multimap<K, T, H2, P2, A>&& source);
738
- #endif
739
422
 
740
423
  // observers
741
424
 
@@ -747,6 +430,22 @@ namespace boost {
747
430
  iterator find(const key_type&);
748
431
  const_iterator find(const key_type&) const;
749
432
 
433
+ template <class Key>
434
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
435
+ iterator>::type
436
+ find(const Key& key)
437
+ {
438
+ return table_.find(key);
439
+ }
440
+
441
+ template <class Key>
442
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
443
+ const_iterator>::type
444
+ find(const Key& key) const
445
+ {
446
+ return const_iterator(table_.find(key));
447
+ }
448
+
750
449
  template <class CompatibleKey, class CompatibleHash,
751
450
  class CompatiblePredicate>
752
451
  iterator find(CompatibleKey const&, CompatibleHash const&,
@@ -757,25 +456,87 @@ namespace boost {
757
456
  const_iterator find(CompatibleKey const&, CompatibleHash const&,
758
457
  CompatiblePredicate const&) const;
759
458
 
459
+ bool contains(const key_type& k) const
460
+ {
461
+ return table_.find(k) != this->end();
462
+ }
463
+
464
+ template <class Key>
465
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
466
+ bool>::type
467
+ contains(const Key& k) const
468
+ {
469
+ return table_.find(k) != this->end();
470
+ }
471
+
760
472
  size_type count(const key_type&) const;
761
473
 
474
+ template <class Key>
475
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
476
+ size_type>::type
477
+ count(const Key& k) const
478
+ {
479
+ return (table_.find(k) != this->end() ? 1 : 0);
480
+ }
481
+
762
482
  std::pair<iterator, iterator> equal_range(const key_type&);
763
483
  std::pair<const_iterator, const_iterator> equal_range(
764
484
  const key_type&) const;
765
485
 
486
+ template <class Key>
487
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
488
+ std::pair<iterator, iterator> >::type
489
+ equal_range(const Key& key)
490
+ {
491
+ iterator first = table_.find(key);
492
+ iterator last = first;
493
+ if (last != this->end()) {
494
+ ++last;
495
+ }
496
+
497
+ return std::make_pair(first, last);
498
+ }
499
+
500
+ template <class Key>
501
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
502
+ std::pair<const_iterator, const_iterator> >::type
503
+ equal_range(const Key& key) const
504
+ {
505
+ iterator first = table_.find(key);
506
+ iterator last = first;
507
+ if (last != this->end()) {
508
+ ++last;
509
+ }
510
+
511
+ return std::make_pair(first, last);
512
+ }
513
+
766
514
  mapped_type& operator[](const key_type&);
767
- mapped_type& operator[](BOOST_RV_REF(key_type));
515
+ mapped_type& operator[](key_type&&);
516
+
517
+ template <class Key>
518
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
519
+ mapped_type&>::type
520
+ operator[](Key&& k);
521
+
768
522
  mapped_type& at(const key_type&);
769
523
  mapped_type const& at(const key_type&) const;
770
524
 
525
+ template <class Key>
526
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
527
+ mapped_type&>::type
528
+ at(Key&& k);
529
+
530
+ template <class Key>
531
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
532
+ mapped_type const&>::type
533
+ at(Key&& k) const;
534
+
771
535
  // bucket interface
772
536
 
773
- size_type bucket_count() const BOOST_NOEXCEPT
774
- {
775
- return table_.bucket_count_;
776
- }
537
+ size_type bucket_count() const noexcept { return table_.bucket_count(); }
777
538
 
778
- size_type max_bucket_count() const BOOST_NOEXCEPT
539
+ size_type max_bucket_count() const noexcept
779
540
  {
780
541
  return table_.max_bucket_count();
781
542
  }
@@ -787,18 +548,22 @@ namespace boost {
787
548
  return table_.hash_to_bucket(table_.hash(k));
788
549
  }
789
550
 
790
- local_iterator begin(size_type n)
551
+ template <class Key>
552
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
553
+ size_type>::type
554
+ bucket(Key&& k) const
791
555
  {
792
- return local_iterator(table_.begin(n), n, table_.bucket_count_);
556
+ return table_.hash_to_bucket(table_.hash(std::forward<Key>(k)));
793
557
  }
794
558
 
559
+ local_iterator begin(size_type n) { return table_.begin(n); }
560
+
795
561
  const_local_iterator begin(size_type n) const
796
562
  {
797
- return const_local_iterator(table_.begin(n), n, table_.bucket_count_);
563
+ return const_local_iterator(table_.begin(n));
798
564
  }
799
565
 
800
566
  local_iterator end(size_type) { return local_iterator(); }
801
-
802
567
  const_local_iterator end(size_type) const
803
568
  {
804
569
  return const_local_iterator();
@@ -806,7 +571,7 @@ namespace boost {
806
571
 
807
572
  const_local_iterator cbegin(size_type n) const
808
573
  {
809
- return const_local_iterator(table_.begin(n), n, table_.bucket_count_);
574
+ return const_local_iterator(table_.begin(n));
810
575
  }
811
576
 
812
577
  const_local_iterator cend(size_type) const
@@ -816,13 +581,13 @@ namespace boost {
816
581
 
817
582
  // hash policy
818
583
 
819
- float load_factor() const BOOST_NOEXCEPT;
820
- float max_load_factor() const BOOST_NOEXCEPT { return table_.mlf_; }
821
- void max_load_factor(float) BOOST_NOEXCEPT;
584
+ float load_factor() const noexcept;
585
+ float max_load_factor() const noexcept { return table_.mlf_; }
586
+ void max_load_factor(float) noexcept;
822
587
  void rehash(size_type);
823
588
  void reserve(size_type);
824
589
 
825
- #if !BOOST_WORKAROUND(__BORLANDC__, < 0x0582)
590
+ #if !BOOST_WORKAROUND(BOOST_BORLANDC, < 0x0582)
826
591
  friend bool operator==
827
592
  <K, T, H, P, A>(unordered_map const&, unordered_map const&);
828
593
  friend bool operator!=
@@ -830,87 +595,101 @@ namespace boost {
830
595
  #endif
831
596
  }; // class template unordered_map
832
597
 
833
- #if BOOST_UNORDERED_TEMPLATE_DEDUCTION_GUIDES
834
-
835
- namespace detail {
836
- template <typename T>
837
- using iter_key_t =
838
- typename std::iterator_traits<T>::value_type::first_type;
839
- template <typename T>
840
- using iter_val_t =
841
- typename std::iterator_traits<T>::value_type::second_type;
842
- template <typename T>
843
- using iter_to_alloc_t =
844
- typename std::pair<iter_key_t<T> const, iter_val_t<T> >;
598
+ template <class Archive, class K, class T, class H, class P, class A>
599
+ void serialize(
600
+ Archive& ar, unordered_map<K, T, H, P, A>& m, unsigned int version)
601
+ {
602
+ detail::serialize_fca_container(ar, m, version);
845
603
  }
846
604
 
605
+ #if BOOST_UNORDERED_TEMPLATE_DEDUCTION_GUIDES
606
+
847
607
  template <class InputIterator,
848
608
  class Hash =
849
609
  boost::hash<boost::unordered::detail::iter_key_t<InputIterator> >,
850
610
  class Pred =
851
611
  std::equal_to<boost::unordered::detail::iter_key_t<InputIterator> >,
852
612
  class Allocator = std::allocator<
853
- boost::unordered::detail::iter_to_alloc_t<InputIterator> > >
613
+ boost::unordered::detail::iter_to_alloc_t<InputIterator> >,
614
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
615
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
616
+ class = std::enable_if_t<detail::is_pred_v<Pred> >,
617
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
854
618
  unordered_map(InputIterator, InputIterator,
855
619
  std::size_t = boost::unordered::detail::default_bucket_count,
856
620
  Hash = Hash(), Pred = Pred(), Allocator = Allocator())
857
- ->unordered_map<boost::unordered::detail::iter_key_t<InputIterator>,
621
+ -> unordered_map<boost::unordered::detail::iter_key_t<InputIterator>,
858
622
  boost::unordered::detail::iter_val_t<InputIterator>, Hash, Pred,
859
623
  Allocator>;
860
624
 
861
- template <class Key, class T, class Hash = boost::hash<Key>,
862
- class Pred = std::equal_to<Key>,
863
- class Allocator = std::allocator<std::pair<const Key, T> > >
864
- unordered_map(std::initializer_list<std::pair<const Key, T> >,
625
+ template <class Key, class T,
626
+ class Hash = boost::hash<std::remove_const_t<Key> >,
627
+ class Pred = std::equal_to<std::remove_const_t<Key> >,
628
+ class Allocator = std::allocator<std::pair<const Key, T> >,
629
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
630
+ class = std::enable_if_t<detail::is_pred_v<Pred> >,
631
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
632
+ unordered_map(std::initializer_list<std::pair<Key, T> >,
865
633
  std::size_t = boost::unordered::detail::default_bucket_count,
866
634
  Hash = Hash(), Pred = Pred(), Allocator = Allocator())
867
- ->unordered_map<Key, T, Hash, Pred, Allocator>;
635
+ -> unordered_map<std::remove_const_t<Key>, T, Hash, Pred, Allocator>;
868
636
 
869
- template <class InputIterator, class Allocator>
637
+ template <class InputIterator, class Allocator,
638
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
639
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
870
640
  unordered_map(InputIterator, InputIterator, std::size_t, Allocator)
871
- ->unordered_map<boost::unordered::detail::iter_key_t<InputIterator>,
641
+ -> unordered_map<boost::unordered::detail::iter_key_t<InputIterator>,
872
642
  boost::unordered::detail::iter_val_t<InputIterator>,
873
643
  boost::hash<boost::unordered::detail::iter_key_t<InputIterator> >,
874
644
  std::equal_to<boost::unordered::detail::iter_key_t<InputIterator> >,
875
645
  Allocator>;
876
646
 
877
- template <class InputIterator, class Allocator>
647
+ template <class InputIterator, class Allocator,
648
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
649
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
878
650
  unordered_map(InputIterator, InputIterator, Allocator)
879
- ->unordered_map<boost::unordered::detail::iter_key_t<InputIterator>,
651
+ -> unordered_map<boost::unordered::detail::iter_key_t<InputIterator>,
880
652
  boost::unordered::detail::iter_val_t<InputIterator>,
881
653
  boost::hash<boost::unordered::detail::iter_key_t<InputIterator> >,
882
654
  std::equal_to<boost::unordered::detail::iter_key_t<InputIterator> >,
883
655
  Allocator>;
884
656
 
885
- template <class InputIterator, class Hash, class Allocator>
657
+ template <class InputIterator, class Hash, class Allocator,
658
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
659
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
660
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
886
661
  unordered_map(InputIterator, InputIterator, std::size_t, Hash, Allocator)
887
- ->unordered_map<boost::unordered::detail::iter_key_t<InputIterator>,
662
+ -> unordered_map<boost::unordered::detail::iter_key_t<InputIterator>,
888
663
  boost::unordered::detail::iter_val_t<InputIterator>, Hash,
889
664
  std::equal_to<boost::unordered::detail::iter_key_t<InputIterator> >,
890
665
  Allocator>;
891
666
 
892
- template <class Key, class T, typename Allocator>
893
- unordered_map(
894
- std::initializer_list<std::pair<const Key, T> >, std::size_t, Allocator)
895
- ->unordered_map<Key, T, boost::hash<Key>, std::equal_to<Key>, Allocator>;
896
-
897
- template <class Key, class T, typename Allocator>
898
- unordered_map(std::initializer_list<std::pair<const Key, T> >, Allocator)
899
- ->unordered_map<Key, T, boost::hash<Key>, std::equal_to<Key>, Allocator>;
900
-
901
- template <class Key, class T, class Hash, class Allocator>
902
- unordered_map(std::initializer_list<std::pair<const Key, T> >, std::size_t,
903
- Hash, Allocator)
904
- ->unordered_map<Key, T, Hash, std::equal_to<Key>, Allocator>;
667
+ template <class Key, class T, class Allocator,
668
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
669
+ unordered_map(std::initializer_list<std::pair<Key, T> >, std::size_t,
670
+ Allocator) -> unordered_map<std::remove_const_t<Key>, T,
671
+ boost::hash<std::remove_const_t<Key> >,
672
+ std::equal_to<std::remove_const_t<Key> >, Allocator>;
673
+
674
+ template <class Key, class T, class Allocator,
675
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
676
+ unordered_map(std::initializer_list<std::pair<Key, T> >, Allocator)
677
+ -> unordered_map<std::remove_const_t<Key>, T,
678
+ boost::hash<std::remove_const_t<Key> >,
679
+ std::equal_to<std::remove_const_t<Key> >, Allocator>;
680
+
681
+ template <class Key, class T, class Hash, class Allocator,
682
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
683
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
684
+ unordered_map(std::initializer_list<std::pair<Key, T> >, std::size_t, Hash,
685
+ Allocator) -> unordered_map<std::remove_const_t<Key>, T, Hash,
686
+ std::equal_to<std::remove_const_t<Key> >, Allocator>;
905
687
 
906
688
  #endif
907
689
 
908
690
  template <class K, class T, class H, class P, class A>
909
691
  class unordered_multimap
910
692
  {
911
- #if defined(BOOST_UNORDERED_USE_MOVE)
912
- BOOST_COPYABLE_AND_MOVABLE(unordered_multimap)
913
- #endif
914
693
  template <typename, typename, typename, typename, typename>
915
694
  friend class unordered_map;
916
695
 
@@ -918,16 +697,16 @@ namespace boost {
918
697
  typedef K key_type;
919
698
  typedef T mapped_type;
920
699
  typedef std::pair<const K, T> value_type;
921
- typedef H hasher;
922
- typedef P key_equal;
923
- typedef A allocator_type;
700
+ typedef typename boost::unordered::detail::type_identity<H>::type hasher;
701
+ typedef
702
+ typename boost::unordered::detail::type_identity<P>::type key_equal;
703
+ typedef typename boost::unordered::detail::type_identity<A>::type
704
+ allocator_type;
924
705
 
925
706
  private:
926
707
  typedef boost::unordered::detail::map<A, K, T, H, P> types;
927
708
  typedef typename types::value_allocator_traits value_allocator_traits;
928
709
  typedef typename types::table table;
929
- typedef typename table::node_pointer node_pointer;
930
- typedef typename table::link_pointer link_pointer;
931
710
 
932
711
  public:
933
712
  typedef typename value_allocator_traits::pointer pointer;
@@ -965,35 +744,32 @@ namespace boost {
965
744
 
966
745
  unordered_multimap(unordered_multimap const&);
967
746
 
968
- #if defined(BOOST_UNORDERED_USE_MOVE) || \
969
- !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
970
- unordered_multimap(BOOST_RV_REF(unordered_multimap) other)
971
- BOOST_NOEXCEPT_IF(table::nothrow_move_constructible)
747
+ unordered_multimap(unordered_multimap&& other)
748
+ noexcept(table::nothrow_move_constructible)
972
749
  : table_(other.table_, boost::unordered::detail::move_tag())
973
750
  {
974
751
  // The move is done in table_
975
752
  }
976
- #endif
977
753
 
978
754
  explicit unordered_multimap(allocator_type const&);
979
755
 
980
756
  unordered_multimap(unordered_multimap const&, allocator_type const&);
981
757
 
982
- unordered_multimap(
983
- BOOST_RV_REF(unordered_multimap), allocator_type const&);
758
+ unordered_multimap(unordered_multimap&&, allocator_type const&);
984
759
 
985
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
986
760
  unordered_multimap(std::initializer_list<value_type>,
987
761
  size_type = boost::unordered::detail::default_bucket_count,
988
762
  const hasher& = hasher(), const key_equal& l = key_equal(),
989
763
  const allocator_type& = allocator_type());
990
- #endif
991
764
 
992
765
  explicit unordered_multimap(size_type, const allocator_type&);
993
766
 
994
767
  explicit unordered_multimap(
995
768
  size_type, const hasher&, const allocator_type&);
996
769
 
770
+ template <class InputIterator>
771
+ unordered_multimap(InputIterator, InputIterator, const allocator_type&);
772
+
997
773
  template <class InputIt>
998
774
  unordered_multimap(InputIt, InputIt, size_type, const allocator_type&);
999
775
 
@@ -1001,260 +777,101 @@ namespace boost {
1001
777
  unordered_multimap(
1002
778
  InputIt, InputIt, size_type, const hasher&, const allocator_type&);
1003
779
 
1004
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
780
+ unordered_multimap(
781
+ std::initializer_list<value_type>, const allocator_type&);
782
+
1005
783
  unordered_multimap(
1006
784
  std::initializer_list<value_type>, size_type, const allocator_type&);
1007
785
 
1008
786
  unordered_multimap(std::initializer_list<value_type>, size_type,
1009
787
  const hasher&, const allocator_type&);
1010
- #endif
1011
788
 
1012
789
  // Destructor
1013
790
 
1014
- ~unordered_multimap() BOOST_NOEXCEPT;
1015
-
1016
- // Assign
791
+ ~unordered_multimap() noexcept;
1017
792
 
1018
- #if defined(BOOST_UNORDERED_USE_MOVE)
1019
- unordered_multimap& operator=(BOOST_COPY_ASSIGN_REF(unordered_multimap) x)
1020
- {
1021
- table_.assign(x.table_, boost::unordered::detail::false_type());
1022
- return *this;
1023
- }
793
+ // Assign
1024
794
 
1025
- unordered_multimap& operator=(BOOST_RV_REF(unordered_multimap) x)
1026
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
1027
- boost::is_nothrow_move_assignable<H>::value&&
1028
- boost::is_nothrow_move_assignable<P>::value)
1029
- {
1030
- table_.move_assign(x.table_, boost::unordered::detail::false_type());
1031
- return *this;
1032
- }
1033
- #else
1034
795
  unordered_multimap& operator=(unordered_multimap const& x)
1035
796
  {
1036
- table_.assign(x.table_, boost::unordered::detail::false_type());
797
+ table_.assign(x.table_, std::false_type());
1037
798
  return *this;
1038
799
  }
1039
800
 
1040
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
1041
801
  unordered_multimap& operator=(unordered_multimap&& x)
1042
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
1043
- boost::is_nothrow_move_assignable<H>::value&&
1044
- boost::is_nothrow_move_assignable<P>::value)
802
+ noexcept(value_allocator_traits::is_always_equal::value&&
803
+ std::is_nothrow_move_assignable<H>::value&&
804
+ std::is_nothrow_move_assignable<P>::value)
1045
805
  {
1046
- table_.move_assign(x.table_, boost::unordered::detail::false_type());
806
+ table_.move_assign(x.table_, std::false_type());
1047
807
  return *this;
1048
808
  }
1049
- #endif
1050
- #endif
1051
809
 
1052
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1053
810
  unordered_multimap& operator=(std::initializer_list<value_type>);
1054
- #endif
1055
811
 
1056
- allocator_type get_allocator() const BOOST_NOEXCEPT
812
+ allocator_type get_allocator() const noexcept
1057
813
  {
1058
- return table_.node_alloc();
814
+ return allocator_type(table_.node_alloc());
1059
815
  }
1060
816
 
1061
817
  // iterators
1062
818
 
1063
- iterator begin() BOOST_NOEXCEPT { return iterator(table_.begin()); }
819
+ iterator begin() noexcept { return iterator(table_.begin()); }
1064
820
 
1065
- const_iterator begin() const BOOST_NOEXCEPT
821
+ const_iterator begin() const noexcept
1066
822
  {
1067
823
  return const_iterator(table_.begin());
1068
824
  }
1069
825
 
1070
- iterator end() BOOST_NOEXCEPT { return iterator(); }
826
+ iterator end() noexcept { return iterator(); }
1071
827
 
1072
- const_iterator end() const BOOST_NOEXCEPT { return const_iterator(); }
828
+ const_iterator end() const noexcept { return const_iterator(); }
1073
829
 
1074
- const_iterator cbegin() const BOOST_NOEXCEPT
830
+ const_iterator cbegin() const noexcept
1075
831
  {
1076
832
  return const_iterator(table_.begin());
1077
833
  }
1078
834
 
1079
- const_iterator cend() const BOOST_NOEXCEPT { return const_iterator(); }
835
+ const_iterator cend() const noexcept { return const_iterator(); }
1080
836
 
1081
837
  // size and capacity
1082
838
 
1083
- bool empty() const BOOST_NOEXCEPT { return table_.size_ == 0; }
1084
-
1085
- size_type size() const BOOST_NOEXCEPT { return table_.size_; }
1086
-
1087
- size_type max_size() const BOOST_NOEXCEPT;
1088
-
1089
- // emplace
1090
-
1091
- #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
1092
-
1093
- template <class... Args> iterator emplace(BOOST_FWD_REF(Args)... args)
839
+ BOOST_ATTRIBUTE_NODISCARD bool empty() const noexcept
1094
840
  {
1095
- return iterator(table_.emplace_equiv(
1096
- boost::unordered::detail::func::construct_node_from_args(
1097
- table_.node_alloc(), boost::forward<Args>(args)...)));
841
+ return table_.size_ == 0;
1098
842
  }
1099
843
 
1100
- #else
1101
-
1102
- #if !BOOST_UNORDERED_SUN_WORKAROUNDS1
844
+ size_type size() const noexcept { return table_.size_; }
1103
845
 
1104
- // 0 argument emplace requires special treatment in case
1105
- // the container is instantiated with a value type that
1106
- // doesn't have a default constructor.
1107
-
1108
- iterator emplace(boost::unordered::detail::empty_emplace =
1109
- boost::unordered::detail::empty_emplace(),
1110
- value_type v = value_type())
1111
- {
1112
- return this->emplace(boost::move(v));
1113
- }
1114
-
1115
- #endif
1116
-
1117
- template <typename A0> iterator emplace(BOOST_FWD_REF(A0) a0)
1118
- {
1119
- return iterator(table_.emplace_equiv(
1120
- boost::unordered::detail::func::construct_node_from_args(
1121
- table_.node_alloc(), boost::unordered::detail::create_emplace_args(
1122
- boost::forward<A0>(a0)))));
1123
- }
846
+ size_type max_size() const noexcept;
1124
847
 
1125
- template <typename A0, typename A1>
1126
- iterator emplace(BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
1127
- {
1128
- return iterator(table_.emplace_equiv(
1129
- boost::unordered::detail::func::construct_node_from_args(
1130
- table_.node_alloc(),
1131
- boost::unordered::detail::create_emplace_args(
1132
- boost::forward<A0>(a0), boost::forward<A1>(a1)))));
1133
- }
848
+ // emplace
1134
849
 
1135
- template <typename A0, typename A1, typename A2>
1136
- iterator emplace(
1137
- BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
850
+ template <class... Args> iterator emplace(Args&&... args)
1138
851
  {
1139
852
  return iterator(table_.emplace_equiv(
1140
853
  boost::unordered::detail::func::construct_node_from_args(
1141
- table_.node_alloc(),
1142
- boost::unordered::detail::create_emplace_args(
1143
- boost::forward<A0>(a0), boost::forward<A1>(a1),
1144
- boost::forward<A2>(a2)))));
854
+ table_.node_alloc(), std::forward<Args>(args)...)));
1145
855
  }
1146
856
 
1147
- #endif
1148
-
1149
- #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
1150
-
1151
857
  template <class... Args>
1152
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(Args)... args)
1153
- {
1154
- return iterator(table_.emplace_hint_equiv(
1155
- hint, boost::unordered::detail::func::construct_node_from_args(
1156
- table_.node_alloc(), boost::forward<Args>(args)...)));
1157
- }
1158
-
1159
- #else
1160
-
1161
- #if !BOOST_UNORDERED_SUN_WORKAROUNDS1
1162
-
1163
- iterator emplace_hint(const_iterator hint,
1164
- boost::unordered::detail::empty_emplace =
1165
- boost::unordered::detail::empty_emplace(),
1166
- value_type v = value_type())
1167
- {
1168
- return this->emplace_hint(hint, boost::move(v));
1169
- }
1170
-
1171
- #endif
1172
-
1173
- template <typename A0>
1174
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(A0) a0)
1175
- {
1176
- return iterator(table_.emplace_hint_equiv(hint,
1177
- boost::unordered::detail::func::construct_node_from_args(
1178
- table_.node_alloc(), boost::unordered::detail::create_emplace_args(
1179
- boost::forward<A0>(a0)))));
1180
- }
1181
-
1182
- template <typename A0, typename A1>
1183
- iterator emplace_hint(
1184
- const_iterator hint, BOOST_FWD_REF(A0) a0, BOOST_FWD_REF(A1) a1)
1185
- {
1186
- return iterator(table_.emplace_hint_equiv(
1187
- hint, boost::unordered::detail::func::construct_node_from_args(
1188
- table_.node_alloc(),
1189
- boost::unordered::detail::create_emplace_args(
1190
- boost::forward<A0>(a0), boost::forward<A1>(a1)))));
1191
- }
1192
-
1193
- template <typename A0, typename A1, typename A2>
1194
- iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(A0) a0,
1195
- BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2)
858
+ iterator emplace_hint(const_iterator hint, Args&&... args)
1196
859
  {
1197
860
  return iterator(table_.emplace_hint_equiv(
1198
861
  hint, boost::unordered::detail::func::construct_node_from_args(
1199
- table_.node_alloc(),
1200
- boost::unordered::detail::create_emplace_args(
1201
- boost::forward<A0>(a0), boost::forward<A1>(a1),
1202
- boost::forward<A2>(a2)))));
862
+ table_.node_alloc(), std::forward<Args>(args)...)));
1203
863
  }
1204
864
 
1205
- #endif
1206
-
1207
- #if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
1208
-
1209
- #define BOOST_UNORDERED_EMPLACE(z, n, _) \
1210
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
1211
- iterator emplace(BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
1212
- { \
1213
- return iterator(table_.emplace_equiv( \
1214
- boost::unordered::detail::func::construct_node_from_args( \
1215
- table_.node_alloc(), \
1216
- boost::unordered::detail::create_emplace_args( \
1217
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))))); \
1218
- } \
1219
- \
1220
- template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename A)> \
1221
- iterator emplace_hint( \
1222
- const_iterator hint, BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_FWD_PARAM, a)) \
1223
- { \
1224
- return iterator(table_.emplace_hint_equiv( \
1225
- hint, boost::unordered::detail::func::construct_node_from_args( \
1226
- table_.node_alloc(), \
1227
- boost::unordered::detail::create_emplace_args( \
1228
- BOOST_PP_ENUM_##z(n, BOOST_UNORDERED_CALL_FORWARD, a))))); \
1229
- }
1230
-
1231
- BOOST_UNORDERED_EMPLACE(1, 4, _)
1232
- BOOST_UNORDERED_EMPLACE(1, 5, _)
1233
- BOOST_UNORDERED_EMPLACE(1, 6, _)
1234
- BOOST_UNORDERED_EMPLACE(1, 7, _)
1235
- BOOST_UNORDERED_EMPLACE(1, 8, _)
1236
- BOOST_UNORDERED_EMPLACE(1, 9, _)
1237
- BOOST_PP_REPEAT_FROM_TO(10, BOOST_PP_INC(BOOST_UNORDERED_EMPLACE_LIMIT),
1238
- BOOST_UNORDERED_EMPLACE, _)
1239
-
1240
- #undef BOOST_UNORDERED_EMPLACE
1241
-
1242
- #endif
1243
-
1244
865
  iterator insert(value_type const& x) { return this->emplace(x); }
1245
866
 
1246
- iterator insert(BOOST_RV_REF(value_type) x)
1247
- {
1248
- return this->emplace(boost::move(x));
1249
- }
867
+ iterator insert(value_type&& x) { return this->emplace(std::move(x)); }
1250
868
 
1251
869
  template <class P2>
1252
- iterator insert(BOOST_RV_REF(P2) obj,
1253
- typename boost::enable_if_c<
1254
- boost::is_constructible<value_type, BOOST_RV_REF(P2)>::value,
1255
- void*>::type = 0)
870
+ typename boost::enable_if<std::is_constructible<value_type, P2&&>,
871
+ iterator>::type
872
+ insert(P2&& obj)
1256
873
  {
1257
- return this->emplace(boost::forward<P2>(obj));
874
+ return this->emplace(std::forward<P2>(obj));
1258
875
  }
1259
876
 
1260
877
  iterator insert(const_iterator hint, value_type const& x)
@@ -1262,25 +879,22 @@ namespace boost {
1262
879
  return this->emplace_hint(hint, x);
1263
880
  }
1264
881
 
1265
- iterator insert(const_iterator hint, BOOST_RV_REF(value_type) x)
882
+ iterator insert(const_iterator hint, value_type&& x)
1266
883
  {
1267
- return this->emplace_hint(hint, boost::move(x));
884
+ return this->emplace_hint(hint, std::move(x));
1268
885
  }
1269
886
 
1270
887
  template <class P2>
1271
- iterator insert(const_iterator hint, BOOST_RV_REF(P2) obj,
1272
- typename boost::enable_if_c<
1273
- boost::is_constructible<value_type, BOOST_RV_REF(P2)>::value,
1274
- void*>::type = 0)
888
+ typename boost::enable_if<std::is_constructible<value_type, P2&&>,
889
+ iterator>::type
890
+ insert(const_iterator hint, P2&& obj)
1275
891
  {
1276
- return this->emplace_hint(hint, boost::forward<P2>(obj));
892
+ return this->emplace_hint(hint, std::forward<P2>(obj));
1277
893
  }
1278
894
 
1279
895
  template <class InputIt> void insert(InputIt, InputIt);
1280
896
 
1281
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1282
897
  void insert(std::initializer_list<value_type>);
1283
- #endif
1284
898
 
1285
899
  // extract
1286
900
 
@@ -1292,59 +906,64 @@ namespace boost {
1292
906
 
1293
907
  node_type extract(const key_type& k)
1294
908
  {
1295
- return node_type(table_.extract_by_key(k), table_.node_alloc());
909
+ return node_type(table_.extract_by_key_impl(k), table_.node_alloc());
910
+ }
911
+
912
+ template <class Key>
913
+ typename boost::enable_if_c<
914
+ detail::transparent_non_iterable<Key, unordered_multimap>::value,
915
+ node_type>::type
916
+ extract(const Key& k)
917
+ {
918
+ return node_type(table_.extract_by_key_impl(k), table_.node_alloc());
1296
919
  }
1297
920
 
1298
- iterator insert(BOOST_RV_REF(node_type) np)
921
+ iterator insert(node_type&& np)
1299
922
  {
1300
923
  return table_.move_insert_node_type_equiv(np);
1301
924
  }
1302
925
 
1303
- iterator insert(const_iterator hint, BOOST_RV_REF(node_type) np)
926
+ iterator insert(const_iterator hint, node_type&& np)
1304
927
  {
1305
928
  return table_.move_insert_node_type_with_hint_equiv(hint, np);
1306
929
  }
1307
930
 
1308
- #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \
1309
- (BOOST_COMP_GNUC && BOOST_COMP_GNUC < BOOST_VERSION_NUMBER(4, 6, 0))
1310
- private:
1311
- // Note: Use r-value node_type to insert.
1312
- iterator insert(node_type&);
1313
- iterator insert(const_iterator, node_type& np);
1314
-
1315
- public:
1316
- #endif
1317
-
1318
931
  iterator erase(iterator);
1319
932
  iterator erase(const_iterator);
1320
933
  size_type erase(const key_type&);
1321
934
  iterator erase(const_iterator, const_iterator);
935
+
936
+ template <class Key>
937
+ typename boost::enable_if_c<
938
+ detail::transparent_non_iterable<Key, unordered_multimap>::value,
939
+ size_type>::type
940
+ erase(Key&& k)
941
+ {
942
+ return table_.erase_key_equiv_impl(std::forward<Key>(k));
943
+ }
944
+
1322
945
  BOOST_UNORDERED_DEPRECATED("Use erase instead")
1323
946
  void quick_erase(const_iterator it) { erase(it); }
1324
947
  BOOST_UNORDERED_DEPRECATED("Use erase instead")
1325
948
  void erase_return_void(const_iterator it) { erase(it); }
1326
949
 
1327
950
  void swap(unordered_multimap&)
1328
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
1329
- boost::is_nothrow_swappable<H>::value&&
1330
- boost::is_nothrow_swappable<P>::value);
1331
- void clear() BOOST_NOEXCEPT { table_.clear_impl(); }
951
+ noexcept(value_allocator_traits::is_always_equal::value&&
952
+ boost::unordered::detail::is_nothrow_swappable<H>::value&&
953
+ boost::unordered::detail::is_nothrow_swappable<P>::value);
954
+ void clear() noexcept { table_.clear_impl(); }
1332
955
 
1333
956
  template <typename H2, typename P2>
1334
957
  void merge(boost::unordered_multimap<K, T, H2, P2, A>& source);
1335
958
 
1336
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
1337
959
  template <typename H2, typename P2>
1338
960
  void merge(boost::unordered_multimap<K, T, H2, P2, A>&& source);
1339
- #endif
1340
961
 
1341
962
  template <typename H2, typename P2>
1342
963
  void merge(boost::unordered_map<K, T, H2, P2, A>& source);
1343
964
 
1344
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
1345
965
  template <typename H2, typename P2>
1346
966
  void merge(boost::unordered_map<K, T, H2, P2, A>&& source);
1347
- #endif
1348
967
 
1349
968
  // observers
1350
969
 
@@ -1356,6 +975,22 @@ namespace boost {
1356
975
  iterator find(const key_type&);
1357
976
  const_iterator find(const key_type&) const;
1358
977
 
978
+ template <class Key>
979
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
980
+ iterator>::type
981
+ find(const Key& key)
982
+ {
983
+ return table_.find(key);
984
+ }
985
+
986
+ template <class Key>
987
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
988
+ const_iterator>::type
989
+ find(const Key& key) const
990
+ {
991
+ return const_iterator(table_.find(key));
992
+ }
993
+
1359
994
  template <class CompatibleKey, class CompatibleHash,
1360
995
  class CompatiblePredicate>
1361
996
  iterator find(CompatibleKey const&, CompatibleHash const&,
@@ -1366,20 +1001,57 @@ namespace boost {
1366
1001
  const_iterator find(CompatibleKey const&, CompatibleHash const&,
1367
1002
  CompatiblePredicate const&) const;
1368
1003
 
1004
+ bool contains(key_type const& k) const
1005
+ {
1006
+ return table_.find(k) != this->end();
1007
+ }
1008
+
1009
+ template <class Key>
1010
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
1011
+ bool>::type
1012
+ contains(const Key& k) const
1013
+ {
1014
+ return table_.find(k) != this->end();
1015
+ }
1016
+
1369
1017
  size_type count(const key_type&) const;
1370
1018
 
1019
+ template <class Key>
1020
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
1021
+ size_type>::type
1022
+ count(const Key& k) const
1023
+ {
1024
+ return table_.group_count(k);
1025
+ }
1026
+
1371
1027
  std::pair<iterator, iterator> equal_range(const key_type&);
1372
1028
  std::pair<const_iterator, const_iterator> equal_range(
1373
1029
  const key_type&) const;
1374
1030
 
1375
- // bucket interface
1031
+ template <class Key>
1032
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
1033
+ std::pair<iterator, iterator> >::type
1034
+ equal_range(const Key& key)
1035
+ {
1036
+ iterator p = table_.find(key);
1037
+ return std::make_pair(p, table_.next_group(key, p));
1038
+ }
1376
1039
 
1377
- size_type bucket_count() const BOOST_NOEXCEPT
1040
+ template <class Key>
1041
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
1042
+ std::pair<const_iterator, const_iterator> >::type
1043
+ equal_range(const Key& key) const
1378
1044
  {
1379
- return table_.bucket_count_;
1045
+ iterator p = table_.find(key);
1046
+ return std::make_pair(
1047
+ const_iterator(p), const_iterator(table_.next_group(key, p)));
1380
1048
  }
1381
1049
 
1382
- size_type max_bucket_count() const BOOST_NOEXCEPT
1050
+ // bucket interface
1051
+
1052
+ size_type bucket_count() const noexcept { return table_.bucket_count(); }
1053
+
1054
+ size_type max_bucket_count() const noexcept
1383
1055
  {
1384
1056
  return table_.max_bucket_count();
1385
1057
  }
@@ -1391,14 +1063,22 @@ namespace boost {
1391
1063
  return table_.hash_to_bucket(table_.hash(k));
1392
1064
  }
1393
1065
 
1066
+ template <class Key>
1067
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
1068
+ size_type>::type
1069
+ bucket(Key&& k) const
1070
+ {
1071
+ return table_.hash_to_bucket(table_.hash(std::forward<Key>(k)));
1072
+ }
1073
+
1394
1074
  local_iterator begin(size_type n)
1395
1075
  {
1396
- return local_iterator(table_.begin(n), n, table_.bucket_count_);
1076
+ return local_iterator(table_.begin(n));
1397
1077
  }
1398
1078
 
1399
1079
  const_local_iterator begin(size_type n) const
1400
1080
  {
1401
- return const_local_iterator(table_.begin(n), n, table_.bucket_count_);
1081
+ return const_local_iterator(table_.begin(n));
1402
1082
  }
1403
1083
 
1404
1084
  local_iterator end(size_type) { return local_iterator(); }
@@ -1410,7 +1090,7 @@ namespace boost {
1410
1090
 
1411
1091
  const_local_iterator cbegin(size_type n) const
1412
1092
  {
1413
- return const_local_iterator(table_.begin(n), n, table_.bucket_count_);
1093
+ return const_local_iterator(table_.begin(n));
1414
1094
  }
1415
1095
 
1416
1096
  const_local_iterator cend(size_type) const
@@ -1420,13 +1100,13 @@ namespace boost {
1420
1100
 
1421
1101
  // hash policy
1422
1102
 
1423
- float load_factor() const BOOST_NOEXCEPT;
1424
- float max_load_factor() const BOOST_NOEXCEPT { return table_.mlf_; }
1425
- void max_load_factor(float) BOOST_NOEXCEPT;
1103
+ float load_factor() const noexcept;
1104
+ float max_load_factor() const noexcept { return table_.mlf_; }
1105
+ void max_load_factor(float) noexcept;
1426
1106
  void rehash(size_type);
1427
1107
  void reserve(size_type);
1428
1108
 
1429
- #if !BOOST_WORKAROUND(__BORLANDC__, < 0x0582)
1109
+ #if !BOOST_WORKAROUND(BOOST_BORLANDC, < 0x0582)
1430
1110
  friend bool operator==
1431
1111
  <K, T, H, P, A>(unordered_multimap const&, unordered_multimap const&);
1432
1112
  friend bool operator!=
@@ -1434,6 +1114,13 @@ namespace boost {
1434
1114
  #endif
1435
1115
  }; // class template unordered_multimap
1436
1116
 
1117
+ template <class Archive, class K, class T, class H, class P, class A>
1118
+ void serialize(
1119
+ Archive& ar, unordered_multimap<K, T, H, P, A>& m, unsigned int version)
1120
+ {
1121
+ detail::serialize_fca_container(ar, m, version);
1122
+ }
1123
+
1437
1124
  #if BOOST_UNORDERED_TEMPLATE_DEDUCTION_GUIDES
1438
1125
 
1439
1126
  template <class InputIterator,
@@ -1442,62 +1129,81 @@ namespace boost {
1442
1129
  class Pred =
1443
1130
  std::equal_to<boost::unordered::detail::iter_key_t<InputIterator> >,
1444
1131
  class Allocator = std::allocator<
1445
- boost::unordered::detail::iter_to_alloc_t<InputIterator> > >
1132
+ boost::unordered::detail::iter_to_alloc_t<InputIterator> >,
1133
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
1134
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
1135
+ class = std::enable_if_t<detail::is_pred_v<Pred> >,
1136
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1446
1137
  unordered_multimap(InputIterator, InputIterator,
1447
1138
  std::size_t = boost::unordered::detail::default_bucket_count,
1448
1139
  Hash = Hash(), Pred = Pred(), Allocator = Allocator())
1449
- ->unordered_multimap<boost::unordered::detail::iter_key_t<InputIterator>,
1140
+ -> unordered_multimap<boost::unordered::detail::iter_key_t<InputIterator>,
1450
1141
  boost::unordered::detail::iter_val_t<InputIterator>, Hash, Pred,
1451
1142
  Allocator>;
1452
1143
 
1453
- template <class Key, class T, class Hash = boost::hash<Key>,
1454
- class Pred = std::equal_to<Key>,
1455
- class Allocator = std::allocator<std::pair<const Key, T> > >
1456
- unordered_multimap(std::initializer_list<std::pair<const Key, T> >,
1144
+ template <class Key, class T,
1145
+ class Hash = boost::hash<std::remove_const_t<Key> >,
1146
+ class Pred = std::equal_to<std::remove_const_t<Key> >,
1147
+ class Allocator = std::allocator<std::pair<const Key, T> >,
1148
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
1149
+ class = std::enable_if_t<detail::is_pred_v<Pred> >,
1150
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1151
+ unordered_multimap(std::initializer_list<std::pair<Key, T> >,
1457
1152
  std::size_t = boost::unordered::detail::default_bucket_count,
1458
1153
  Hash = Hash(), Pred = Pred(), Allocator = Allocator())
1459
- ->unordered_multimap<Key, T, Hash, Pred, Allocator>;
1154
+ -> unordered_multimap<std::remove_const_t<Key>, T, Hash, Pred, Allocator>;
1460
1155
 
1461
- template <class InputIterator, class Allocator>
1156
+ template <class InputIterator, class Allocator,
1157
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
1158
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1462
1159
  unordered_multimap(InputIterator, InputIterator, std::size_t, Allocator)
1463
- ->unordered_multimap<boost::unordered::detail::iter_key_t<InputIterator>,
1160
+ -> unordered_multimap<boost::unordered::detail::iter_key_t<InputIterator>,
1464
1161
  boost::unordered::detail::iter_val_t<InputIterator>,
1465
1162
  boost::hash<boost::unordered::detail::iter_key_t<InputIterator> >,
1466
1163
  std::equal_to<boost::unordered::detail::iter_key_t<InputIterator> >,
1467
1164
  Allocator>;
1468
1165
 
1469
- template <class InputIterator, class Allocator>
1166
+ template <class InputIterator, class Allocator,
1167
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
1168
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1470
1169
  unordered_multimap(InputIterator, InputIterator, Allocator)
1471
- ->unordered_multimap<boost::unordered::detail::iter_key_t<InputIterator>,
1170
+ -> unordered_multimap<boost::unordered::detail::iter_key_t<InputIterator>,
1472
1171
  boost::unordered::detail::iter_val_t<InputIterator>,
1473
1172
  boost::hash<boost::unordered::detail::iter_key_t<InputIterator> >,
1474
1173
  std::equal_to<boost::unordered::detail::iter_key_t<InputIterator> >,
1475
1174
  Allocator>;
1476
1175
 
1477
- template <class InputIterator, class Hash, class Allocator>
1176
+ template <class InputIterator, class Hash, class Allocator,
1177
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
1178
+ class = std::enable_if_t<detail::is_input_iterator_v<InputIterator> >,
1179
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1478
1180
  unordered_multimap(
1479
1181
  InputIterator, InputIterator, std::size_t, Hash, Allocator)
1480
- ->unordered_multimap<boost::unordered::detail::iter_key_t<InputIterator>,
1182
+ -> unordered_multimap<boost::unordered::detail::iter_key_t<InputIterator>,
1481
1183
  boost::unordered::detail::iter_val_t<InputIterator>, Hash,
1482
1184
  std::equal_to<boost::unordered::detail::iter_key_t<InputIterator> >,
1483
1185
  Allocator>;
1484
1186
 
1485
- template <class Key, class T, typename Allocator>
1486
- unordered_multimap(
1487
- std::initializer_list<std::pair<const Key, T> >, std::size_t, Allocator)
1488
- ->unordered_multimap<Key, T, boost::hash<Key>, std::equal_to<Key>,
1489
- Allocator>;
1490
-
1491
- template <class Key, class T, typename Allocator>
1492
- unordered_multimap(
1493
- std::initializer_list<std::pair<const Key, T> >, Allocator)
1494
- ->unordered_multimap<Key, T, boost::hash<Key>, std::equal_to<Key>,
1495
- Allocator>;
1496
-
1497
- template <class Key, class T, class Hash, class Allocator>
1498
- unordered_multimap(std::initializer_list<std::pair<const Key, T> >,
1499
- std::size_t, Hash, Allocator)
1500
- ->unordered_multimap<Key, T, Hash, std::equal_to<Key>, Allocator>;
1187
+ template <class Key, class T, class Allocator,
1188
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1189
+ unordered_multimap(std::initializer_list<std::pair<Key, T> >, std::size_t,
1190
+ Allocator) -> unordered_multimap<std::remove_const_t<Key>, T,
1191
+ boost::hash<std::remove_const_t<Key> >,
1192
+ std::equal_to<std::remove_const_t<Key> >, Allocator>;
1193
+
1194
+ template <class Key, class T, class Allocator,
1195
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1196
+ unordered_multimap(std::initializer_list<std::pair<Key, T> >, Allocator)
1197
+ -> unordered_multimap<std::remove_const_t<Key>, T,
1198
+ boost::hash<std::remove_const_t<Key> >,
1199
+ std::equal_to<std::remove_const_t<Key> >, Allocator>;
1200
+
1201
+ template <class Key, class T, class Hash, class Allocator,
1202
+ class = std::enable_if_t<detail::is_hash_v<Hash> >,
1203
+ class = std::enable_if_t<detail::is_allocator_v<Allocator> > >
1204
+ unordered_multimap(std::initializer_list<std::pair<Key, T> >, std::size_t,
1205
+ Hash, Allocator) -> unordered_multimap<std::remove_const_t<Key>, T, Hash,
1206
+ std::equal_to<std::remove_const_t<Key> >, Allocator>;
1501
1207
 
1502
1208
  #endif
1503
1209
 
@@ -1505,8 +1211,6 @@ namespace boost {
1505
1211
 
1506
1212
  template <class K, class T, class H, class P, class A>
1507
1213
  unordered_map<K, T, H, P, A>::unordered_map()
1508
- : table_(boost::unordered::detail::default_bucket_count, hasher(),
1509
- key_equal(), allocator_type())
1510
1214
  {
1511
1215
  }
1512
1216
 
@@ -1533,9 +1237,8 @@ namespace boost {
1533
1237
  unordered_map::value_allocator_traits::
1534
1238
  select_on_container_copy_construction(other.get_allocator()))
1535
1239
  {
1536
- if (other.table_.size_) {
1537
- table_.copy_buckets(
1538
- other.table_, boost::unordered::detail::true_type());
1240
+ if (other.size()) {
1241
+ table_.copy_buckets(other.table_, std::true_type());
1539
1242
  }
1540
1243
  }
1541
1244
 
@@ -1552,21 +1255,18 @@ namespace boost {
1552
1255
  : table_(other.table_, a)
1553
1256
  {
1554
1257
  if (other.table_.size_) {
1555
- table_.copy_buckets(
1556
- other.table_, boost::unordered::detail::true_type());
1258
+ table_.copy_buckets(other.table_, std::true_type());
1557
1259
  }
1558
1260
  }
1559
1261
 
1560
1262
  template <class K, class T, class H, class P, class A>
1561
1263
  unordered_map<K, T, H, P, A>::unordered_map(
1562
- BOOST_RV_REF(unordered_map) other, allocator_type const& a)
1264
+ unordered_map&& other, allocator_type const& a)
1563
1265
  : table_(other.table_, a, boost::unordered::detail::move_tag())
1564
1266
  {
1565
1267
  table_.move_construct_buckets(other.table_);
1566
1268
  }
1567
1269
 
1568
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1569
-
1570
1270
  template <class K, class T, class H, class P, class A>
1571
1271
  unordered_map<K, T, H, P, A>::unordered_map(
1572
1272
  std::initializer_list<value_type> list, size_type n, const hasher& hf,
@@ -1578,8 +1278,6 @@ namespace boost {
1578
1278
  this->insert(list.begin(), list.end());
1579
1279
  }
1580
1280
 
1581
- #endif
1582
-
1583
1281
  template <class K, class T, class H, class P, class A>
1584
1282
  unordered_map<K, T, H, P, A>::unordered_map(
1585
1283
  size_type n, const allocator_type& a)
@@ -1594,6 +1292,17 @@ namespace boost {
1594
1292
  {
1595
1293
  }
1596
1294
 
1295
+ template <class K, class T, class H, class P, class A>
1296
+ template <class InputIterator>
1297
+ unordered_map<K, T, H, P, A>::unordered_map(
1298
+ InputIterator f, InputIterator l, const allocator_type& a)
1299
+ : table_(boost::unordered::detail::initial_size(
1300
+ f, l, detail::default_bucket_count),
1301
+ hasher(), key_equal(), a)
1302
+ {
1303
+ this->insert(f, l);
1304
+ }
1305
+
1597
1306
  template <class K, class T, class H, class P, class A>
1598
1307
  template <class InputIt>
1599
1308
  unordered_map<K, T, H, P, A>::unordered_map(
@@ -1614,7 +1323,15 @@ namespace boost {
1614
1323
  this->insert(f, l);
1615
1324
  }
1616
1325
 
1617
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1326
+ template <class K, class T, class H, class P, class A>
1327
+ unordered_map<K, T, H, P, A>::unordered_map(
1328
+ std::initializer_list<value_type> list, const allocator_type& a)
1329
+ : table_(boost::unordered::detail::initial_size(
1330
+ list.begin(), list.end(), detail::default_bucket_count),
1331
+ hasher(), key_equal(), a)
1332
+ {
1333
+ this->insert(list.begin(), list.end());
1334
+ }
1618
1335
 
1619
1336
  template <class K, class T, class H, class P, class A>
1620
1337
  unordered_map<K, T, H, P, A>::unordered_map(
@@ -1638,15 +1355,11 @@ namespace boost {
1638
1355
  this->insert(list.begin(), list.end());
1639
1356
  }
1640
1357
 
1641
- #endif
1642
-
1643
1358
  template <class K, class T, class H, class P, class A>
1644
- unordered_map<K, T, H, P, A>::~unordered_map() BOOST_NOEXCEPT
1359
+ unordered_map<K, T, H, P, A>::~unordered_map() noexcept
1645
1360
  {
1646
1361
  }
1647
1362
 
1648
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1649
-
1650
1363
  template <class K, class T, class H, class P, class A>
1651
1364
  unordered_map<K, T, H, P, A>& unordered_map<K, T, H, P, A>::operator=(
1652
1365
  std::initializer_list<value_type> list)
@@ -1656,12 +1369,10 @@ namespace boost {
1656
1369
  return *this;
1657
1370
  }
1658
1371
 
1659
- #endif
1660
-
1661
1372
  // size and capacity
1662
1373
 
1663
1374
  template <class K, class T, class H, class P, class A>
1664
- std::size_t unordered_map<K, T, H, P, A>::max_size() const BOOST_NOEXCEPT
1375
+ std::size_t unordered_map<K, T, H, P, A>::max_size() const noexcept
1665
1376
  {
1666
1377
  using namespace std;
1667
1378
 
@@ -1684,42 +1395,32 @@ namespace boost {
1684
1395
  }
1685
1396
  }
1686
1397
 
1687
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1688
1398
  template <class K, class T, class H, class P, class A>
1689
1399
  void unordered_map<K, T, H, P, A>::insert(
1690
1400
  std::initializer_list<value_type> list)
1691
1401
  {
1692
1402
  this->insert(list.begin(), list.end());
1693
1403
  }
1694
- #endif
1695
1404
 
1696
1405
  template <class K, class T, class H, class P, class A>
1697
1406
  typename unordered_map<K, T, H, P, A>::iterator
1698
1407
  unordered_map<K, T, H, P, A>::erase(iterator position)
1699
1408
  {
1700
- node_pointer node = table::get_node(position);
1701
- BOOST_ASSERT(node);
1702
- node_pointer next = table::next_node(node);
1703
- table_.erase_nodes_unique(node, next);
1704
- return iterator(next);
1409
+ return table_.erase_node(position);
1705
1410
  }
1706
1411
 
1707
1412
  template <class K, class T, class H, class P, class A>
1708
1413
  typename unordered_map<K, T, H, P, A>::iterator
1709
1414
  unordered_map<K, T, H, P, A>::erase(const_iterator position)
1710
1415
  {
1711
- node_pointer node = table::get_node(position);
1712
- BOOST_ASSERT(node);
1713
- node_pointer next = table::next_node(node);
1714
- table_.erase_nodes_unique(node, next);
1715
- return iterator(next);
1416
+ return table_.erase_node(position);
1716
1417
  }
1717
1418
 
1718
1419
  template <class K, class T, class H, class P, class A>
1719
1420
  typename unordered_map<K, T, H, P, A>::size_type
1720
1421
  unordered_map<K, T, H, P, A>::erase(const key_type& k)
1721
1422
  {
1722
- return table_.erase_key_unique(k);
1423
+ return table_.erase_key_unique_impl(k);
1723
1424
  }
1724
1425
 
1725
1426
  template <class K, class T, class H, class P, class A>
@@ -1727,18 +1428,14 @@ namespace boost {
1727
1428
  unordered_map<K, T, H, P, A>::erase(
1728
1429
  const_iterator first, const_iterator last)
1729
1430
  {
1730
- node_pointer last_node = table::get_node(last);
1731
- if (first == last)
1732
- return iterator(last_node);
1733
- table_.erase_nodes_unique(table::get_node(first), last_node);
1734
- return iterator(last_node);
1431
+ return table_.erase_nodes_range(first, last);
1735
1432
  }
1736
1433
 
1737
1434
  template <class K, class T, class H, class P, class A>
1738
1435
  void unordered_map<K, T, H, P, A>::swap(unordered_map& other)
1739
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
1740
- boost::is_nothrow_swappable<H>::value&&
1741
- boost::is_nothrow_swappable<P>::value)
1436
+ noexcept(value_allocator_traits::is_always_equal::value&&
1437
+ boost::unordered::detail::is_nothrow_swappable<H>::value&&
1438
+ boost::unordered::detail::is_nothrow_swappable<P>::value)
1742
1439
  {
1743
1440
  table_.swap(other.table_);
1744
1441
  }
@@ -1751,7 +1448,6 @@ namespace boost {
1751
1448
  table_.merge_unique(source.table_);
1752
1449
  }
1753
1450
 
1754
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
1755
1451
  template <class K, class T, class H, class P, class A>
1756
1452
  template <typename H2, typename P2>
1757
1453
  void unordered_map<K, T, H, P, A>::merge(
@@ -1759,7 +1455,6 @@ namespace boost {
1759
1455
  {
1760
1456
  table_.merge_unique(source.table_);
1761
1457
  }
1762
- #endif
1763
1458
 
1764
1459
  template <class K, class T, class H, class P, class A>
1765
1460
  template <typename H2, typename P2>
@@ -1769,7 +1464,6 @@ namespace boost {
1769
1464
  table_.merge_unique(source.table_);
1770
1465
  }
1771
1466
 
1772
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
1773
1467
  template <class K, class T, class H, class P, class A>
1774
1468
  template <typename H2, typename P2>
1775
1469
  void unordered_map<K, T, H, P, A>::merge(
@@ -1777,7 +1471,6 @@ namespace boost {
1777
1471
  {
1778
1472
  table_.merge_unique(source.table_);
1779
1473
  }
1780
- #endif
1781
1474
 
1782
1475
  // observers
1783
1476
 
@@ -1801,14 +1494,14 @@ namespace boost {
1801
1494
  typename unordered_map<K, T, H, P, A>::iterator
1802
1495
  unordered_map<K, T, H, P, A>::find(const key_type& k)
1803
1496
  {
1804
- return iterator(table_.find_node(k));
1497
+ return iterator(table_.find(k));
1805
1498
  }
1806
1499
 
1807
1500
  template <class K, class T, class H, class P, class A>
1808
1501
  typename unordered_map<K, T, H, P, A>::const_iterator
1809
1502
  unordered_map<K, T, H, P, A>::find(const key_type& k) const
1810
1503
  {
1811
- return const_iterator(table_.find_node(k));
1504
+ return const_iterator(table_.find(k));
1812
1505
  }
1813
1506
 
1814
1507
  template <class K, class T, class H, class P, class A>
@@ -1818,8 +1511,7 @@ namespace boost {
1818
1511
  unordered_map<K, T, H, P, A>::find(CompatibleKey const& k,
1819
1512
  CompatibleHash const& hash, CompatiblePredicate const& eq)
1820
1513
  {
1821
- return iterator(
1822
- table_.find_node_impl(table::policy::apply_hash(hash, k), k, eq));
1514
+ return table_.transparent_find(k, hash, eq);
1823
1515
  }
1824
1516
 
1825
1517
  template <class K, class T, class H, class P, class A>
@@ -1829,8 +1521,7 @@ namespace boost {
1829
1521
  unordered_map<K, T, H, P, A>::find(CompatibleKey const& k,
1830
1522
  CompatibleHash const& hash, CompatiblePredicate const& eq) const
1831
1523
  {
1832
- return const_iterator(
1833
- table_.find_node_impl(table::policy::apply_hash(hash, k), k, eq));
1524
+ return table_.transparent_find(k, hash, eq);
1834
1525
  }
1835
1526
 
1836
1527
  template <class K, class T, class H, class P, class A>
@@ -1845,8 +1536,12 @@ namespace boost {
1845
1536
  typename unordered_map<K, T, H, P, A>::iterator>
1846
1537
  unordered_map<K, T, H, P, A>::equal_range(const key_type& k)
1847
1538
  {
1848
- node_pointer n = table_.find_node(k);
1849
- return std::make_pair(iterator(n), iterator(n ? table::next_node(n) : n));
1539
+ iterator first = table_.find(k);
1540
+ iterator second = first;
1541
+ if (second != this->end()) {
1542
+ ++second;
1543
+ }
1544
+ return std::make_pair(first, second);
1850
1545
  }
1851
1546
 
1852
1547
  template <class K, class T, class H, class P, class A>
@@ -1854,51 +1549,103 @@ namespace boost {
1854
1549
  typename unordered_map<K, T, H, P, A>::const_iterator>
1855
1550
  unordered_map<K, T, H, P, A>::equal_range(const key_type& k) const
1856
1551
  {
1857
- node_pointer n = table_.find_node(k);
1858
- return std::make_pair(
1859
- const_iterator(n), const_iterator(n ? table::next_node(n) : n));
1552
+ iterator first = table_.find(k);
1553
+ iterator second = first;
1554
+ if (second != this->end()) {
1555
+ ++second;
1556
+ }
1557
+ return std::make_pair(const_iterator(first), const_iterator(second));
1860
1558
  }
1861
1559
 
1862
1560
  template <class K, class T, class H, class P, class A>
1863
1561
  typename unordered_map<K, T, H, P, A>::mapped_type&
1864
- unordered_map<K, T, H, P, A>::operator[](const key_type& k)
1562
+ unordered_map<K, T, H, P, A>::operator[](const key_type& k)
1865
1563
  {
1866
1564
  return table_.try_emplace_unique(k).first->second;
1867
1565
  }
1868
1566
 
1869
1567
  template <class K, class T, class H, class P, class A>
1870
1568
  typename unordered_map<K, T, H, P, A>::mapped_type&
1871
- unordered_map<K, T, H, P, A>::operator[](BOOST_RV_REF(key_type) k)
1569
+ unordered_map<K, T, H, P, A>::operator[](key_type&& k)
1570
+ {
1571
+ return table_.try_emplace_unique(std::move(k)).first->second;
1572
+ }
1573
+
1574
+ template <class K, class T, class H, class P, class A>
1575
+ template <class Key>
1576
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
1577
+ typename unordered_map<K, T, H, P, A>::mapped_type&>::type
1578
+ unordered_map<K, T, H, P, A>::operator[](Key&& k)
1872
1579
  {
1873
- return table_.try_emplace_unique(boost::move(k)).first->second;
1580
+ return table_.try_emplace_unique(std::forward<Key>(k)).first->second;
1874
1581
  }
1875
1582
 
1876
1583
  template <class K, class T, class H, class P, class A>
1877
1584
  typename unordered_map<K, T, H, P, A>::mapped_type&
1878
1585
  unordered_map<K, T, H, P, A>::at(const key_type& k)
1879
1586
  {
1587
+ typedef typename table::node_pointer node_pointer;
1588
+
1880
1589
  if (table_.size_) {
1881
- node_pointer n = table_.find_node(k);
1882
- if (n)
1883
- return n->value().second;
1590
+ node_pointer p = table_.find_node(k);
1591
+ if (p)
1592
+ return p->value().second;
1884
1593
  }
1885
1594
 
1886
- boost::throw_exception(
1887
- std::out_of_range("Unable to find key in unordered_map."));
1595
+ boost::unordered::detail::throw_out_of_range(
1596
+ "Unable to find key in unordered_map.");
1888
1597
  }
1889
1598
 
1890
1599
  template <class K, class T, class H, class P, class A>
1891
1600
  typename unordered_map<K, T, H, P, A>::mapped_type const&
1892
1601
  unordered_map<K, T, H, P, A>::at(const key_type& k) const
1893
1602
  {
1603
+ typedef typename table::node_pointer node_pointer;
1604
+
1605
+ if (table_.size_) {
1606
+ node_pointer p = table_.find_node(k);
1607
+ if (p)
1608
+ return p->value().second;
1609
+ }
1610
+
1611
+ boost::unordered::detail::throw_out_of_range(
1612
+ "Unable to find key in unordered_map.");
1613
+ }
1614
+
1615
+ template <class K, class T, class H, class P, class A>
1616
+ template <class Key>
1617
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
1618
+ typename unordered_map<K, T, H, P, A>::mapped_type&>::type
1619
+ unordered_map<K, T, H, P, A>::at(Key&& k)
1620
+ {
1621
+ typedef typename table::node_pointer node_pointer;
1622
+
1623
+ if (table_.size_) {
1624
+ node_pointer p = table_.find_node(std::forward<Key>(k));
1625
+ if (p)
1626
+ return p->value().second;
1627
+ }
1628
+
1629
+ boost::unordered::detail::throw_out_of_range(
1630
+ "Unable to find key in unordered_map.");
1631
+ }
1632
+
1633
+ template <class K, class T, class H, class P, class A>
1634
+ template <class Key>
1635
+ typename boost::enable_if_c<detail::are_transparent<Key, H, P>::value,
1636
+ typename unordered_map<K, T, H, P, A>::mapped_type const&>::type
1637
+ unordered_map<K, T, H, P, A>::at(Key&& k) const
1638
+ {
1639
+ typedef typename table::node_pointer node_pointer;
1640
+
1894
1641
  if (table_.size_) {
1895
- node_pointer n = table_.find_node(k);
1896
- if (n)
1897
- return n->value().second;
1642
+ node_pointer p = table_.find_node(std::forward<Key>(k));
1643
+ if (p)
1644
+ return p->value().second;
1898
1645
  }
1899
1646
 
1900
- boost::throw_exception(
1901
- std::out_of_range("Unable to find key in unordered_map."));
1647
+ boost::unordered::detail::throw_out_of_range(
1648
+ "Unable to find key in unordered_map.");
1902
1649
  }
1903
1650
 
1904
1651
  template <class K, class T, class H, class P, class A>
@@ -1911,15 +1658,19 @@ namespace boost {
1911
1658
  // hash policy
1912
1659
 
1913
1660
  template <class K, class T, class H, class P, class A>
1914
- float unordered_map<K, T, H, P, A>::load_factor() const BOOST_NOEXCEPT
1661
+ float unordered_map<K, T, H, P, A>::load_factor() const noexcept
1915
1662
  {
1916
- BOOST_ASSERT(table_.bucket_count_ != 0);
1663
+ if (table_.size_ == 0) {
1664
+ return 0.0f;
1665
+ }
1666
+
1667
+ BOOST_ASSERT(table_.bucket_count() != 0);
1917
1668
  return static_cast<float>(table_.size_) /
1918
- static_cast<float>(table_.bucket_count_);
1669
+ static_cast<float>(table_.bucket_count());
1919
1670
  }
1920
1671
 
1921
1672
  template <class K, class T, class H, class P, class A>
1922
- void unordered_map<K, T, H, P, A>::max_load_factor(float m) BOOST_NOEXCEPT
1673
+ void unordered_map<K, T, H, P, A>::max_load_factor(float m) noexcept
1923
1674
  {
1924
1675
  table_.max_load_factor(m);
1925
1676
  }
@@ -1933,15 +1684,14 @@ namespace boost {
1933
1684
  template <class K, class T, class H, class P, class A>
1934
1685
  void unordered_map<K, T, H, P, A>::reserve(size_type n)
1935
1686
  {
1936
- table_.rehash(static_cast<std::size_t>(
1937
- std::ceil(static_cast<double>(n) / table_.mlf_)));
1687
+ table_.reserve(n);
1938
1688
  }
1939
1689
 
1940
1690
  template <class K, class T, class H, class P, class A>
1941
1691
  inline bool operator==(unordered_map<K, T, H, P, A> const& m1,
1942
1692
  unordered_map<K, T, H, P, A> const& m2)
1943
1693
  {
1944
- #if BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x0613))
1694
+ #if BOOST_WORKAROUND(BOOST_CODEGEARC, BOOST_TESTED_AT(0x0613))
1945
1695
  struct dummy
1946
1696
  {
1947
1697
  unordered_map<K, T, H, P, A> x;
@@ -1954,7 +1704,7 @@ namespace boost {
1954
1704
  inline bool operator!=(unordered_map<K, T, H, P, A> const& m1,
1955
1705
  unordered_map<K, T, H, P, A> const& m2)
1956
1706
  {
1957
- #if BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x0613))
1707
+ #if BOOST_WORKAROUND(BOOST_CODEGEARC, BOOST_TESTED_AT(0x0613))
1958
1708
  struct dummy
1959
1709
  {
1960
1710
  unordered_map<K, T, H, P, A> x;
@@ -1964,11 +1714,10 @@ namespace boost {
1964
1714
  }
1965
1715
 
1966
1716
  template <class K, class T, class H, class P, class A>
1967
- inline void swap(
1968
- unordered_map<K, T, H, P, A>& m1, unordered_map<K, T, H, P, A>& m2)
1969
- BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(m1.swap(m2)))
1717
+ inline void swap(unordered_map<K, T, H, P, A>& m1,
1718
+ unordered_map<K, T, H, P, A>& m2) noexcept(noexcept(m1.swap(m2)))
1970
1719
  {
1971
- #if BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x0613))
1720
+ #if BOOST_WORKAROUND(BOOST_CODEGEARC, BOOST_TESTED_AT(0x0613))
1972
1721
  struct dummy
1973
1722
  {
1974
1723
  unordered_map<K, T, H, P, A> x;
@@ -1977,12 +1726,17 @@ namespace boost {
1977
1726
  m1.swap(m2);
1978
1727
  }
1979
1728
 
1729
+ template <class K, class T, class H, class P, class A, class Predicate>
1730
+ typename unordered_map<K, T, H, P, A>::size_type erase_if(
1731
+ unordered_map<K, T, H, P, A>& c, Predicate pred)
1732
+ {
1733
+ return detail::erase_if(c, pred);
1734
+ }
1735
+
1980
1736
  ////////////////////////////////////////////////////////////////////////////
1981
1737
 
1982
1738
  template <class K, class T, class H, class P, class A>
1983
1739
  unordered_multimap<K, T, H, P, A>::unordered_multimap()
1984
- : table_(boost::unordered::detail::default_bucket_count, hasher(),
1985
- key_equal(), allocator_type())
1986
1740
  {
1987
1741
  }
1988
1742
 
@@ -2011,8 +1765,7 @@ namespace boost {
2011
1765
  select_on_container_copy_construction(other.get_allocator()))
2012
1766
  {
2013
1767
  if (other.table_.size_) {
2014
- table_.copy_buckets(
2015
- other.table_, boost::unordered::detail::false_type());
1768
+ table_.copy_buckets(other.table_, std::false_type());
2016
1769
  }
2017
1770
  }
2018
1771
 
@@ -2030,21 +1783,18 @@ namespace boost {
2030
1783
  : table_(other.table_, a)
2031
1784
  {
2032
1785
  if (other.table_.size_) {
2033
- table_.copy_buckets(
2034
- other.table_, boost::unordered::detail::false_type());
1786
+ table_.copy_buckets(other.table_, std::false_type());
2035
1787
  }
2036
1788
  }
2037
1789
 
2038
1790
  template <class K, class T, class H, class P, class A>
2039
1791
  unordered_multimap<K, T, H, P, A>::unordered_multimap(
2040
- BOOST_RV_REF(unordered_multimap) other, allocator_type const& a)
1792
+ unordered_multimap&& other, allocator_type const& a)
2041
1793
  : table_(other.table_, a, boost::unordered::detail::move_tag())
2042
1794
  {
2043
1795
  table_.move_construct_buckets(other.table_);
2044
1796
  }
2045
1797
 
2046
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
2047
-
2048
1798
  template <class K, class T, class H, class P, class A>
2049
1799
  unordered_multimap<K, T, H, P, A>::unordered_multimap(
2050
1800
  std::initializer_list<value_type> list, size_type n, const hasher& hf,
@@ -2056,8 +1806,6 @@ namespace boost {
2056
1806
  this->insert(list.begin(), list.end());
2057
1807
  }
2058
1808
 
2059
- #endif
2060
-
2061
1809
  template <class K, class T, class H, class P, class A>
2062
1810
  unordered_multimap<K, T, H, P, A>::unordered_multimap(
2063
1811
  size_type n, const allocator_type& a)
@@ -2072,6 +1820,17 @@ namespace boost {
2072
1820
  {
2073
1821
  }
2074
1822
 
1823
+ template <class K, class T, class H, class P, class A>
1824
+ template <class InputIterator>
1825
+ unordered_multimap<K, T, H, P, A>::unordered_multimap(
1826
+ InputIterator f, InputIterator l, const allocator_type& a)
1827
+ : table_(boost::unordered::detail::initial_size(
1828
+ f, l, detail::default_bucket_count),
1829
+ hasher(), key_equal(), a)
1830
+ {
1831
+ this->insert(f, l);
1832
+ }
1833
+
2075
1834
  template <class K, class T, class H, class P, class A>
2076
1835
  template <class InputIt>
2077
1836
  unordered_multimap<K, T, H, P, A>::unordered_multimap(
@@ -2092,7 +1851,15 @@ namespace boost {
2092
1851
  this->insert(f, l);
2093
1852
  }
2094
1853
 
2095
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1854
+ template <class K, class T, class H, class P, class A>
1855
+ unordered_multimap<K, T, H, P, A>::unordered_multimap(
1856
+ std::initializer_list<value_type> list, const allocator_type& a)
1857
+ : table_(boost::unordered::detail::initial_size(
1858
+ list.begin(), list.end(), detail::default_bucket_count),
1859
+ hasher(), key_equal(), a)
1860
+ {
1861
+ this->insert(list.begin(), list.end());
1862
+ }
2096
1863
 
2097
1864
  template <class K, class T, class H, class P, class A>
2098
1865
  unordered_multimap<K, T, H, P, A>::unordered_multimap(
@@ -2116,31 +1883,25 @@ namespace boost {
2116
1883
  this->insert(list.begin(), list.end());
2117
1884
  }
2118
1885
 
2119
- #endif
2120
-
2121
1886
  template <class K, class T, class H, class P, class A>
2122
- unordered_multimap<K, T, H, P, A>::~unordered_multimap() BOOST_NOEXCEPT
1887
+ unordered_multimap<K, T, H, P, A>::~unordered_multimap() noexcept
2123
1888
  {
2124
1889
  }
2125
1890
 
2126
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
2127
-
2128
1891
  template <class K, class T, class H, class P, class A>
2129
- unordered_multimap<K, T, H, P, A>& unordered_multimap<K, T, H, P, A>::
2130
- operator=(std::initializer_list<value_type> list)
1892
+ unordered_multimap<K, T, H, P, A>&
1893
+ unordered_multimap<K, T, H, P, A>::operator=(
1894
+ std::initializer_list<value_type> list)
2131
1895
  {
2132
1896
  this->clear();
2133
1897
  this->insert(list.begin(), list.end());
2134
1898
  return *this;
2135
1899
  }
2136
1900
 
2137
- #endif
2138
-
2139
1901
  // size and capacity
2140
1902
 
2141
1903
  template <class K, class T, class H, class P, class A>
2142
- std::size_t
2143
- unordered_multimap<K, T, H, P, A>::max_size() const BOOST_NOEXCEPT
1904
+ std::size_t unordered_multimap<K, T, H, P, A>::max_size() const noexcept
2144
1905
  {
2145
1906
  using namespace std;
2146
1907
 
@@ -2160,35 +1921,27 @@ namespace boost {
2160
1921
  table_.insert_range_equiv(first, last);
2161
1922
  }
2162
1923
 
2163
- #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
2164
1924
  template <class K, class T, class H, class P, class A>
2165
1925
  void unordered_multimap<K, T, H, P, A>::insert(
2166
1926
  std::initializer_list<value_type> list)
2167
1927
  {
2168
1928
  this->insert(list.begin(), list.end());
2169
1929
  }
2170
- #endif
2171
1930
 
2172
1931
  template <class K, class T, class H, class P, class A>
2173
1932
  typename unordered_multimap<K, T, H, P, A>::iterator
2174
1933
  unordered_multimap<K, T, H, P, A>::erase(iterator position)
2175
1934
  {
2176
- node_pointer node = table::get_node(position);
2177
- BOOST_ASSERT(node);
2178
- node_pointer next = table::next_node(node);
2179
- table_.erase_nodes_equiv(node, next);
2180
- return iterator(next);
1935
+ BOOST_ASSERT(position != this->end());
1936
+ return table_.erase_node(position);
2181
1937
  }
2182
1938
 
2183
1939
  template <class K, class T, class H, class P, class A>
2184
1940
  typename unordered_multimap<K, T, H, P, A>::iterator
2185
1941
  unordered_multimap<K, T, H, P, A>::erase(const_iterator position)
2186
1942
  {
2187
- node_pointer node = table::get_node(position);
2188
- BOOST_ASSERT(node);
2189
- node_pointer next = table::next_node(node);
2190
- table_.erase_nodes_equiv(node, next);
2191
- return iterator(next);
1943
+ BOOST_ASSERT(position != this->end());
1944
+ return table_.erase_node(position);
2192
1945
  }
2193
1946
 
2194
1947
  template <class K, class T, class H, class P, class A>
@@ -2203,18 +1956,14 @@ namespace boost {
2203
1956
  unordered_multimap<K, T, H, P, A>::erase(
2204
1957
  const_iterator first, const_iterator last)
2205
1958
  {
2206
- node_pointer last_node = table::get_node(last);
2207
- if (first == last)
2208
- return iterator(last_node);
2209
- table_.erase_nodes_equiv(table::get_node(first), last_node);
2210
- return iterator(last_node);
1959
+ return table_.erase_nodes_range(first, last);
2211
1960
  }
2212
1961
 
2213
1962
  template <class K, class T, class H, class P, class A>
2214
1963
  void unordered_multimap<K, T, H, P, A>::swap(unordered_multimap& other)
2215
- BOOST_NOEXCEPT_IF(value_allocator_traits::is_always_equal::value&&
2216
- boost::is_nothrow_swappable<H>::value&&
2217
- boost::is_nothrow_swappable<P>::value)
1964
+ noexcept(value_allocator_traits::is_always_equal::value&&
1965
+ boost::unordered::detail::is_nothrow_swappable<H>::value&&
1966
+ boost::unordered::detail::is_nothrow_swappable<P>::value)
2218
1967
  {
2219
1968
  table_.swap(other.table_);
2220
1969
  }
@@ -2245,7 +1994,6 @@ namespace boost {
2245
1994
  }
2246
1995
  }
2247
1996
 
2248
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
2249
1997
  template <class K, class T, class H, class P, class A>
2250
1998
  template <typename H2, typename P2>
2251
1999
  void unordered_multimap<K, T, H, P, A>::merge(
@@ -2255,7 +2003,6 @@ namespace boost {
2255
2003
  insert(source.extract(source.begin()));
2256
2004
  }
2257
2005
  }
2258
- #endif
2259
2006
 
2260
2007
  template <class K, class T, class H, class P, class A>
2261
2008
  template <typename H2, typename P2>
@@ -2267,7 +2014,6 @@ namespace boost {
2267
2014
  }
2268
2015
  }
2269
2016
 
2270
- #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
2271
2017
  template <class K, class T, class H, class P, class A>
2272
2018
  template <typename H2, typename P2>
2273
2019
  void unordered_multimap<K, T, H, P, A>::merge(
@@ -2277,7 +2023,6 @@ namespace boost {
2277
2023
  insert(source.extract(source.begin()));
2278
2024
  }
2279
2025
  }
2280
- #endif
2281
2026
 
2282
2027
  // lookup
2283
2028
 
@@ -2285,14 +2030,14 @@ namespace boost {
2285
2030
  typename unordered_multimap<K, T, H, P, A>::iterator
2286
2031
  unordered_multimap<K, T, H, P, A>::find(const key_type& k)
2287
2032
  {
2288
- return iterator(table_.find_node(k));
2033
+ return iterator(table_.find(k));
2289
2034
  }
2290
2035
 
2291
2036
  template <class K, class T, class H, class P, class A>
2292
2037
  typename unordered_multimap<K, T, H, P, A>::const_iterator
2293
2038
  unordered_multimap<K, T, H, P, A>::find(const key_type& k) const
2294
2039
  {
2295
- return const_iterator(table_.find_node(k));
2040
+ return const_iterator(table_.find(k));
2296
2041
  }
2297
2042
 
2298
2043
  template <class K, class T, class H, class P, class A>
@@ -2302,8 +2047,7 @@ namespace boost {
2302
2047
  unordered_multimap<K, T, H, P, A>::find(CompatibleKey const& k,
2303
2048
  CompatibleHash const& hash, CompatiblePredicate const& eq)
2304
2049
  {
2305
- return iterator(
2306
- table_.find_node_impl(table::policy::apply_hash(hash, k), k, eq));
2050
+ return table_.transparent_find(k, hash, eq);
2307
2051
  }
2308
2052
 
2309
2053
  template <class K, class T, class H, class P, class A>
@@ -2313,16 +2057,14 @@ namespace boost {
2313
2057
  unordered_multimap<K, T, H, P, A>::find(CompatibleKey const& k,
2314
2058
  CompatibleHash const& hash, CompatiblePredicate const& eq) const
2315
2059
  {
2316
- return const_iterator(
2317
- table_.find_node_impl(table::policy::apply_hash(hash, k), k, eq));
2060
+ return table_.transparent_find(k, hash, eq);
2318
2061
  }
2319
2062
 
2320
2063
  template <class K, class T, class H, class P, class A>
2321
2064
  typename unordered_multimap<K, T, H, P, A>::size_type
2322
2065
  unordered_multimap<K, T, H, P, A>::count(const key_type& k) const
2323
2066
  {
2324
- node_pointer n = table_.find_node(k);
2325
- return n ? table_.group_count(n) : 0;
2067
+ return table_.group_count(k);
2326
2068
  }
2327
2069
 
2328
2070
  template <class K, class T, class H, class P, class A>
@@ -2330,9 +2072,8 @@ namespace boost {
2330
2072
  typename unordered_multimap<K, T, H, P, A>::iterator>
2331
2073
  unordered_multimap<K, T, H, P, A>::equal_range(const key_type& k)
2332
2074
  {
2333
- node_pointer n = table_.find_node(k);
2334
- return std::make_pair(
2335
- iterator(n), iterator(n ? table_.next_group(n) : n));
2075
+ iterator n = table_.find(k);
2076
+ return std::make_pair(n, (n == end() ? n : table_.next_group(k, n)));
2336
2077
  }
2337
2078
 
2338
2079
  template <class K, class T, class H, class P, class A>
@@ -2340,9 +2081,9 @@ namespace boost {
2340
2081
  typename unordered_multimap<K, T, H, P, A>::const_iterator>
2341
2082
  unordered_multimap<K, T, H, P, A>::equal_range(const key_type& k) const
2342
2083
  {
2343
- node_pointer n = table_.find_node(k);
2344
- return std::make_pair(
2345
- const_iterator(n), const_iterator(n ? table_.next_group(n) : n));
2084
+ iterator n = table_.find(k);
2085
+ return std::make_pair(const_iterator(n),
2086
+ const_iterator(n == end() ? n : table_.next_group(k, n)));
2346
2087
  }
2347
2088
 
2348
2089
  template <class K, class T, class H, class P, class A>
@@ -2355,16 +2096,19 @@ namespace boost {
2355
2096
  // hash policy
2356
2097
 
2357
2098
  template <class K, class T, class H, class P, class A>
2358
- float unordered_multimap<K, T, H, P, A>::load_factor() const BOOST_NOEXCEPT
2099
+ float unordered_multimap<K, T, H, P, A>::load_factor() const noexcept
2359
2100
  {
2360
- BOOST_ASSERT(table_.bucket_count_ != 0);
2101
+ if (table_.size_ == 0) {
2102
+ return 0.0f;
2103
+ }
2104
+
2105
+ BOOST_ASSERT(table_.bucket_count() != 0);
2361
2106
  return static_cast<float>(table_.size_) /
2362
- static_cast<float>(table_.bucket_count_);
2107
+ static_cast<float>(table_.bucket_count());
2363
2108
  }
2364
2109
 
2365
2110
  template <class K, class T, class H, class P, class A>
2366
- void unordered_multimap<K, T, H, P, A>::max_load_factor(
2367
- float m) BOOST_NOEXCEPT
2111
+ void unordered_multimap<K, T, H, P, A>::max_load_factor(float m) noexcept
2368
2112
  {
2369
2113
  table_.max_load_factor(m);
2370
2114
  }
@@ -2378,15 +2122,14 @@ namespace boost {
2378
2122
  template <class K, class T, class H, class P, class A>
2379
2123
  void unordered_multimap<K, T, H, P, A>::reserve(size_type n)
2380
2124
  {
2381
- table_.rehash(static_cast<std::size_t>(
2382
- std::ceil(static_cast<double>(n) / table_.mlf_)));
2125
+ table_.reserve(n);
2383
2126
  }
2384
2127
 
2385
2128
  template <class K, class T, class H, class P, class A>
2386
2129
  inline bool operator==(unordered_multimap<K, T, H, P, A> const& m1,
2387
2130
  unordered_multimap<K, T, H, P, A> const& m2)
2388
2131
  {
2389
- #if BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x0613))
2132
+ #if BOOST_WORKAROUND(BOOST_CODEGEARC, BOOST_TESTED_AT(0x0613))
2390
2133
  struct dummy
2391
2134
  {
2392
2135
  unordered_multimap<K, T, H, P, A> x;
@@ -2399,7 +2142,7 @@ namespace boost {
2399
2142
  inline bool operator!=(unordered_multimap<K, T, H, P, A> const& m1,
2400
2143
  unordered_multimap<K, T, H, P, A> const& m2)
2401
2144
  {
2402
- #if BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x0613))
2145
+ #if BOOST_WORKAROUND(BOOST_CODEGEARC, BOOST_TESTED_AT(0x0613))
2403
2146
  struct dummy
2404
2147
  {
2405
2148
  unordered_multimap<K, T, H, P, A> x;
@@ -2410,10 +2153,9 @@ namespace boost {
2410
2153
 
2411
2154
  template <class K, class T, class H, class P, class A>
2412
2155
  inline void swap(unordered_multimap<K, T, H, P, A>& m1,
2413
- unordered_multimap<K, T, H, P, A>& m2)
2414
- BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(m1.swap(m2)))
2156
+ unordered_multimap<K, T, H, P, A>& m2) noexcept(noexcept(m1.swap(m2)))
2415
2157
  {
2416
- #if BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x0613))
2158
+ #if BOOST_WORKAROUND(BOOST_CODEGEARC, BOOST_TESTED_AT(0x0613))
2417
2159
  struct dummy
2418
2160
  {
2419
2161
  unordered_multimap<K, T, H, P, A> x;
@@ -2422,26 +2164,29 @@ namespace boost {
2422
2164
  m1.swap(m2);
2423
2165
  }
2424
2166
 
2425
- template <typename N, class K, class T, class A> class node_handle_map
2167
+ template <class K, class T, class H, class P, class A, class Predicate>
2168
+ typename unordered_multimap<K, T, H, P, A>::size_type erase_if(
2169
+ unordered_multimap<K, T, H, P, A>& c, Predicate pred)
2426
2170
  {
2427
- BOOST_MOVABLE_BUT_NOT_COPYABLE(node_handle_map)
2171
+ return detail::erase_if(c, pred);
2172
+ }
2428
2173
 
2174
+ template <typename N, class K, class T, class A> class node_handle_map
2175
+ {
2429
2176
  template <typename Types> friend struct ::boost::unordered::detail::table;
2430
2177
  template <class K2, class T2, class H2, class P2, class A2>
2431
2178
  friend class boost::unordered::unordered_map;
2432
2179
  template <class K2, class T2, class H2, class P2, class A2>
2433
2180
  friend class boost::unordered::unordered_multimap;
2434
2181
 
2435
- typedef typename boost::unordered::detail::rebind_wrap<A,
2436
- std::pair<K const, T> >::type value_allocator;
2437
- typedef boost::unordered::detail::allocator_traits<value_allocator>
2438
- value_allocator_traits;
2182
+ typedef typename boost::allocator_rebind<A, std::pair<K const, T> >::type
2183
+ value_allocator;
2184
+
2439
2185
  typedef N node;
2440
- typedef typename boost::unordered::detail::rebind_wrap<A, node>::type
2441
- node_allocator;
2442
- typedef boost::unordered::detail::allocator_traits<node_allocator>
2443
- node_allocator_traits;
2444
- typedef typename node_allocator_traits::pointer node_pointer;
2186
+ typedef typename boost::allocator_rebind<A, node>::type node_allocator;
2187
+
2188
+ typedef
2189
+ typename boost::allocator_pointer<node_allocator>::type node_pointer;
2445
2190
 
2446
2191
  public:
2447
2192
  typedef K key_type;
@@ -2458,7 +2203,9 @@ namespace boost {
2458
2203
  }
2459
2204
 
2460
2205
  public:
2461
- BOOST_CONSTEXPR node_handle_map() BOOST_NOEXCEPT : ptr_(), alloc_() {}
2206
+ constexpr node_handle_map() noexcept : ptr_(), alloc_() {}
2207
+ node_handle_map(node_handle_map const&) = delete;
2208
+ node_handle_map& operator=(node_handle_map const&) = delete;
2462
2209
 
2463
2210
  ~node_handle_map()
2464
2211
  {
@@ -2469,18 +2216,18 @@ namespace boost {
2469
2216
  }
2470
2217
  }
2471
2218
 
2472
- node_handle_map(BOOST_RV_REF(node_handle_map) n) BOOST_NOEXCEPT
2473
- : ptr_(n.ptr_),
2474
- alloc_(boost::move(n.alloc_))
2219
+ node_handle_map(node_handle_map&& n) noexcept
2220
+ : ptr_(n.ptr_),
2221
+ alloc_(std::move(n.alloc_))
2475
2222
  {
2476
2223
  n.ptr_ = node_pointer();
2477
2224
  }
2478
2225
 
2479
- node_handle_map& operator=(BOOST_RV_REF(node_handle_map) n)
2226
+ node_handle_map& operator=(node_handle_map&& n)
2480
2227
  {
2481
2228
  BOOST_ASSERT(!alloc_.has_value() ||
2482
- value_allocator_traits::
2483
- propagate_on_container_move_assignment::value ||
2229
+ boost::allocator_propagate_on_container_move_assignment<
2230
+ value_allocator>::type::value ||
2484
2231
  (n.alloc_.has_value() && alloc_ == n.alloc_));
2485
2232
 
2486
2233
  if (ptr_) {
@@ -2491,9 +2238,9 @@ namespace boost {
2491
2238
  }
2492
2239
 
2493
2240
  if (!alloc_.has_value() ||
2494
- value_allocator_traits::propagate_on_container_move_assignment::
2495
- value) {
2496
- alloc_ = boost::move(n.alloc_);
2241
+ boost::allocator_propagate_on_container_move_assignment<
2242
+ value_allocator>::type::value) {
2243
+ alloc_ = std::move(n.alloc_);
2497
2244
  }
2498
2245
  ptr_ = n.ptr_;
2499
2246
  n.ptr_ = node_pointer();
@@ -2510,76 +2257,95 @@ namespace boost {
2510
2257
 
2511
2258
  allocator_type get_allocator() const { return *alloc_; }
2512
2259
 
2513
- BOOST_EXPLICIT_OPERATOR_BOOL_NOEXCEPT()
2260
+ explicit operator bool() const noexcept
2261
+ {
2262
+ return !this->operator!();
2263
+ }
2514
2264
 
2515
- bool operator!() const BOOST_NOEXCEPT { return ptr_ ? 0 : 1; }
2265
+ bool operator!() const noexcept { return ptr_ ? 0 : 1; }
2516
2266
 
2517
- bool empty() const BOOST_NOEXCEPT { return ptr_ ? 0 : 1; }
2267
+ BOOST_ATTRIBUTE_NODISCARD bool empty() const noexcept
2268
+ {
2269
+ return ptr_ ? 0 : 1;
2270
+ }
2518
2271
 
2519
- void swap(node_handle_map& n) BOOST_NOEXCEPT_IF(
2520
- value_allocator_traits::propagate_on_container_swap::value ||
2521
- value_allocator_traits::is_always_equal::value)
2272
+ void swap(node_handle_map& n)
2273
+ noexcept(boost::allocator_propagate_on_container_swap<
2274
+ value_allocator>::type::value ||
2275
+ boost::allocator_is_always_equal<value_allocator>::type::value)
2522
2276
  {
2523
- BOOST_ASSERT(
2524
- !alloc_.has_value() || !n.alloc_.has_value() ||
2525
- value_allocator_traits::propagate_on_container_swap::value ||
2526
- alloc_ == n.alloc_);
2527
- if (value_allocator_traits::propagate_on_container_swap::value ||
2277
+
2278
+ BOOST_ASSERT(!alloc_.has_value() || !n.alloc_.has_value() ||
2279
+ boost::allocator_propagate_on_container_swap<
2280
+ value_allocator>::type::value ||
2281
+ alloc_ == n.alloc_);
2282
+ if (boost::allocator_propagate_on_container_swap<
2283
+ value_allocator>::type::value ||
2528
2284
  !alloc_.has_value() || !n.alloc_.has_value()) {
2529
- boost::swap(alloc_, n.alloc_);
2285
+ boost::core::invoke_swap(alloc_, n.alloc_);
2530
2286
  }
2531
- boost::swap(ptr_, n.ptr_);
2287
+ boost::core::invoke_swap(ptr_, n.ptr_);
2532
2288
  }
2533
2289
  };
2534
2290
 
2535
2291
  template <class N, class K, class T, class A>
2536
2292
  void swap(node_handle_map<N, K, T, A>& x, node_handle_map<N, K, T, A>& y)
2537
- BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(x.swap(y)))
2293
+ noexcept(noexcept(x.swap(y)))
2538
2294
  {
2539
2295
  x.swap(y);
2540
2296
  }
2541
2297
 
2542
- template <class N, class K, class T, class A> struct insert_return_type_map
2298
+ template <class Iter, class NodeType> struct insert_return_type_map
2543
2299
  {
2544
- private:
2545
- BOOST_MOVABLE_BUT_NOT_COPYABLE(insert_return_type_map)
2546
-
2547
- typedef typename boost::unordered::detail::rebind_wrap<A,
2548
- std::pair<K const, T> >::type value_allocator;
2549
- typedef N node_;
2550
-
2551
2300
  public:
2301
+ Iter position;
2552
2302
  bool inserted;
2553
- boost::unordered::iterator_detail::iterator<node_> position;
2554
- boost::unordered::node_handle_map<N, K, T, A> node;
2303
+ NodeType node;
2555
2304
 
2556
- insert_return_type_map() : inserted(false), position(), node() {}
2305
+ insert_return_type_map() : position(), inserted(false), node() {}
2306
+ insert_return_type_map(insert_return_type_map const&) = delete;
2307
+ insert_return_type_map& operator=(insert_return_type_map const&) = delete;
2557
2308
 
2558
- insert_return_type_map(BOOST_RV_REF(insert_return_type_map)
2559
- x) BOOST_NOEXCEPT : inserted(x.inserted),
2560
- position(x.position),
2561
- node(boost::move(x.node))
2309
+ insert_return_type_map(insert_return_type_map&& x) noexcept
2310
+ : position(x.position),
2311
+ inserted(x.inserted),
2312
+ node(std::move(x.node))
2562
2313
  {
2563
2314
  }
2564
2315
 
2565
- insert_return_type_map& operator=(BOOST_RV_REF(insert_return_type_map) x)
2316
+ insert_return_type_map& operator=(insert_return_type_map&& x)
2566
2317
  {
2567
2318
  inserted = x.inserted;
2568
2319
  position = x.position;
2569
- node = boost::move(x.node);
2320
+ node = std::move(x.node);
2570
2321
  return *this;
2571
2322
  }
2572
2323
  };
2573
2324
 
2574
- template <class N, class K, class T, class A>
2575
- void swap(insert_return_type_map<N, K, T, A>& x,
2576
- insert_return_type_map<N, K, T, A>& y)
2325
+ template <class Iter, class NodeType>
2326
+ void swap(insert_return_type_map<Iter, NodeType>& x,
2327
+ insert_return_type_map<Iter, NodeType>& y)
2577
2328
  {
2578
- boost::swap(x.node, y.node);
2579
- boost::swap(x.inserted, y.inserted);
2580
- boost::swap(x.position, y.position);
2329
+ boost::core::invoke_swap(x.node, y.node);
2330
+ boost::core::invoke_swap(x.inserted, y.inserted);
2331
+ boost::core::invoke_swap(x.position, y.position);
2581
2332
  }
2582
2333
  } // namespace unordered
2334
+
2335
+ namespace serialization {
2336
+ template <class K, class T, class H, class P, class A>
2337
+ struct version<boost::unordered_map<K, T, H, P, A> >
2338
+ {
2339
+ BOOST_STATIC_CONSTANT(int, value = 1);
2340
+ };
2341
+
2342
+ template <class K, class T, class H, class P, class A>
2343
+ struct version<boost::unordered_multimap<K, T, H, P, A> >
2344
+ {
2345
+ BOOST_STATIC_CONSTANT(int, value = 1);
2346
+ };
2347
+ } // namespace serialization
2348
+
2583
2349
  } // namespace boost
2584
2350
 
2585
2351
  #if defined(BOOST_MSVC)