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
@@ -31,6 +31,7 @@
31
31
  #include <boost/container/detail/mpl.hpp>
32
32
  #include <boost/container/detail/algorithm.hpp> //equal()
33
33
  #include <boost/container/detail/container_or_allocator_rebind.hpp>
34
+ #include <boost/container/detail/pair.hpp>
34
35
  // move
35
36
  #include <boost/move/utility_core.hpp>
36
37
  #include <boost/move/traits.hpp>
@@ -39,16 +40,27 @@
39
40
  #include <boost/move/detail/fwd_macros.hpp>
40
41
  #endif
41
42
  #include <boost/move/detail/move_helpers.hpp>
43
+ #include <boost/move/detail/force_ptr.hpp>
42
44
  // intrusive
43
45
  #include <boost/intrusive/detail/minimal_pair_header.hpp> //pair
44
46
  #include <boost/intrusive/detail/minimal_less_equal_header.hpp>//less, equal
45
- //others
46
- #include <boost/core/no_exceptions_support.hpp>
47
+
47
48
 
48
49
  #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
49
50
  #include <initializer_list>
50
51
  #endif
51
52
 
53
+ #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
54
+ #define BOOST_CONTAINER_STD_PAIR_IS_MOVABLE
55
+ #endif
56
+
57
+ //for C++03 compilers, were type-puning is the only option for std::pair
58
+ //disable strict aliasing to reduce problems.
59
+ #if defined(BOOST_GCC) && (BOOST_GCC >= 100000) && !defined(BOOST_CONTAINER_STD_PAIR_IS_MOVABLE)
60
+ #pragma GCC push_options
61
+ #pragma GCC optimize("no-strict-aliasing")
62
+ #endif
63
+
52
64
  namespace boost {
53
65
  namespace container {
54
66
 
@@ -59,17 +71,37 @@ class flat_multimap;
59
71
 
60
72
  namespace dtl{
61
73
 
74
+ #if defined(BOOST_CONTAINER_STD_PAIR_IS_MOVABLE)
62
75
  template<class D, class S>
63
76
  BOOST_CONTAINER_FORCEINLINE static D &force(S &s)
64
- { return *reinterpret_cast<D*>(&s); }
77
+ { return s; }
78
+
79
+ template<class D, class S>
80
+ BOOST_CONTAINER_FORCEINLINE static const D &force(const S &s)
81
+ { return s; }
82
+
83
+ template<class D>
84
+ BOOST_CONTAINER_FORCEINLINE static D force_copy(D s)
85
+ { return s; }
86
+
87
+ #else //!BOOST_CONTAINER_DOXYGEN_INVOKED
88
+
89
+ template<class D, class S>
90
+ BOOST_CONTAINER_FORCEINLINE static D &force(S &s)
91
+ { return *move_detail::launder_cast<D*>(&s); }
92
+
93
+ template<class D, class S>
94
+ BOOST_CONTAINER_FORCEINLINE static const D &force(const S &s)
95
+ { return *move_detail::launder_cast<const D*>(&s); }
65
96
 
66
97
  template<class D, class S>
67
98
  BOOST_CONTAINER_FORCEINLINE static D force_copy(const S &s)
68
99
  {
69
- const D *const vp = reinterpret_cast<const D *>(&s);
100
+ const D *const vp = move_detail::launder_cast<const D *>(&s);
70
101
  D ret_val(*vp);
71
102
  return ret_val;
72
103
  }
104
+ #endif //BOOST_CONTAINER_DOXYGEN_INVOKED
73
105
 
74
106
  } //namespace dtl{
75
107
 
@@ -103,7 +135,7 @@ BOOST_CONTAINER_FORCEINLINE static D force_copy(const S &s)
103
135
  //! - The allocator to allocate <code>value_type</code>s (e.g. <i>allocator< std::pair<Key, T> > </i>).
104
136
  //! (in this case <i>sequence_type</i> will be vector<value_type, AllocatorOrContainer>)
105
137
  //! - The SequenceContainer to be used as the underlying <i>sequence_type</i>. It must be a vector-like
106
- //! sequence container with random-access iterators..
138
+ //! sequence container with random-access iterators.
107
139
  #ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
108
140
  template <class Key, class T, class Compare = std::less<Key>, class AllocatorOrContainer = new_allocator< std::pair< Key, T> > >
109
141
  #else
@@ -115,18 +147,27 @@ class flat_map
115
147
  private:
116
148
  BOOST_COPYABLE_AND_MOVABLE(flat_map)
117
149
  //This is the tree that we should store if pair was movable
150
+ typedef std::pair<Key, T> std_pair_t;
118
151
  typedef dtl::flat_tree<
119
- std::pair<Key, T>,
152
+ std_pair_t,
120
153
  dtl::select1st<Key>,
121
154
  Compare,
122
155
  AllocatorOrContainer> tree_t;
123
156
 
124
157
  //This is the real tree stored here. It's based on a movable pair
158
+ typedef dtl::pair<Key, T> dtl_pair_t;
159
+
160
+ #ifdef BOOST_CONTAINER_STD_PAIR_IS_MOVABLE
161
+ typedef std_pair_t impl_pair_t;
162
+ #else
163
+ typedef dtl_pair_t impl_pair_t;
164
+ #endif
165
+
125
166
  typedef dtl::flat_tree<
126
- dtl::pair<Key, T>,
167
+ impl_pair_t,
127
168
  dtl::select1st<Key>,
128
169
  Compare,
129
- typename dtl::container_or_allocator_rebind<AllocatorOrContainer, dtl::pair<Key, T> >::type
170
+ typename dtl::container_or_allocator_rebind<AllocatorOrContainer, impl_pair_t >::type
130
171
  > impl_tree_t;
131
172
  impl_tree_t m_flat_tree; // flat tree representing flat_map
132
173
 
@@ -151,10 +192,10 @@ class flat_map
151
192
  typedef typename impl_tree_t::stored_allocator_type impl_stored_allocator_type;
152
193
  typedef typename impl_tree_t::sequence_type impl_sequence_type;
153
194
 
154
- BOOST_CONTAINER_FORCEINLINE impl_tree_t &tree()
195
+ inline impl_tree_t &tree()
155
196
  { return m_flat_tree; }
156
197
 
157
- BOOST_CONTAINER_FORCEINLINE const impl_tree_t &tree() const
198
+ inline const impl_tree_t &tree() const
158
199
  { return m_flat_tree; }
159
200
 
160
201
  private:
@@ -195,7 +236,7 @@ class flat_map
195
236
  typedef BOOST_CONTAINER_IMPDEF(impl_value_type) movable_value_type;
196
237
 
197
238
  //AllocatorOrContainer::value_type must be std::pair<Key, T>
198
- BOOST_STATIC_ASSERT((dtl::is_same<std::pair<Key, T>, typename allocator_type::value_type>::value));
239
+ BOOST_CONTAINER_STATIC_ASSERT((dtl::is_same<std::pair<Key, T>, value_type>::value));
199
240
 
200
241
  //////////////////////////////////////////////
201
242
  //
@@ -206,7 +247,7 @@ class flat_map
206
247
  //! <b>Effects</b>: Default constructs an empty flat_map.
207
248
  //!
208
249
  //! <b>Complexity</b>: Constant.
209
- BOOST_CONTAINER_FORCEINLINE flat_map() BOOST_NOEXCEPT_IF(dtl::is_nothrow_default_constructible<AllocatorOrContainer>::value &&
250
+ inline flat_map() BOOST_NOEXCEPT_IF(dtl::is_nothrow_default_constructible<AllocatorOrContainer>::value &&
210
251
  dtl::is_nothrow_default_constructible<Compare>::value)
211
252
  : m_flat_tree()
212
253
  {}
@@ -214,7 +255,7 @@ class flat_map
214
255
  //! <b>Effects</b>: Constructs an empty flat_map using the specified allocator.
215
256
  //!
216
257
  //! <b>Complexity</b>: Constant.
217
- BOOST_CONTAINER_FORCEINLINE explicit flat_map(const allocator_type& a)
258
+ inline explicit flat_map(const allocator_type& a)
218
259
  : m_flat_tree(dtl::force<const impl_allocator_type>(a))
219
260
  {}
220
261
 
@@ -222,7 +263,7 @@ class flat_map
222
263
  //! comparison object.
223
264
  //!
224
265
  //! <b>Complexity</b>: Constant.
225
- BOOST_CONTAINER_FORCEINLINE explicit flat_map(const Compare& comp)
266
+ inline explicit flat_map(const Compare& comp)
226
267
  : m_flat_tree(comp)
227
268
  {}
228
269
 
@@ -230,7 +271,7 @@ class flat_map
230
271
  //! comparison object and allocator.
231
272
  //!
232
273
  //! <b>Complexity</b>: Constant.
233
- BOOST_CONTAINER_FORCEINLINE flat_map(const Compare& comp, const allocator_type& a)
274
+ inline flat_map(const Compare& comp, const allocator_type& a)
234
275
  : m_flat_tree(comp, dtl::force<const impl_allocator_type>(a))
235
276
  {}
236
277
 
@@ -240,7 +281,7 @@ class flat_map
240
281
  //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
241
282
  //! the predicate and otherwise N logN, where N is last - first.
242
283
  template <class InputIterator>
243
- BOOST_CONTAINER_FORCEINLINE flat_map(InputIterator first, InputIterator last)
284
+ inline flat_map(InputIterator first, InputIterator last)
244
285
  : m_flat_tree(true, first, last)
245
286
  {}
246
287
 
@@ -250,7 +291,7 @@ class flat_map
250
291
  //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
251
292
  //! the predicate and otherwise N logN, where N is last - first.
252
293
  template <class InputIterator>
253
- BOOST_CONTAINER_FORCEINLINE flat_map(InputIterator first, InputIterator last, const allocator_type& a)
294
+ inline flat_map(InputIterator first, InputIterator last, const allocator_type& a)
254
295
  : m_flat_tree(true, first, last, dtl::force<const impl_allocator_type>(a))
255
296
  {}
256
297
 
@@ -260,7 +301,7 @@ class flat_map
260
301
  //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
261
302
  //! the predicate and otherwise N logN, where N is last - first.
262
303
  template <class InputIterator>
263
- BOOST_CONTAINER_FORCEINLINE flat_map(InputIterator first, InputIterator last, const Compare& comp)
304
+ inline flat_map(InputIterator first, InputIterator last, const Compare& comp)
264
305
  : m_flat_tree(true, first, last, comp)
265
306
  {}
266
307
 
@@ -270,7 +311,7 @@ class flat_map
270
311
  //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
271
312
  //! the predicate and otherwise N logN, where N is last - first.
272
313
  template <class InputIterator>
273
- BOOST_CONTAINER_FORCEINLINE flat_map(InputIterator first, InputIterator last, const Compare& comp, const allocator_type& a)
314
+ inline flat_map(InputIterator first, InputIterator last, const Compare& comp, const allocator_type& a)
274
315
  : m_flat_tree(true, first, last, comp, dtl::force<const impl_allocator_type>(a))
275
316
  {}
276
317
 
@@ -284,7 +325,7 @@ class flat_map
284
325
  //!
285
326
  //! <b>Note</b>: Non-standard extension.
286
327
  template <class InputIterator>
287
- BOOST_CONTAINER_FORCEINLINE
328
+ inline
288
329
  flat_map(ordered_unique_range_t, InputIterator first, InputIterator last)
289
330
  : m_flat_tree(ordered_range, first, last)
290
331
  {}
@@ -299,7 +340,7 @@ class flat_map
299
340
  //!
300
341
  //! <b>Note</b>: Non-standard extension.
301
342
  template <class InputIterator>
302
- BOOST_CONTAINER_FORCEINLINE
343
+ inline
303
344
  flat_map(ordered_unique_range_t, InputIterator first, InputIterator last, const Compare& comp)
304
345
  : m_flat_tree(ordered_range, first, last, comp)
305
346
  {}
@@ -314,18 +355,33 @@ class flat_map
314
355
  //!
315
356
  //! <b>Note</b>: Non-standard extension.
316
357
  template <class InputIterator>
317
- BOOST_CONTAINER_FORCEINLINE
358
+ inline
318
359
  flat_map(ordered_unique_range_t, InputIterator first, InputIterator last, const Compare& comp, const allocator_type& a)
319
360
  : m_flat_tree(ordered_range, first, last, comp, dtl::force<const impl_allocator_type>(a))
320
361
  {}
321
362
 
363
+ //! <b>Effects</b>: Constructs an empty flat_map using the specified allocator and
364
+ //! inserts elements from the ordered range [first ,last). This function
365
+ //! is more efficient than the normal range creation for ordered ranges.
366
+ //!
367
+ //! <b>Requires</b>: [first ,last) must be ordered according to the predicate.
368
+ //!
369
+ //! <b>Complexity</b>: Linear in N.
370
+ //!
371
+ //! <b>Note</b>: Non-standard extension.
372
+ template <class InputIterator>
373
+ inline
374
+ flat_map(ordered_unique_range_t, InputIterator first, InputIterator last, const allocator_type& a)
375
+ : m_flat_tree(ordered_range, first, last, Compare(), a)
376
+ {}
377
+
322
378
  #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
323
379
  //! <b>Effects</b>: Constructs an empty flat_map and
324
380
  //! inserts elements from the range [il.begin() ,il.end()).
325
381
  //!
326
382
  //! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
327
383
  //! the predicate and otherwise N logN, where N is last - first.
328
- BOOST_CONTAINER_FORCEINLINE flat_map(std::initializer_list<value_type> il)
384
+ inline flat_map(std::initializer_list<value_type> il)
329
385
  : m_flat_tree( true
330
386
  , dtl::force<impl_initializer_list>(il).begin()
331
387
  , dtl::force<impl_initializer_list>(il).end())
@@ -336,7 +392,7 @@ class flat_map
336
392
  //!
337
393
  //! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
338
394
  //! the predicate and otherwise N logN, where N is last - first.
339
- BOOST_CONTAINER_FORCEINLINE flat_map(std::initializer_list<value_type> il, const allocator_type& a)
395
+ inline flat_map(std::initializer_list<value_type> il, const allocator_type& a)
340
396
  : m_flat_tree( true
341
397
  , dtl::force<impl_initializer_list>(il).begin()
342
398
  , dtl::force<impl_initializer_list>(il).end()
@@ -348,7 +404,7 @@ class flat_map
348
404
  //!
349
405
  //! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
350
406
  //! the predicate and otherwise N logN, where N is last - first.
351
- BOOST_CONTAINER_FORCEINLINE flat_map(std::initializer_list<value_type> il, const Compare& comp)
407
+ inline flat_map(std::initializer_list<value_type> il, const Compare& comp)
352
408
  : m_flat_tree(true
353
409
  , dtl::force<impl_initializer_list>(il).begin()
354
410
  , dtl::force<impl_initializer_list>(il).end()
@@ -360,7 +416,7 @@ class flat_map
360
416
  //!
361
417
  //! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
362
418
  //! the predicate and otherwise N logN, where N is last - first.
363
- BOOST_CONTAINER_FORCEINLINE flat_map(std::initializer_list<value_type> il, const Compare& comp, const allocator_type& a)
419
+ inline flat_map(std::initializer_list<value_type> il, const Compare& comp, const allocator_type& a)
364
420
  : m_flat_tree(true
365
421
  , dtl::force<impl_initializer_list>(il).begin()
366
422
  , dtl::force<impl_initializer_list>(il).end()
@@ -378,7 +434,7 @@ class flat_map
378
434
  //! <b>Complexity</b>: Linear in N.
379
435
  //!
380
436
  //! <b>Note</b>: Non-standard extension.
381
- BOOST_CONTAINER_FORCEINLINE flat_map(ordered_unique_range_t, std::initializer_list<value_type> il)
437
+ inline flat_map(ordered_unique_range_t, std::initializer_list<value_type> il)
382
438
  : m_flat_tree(ordered_unique_range
383
439
  , dtl::force<impl_initializer_list>(il).begin()
384
440
  , dtl::force<impl_initializer_list>(il).end())
@@ -394,7 +450,7 @@ class flat_map
394
450
  //! <b>Complexity</b>: Linear in N.
395
451
  //!
396
452
  //! <b>Note</b>: Non-standard extension.
397
- BOOST_CONTAINER_FORCEINLINE flat_map(ordered_unique_range_t, std::initializer_list<value_type> il, const Compare& comp)
453
+ inline flat_map(ordered_unique_range_t, std::initializer_list<value_type> il, const Compare& comp)
398
454
  : m_flat_tree(ordered_unique_range
399
455
  , dtl::force<impl_initializer_list>(il).begin()
400
456
  , dtl::force<impl_initializer_list>(il).end()
@@ -411,7 +467,7 @@ class flat_map
411
467
  //! <b>Complexity</b>: Linear in N.
412
468
  //!
413
469
  //! <b>Note</b>: Non-standard extension.
414
- BOOST_CONTAINER_FORCEINLINE flat_map(ordered_unique_range_t, std::initializer_list<value_type> il, const Compare& comp, const allocator_type& a)
470
+ inline flat_map(ordered_unique_range_t, std::initializer_list<value_type> il, const Compare& comp, const allocator_type& a)
415
471
  : m_flat_tree( ordered_unique_range
416
472
  , dtl::force<impl_initializer_list>(il).begin()
417
473
  , dtl::force<impl_initializer_list>(il).end()
@@ -423,7 +479,7 @@ class flat_map
423
479
  //! <b>Effects</b>: Copy constructs a flat_map.
424
480
  //!
425
481
  //! <b>Complexity</b>: Linear in x.size().
426
- BOOST_CONTAINER_FORCEINLINE flat_map(const flat_map& x)
482
+ inline flat_map(const flat_map& x)
427
483
  : m_flat_tree(x.m_flat_tree)
428
484
  {}
429
485
 
@@ -433,7 +489,7 @@ class flat_map
433
489
  //! <b>Complexity</b>: Constant.
434
490
  //!
435
491
  //! <b>Postcondition</b>: x is emptied.
436
- BOOST_CONTAINER_FORCEINLINE flat_map(BOOST_RV_REF(flat_map) x)
492
+ inline flat_map(BOOST_RV_REF(flat_map) x)
437
493
  BOOST_NOEXCEPT_IF(boost::container::dtl::is_nothrow_move_constructible<Compare>::value)
438
494
  : m_flat_tree(boost::move(x.m_flat_tree))
439
495
  {}
@@ -441,7 +497,7 @@ class flat_map
441
497
  //! <b>Effects</b>: Copy constructs a flat_map using the specified allocator.
442
498
  //!
443
499
  //! <b>Complexity</b>: Linear in x.size().
444
- BOOST_CONTAINER_FORCEINLINE flat_map(const flat_map& x, const allocator_type &a)
500
+ inline flat_map(const flat_map& x, const allocator_type &a)
445
501
  : m_flat_tree(x.m_flat_tree, dtl::force<const impl_allocator_type>(a))
446
502
  {}
447
503
 
@@ -449,14 +505,14 @@ class flat_map
449
505
  //! Constructs *this using x's resources.
450
506
  //!
451
507
  //! <b>Complexity</b>: Constant if x.get_allocator() == a, linear otherwise.
452
- BOOST_CONTAINER_FORCEINLINE flat_map(BOOST_RV_REF(flat_map) x, const allocator_type &a)
508
+ inline flat_map(BOOST_RV_REF(flat_map) x, const allocator_type &a)
453
509
  : m_flat_tree(boost::move(x.m_flat_tree), dtl::force<const impl_allocator_type>(a))
454
510
  {}
455
511
 
456
512
  //! <b>Effects</b>: Makes *this a copy of x.
457
513
  //!
458
514
  //! <b>Complexity</b>: Linear in x.size().
459
- BOOST_CONTAINER_FORCEINLINE flat_map& operator=(BOOST_COPY_ASSIGN_REF(flat_map) x)
515
+ inline flat_map& operator=(BOOST_COPY_ASSIGN_REF(flat_map) x)
460
516
  { m_flat_tree = x.m_flat_tree; return *this; }
461
517
 
462
518
  //! <b>Effects</b>: Move constructs a flat_map.
@@ -468,7 +524,7 @@ class flat_map
468
524
  //! <b>Complexity</b>: Constant if allocator_traits_type::
469
525
  //! propagate_on_container_move_assignment is true or
470
526
  //! this->get>allocator() == x.get_allocator(). Linear otherwise.
471
- BOOST_CONTAINER_FORCEINLINE flat_map& operator=(BOOST_RV_REF(flat_map) x)
527
+ inline flat_map& operator=(BOOST_RV_REF(flat_map) x)
472
528
  BOOST_NOEXCEPT_IF( (allocator_traits_type::propagate_on_container_move_assignment::value ||
473
529
  allocator_traits_type::is_always_equal::value) &&
474
530
  boost::container::dtl::is_nothrow_move_assignable<Compare>::value)
@@ -488,7 +544,8 @@ class flat_map
488
544
  //! was passed to the object's constructor.
489
545
  //!
490
546
  //! <b>Complexity</b>: Constant.
491
- BOOST_CONTAINER_FORCEINLINE allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
547
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
548
+ allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
492
549
  { return dtl::force_copy<allocator_type>(m_flat_tree.get_allocator()); }
493
550
 
494
551
  //! <b>Effects</b>: Returns a reference to the internal allocator.
@@ -498,7 +555,8 @@ class flat_map
498
555
  //! <b>Complexity</b>: Constant.
499
556
  //!
500
557
  //! <b>Note</b>: Non-standard extension.
501
- BOOST_CONTAINER_FORCEINLINE get_stored_allocator_noconst_return_t get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW
558
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
559
+ get_stored_allocator_noconst_return_t get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW
502
560
  {
503
561
  impl_get_stored_allocator_noconst_return_t r = m_flat_tree.get_stored_allocator();
504
562
  return dtl::force<stored_allocator_type>(r);
@@ -511,7 +569,8 @@ class flat_map
511
569
  //! <b>Complexity</b>: Constant.
512
570
  //!
513
571
  //! <b>Note</b>: Non-standard extension.
514
- BOOST_CONTAINER_FORCEINLINE get_stored_allocator_const_return_t get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
572
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
573
+ get_stored_allocator_const_return_t get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
515
574
  {
516
575
  impl_get_stored_allocator_const_return_t r = m_flat_tree.get_stored_allocator();
517
576
  return dtl::force<const stored_allocator_type>(r);
@@ -528,7 +587,8 @@ class flat_map
528
587
  //! <b>Throws</b>: Nothing.
529
588
  //!
530
589
  //! <b>Complexity</b>: Constant.
531
- BOOST_CONTAINER_FORCEINLINE iterator begin() BOOST_NOEXCEPT_OR_NOTHROW
590
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
591
+ iterator begin() BOOST_NOEXCEPT_OR_NOTHROW
532
592
  { return dtl::force_copy<iterator>(m_flat_tree.begin()); }
533
593
 
534
594
  //! <b>Effects</b>: Returns a const_iterator to the first element contained in the container.
@@ -536,7 +596,8 @@ class flat_map
536
596
  //! <b>Throws</b>: Nothing.
537
597
  //!
538
598
  //! <b>Complexity</b>: Constant.
539
- BOOST_CONTAINER_FORCEINLINE const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW
599
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
600
+ const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW
540
601
  { return dtl::force_copy<const_iterator>(m_flat_tree.begin()); }
541
602
 
542
603
  //! <b>Effects</b>: Returns an iterator to the end of the container.
@@ -544,7 +605,8 @@ class flat_map
544
605
  //! <b>Throws</b>: Nothing.
545
606
  //!
546
607
  //! <b>Complexity</b>: Constant.
547
- BOOST_CONTAINER_FORCEINLINE iterator end() BOOST_NOEXCEPT_OR_NOTHROW
608
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
609
+ iterator end() BOOST_NOEXCEPT_OR_NOTHROW
548
610
  { return dtl::force_copy<iterator>(m_flat_tree.end()); }
549
611
 
550
612
  //! <b>Effects</b>: Returns a const_iterator to the end of the container.
@@ -552,7 +614,8 @@ class flat_map
552
614
  //! <b>Throws</b>: Nothing.
553
615
  //!
554
616
  //! <b>Complexity</b>: Constant.
555
- BOOST_CONTAINER_FORCEINLINE const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW
617
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
618
+ const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW
556
619
  { return dtl::force_copy<const_iterator>(m_flat_tree.end()); }
557
620
 
558
621
  //! <b>Effects</b>: Returns a reverse_iterator pointing to the beginning
@@ -561,7 +624,8 @@ class flat_map
561
624
  //! <b>Throws</b>: Nothing.
562
625
  //!
563
626
  //! <b>Complexity</b>: Constant.
564
- BOOST_CONTAINER_FORCEINLINE reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW
627
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
628
+ reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW
565
629
  { return dtl::force_copy<reverse_iterator>(m_flat_tree.rbegin()); }
566
630
 
567
631
  //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
@@ -570,7 +634,8 @@ class flat_map
570
634
  //! <b>Throws</b>: Nothing.
571
635
  //!
572
636
  //! <b>Complexity</b>: Constant.
573
- BOOST_CONTAINER_FORCEINLINE const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW
637
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
638
+ const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW
574
639
  { return dtl::force_copy<const_reverse_iterator>(m_flat_tree.rbegin()); }
575
640
 
576
641
  //! <b>Effects</b>: Returns a reverse_iterator pointing to the end
@@ -579,7 +644,8 @@ class flat_map
579
644
  //! <b>Throws</b>: Nothing.
580
645
  //!
581
646
  //! <b>Complexity</b>: Constant.
582
- BOOST_CONTAINER_FORCEINLINE reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW
647
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
648
+ reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW
583
649
  { return dtl::force_copy<reverse_iterator>(m_flat_tree.rend()); }
584
650
 
585
651
  //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
@@ -588,7 +654,8 @@ class flat_map
588
654
  //! <b>Throws</b>: Nothing.
589
655
  //!
590
656
  //! <b>Complexity</b>: Constant.
591
- BOOST_CONTAINER_FORCEINLINE const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW
657
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
658
+ const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW
592
659
  { return dtl::force_copy<const_reverse_iterator>(m_flat_tree.rend()); }
593
660
 
594
661
  //! <b>Effects</b>: Returns a const_iterator to the first element contained in the container.
@@ -596,7 +663,8 @@ class flat_map
596
663
  //! <b>Throws</b>: Nothing.
597
664
  //!
598
665
  //! <b>Complexity</b>: Constant.
599
- BOOST_CONTAINER_FORCEINLINE const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW
666
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
667
+ const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW
600
668
  { return dtl::force_copy<const_iterator>(m_flat_tree.cbegin()); }
601
669
 
602
670
  //! <b>Effects</b>: Returns a const_iterator to the end of the container.
@@ -604,7 +672,8 @@ class flat_map
604
672
  //! <b>Throws</b>: Nothing.
605
673
  //!
606
674
  //! <b>Complexity</b>: Constant.
607
- BOOST_CONTAINER_FORCEINLINE const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW
675
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
676
+ const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW
608
677
  { return dtl::force_copy<const_iterator>(m_flat_tree.cend()); }
609
678
 
610
679
  //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
@@ -613,7 +682,8 @@ class flat_map
613
682
  //! <b>Throws</b>: Nothing.
614
683
  //!
615
684
  //! <b>Complexity</b>: Constant.
616
- BOOST_CONTAINER_FORCEINLINE const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW
685
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
686
+ const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW
617
687
  { return dtl::force_copy<const_reverse_iterator>(m_flat_tree.crbegin()); }
618
688
 
619
689
  //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
@@ -622,7 +692,8 @@ class flat_map
622
692
  //! <b>Throws</b>: Nothing.
623
693
  //!
624
694
  //! <b>Complexity</b>: Constant.
625
- BOOST_CONTAINER_FORCEINLINE const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW
695
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
696
+ const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW
626
697
  { return dtl::force_copy<const_reverse_iterator>(m_flat_tree.crend()); }
627
698
 
628
699
  //////////////////////////////////////////////
@@ -636,7 +707,8 @@ class flat_map
636
707
  //! <b>Throws</b>: Nothing.
637
708
  //!
638
709
  //! <b>Complexity</b>: Constant.
639
- BOOST_CONTAINER_FORCEINLINE bool empty() const BOOST_NOEXCEPT_OR_NOTHROW
710
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
711
+ bool empty() const BOOST_NOEXCEPT_OR_NOTHROW
640
712
  { return m_flat_tree.empty(); }
641
713
 
642
714
  //! <b>Effects</b>: Returns the number of the elements contained in the container.
@@ -644,7 +716,8 @@ class flat_map
644
716
  //! <b>Throws</b>: Nothing.
645
717
  //!
646
718
  //! <b>Complexity</b>: Constant.
647
- BOOST_CONTAINER_FORCEINLINE size_type size() const BOOST_NOEXCEPT_OR_NOTHROW
719
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
720
+ size_type size() const BOOST_NOEXCEPT_OR_NOTHROW
648
721
  { return m_flat_tree.size(); }
649
722
 
650
723
  //! <b>Effects</b>: Returns the largest possible size of the container.
@@ -652,7 +725,8 @@ class flat_map
652
725
  //! <b>Throws</b>: Nothing.
653
726
  //!
654
727
  //! <b>Complexity</b>: Constant.
655
- BOOST_CONTAINER_FORCEINLINE size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
728
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
729
+ size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
656
730
  { return m_flat_tree.max_size(); }
657
731
 
658
732
  //! <b>Effects</b>: Number of elements for which memory has been allocated.
@@ -661,7 +735,8 @@ class flat_map
661
735
  //! <b>Throws</b>: Nothing.
662
736
  //!
663
737
  //! <b>Complexity</b>: Constant.
664
- BOOST_CONTAINER_FORCEINLINE size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
738
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
739
+ size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
665
740
  { return m_flat_tree.capacity(); }
666
741
 
667
742
  //! <b>Effects</b>: If n is less than or equal to capacity(), or the
@@ -674,7 +749,7 @@ class flat_map
674
749
  //!
675
750
  //! <b>Note</b>: If capacity() is less than "cnt", iterators and references to
676
751
  //! to values might be invalidated.
677
- BOOST_CONTAINER_FORCEINLINE void reserve(size_type cnt)
752
+ inline void reserve(size_type cnt)
678
753
  { m_flat_tree.reserve(cnt); }
679
754
 
680
755
  //! <b>Effects</b>: Tries to deallocate the excess of memory created
@@ -683,7 +758,7 @@ class flat_map
683
758
  //! <b>Throws</b>: If memory allocation throws, or T's copy constructor throws.
684
759
  //!
685
760
  //! <b>Complexity</b>: Linear to size().
686
- BOOST_CONTAINER_FORCEINLINE void shrink_to_fit()
761
+ inline void shrink_to_fit()
687
762
  { m_flat_tree.shrink_to_fit(); }
688
763
 
689
764
  //////////////////////////////////////////////
@@ -698,7 +773,7 @@ class flat_map
698
773
  //!
699
774
  //! Returns: A reference to the mapped_type corresponding to x in *this.
700
775
  //!
701
- //! Complexity: Logarithmic.
776
+ //! Complexity: Logarithmic search time plus linear insertion time in case no equivalent key is present.
702
777
  mapped_type &operator[](const key_type& k);
703
778
 
704
779
  //! Effects: If there is no key equivalent to x in the flat_map, inserts
@@ -706,12 +781,12 @@ class flat_map
706
781
  //!
707
782
  //! Returns: A reference to the mapped_type corresponding to x in *this.
708
783
  //!
709
- //! Complexity: Logarithmic.
710
- mapped_type &operator[](key_type &&k) ;
784
+ //! Complexity: Logarithmic search time plus linear insertion time in case no equivalent key is present.
785
+ mapped_type &operator[](key_type &&k);
711
786
  #elif defined(BOOST_MOVE_HELPERS_RETURN_SFINAE_BROKEN)
712
787
  //in compilers like GCC 3.4, we can't catch temporaries
713
- BOOST_CONTAINER_FORCEINLINE mapped_type& operator[](const key_type &k) { return this->priv_subscript(k); }
714
- BOOST_CONTAINER_FORCEINLINE mapped_type& operator[](BOOST_RV_REF(key_type) k) { return this->priv_subscript(::boost::move(k)); }
788
+ inline mapped_type& operator[](const key_type &k) { return this->priv_subscript(k); }
789
+ inline mapped_type& operator[](BOOST_RV_REF(key_type) k) { return this->priv_subscript(::boost::move(k)); }
715
790
  #else
716
791
  BOOST_MOVE_CONVERSION_AWARE_CATCH( operator[] , key_type, mapped_type&, this->priv_subscript)
717
792
  #endif
@@ -727,9 +802,9 @@ class flat_map
727
802
  //! Returns: The bool component is true if the insertion took place and false if the assignment
728
803
  //! took place. The iterator component is pointing at the element that was inserted or updated.
729
804
  //!
730
- //! Complexity: Logarithmic in the size of the container.
805
+ //! Complexity: Logarithmic search time plus linear insertion time in case no equivalent key is present.
731
806
  template <class M>
732
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator, bool> insert_or_assign(const key_type& k, BOOST_FWD_REF(M) obj)
807
+ inline std::pair<iterator, bool> insert_or_assign(const key_type& k, BOOST_FWD_REF(M) obj)
733
808
  {
734
809
  return dtl::force_copy< std::pair<iterator, bool> >
735
810
  (this->m_flat_tree.insert_or_assign
@@ -750,7 +825,7 @@ class flat_map
750
825
  //!
751
826
  //! Complexity: Logarithmic in the size of the container.
752
827
  template <class M>
753
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator, bool> insert_or_assign(BOOST_RV_REF(key_type) k, BOOST_FWD_REF(M) obj)
828
+ inline std::pair<iterator, bool> insert_or_assign(BOOST_RV_REF(key_type) k, BOOST_FWD_REF(M) obj)
754
829
  {
755
830
  return dtl::force_copy< std::pair<iterator, bool> >
756
831
  (this->m_flat_tree.insert_or_assign
@@ -773,12 +848,12 @@ class flat_map
773
848
  //! Complexity: Logarithmic in the size of the container in general, but amortized constant if
774
849
  //! the new element is inserted just before hint.
775
850
  template <class M>
776
- BOOST_CONTAINER_FORCEINLINE iterator insert_or_assign(const_iterator hint, const key_type& k, BOOST_FWD_REF(M) obj)
851
+ inline iterator insert_or_assign(const_iterator hint, const key_type& k, BOOST_FWD_REF(M) obj)
777
852
  {
778
- return dtl::force_copy< std::pair<iterator, bool> >
853
+ return dtl::force_copy<iterator>
779
854
  (this->m_flat_tree.insert_or_assign
780
855
  ( dtl::force_copy<impl_const_iterator>(hint)
781
- , k, ::boost::forward<M>(obj))
856
+ , k, ::boost::forward<M>(obj)).first
782
857
  );
783
858
  }
784
859
 
@@ -797,29 +872,33 @@ class flat_map
797
872
  //! Complexity: Logarithmic in the size of the container in general, but amortized constant if
798
873
  //! the new element is inserted just before hint.
799
874
  template <class M>
800
- BOOST_CONTAINER_FORCEINLINE iterator insert_or_assign(const_iterator hint, BOOST_RV_REF(key_type) k, BOOST_FWD_REF(M) obj)
875
+ inline iterator insert_or_assign(const_iterator hint, BOOST_RV_REF(key_type) k, BOOST_FWD_REF(M) obj)
801
876
  {
802
- return dtl::force_copy< std::pair<iterator, bool> >
877
+ return dtl::force_copy<iterator>
803
878
  (this->m_flat_tree.insert_or_assign
804
879
  ( dtl::force_copy<impl_const_iterator>(hint)
805
- , ::boost::move(k), ::boost::forward<M>(obj))
880
+ , ::boost::move(k), ::boost::forward<M>(obj)).first
806
881
  );
807
882
  }
808
883
 
809
884
  //! @copydoc ::boost::container::flat_set::nth(size_type)
810
- BOOST_CONTAINER_FORCEINLINE iterator nth(size_type n) BOOST_NOEXCEPT_OR_NOTHROW
885
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
886
+ iterator nth(size_type n) BOOST_NOEXCEPT_OR_NOTHROW
811
887
  { return dtl::force_copy<iterator>(m_flat_tree.nth(n)); }
812
888
 
813
889
  //! @copydoc ::boost::container::flat_set::nth(size_type) const
814
- BOOST_CONTAINER_FORCEINLINE const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
815
- { return dtl::force_copy<iterator>(m_flat_tree.nth(n)); }
890
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
891
+ const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
892
+ { return dtl::force_copy<const_iterator>(m_flat_tree.nth(n)); }
816
893
 
817
894
  //! @copydoc ::boost::container::flat_set::index_of(iterator)
818
- BOOST_CONTAINER_FORCEINLINE size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW
895
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
896
+ size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW
819
897
  { return m_flat_tree.index_of(dtl::force_copy<impl_iterator>(p)); }
820
898
 
821
899
  //! @copydoc ::boost::container::flat_set::index_of(const_iterator) const
822
- BOOST_CONTAINER_FORCEINLINE size_type index_of(const_iterator p) const BOOST_NOEXCEPT_OR_NOTHROW
900
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
901
+ size_type index_of(const_iterator p) const BOOST_NOEXCEPT_OR_NOTHROW
823
902
  { return m_flat_tree.index_of(dtl::force_copy<impl_const_iterator>(p)); }
824
903
 
825
904
  //! Returns: A reference to the element whose key is equivalent to x.
@@ -827,7 +906,7 @@ class flat_map
827
906
  //! Throws: An exception object of type out_of_range if no such element is present.
828
907
  //!
829
908
  //! Complexity: logarithmic.
830
- T& at(const key_type& k)
909
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD T& at(const key_type& k)
831
910
  {
832
911
  iterator i = this->find(k);
833
912
  if(i == this->end()){
@@ -841,7 +920,7 @@ class flat_map
841
920
  //! Throws: An exception object of type out_of_range if no such element is present.
842
921
  //!
843
922
  //! Complexity: logarithmic.
844
- const T& at(const key_type& k) const
923
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD const T& at(const key_type& k) const
845
924
  {
846
925
  const_iterator i = this->find(k);
847
926
  if(i == this->end()){
@@ -871,7 +950,7 @@ class flat_map
871
950
  //!
872
951
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
873
952
  template <class... Args>
874
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator,bool> emplace(BOOST_FWD_REF(Args)... args)
953
+ inline std::pair<iterator,bool> emplace(BOOST_FWD_REF(Args)... args)
875
954
  { return dtl::force_copy< std::pair<iterator, bool> >(m_flat_tree.emplace_unique(boost::forward<Args>(args)...)); }
876
955
 
877
956
  //! <b>Effects</b>: Inserts an object of type T constructed with
@@ -887,7 +966,7 @@ class flat_map
887
966
  //!
888
967
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
889
968
  template <class... Args>
890
- BOOST_CONTAINER_FORCEINLINE iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(Args)... args)
969
+ inline iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(Args)... args)
891
970
  {
892
971
  return dtl::force_copy<iterator>
893
972
  (m_flat_tree.emplace_hint_unique( dtl::force_copy<impl_const_iterator>(hint)
@@ -906,7 +985,7 @@ class flat_map
906
985
  //!
907
986
  //! <b>Complexity</b>: Logarithmic.
908
987
  template <class... Args>
909
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator, bool> try_emplace(const key_type& k, BOOST_FWD_REF(Args)... args)
988
+ inline std::pair<iterator, bool> try_emplace(const key_type& k, BOOST_FWD_REF(Args)... args)
910
989
  {
911
990
  return dtl::force_copy< std::pair<iterator, bool> >(
912
991
  m_flat_tree.try_emplace(impl_const_iterator(), k, boost::forward<Args>(args)...));
@@ -924,7 +1003,7 @@ class flat_map
924
1003
  //! <b>Complexity</b>: Logarithmic in general, but amortized constant if value
925
1004
  //! is inserted right before p.
926
1005
  template <class... Args>
927
- BOOST_CONTAINER_FORCEINLINE iterator try_emplace(const_iterator hint, const key_type &k, BOOST_FWD_REF(Args)... args)
1006
+ inline iterator try_emplace(const_iterator hint, const key_type &k, BOOST_FWD_REF(Args)... args)
928
1007
  {
929
1008
  return dtl::force_copy<iterator>(m_flat_tree.try_emplace
930
1009
  (dtl::force_copy<impl_const_iterator>(hint), k, boost::forward<Args>(args)...).first);
@@ -940,9 +1019,9 @@ class flat_map
940
1019
  //! <b>Returns</b>: The bool component of the returned pair is true if and only if the
941
1020
  //! insertion took place. The returned iterator points to the map element whose key is equivalent to k.
942
1021
  //!
943
- //! <b>Complexity</b>: Logarithmic.
1022
+ //! <b>Complexity</b>: Logarithmic search time plus linear insertion time in case the key is not present.
944
1023
  template <class... Args>
945
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator, bool> try_emplace(BOOST_RV_REF(key_type) k, BOOST_FWD_REF(Args)... args)
1024
+ inline std::pair<iterator, bool> try_emplace(BOOST_RV_REF(key_type) k, BOOST_FWD_REF(Args)... args)
946
1025
  {
947
1026
  return dtl::force_copy< std::pair<iterator, bool> >
948
1027
  (m_flat_tree.try_emplace(impl_const_iterator(), boost::move(k), boost::forward<Args>(args)...));
@@ -958,9 +1037,9 @@ class flat_map
958
1037
  //! <b>Returns</b>: The returned iterator points to the map element whose key is equivalent to k.
959
1038
  //!
960
1039
  //! <b>Complexity</b>: Logarithmic in general, but amortized constant if value
961
- //! is inserted right before p.
1040
+ //! is inserted right before p. Linear insertion time in case no equivalent key is present.
962
1041
  template <class... Args>
963
- BOOST_CONTAINER_FORCEINLINE iterator try_emplace(const_iterator hint, BOOST_RV_REF(key_type) k, BOOST_FWD_REF(Args)... args)
1042
+ inline iterator try_emplace(const_iterator hint, BOOST_RV_REF(key_type) k, BOOST_FWD_REF(Args)... args)
964
1043
  {
965
1044
  return dtl::force_copy<iterator>
966
1045
  (m_flat_tree.try_emplace(dtl::force_copy
@@ -971,39 +1050,39 @@ class flat_map
971
1050
 
972
1051
  #define BOOST_CONTAINER_FLAT_MAP_EMPLACE_CODE(N) \
973
1052
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
974
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator,bool> emplace(BOOST_MOVE_UREF##N)\
1053
+ inline std::pair<iterator,bool> emplace(BOOST_MOVE_UREF##N)\
975
1054
  {\
976
1055
  return dtl::force_copy< std::pair<iterator, bool> >\
977
1056
  (m_flat_tree.emplace_unique(BOOST_MOVE_FWD##N));\
978
1057
  }\
979
1058
  \
980
1059
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
981
- BOOST_CONTAINER_FORCEINLINE iterator emplace_hint(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
1060
+ inline iterator emplace_hint(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
982
1061
  {\
983
1062
  return dtl::force_copy<iterator>(m_flat_tree.emplace_hint_unique\
984
1063
  (dtl::force_copy<impl_const_iterator>(hint) BOOST_MOVE_I##N BOOST_MOVE_FWD##N));\
985
1064
  }\
986
1065
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
987
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator, bool> try_emplace(const key_type& k BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
1066
+ inline std::pair<iterator, bool> try_emplace(const key_type& k BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
988
1067
  {\
989
1068
  return dtl::force_copy< std::pair<iterator, bool> >\
990
1069
  (m_flat_tree.try_emplace(impl_const_iterator(), k BOOST_MOVE_I##N BOOST_MOVE_FWD##N));\
991
1070
  }\
992
1071
  \
993
1072
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
994
- BOOST_CONTAINER_FORCEINLINE iterator try_emplace(const_iterator hint, const key_type &k BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
1073
+ inline iterator try_emplace(const_iterator hint, const key_type &k BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
995
1074
  { return dtl::force_copy<iterator>(m_flat_tree.try_emplace\
996
1075
  (dtl::force_copy<impl_const_iterator>(hint), k BOOST_MOVE_I##N BOOST_MOVE_FWD##N).first); }\
997
1076
  \
998
1077
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
999
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator, bool> try_emplace(BOOST_RV_REF(key_type) k BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
1078
+ inline std::pair<iterator, bool> try_emplace(BOOST_RV_REF(key_type) k BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
1000
1079
  {\
1001
1080
  return dtl::force_copy< std::pair<iterator, bool> >\
1002
1081
  (m_flat_tree.try_emplace(impl_const_iterator(), boost::move(k) BOOST_MOVE_I##N BOOST_MOVE_FWD##N));\
1003
1082
  }\
1004
1083
  \
1005
1084
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
1006
- BOOST_CONTAINER_FORCEINLINE iterator try_emplace(const_iterator hint, BOOST_RV_REF(key_type) k BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
1085
+ inline iterator try_emplace(const_iterator hint, BOOST_RV_REF(key_type) k BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
1007
1086
  { return dtl::force_copy<iterator>(m_flat_tree.try_emplace\
1008
1087
  (dtl::force_copy<impl_const_iterator>(hint), boost::move(k) BOOST_MOVE_I##N BOOST_MOVE_FWD##N).first); }\
1009
1088
  //
@@ -1023,7 +1102,7 @@ class flat_map
1023
1102
  //! to the elements with bigger keys than x.
1024
1103
  //!
1025
1104
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1026
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator,bool> insert(const value_type& x)
1105
+ inline std::pair<iterator,bool> insert(const value_type& x)
1027
1106
  { return dtl::force_copy<std::pair<iterator,bool> >(
1028
1107
  m_flat_tree.insert_unique(dtl::force<const impl_value_type>(x))); }
1029
1108
 
@@ -1038,11 +1117,13 @@ class flat_map
1038
1117
  //! to the elements with bigger keys than x.
1039
1118
  //!
1040
1119
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1041
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator,bool> insert(BOOST_RV_REF(value_type) x)
1042
- { return dtl::force_copy<std::pair<iterator,bool> >(
1043
- m_flat_tree.insert_unique(boost::move(dtl::force<impl_value_type>(x)))); }
1120
+ inline std::pair<iterator,bool> insert(BOOST_RV_REF(value_type) x)
1121
+ {
1122
+ return dtl::force_copy<std::pair<iterator,bool> >(
1123
+ m_flat_tree.insert_unique(boost::move(dtl::force<impl_value_type>(x))));
1124
+ }
1044
1125
 
1045
- //! <b>Effects</b>: Inserts a new value_type move constructed from the pair if and
1126
+ //! <b>Effects</b>: Inserts a new value_type constructed from the pair if and
1046
1127
  //! only if there is no element in the container with key equivalent to the key of x.
1047
1128
  //!
1048
1129
  //! <b>Returns</b>: The bool component of the returned pair is true if and only
@@ -1053,10 +1134,15 @@ class flat_map
1053
1134
  //! to the elements with bigger keys than x.
1054
1135
  //!
1055
1136
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1056
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator,bool> insert(BOOST_RV_REF(movable_value_type) x)
1137
+ template <class Pair>
1138
+ inline BOOST_CONTAINER_DOC1ST
1139
+ ( std::pair<iterator BOOST_MOVE_I bool>
1140
+ , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I dtl_pair_t>::value
1141
+ BOOST_MOVE_I std::pair<iterator BOOST_MOVE_I bool> >::type)
1142
+ insert(BOOST_FWD_REF(Pair) x)
1057
1143
  {
1058
1144
  return dtl::force_copy<std::pair<iterator,bool> >
1059
- (m_flat_tree.insert_unique(boost::move(x)));
1145
+ (m_flat_tree.emplace_unique(boost::forward<Pair>(x)));
1060
1146
  }
1061
1147
 
1062
1148
  //! <b>Effects</b>: Inserts a copy of x in the container if and only if there is
@@ -1070,7 +1156,7 @@ class flat_map
1070
1156
  //! right before p) plus insertion linear to the elements with bigger keys than x.
1071
1157
  //!
1072
1158
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1073
- BOOST_CONTAINER_FORCEINLINE iterator insert(const_iterator p, const value_type& x)
1159
+ inline iterator insert(const_iterator p, const value_type& x)
1074
1160
  {
1075
1161
  return dtl::force_copy<iterator>(
1076
1162
  m_flat_tree.insert_unique( dtl::force_copy<impl_const_iterator>(p)
@@ -1086,14 +1172,14 @@ class flat_map
1086
1172
  //! right before p) plus insertion linear to the elements with bigger keys than x.
1087
1173
  //!
1088
1174
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1089
- BOOST_CONTAINER_FORCEINLINE iterator insert(const_iterator p, BOOST_RV_REF(value_type) x)
1175
+ inline iterator insert(const_iterator p, BOOST_RV_REF(value_type) x)
1090
1176
  {
1091
1177
  return dtl::force_copy<iterator>
1092
1178
  (m_flat_tree.insert_unique( dtl::force_copy<impl_const_iterator>(p)
1093
1179
  , boost::move(dtl::force<impl_value_type>(x))));
1094
1180
  }
1095
1181
 
1096
- //! <b>Effects</b>: Inserts an element move constructed from x in the container.
1182
+ //! <b>Effects</b>: Inserts an element constructed from x in the container.
1097
1183
  //! p is a hint pointing to where the insert should start to search.
1098
1184
  //!
1099
1185
  //! <b>Returns</b>: An iterator pointing to the element with key equivalent to the key of x.
@@ -1102,10 +1188,15 @@ class flat_map
1102
1188
  //! right before p) plus insertion linear to the elements with bigger keys than x.
1103
1189
  //!
1104
1190
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1105
- BOOST_CONTAINER_FORCEINLINE iterator insert(const_iterator p, BOOST_RV_REF(movable_value_type) x)
1191
+ template <class Pair>
1192
+ inline BOOST_CONTAINER_DOC1ST
1193
+ ( iterator
1194
+ , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I dtl_pair_t>::value
1195
+ BOOST_MOVE_I iterator>::type)
1196
+ insert(const_iterator p, BOOST_FWD_REF(Pair) x)
1106
1197
  {
1107
1198
  return dtl::force_copy<iterator>(
1108
- m_flat_tree.insert_unique(dtl::force_copy<impl_const_iterator>(p), boost::move(x)));
1199
+ m_flat_tree.emplace_hint_unique(dtl::force_copy<impl_const_iterator>(p), boost::forward<Pair>(x)));
1109
1200
  }
1110
1201
 
1111
1202
  //! <b>Requires</b>: first, last are not iterators into *this.
@@ -1117,7 +1208,7 @@ class flat_map
1117
1208
  //!
1118
1209
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1119
1210
  template <class InputIterator>
1120
- BOOST_CONTAINER_FORCEINLINE void insert(InputIterator first, InputIterator last)
1211
+ inline void insert(InputIterator first, InputIterator last)
1121
1212
  { m_flat_tree.insert_unique(first, last); }
1122
1213
 
1123
1214
  //! <b>Requires</b>: first, last are not iterators into *this.
@@ -1135,7 +1226,7 @@ class flat_map
1135
1226
  //!
1136
1227
  //! <b>Note</b>: Non-standard extension.
1137
1228
  template <class InputIterator>
1138
- BOOST_CONTAINER_FORCEINLINE void insert(ordered_unique_range_t, InputIterator first, InputIterator last)
1229
+ inline void insert(ordered_unique_range_t, InputIterator first, InputIterator last)
1139
1230
  { m_flat_tree.insert_unique(ordered_unique_range, first, last); }
1140
1231
 
1141
1232
  #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
@@ -1145,7 +1236,7 @@ class flat_map
1145
1236
  //! <b>Complexity</b>: N log(N).
1146
1237
  //!
1147
1238
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1148
- BOOST_CONTAINER_FORCEINLINE void insert(std::initializer_list<value_type> il)
1239
+ inline void insert(std::initializer_list<value_type> il)
1149
1240
  {
1150
1241
  m_flat_tree.insert_unique( dtl::force<impl_initializer_list>(il).begin()
1151
1242
  , dtl::force<impl_initializer_list>(il).end());
@@ -1163,7 +1254,7 @@ class flat_map
1163
1254
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1164
1255
  //!
1165
1256
  //! <b>Note</b>: Non-standard extension.
1166
- BOOST_CONTAINER_FORCEINLINE void insert(ordered_unique_range_t, std::initializer_list<value_type> il)
1257
+ inline void insert(ordered_unique_range_t, std::initializer_list<value_type> il)
1167
1258
  {
1168
1259
  m_flat_tree.insert_unique(ordered_unique_range
1169
1260
  , dtl::force<impl_initializer_list>(il).begin()
@@ -1173,35 +1264,30 @@ class flat_map
1173
1264
 
1174
1265
  //! <b>Requires</b>: this->get_allocator() == source.get_allocator().
1175
1266
  //!
1176
- //! <b>Effects</b>: Attempts to extract each element in source and insert it into a using
1267
+ //! <b>Effects</b>: Move-inserts each element from source into *this a using
1177
1268
  //! the comparison object of *this. If there is an element in a with key equivalent to the
1178
- //! key of an element from source, then that element is not extracted from source.
1179
- //!
1180
- //! <b>Postcondition</b>: Pointers and references to the transferred elements of source refer
1181
- //! to those same elements but as members of *this. Iterators referring to the transferred
1182
- //! elements will continue to refer to their elements, but they now behave as iterators into *this,
1183
- //! not into source.
1269
+ //! key of an element from source, then that element is not moved from source.
1184
1270
  //!
1185
- //! <b>Throws</b>: Nothing unless the comparison object throws.
1271
+ //! <b>Complexity</b>: Linear in this->size() + source.size().
1186
1272
  //!
1187
- //! <b>Complexity</b>: N log(a.size() + N) (N has the value source.size())
1273
+ //! <b>Note</b>: Invalidates all iterators and references.
1188
1274
  template<class C2>
1189
- BOOST_CONTAINER_FORCEINLINE void merge(flat_map<Key, T, C2, AllocatorOrContainer>& source)
1275
+ inline void merge(flat_map<Key, T, C2, AllocatorOrContainer>& source)
1190
1276
  { m_flat_tree.merge_unique(source.tree()); }
1191
1277
 
1192
1278
  //! @copydoc ::boost::container::flat_map::merge(flat_map<Key, T, C2, AllocatorOrContainer>&)
1193
1279
  template<class C2>
1194
- BOOST_CONTAINER_FORCEINLINE void merge(BOOST_RV_REF_BEG flat_map<Key, T, C2, AllocatorOrContainer> BOOST_RV_REF_END source)
1280
+ inline void merge(BOOST_RV_REF_BEG flat_map<Key, T, C2, AllocatorOrContainer> BOOST_RV_REF_END source)
1195
1281
  { return this->merge(static_cast<flat_map<Key, T, C2, AllocatorOrContainer>&>(source)); }
1196
1282
 
1197
1283
  //! @copydoc ::boost::container::flat_map::merge(flat_map<Key, T, C2, AllocatorOrContainer>&)
1198
1284
  template<class C2>
1199
- BOOST_CONTAINER_FORCEINLINE void merge(flat_multimap<Key, T, C2, AllocatorOrContainer>& source)
1285
+ inline void merge(flat_multimap<Key, T, C2, AllocatorOrContainer>& source)
1200
1286
  { m_flat_tree.merge_unique(source.tree()); }
1201
1287
 
1202
1288
  //! @copydoc ::boost::container::flat_map::merge(flat_map<Key, T, C2, AllocatorOrContainer>&)
1203
1289
  template<class C2>
1204
- BOOST_CONTAINER_FORCEINLINE void merge(BOOST_RV_REF_BEG flat_multimap<Key, T, C2, AllocatorOrContainer> BOOST_RV_REF_END source)
1290
+ inline void merge(BOOST_RV_REF_BEG flat_multimap<Key, T, C2, AllocatorOrContainer> BOOST_RV_REF_END source)
1205
1291
  { return this->merge(static_cast<flat_multimap<Key, T, C2, AllocatorOrContainer>&>(source)); }
1206
1292
 
1207
1293
  //! <b>Effects</b>: Erases the element pointed to by p.
@@ -1214,20 +1300,37 @@ class flat_map
1214
1300
  //!
1215
1301
  //! <b>Note</b>: Invalidates elements with keys
1216
1302
  //! not less than the erased element.
1217
- BOOST_CONTAINER_FORCEINLINE iterator erase(const_iterator p)
1303
+ inline iterator erase(const_iterator p)
1218
1304
  {
1219
1305
  return dtl::force_copy<iterator>
1220
1306
  (m_flat_tree.erase(dtl::force_copy<impl_const_iterator>(p)));
1221
1307
  }
1222
1308
 
1223
- //! <b>Effects</b>: Erases all elements in the container with key equivalent to x.
1309
+ //! <b>Effects</b>: If present, erases the element in the container with key equivalent to x.
1224
1310
  //!
1225
- //! <b>Returns</b>: Returns the number of erased elements.
1311
+ //! <b>Returns</b>: Returns the number of erased elements (0/1).
1226
1312
  //!
1227
1313
  //! <b>Complexity</b>: Logarithmic search time plus erasure time
1228
1314
  //! linear to the elements with bigger keys.
1229
- BOOST_CONTAINER_FORCEINLINE size_type erase(const key_type& x)
1230
- { return m_flat_tree.erase(x); }
1315
+ inline size_type erase(const key_type& x)
1316
+ { return m_flat_tree.erase_unique(x); }
1317
+
1318
+ //! <b>Requires</b>: This overload is available only if
1319
+ //! key_compare::is_transparent exists.
1320
+ //!
1321
+ //! <b>Effects</b>: If present, erases the element in the container with key equivalent to x.
1322
+ //!
1323
+ //! <b>Returns</b>: Returns the number of erased elements (0/1).
1324
+ template <class K>
1325
+ inline BOOST_CONTAINER_DOC1ST
1326
+ (size_type
1327
+ , typename dtl::enable_if_c<
1328
+ dtl::is_transparent<key_compare>::value && //transparent
1329
+ !dtl::is_convertible<K BOOST_MOVE_I iterator>::value && //not convertible to iterator
1330
+ !dtl::is_convertible<K BOOST_MOVE_I const_iterator>::value //not convertible to const_iterator
1331
+ BOOST_MOVE_I size_type>::type)
1332
+ erase(const K& x)
1333
+ { return m_flat_tree.erase_unique(x); }
1231
1334
 
1232
1335
  //! <b>Effects</b>: Erases all the elements in the range [first, last).
1233
1336
  //!
@@ -1237,7 +1340,7 @@ class flat_map
1237
1340
  //!
1238
1341
  //! <b>Complexity</b>: Logarithmic search time plus erasure time
1239
1342
  //! linear to the elements with bigger keys.
1240
- BOOST_CONTAINER_FORCEINLINE iterator erase(const_iterator first, const_iterator last)
1343
+ inline iterator erase(const_iterator first, const_iterator last)
1241
1344
  {
1242
1345
  return dtl::force_copy<iterator>(
1243
1346
  m_flat_tree.erase( dtl::force_copy<impl_const_iterator>(first)
@@ -1249,17 +1352,17 @@ class flat_map
1249
1352
  //! <b>Throws</b>: Nothing.
1250
1353
  //!
1251
1354
  //! <b>Complexity</b>: Constant.
1252
- BOOST_CONTAINER_FORCEINLINE void swap(flat_map& x)
1355
+ inline void swap(flat_map& x)
1253
1356
  BOOST_NOEXCEPT_IF( allocator_traits_type::is_always_equal::value
1254
1357
  && boost::container::dtl::is_nothrow_swappable<Compare>::value )
1255
1358
  { m_flat_tree.swap(x.m_flat_tree); }
1256
1359
 
1257
- //! <b>Effects</b>: erase(a.begin(),a.end()).
1360
+ //! <b>Effects</b>: erase(begin(),end()).
1258
1361
  //!
1259
1362
  //! <b>Postcondition</b>: size() == 0.
1260
1363
  //!
1261
1364
  //! <b>Complexity</b>: linear in size().
1262
- BOOST_CONTAINER_FORCEINLINE void clear() BOOST_NOEXCEPT_OR_NOTHROW
1365
+ inline void clear() BOOST_NOEXCEPT_OR_NOTHROW
1263
1366
  { m_flat_tree.clear(); }
1264
1367
 
1265
1368
  //////////////////////////////////////////////
@@ -1272,14 +1375,16 @@ class flat_map
1272
1375
  //! of which a was constructed.
1273
1376
  //!
1274
1377
  //! <b>Complexity</b>: Constant.
1275
- BOOST_CONTAINER_FORCEINLINE key_compare key_comp() const
1378
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1379
+ key_compare key_comp() const
1276
1380
  { return dtl::force_copy<key_compare>(m_flat_tree.key_comp()); }
1277
1381
 
1278
1382
  //! <b>Effects</b>: Returns an object of value_compare constructed out
1279
1383
  //! of the comparison object.
1280
1384
  //!
1281
1385
  //! <b>Complexity</b>: Constant.
1282
- BOOST_CONTAINER_FORCEINLINE value_compare value_comp() const
1386
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1387
+ value_compare value_comp() const
1283
1388
  { return value_compare(dtl::force_copy<key_compare>(m_flat_tree.key_comp())); }
1284
1389
 
1285
1390
  //////////////////////////////////////////////
@@ -1292,62 +1397,202 @@ class flat_map
1292
1397
  //! equivalent to x, or end() if such an element is not found.
1293
1398
  //!
1294
1399
  //! <b>Complexity</b>: Logarithmic.
1295
- BOOST_CONTAINER_FORCEINLINE iterator find(const key_type& x)
1400
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1401
+ iterator find(const key_type& x)
1402
+ { return dtl::force_copy<iterator>(m_flat_tree.find(x)); }
1403
+
1404
+ //! <b>Returns</b>: A const_iterator pointing to an element with the key
1405
+ //! equivalent to x, or end() if such an element is not found.
1406
+ //!
1407
+ //! <b>Complexity</b>: Logarithmic.
1408
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1409
+ const_iterator find(const key_type& x) const
1410
+ { return dtl::force_copy<const_iterator>(m_flat_tree.find(x)); }
1411
+
1412
+ //! <b>Requires</b>: This overload is available only if
1413
+ //! key_compare::is_transparent exists.
1414
+ //!
1415
+ //! <b>Returns</b>: An iterator pointing to an element with the key
1416
+ //! equivalent to x, or end() if such an element is not found.
1417
+ //!
1418
+ //! <b>Complexity</b>: Logarithmic.
1419
+ template<class K>
1420
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1421
+ iterator find(const K& x)
1296
1422
  { return dtl::force_copy<iterator>(m_flat_tree.find(x)); }
1297
1423
 
1424
+ //! <b>Requires</b>: This overload is available only if
1425
+ //! key_compare::is_transparent exists.
1426
+ //!
1298
1427
  //! <b>Returns</b>: A const_iterator pointing to an element with the key
1299
1428
  //! equivalent to x, or end() if such an element is not found.
1300
1429
  //!
1301
1430
  //! <b>Complexity</b>: Logarithmic.
1302
- BOOST_CONTAINER_FORCEINLINE const_iterator find(const key_type& x) const
1431
+ template<class K>
1432
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1433
+ const_iterator find(const K& x) const
1303
1434
  { return dtl::force_copy<const_iterator>(m_flat_tree.find(x)); }
1304
1435
 
1305
1436
  //! <b>Returns</b>: The number of elements with key equivalent to x.
1306
1437
  //!
1307
1438
  //! <b>Complexity</b>: log(size())+count(k)
1308
- BOOST_CONTAINER_FORCEINLINE size_type count(const key_type& x) const
1439
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1440
+ size_type count(const key_type& x) const
1309
1441
  { return static_cast<size_type>(m_flat_tree.find(x) != m_flat_tree.end()); }
1310
1442
 
1443
+ //! <b>Requires</b>: This overload is available only if
1444
+ //! key_compare::is_transparent exists.
1445
+ //!
1446
+ //! <b>Returns</b>: The number of elements with key equivalent to x.
1447
+ //!
1448
+ //! <b>Complexity</b>: log(size())+count(k)
1449
+ template<class K>
1450
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1451
+ size_type count(const K& x) const
1452
+ //Don't use find() != end optimization here as transparent comparators with key K might
1453
+ //return a different range than key_type (which can only return a single element range)
1454
+ { return m_flat_tree.count(x); }
1455
+
1456
+ //! <b>Returns</b>: Returns true if there is an element with key
1457
+ //! equivalent to key in the container, otherwise false.
1458
+ //!
1459
+ //! <b>Complexity</b>: log(size()).
1460
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1461
+ bool contains(const key_type& x) const
1462
+ { return m_flat_tree.find(x) != m_flat_tree.end(); }
1463
+
1464
+ //! <b>Requires</b>: This overload is available only if
1465
+ //! key_compare::is_transparent exists.
1466
+ //!
1467
+ //! <b>Returns</b>: Returns true if there is an element with key
1468
+ //! equivalent to key in the container, otherwise false.
1469
+ //!
1470
+ //! <b>Complexity</b>: log(size()).
1471
+ template<typename K>
1472
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1473
+ bool contains(const K& x) const
1474
+ { return m_flat_tree.find(x) != m_flat_tree.end(); }
1475
+
1311
1476
  //! <b>Returns</b>: An iterator pointing to the first element with key not less
1312
- //! than k, or a.end() if such an element is not found.
1477
+ //! than x, or end() if such an element is not found.
1313
1478
  //!
1314
1479
  //! <b>Complexity</b>: Logarithmic.
1315
- BOOST_CONTAINER_FORCEINLINE iterator lower_bound(const key_type& x)
1480
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1481
+ iterator lower_bound(const key_type& x)
1316
1482
  { return dtl::force_copy<iterator>(m_flat_tree.lower_bound(x)); }
1317
1483
 
1318
1484
  //! <b>Returns</b>: A const iterator pointing to the first element with key not
1319
- //! less than k, or a.end() if such an element is not found.
1485
+ //! less than x, or end() if such an element is not found.
1320
1486
  //!
1321
1487
  //! <b>Complexity</b>: Logarithmic.
1322
- BOOST_CONTAINER_FORCEINLINE const_iterator lower_bound(const key_type& x) const
1488
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1489
+ const_iterator lower_bound(const key_type& x) const
1323
1490
  { return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound(x)); }
1324
1491
 
1492
+ //! <b>Requires</b>: This overload is available only if
1493
+ //! key_compare::is_transparent exists.
1494
+ //!
1325
1495
  //! <b>Returns</b>: An iterator pointing to the first element with key not less
1326
1496
  //! than x, or end() if such an element is not found.
1327
1497
  //!
1328
1498
  //! <b>Complexity</b>: Logarithmic.
1329
- BOOST_CONTAINER_FORCEINLINE iterator upper_bound(const key_type& x)
1330
- { return dtl::force_copy<iterator>(m_flat_tree.upper_bound(x)); }
1499
+ template<class K>
1500
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1501
+ iterator lower_bound(const K& x)
1502
+ { return dtl::force_copy<iterator>(m_flat_tree.lower_bound(x)); }
1331
1503
 
1504
+ //! <b>Requires</b>: This overload is available only if
1505
+ //! key_compare::is_transparent exists.
1506
+ //!
1332
1507
  //! <b>Returns</b>: A const iterator pointing to the first element with key not
1333
1508
  //! less than x, or end() if such an element is not found.
1334
1509
  //!
1335
1510
  //! <b>Complexity</b>: Logarithmic.
1336
- BOOST_CONTAINER_FORCEINLINE const_iterator upper_bound(const key_type& x) const
1511
+ template<class K>
1512
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1513
+ const_iterator lower_bound(const K& x) const
1514
+ { return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound(x)); }
1515
+
1516
+ //! <b>Returns</b>: An iterator pointing to the first element with key greater
1517
+ //! than x, or end() if such an element is not found.
1518
+ //!
1519
+ //! <b>Complexity</b>: Logarithmic.
1520
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1521
+ iterator upper_bound(const key_type& x)
1522
+ { return dtl::force_copy<iterator>(m_flat_tree.upper_bound(x)); }
1523
+
1524
+ //! <b>Returns</b>: A const iterator pointing to the first element with key
1525
+ //! greater than x, or end() if such an element is not found.
1526
+ //!
1527
+ //! <b>Complexity</b>: Logarithmic.
1528
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1529
+ const_iterator upper_bound(const key_type& x) const
1530
+ { return dtl::force_copy<const_iterator>(m_flat_tree.upper_bound(x)); }
1531
+
1532
+ //! <b>Requires</b>: This overload is available only if
1533
+ //! key_compare::is_transparent exists.
1534
+ //!
1535
+ //! <b>Returns</b>: An iterator pointing to the first element with key greater
1536
+ //! than x, or end() if such an element is not found.
1537
+ //!
1538
+ //! <b>Complexity</b>: Logarithmic.
1539
+ template<class K>
1540
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1541
+ iterator upper_bound(const K& x)
1542
+ { return dtl::force_copy<iterator>(m_flat_tree.upper_bound(x)); }
1543
+
1544
+ //! <b>Requires</b>: This overload is available only if
1545
+ //! key_compare::is_transparent exists.
1546
+ //!
1547
+ //! <b>Returns</b>: A const iterator pointing to the first element with key
1548
+ //! greater than x, or end() if such an element is not found.
1549
+ //!
1550
+ //! <b>Complexity</b>: Logarithmic.
1551
+ template<class K>
1552
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1553
+ const_iterator upper_bound(const K& x) const
1337
1554
  { return dtl::force_copy<const_iterator>(m_flat_tree.upper_bound(x)); }
1338
1555
 
1339
1556
  //! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
1340
1557
  //!
1341
1558
  //! <b>Complexity</b>: Logarithmic.
1342
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator,iterator> equal_range(const key_type& x)
1559
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1560
+ std::pair<iterator,iterator> equal_range(const key_type& x)
1343
1561
  { return dtl::force_copy<std::pair<iterator,iterator> >(m_flat_tree.lower_bound_range(x)); }
1344
1562
 
1345
1563
  //! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
1346
1564
  //!
1347
1565
  //! <b>Complexity</b>: Logarithmic.
1348
- BOOST_CONTAINER_FORCEINLINE std::pair<const_iterator, const_iterator> equal_range(const key_type& x) const
1566
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1567
+ std::pair<const_iterator, const_iterator> equal_range(const key_type& x) const
1349
1568
  { return dtl::force_copy<std::pair<const_iterator,const_iterator> >(m_flat_tree.lower_bound_range(x)); }
1350
1569
 
1570
+ //! <b>Requires</b>: This overload is available only if
1571
+ //! key_compare::is_transparent exists.
1572
+ //!
1573
+ //! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
1574
+ //!
1575
+ //! <b>Complexity</b>: Logarithmic.
1576
+ template<class K>
1577
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1578
+ std::pair<iterator,iterator> equal_range(const K& x)
1579
+ //Don't use lower_bound_range optimization here as transparent comparators with key K might
1580
+ //return a different range than key_type (which can only return a single element range)
1581
+ { return dtl::force_copy<std::pair<iterator,iterator> >(m_flat_tree.equal_range(x)); }
1582
+
1583
+ //! <b>Requires</b>: This overload is available only if
1584
+ //! key_compare::is_transparent exists.
1585
+ //!
1586
+ //! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
1587
+ //!
1588
+ //! <b>Complexity</b>: Logarithmic.
1589
+ template<class K>
1590
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1591
+ std::pair<const_iterator, const_iterator> equal_range(const K& x) const
1592
+ //Don't use lower_bound_range optimization here as transparent comparators with key K might
1593
+ //return a different range than key_type (which can only return a single element range)
1594
+ { return dtl::force_copy<std::pair<const_iterator,const_iterator> >(m_flat_tree.equal_range(x)); }
1595
+
1351
1596
  //! <b>Effects</b>: Extracts the internal sequence container.
1352
1597
  //!
1353
1598
  //! <b>Complexity</b>: Same as the move constructor of sequence_type, usually constant.
@@ -1355,7 +1600,7 @@ class flat_map
1355
1600
  //! <b>Postcondition</b>: this->empty()
1356
1601
  //!
1357
1602
  //! <b>Throws</b>: If secuence_type's move constructor throws
1358
- BOOST_CONTAINER_FORCEINLINE sequence_type extract_sequence()
1603
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline sequence_type extract_sequence()
1359
1604
  {
1360
1605
  return boost::move(dtl::force<sequence_type>(m_flat_tree.get_sequence_ref()));
1361
1606
  }
@@ -1366,7 +1611,7 @@ class flat_map
1366
1611
  //! <b>Complexity</b>: Assuming O(1) move assignment, O(NlogN) with N = seq.size()
1367
1612
  //!
1368
1613
  //! <b>Throws</b>: If the comparison or the move constructor throws
1369
- BOOST_CONTAINER_FORCEINLINE void adopt_sequence(BOOST_RV_REF(sequence_type) seq)
1614
+ inline void adopt_sequence(BOOST_RV_REF(sequence_type) seq)
1370
1615
  { this->m_flat_tree.adopt_sequence_unique(boost::move(dtl::force<impl_sequence_type>(seq))); }
1371
1616
 
1372
1617
  //! <b>Requires</b>: seq shall be ordered according to this->compare()
@@ -1378,77 +1623,158 @@ class flat_map
1378
1623
  //! <b>Complexity</b>: Assuming O(1) move assignment, O(1)
1379
1624
  //!
1380
1625
  //! <b>Throws</b>: If the move assignment throws
1381
- BOOST_CONTAINER_FORCEINLINE void adopt_sequence(ordered_unique_range_t, BOOST_RV_REF(sequence_type) seq)
1626
+ inline void adopt_sequence(ordered_unique_range_t, BOOST_RV_REF(sequence_type) seq)
1382
1627
  { this->m_flat_tree.adopt_sequence_unique(ordered_unique_range_t(), boost::move(dtl::force<impl_sequence_type>(seq))); }
1383
1628
 
1629
+ //! <b>Effects</b>: Returns a const view of the underlying sequence.
1630
+ //!
1631
+ //! <b>Complexity</b>: Constant
1632
+ //!
1633
+ //! <b>Throws</b>: Nothing
1634
+ inline const sequence_type & sequence() const BOOST_NOEXCEPT
1635
+ { return dtl::force<sequence_type>(m_flat_tree.get_sequence_cref()); }
1636
+
1384
1637
  //! <b>Effects</b>: Returns true if x and y are equal
1385
1638
  //!
1386
1639
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1387
- BOOST_CONTAINER_FORCEINLINE friend bool operator==(const flat_map& x, const flat_map& y)
1640
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1641
+ friend bool operator==(const flat_map& x, const flat_map& y)
1388
1642
  { return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); }
1389
1643
 
1390
1644
  //! <b>Effects</b>: Returns true if x and y are unequal
1391
1645
  //!
1392
1646
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1393
- BOOST_CONTAINER_FORCEINLINE friend bool operator!=(const flat_map& x, const flat_map& y)
1647
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1648
+ friend bool operator!=(const flat_map& x, const flat_map& y)
1394
1649
  { return !(x == y); }
1395
1650
 
1396
1651
  //! <b>Effects</b>: Returns true if x is less than y
1397
1652
  //!
1398
1653
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1399
- BOOST_CONTAINER_FORCEINLINE friend bool operator<(const flat_map& x, const flat_map& y)
1654
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1655
+ friend bool operator<(const flat_map& x, const flat_map& y)
1400
1656
  { return ::boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); }
1401
1657
 
1402
1658
  //! <b>Effects</b>: Returns true if x is greater than y
1403
1659
  //!
1404
1660
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1405
- BOOST_CONTAINER_FORCEINLINE friend bool operator>(const flat_map& x, const flat_map& y)
1661
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1662
+ friend bool operator>(const flat_map& x, const flat_map& y)
1406
1663
  { return y < x; }
1407
1664
 
1408
1665
  //! <b>Effects</b>: Returns true if x is equal or less than y
1409
1666
  //!
1410
1667
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1411
- BOOST_CONTAINER_FORCEINLINE friend bool operator<=(const flat_map& x, const flat_map& y)
1668
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1669
+ friend bool operator<=(const flat_map& x, const flat_map& y)
1412
1670
  { return !(y < x); }
1413
1671
 
1414
1672
  //! <b>Effects</b>: Returns true if x is equal or greater than y
1415
1673
  //!
1416
1674
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1417
- BOOST_CONTAINER_FORCEINLINE friend bool operator>=(const flat_map& x, const flat_map& y)
1675
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1676
+ friend bool operator>=(const flat_map& x, const flat_map& y)
1418
1677
  { return !(x < y); }
1419
1678
 
1420
1679
  //! <b>Effects</b>: x.swap(y)
1421
1680
  //!
1422
1681
  //! <b>Complexity</b>: Constant.
1423
- BOOST_CONTAINER_FORCEINLINE friend void swap(flat_map& x, flat_map& y)
1682
+ inline friend void swap(flat_map& x, flat_map& y)
1683
+ BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT(x.swap(y)))
1424
1684
  { x.swap(y); }
1425
1685
 
1426
1686
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
1427
1687
  private:
1428
1688
  mapped_type &priv_subscript(const key_type& k)
1429
1689
  {
1430
- iterator i = lower_bound(k);
1690
+ iterator i = this->lower_bound(k);
1431
1691
  // i->first is greater than or equivalent to k.
1432
1692
  if (i == end() || key_comp()(k, (*i).first)){
1433
1693
  dtl::value_init<mapped_type> m;
1434
- i = insert(i, impl_value_type(k, ::boost::move(m.m_t)));
1694
+ impl_value_type v(k, ::boost::move(m.m_t));
1695
+ i = dtl::force_copy<iterator>(this->m_flat_tree.insert_equal(::boost::move(v)));
1435
1696
  }
1436
1697
  return (*i).second;
1437
1698
  }
1438
1699
  mapped_type &priv_subscript(BOOST_RV_REF(key_type) mk)
1439
1700
  {
1440
1701
  key_type &k = mk;
1441
- iterator i = lower_bound(k);
1702
+ iterator i = this->lower_bound(k);
1442
1703
  // i->first is greater than or equivalent to k.
1443
- if (i == end() || key_comp()(k, (*i).first)){
1704
+ if (i == end() || key_comp()(k, (*i).first)) {
1444
1705
  dtl::value_init<mapped_type> m;
1445
- i = insert(i, impl_value_type(boost::move(k), ::boost::move(m.m_t)));
1706
+ impl_value_type v(::boost::move(k), ::boost::move(m.m_t));
1707
+ i = dtl::force_copy<iterator>(this->m_flat_tree.insert_equal(::boost::move(v)));
1446
1708
  }
1447
1709
  return (*i).second;
1448
1710
  }
1449
1711
  #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
1450
1712
  };
1451
1713
 
1714
+ #ifndef BOOST_CONTAINER_NO_CXX17_CTAD
1715
+
1716
+ template <typename InputIterator>
1717
+ flat_map(InputIterator, InputIterator) ->
1718
+ flat_map< it_based_non_const_first_type_t<InputIterator>
1719
+ , it_based_second_type_t<InputIterator>>;
1720
+
1721
+ template < typename InputIterator, typename AllocatorOrCompare>
1722
+ flat_map(InputIterator, InputIterator, AllocatorOrCompare const&) ->
1723
+ flat_map< it_based_non_const_first_type_t<InputIterator>
1724
+ , it_based_second_type_t<InputIterator>
1725
+ , typename dtl::if_c< // Compare
1726
+ dtl::is_allocator<AllocatorOrCompare>::value
1727
+ , std::less<it_based_non_const_first_type_t<InputIterator>>
1728
+ , AllocatorOrCompare
1729
+ >::type
1730
+ , typename dtl::if_c< // Allocator
1731
+ dtl::is_allocator<AllocatorOrCompare>::value
1732
+ , AllocatorOrCompare
1733
+ , new_allocator<std::pair<it_based_non_const_first_type_t<InputIterator>, it_based_second_type_t<InputIterator>>>
1734
+ >::type
1735
+ >;
1736
+
1737
+ template < typename InputIterator, typename Compare, typename Allocator
1738
+ , typename = dtl::require_nonallocator_t<Compare>
1739
+ , typename = dtl::require_allocator_t<Allocator>>
1740
+ flat_map(InputIterator, InputIterator, Compare const&, Allocator const&) ->
1741
+ flat_map< it_based_non_const_first_type_t<InputIterator>
1742
+ , it_based_second_type_t<InputIterator>
1743
+ , Compare
1744
+ , Allocator>;
1745
+
1746
+ template <typename InputIterator>
1747
+ flat_map(ordered_unique_range_t, InputIterator, InputIterator) ->
1748
+ flat_map< it_based_non_const_first_type_t<InputIterator>
1749
+ , it_based_second_type_t<InputIterator>>;
1750
+
1751
+ template < typename InputIterator, typename AllocatorOrCompare>
1752
+ flat_map(ordered_unique_range_t, InputIterator, InputIterator, AllocatorOrCompare const&) ->
1753
+ flat_map< it_based_non_const_first_type_t<InputIterator>
1754
+ , it_based_second_type_t<InputIterator>
1755
+ , typename dtl::if_c< // Compare
1756
+ dtl::is_allocator<AllocatorOrCompare>::value
1757
+ , std::less<it_based_non_const_first_type_t<InputIterator>>
1758
+ , AllocatorOrCompare
1759
+ >::type
1760
+ , typename dtl::if_c< // Allocator
1761
+ dtl::is_allocator<AllocatorOrCompare>::value
1762
+ , AllocatorOrCompare
1763
+ , new_allocator<std::pair<it_based_non_const_first_type_t<InputIterator>, it_based_second_type_t<InputIterator>>>
1764
+ >::type
1765
+ >;
1766
+
1767
+ template < typename InputIterator, typename Compare, typename Allocator
1768
+ , typename = dtl::require_nonallocator_t<Compare>
1769
+ , typename = dtl::require_allocator_t<Allocator>>
1770
+ flat_map(ordered_unique_range_t, InputIterator, InputIterator, Compare const&, Allocator const&) ->
1771
+ flat_map< it_based_non_const_first_type_t<InputIterator>
1772
+ , it_based_second_type_t<InputIterator>
1773
+ , Compare
1774
+ , Allocator>;
1775
+
1776
+ #endif
1777
+
1452
1778
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
1453
1779
 
1454
1780
  } //namespace container {
@@ -1458,10 +1784,10 @@ class flat_map
1458
1784
  template <class Key, class T, class Compare, class AllocatorOrContainer>
1459
1785
  struct has_trivial_destructor_after_move<boost::container::flat_map<Key, T, Compare, AllocatorOrContainer> >
1460
1786
  {
1461
- typedef typename ::boost::container::allocator_traits<AllocatorOrContainer>::pointer pointer;
1462
- static const bool value = ::boost::has_trivial_destructor_after_move<AllocatorOrContainer>::value &&
1463
- ::boost::has_trivial_destructor_after_move<pointer>::value &&
1464
- ::boost::has_trivial_destructor_after_move<Compare>::value;
1787
+ typedef typename boost::container::flat_map<Key, T, Compare, AllocatorOrContainer>::value_type value_t;
1788
+ typedef typename ::boost::container::dtl::container_or_allocator_rebind<AllocatorOrContainer, value_t>::type alloc_or_cont_t;
1789
+ typedef ::boost::container::dtl::flat_tree<value_t,::boost::container::dtl::select1st<Key>, Compare, alloc_or_cont_t> tree;
1790
+ BOOST_STATIC_CONSTEXPR bool value = ::boost::has_trivial_destructor_after_move<tree>::value;
1465
1791
  };
1466
1792
 
1467
1793
  namespace container {
@@ -1506,17 +1832,24 @@ class flat_multimap
1506
1832
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
1507
1833
  private:
1508
1834
  BOOST_COPYABLE_AND_MOVABLE(flat_multimap)
1835
+ typedef std::pair<Key, T> std_pair_t;
1509
1836
  typedef dtl::flat_tree<
1510
- std::pair<Key, T>,
1837
+ std_pair_t,
1511
1838
  dtl::select1st<Key>,
1512
1839
  Compare,
1513
1840
  AllocatorOrContainer> tree_t;
1514
1841
  //This is the real tree stored here. It's based on a movable pair
1842
+ typedef dtl::pair<Key, T> dtl_pair_t;
1843
+ #ifdef BOOST_CONTAINER_STD_PAIR_IS_MOVABLE
1844
+ typedef std_pair_t impl_pair_t;
1845
+ #else
1846
+ typedef dtl_pair_t impl_pair_t;
1847
+ #endif
1515
1848
  typedef dtl::flat_tree<
1516
- dtl::pair<Key, T>,
1849
+ impl_pair_t,
1517
1850
  dtl::select1st<Key>,
1518
1851
  Compare,
1519
- typename dtl::container_or_allocator_rebind<AllocatorOrContainer, dtl::pair<Key, T> >::type
1852
+ typename dtl::container_or_allocator_rebind<AllocatorOrContainer, impl_pair_t >::type
1520
1853
  > impl_tree_t;
1521
1854
  impl_tree_t m_flat_tree; // flat tree representing flat_map
1522
1855
 
@@ -1541,10 +1874,10 @@ class flat_multimap
1541
1874
  typedef typename impl_tree_t::stored_allocator_type impl_stored_allocator_type;
1542
1875
  typedef typename impl_tree_t::sequence_type impl_sequence_type;
1543
1876
 
1544
- BOOST_CONTAINER_FORCEINLINE impl_tree_t &tree()
1877
+ inline impl_tree_t &tree()
1545
1878
  { return m_flat_tree; }
1546
1879
 
1547
- BOOST_CONTAINER_FORCEINLINE const impl_tree_t &tree() const
1880
+ inline const impl_tree_t &tree() const
1548
1881
  { return m_flat_tree; }
1549
1882
 
1550
1883
  private:
@@ -1580,7 +1913,7 @@ class flat_multimap
1580
1913
  typedef BOOST_CONTAINER_IMPDEF(impl_value_type) movable_value_type;
1581
1914
 
1582
1915
  //AllocatorOrContainer::value_type must be std::pair<Key, T>
1583
- BOOST_STATIC_ASSERT((dtl::is_same<std::pair<Key, T>, typename AllocatorOrContainer::value_type>::value));
1916
+ BOOST_CONTAINER_STATIC_ASSERT((dtl::is_same<std::pair<Key, T>, value_type>::value));
1584
1917
 
1585
1918
  //////////////////////////////////////////////
1586
1919
  //
@@ -1591,7 +1924,7 @@ class flat_multimap
1591
1924
  //! <b>Effects</b>: Default constructs an empty flat_map.
1592
1925
  //!
1593
1926
  //! <b>Complexity</b>: Constant.
1594
- BOOST_CONTAINER_FORCEINLINE flat_multimap()
1927
+ inline flat_multimap()
1595
1928
  BOOST_NOEXCEPT_IF(dtl::is_nothrow_default_constructible<AllocatorOrContainer>::value &&
1596
1929
  dtl::is_nothrow_default_constructible<Compare>::value)
1597
1930
  : m_flat_tree()
@@ -1600,7 +1933,7 @@ class flat_multimap
1600
1933
  //! <b>Effects</b>: Constructs an empty flat_multimap using the specified allocator.
1601
1934
  //!
1602
1935
  //! <b>Complexity</b>: Constant.
1603
- BOOST_CONTAINER_FORCEINLINE explicit flat_multimap(const allocator_type& a)
1936
+ inline explicit flat_multimap(const allocator_type& a)
1604
1937
  : m_flat_tree(dtl::force<const impl_allocator_type>(a))
1605
1938
  {}
1606
1939
 
@@ -1608,7 +1941,7 @@ class flat_multimap
1608
1941
  //! object .
1609
1942
  //!
1610
1943
  //! <b>Complexity</b>: Constant.
1611
- BOOST_CONTAINER_FORCEINLINE explicit flat_multimap(const Compare& comp)
1944
+ inline explicit flat_multimap(const Compare& comp)
1612
1945
  : m_flat_tree(comp)
1613
1946
  {}
1614
1947
 
@@ -1616,7 +1949,7 @@ class flat_multimap
1616
1949
  //! object and allocator.
1617
1950
  //!
1618
1951
  //! <b>Complexity</b>: Constant.
1619
- BOOST_CONTAINER_FORCEINLINE
1952
+ inline
1620
1953
  flat_multimap(const Compare& comp, const allocator_type& a)
1621
1954
  : m_flat_tree(comp, dtl::force<const impl_allocator_type>(a))
1622
1955
  {}
@@ -1627,7 +1960,7 @@ class flat_multimap
1627
1960
  //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
1628
1961
  //! the predicate and otherwise N logN, where N is last - first.
1629
1962
  template <class InputIterator>
1630
- BOOST_CONTAINER_FORCEINLINE
1963
+ inline
1631
1964
  flat_multimap(InputIterator first, InputIterator last)
1632
1965
  : m_flat_tree(false, first, last)
1633
1966
  {}
@@ -1638,7 +1971,7 @@ class flat_multimap
1638
1971
  //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
1639
1972
  //! the predicate and otherwise N logN, where N is last - first.
1640
1973
  template <class InputIterator>
1641
- BOOST_CONTAINER_FORCEINLINE
1974
+ inline
1642
1975
  flat_multimap(InputIterator first, InputIterator last, const allocator_type& a)
1643
1976
  : m_flat_tree(false, first, last, dtl::force<const impl_allocator_type>(a))
1644
1977
  {}
@@ -1649,7 +1982,7 @@ class flat_multimap
1649
1982
  //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
1650
1983
  //! the predicate and otherwise N logN, where N is last - first.
1651
1984
  template <class InputIterator>
1652
- BOOST_CONTAINER_FORCEINLINE
1985
+ inline
1653
1986
  flat_multimap(InputIterator first, InputIterator last, const Compare& comp)
1654
1987
  : m_flat_tree(false, first, last, comp)
1655
1988
  {}
@@ -1660,7 +1993,7 @@ class flat_multimap
1660
1993
  //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
1661
1994
  //! the predicate and otherwise N logN, where N is last - first.
1662
1995
  template <class InputIterator>
1663
- BOOST_CONTAINER_FORCEINLINE
1996
+ inline
1664
1997
  flat_multimap(InputIterator first, InputIterator last, const Compare& comp, const allocator_type& a)
1665
1998
  : m_flat_tree(false, first, last, comp, dtl::force<const impl_allocator_type>(a))
1666
1999
  {}
@@ -1675,7 +2008,7 @@ class flat_multimap
1675
2008
  //!
1676
2009
  //! <b>Note</b>: Non-standard extension.
1677
2010
  template <class InputIterator>
1678
- BOOST_CONTAINER_FORCEINLINE
2011
+ inline
1679
2012
  flat_multimap(ordered_range_t, InputIterator first, InputIterator last)
1680
2013
  : m_flat_tree(ordered_range, first, last)
1681
2014
  {}
@@ -1690,7 +2023,7 @@ class flat_multimap
1690
2023
  //!
1691
2024
  //! <b>Note</b>: Non-standard extension.
1692
2025
  template <class InputIterator>
1693
- BOOST_CONTAINER_FORCEINLINE
2026
+ inline
1694
2027
  flat_multimap(ordered_range_t, InputIterator first, InputIterator last, const Compare& comp)
1695
2028
  : m_flat_tree(ordered_range, first, last, comp)
1696
2029
  {}
@@ -1705,18 +2038,33 @@ class flat_multimap
1705
2038
  //!
1706
2039
  //! <b>Note</b>: Non-standard extension.
1707
2040
  template <class InputIterator>
1708
- BOOST_CONTAINER_FORCEINLINE
2041
+ inline
1709
2042
  flat_multimap(ordered_range_t, InputIterator first, InputIterator last, const Compare& comp, const allocator_type& a)
1710
2043
  : m_flat_tree(ordered_range, first, last, comp, a)
1711
2044
  {}
1712
2045
 
2046
+ //! <b>Effects</b>: Constructs an empty flat_multimap using the specified comparison object and
2047
+ //! inserts elements from the ordered range [first ,last). This function
2048
+ //! is more efficient than the normal range creation for ordered ranges.
2049
+ //!
2050
+ //! <b>Requires</b>: [first ,last) must be ordered according to the predicate.
2051
+ //!
2052
+ //! <b>Complexity</b>: Linear in N.
2053
+ //!
2054
+ //! <b>Note</b>: Non-standard extension.
2055
+ template <class InputIterator>
2056
+ inline
2057
+ flat_multimap(ordered_range_t, InputIterator first, InputIterator last, const allocator_type &a)
2058
+ : m_flat_tree(ordered_range, first, last, Compare(), a)
2059
+ {}
2060
+
1713
2061
  #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
1714
2062
  //! <b>Effects</b>: Constructs an empty flat_map and
1715
2063
  //! inserts elements from the range [il.begin(), il.end()).
1716
2064
  //!
1717
2065
  //! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
1718
2066
  //! the predicate and otherwise N logN, where N is last - first.
1719
- BOOST_CONTAINER_FORCEINLINE
2067
+ inline
1720
2068
  flat_multimap(std::initializer_list<value_type> il)
1721
2069
  : m_flat_tree( false
1722
2070
  , dtl::force<impl_initializer_list>(il).begin()
@@ -1728,7 +2076,7 @@ class flat_multimap
1728
2076
  //!
1729
2077
  //! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
1730
2078
  //! the predicate and otherwise N logN, where N is last - first.
1731
- BOOST_CONTAINER_FORCEINLINE
2079
+ inline
1732
2080
  flat_multimap(std::initializer_list<value_type> il, const allocator_type& a)
1733
2081
  : m_flat_tree(false
1734
2082
  , dtl::force<impl_initializer_list>(il).begin()
@@ -1741,7 +2089,7 @@ class flat_multimap
1741
2089
  //!
1742
2090
  //! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
1743
2091
  //! the predicate and otherwise N logN, where N is last - first.
1744
- BOOST_CONTAINER_FORCEINLINE
2092
+ inline
1745
2093
  flat_multimap(std::initializer_list<value_type> il, const Compare& comp)
1746
2094
  : m_flat_tree(false
1747
2095
  , dtl::force<impl_initializer_list>(il).begin()
@@ -1753,7 +2101,7 @@ class flat_multimap
1753
2101
  //!
1754
2102
  //! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
1755
2103
  //! the predicate and otherwise N logN, where N is last - first.
1756
- BOOST_CONTAINER_FORCEINLINE
2104
+ inline
1757
2105
  flat_multimap(std::initializer_list<value_type> il, const Compare& comp, const allocator_type& a)
1758
2106
  : m_flat_tree( false
1759
2107
  , dtl::force<impl_initializer_list>(il).begin()
@@ -1770,7 +2118,7 @@ class flat_multimap
1770
2118
  //! <b>Complexity</b>: Linear in N.
1771
2119
  //!
1772
2120
  //! <b>Note</b>: Non-standard extension.
1773
- BOOST_CONTAINER_FORCEINLINE
2121
+ inline
1774
2122
  flat_multimap(ordered_range_t, std::initializer_list<value_type> il)
1775
2123
  : m_flat_tree( ordered_range
1776
2124
  , dtl::force<impl_initializer_list>(il).begin()
@@ -1786,7 +2134,7 @@ class flat_multimap
1786
2134
  //! <b>Complexity</b>: Linear in N.
1787
2135
  //!
1788
2136
  //! <b>Note</b>: Non-standard extension.
1789
- BOOST_CONTAINER_FORCEINLINE
2137
+ inline
1790
2138
  flat_multimap(ordered_range_t, std::initializer_list<value_type> il, const Compare& comp)
1791
2139
  : m_flat_tree( ordered_range
1792
2140
  , dtl::force<impl_initializer_list>(il).begin()
@@ -1802,7 +2150,7 @@ class flat_multimap
1802
2150
  //! <b>Complexity</b>: Linear in N.
1803
2151
  //!
1804
2152
  //! <b>Note</b>: Non-standard extension.
1805
- BOOST_CONTAINER_FORCEINLINE
2153
+ inline
1806
2154
  flat_multimap(ordered_range_t, std::initializer_list<value_type> il, const Compare& comp, const allocator_type& a)
1807
2155
  : m_flat_tree( ordered_range
1808
2156
  , dtl::force<impl_initializer_list>(il).begin()
@@ -1814,7 +2162,7 @@ class flat_multimap
1814
2162
  //! <b>Effects</b>: Copy constructs a flat_multimap.
1815
2163
  //!
1816
2164
  //! <b>Complexity</b>: Linear in x.size().
1817
- BOOST_CONTAINER_FORCEINLINE
2165
+ inline
1818
2166
  flat_multimap(const flat_multimap& x)
1819
2167
  : m_flat_tree(x.m_flat_tree)
1820
2168
  {}
@@ -1824,7 +2172,7 @@ class flat_multimap
1824
2172
  //! <b>Complexity</b>: Constant.
1825
2173
  //!
1826
2174
  //! <b>Postcondition</b>: x is emptied.
1827
- BOOST_CONTAINER_FORCEINLINE
2175
+ inline
1828
2176
  flat_multimap(BOOST_RV_REF(flat_multimap) x)
1829
2177
  BOOST_NOEXCEPT_IF(boost::container::dtl::is_nothrow_move_constructible<Compare>::value)
1830
2178
  : m_flat_tree(boost::move(x.m_flat_tree))
@@ -1833,7 +2181,7 @@ class flat_multimap
1833
2181
  //! <b>Effects</b>: Copy constructs a flat_multimap using the specified allocator.
1834
2182
  //!
1835
2183
  //! <b>Complexity</b>: Linear in x.size().
1836
- BOOST_CONTAINER_FORCEINLINE
2184
+ inline
1837
2185
  flat_multimap(const flat_multimap& x, const allocator_type &a)
1838
2186
  : m_flat_tree(x.m_flat_tree, dtl::force<const impl_allocator_type>(a))
1839
2187
  {}
@@ -1842,7 +2190,7 @@ class flat_multimap
1842
2190
  //! Constructs *this using x's resources.
1843
2191
  //!
1844
2192
  //! <b>Complexity</b>: Constant if a == x.get_allocator(), linear otherwise.
1845
- BOOST_CONTAINER_FORCEINLINE
2193
+ inline
1846
2194
  flat_multimap(BOOST_RV_REF(flat_multimap) x, const allocator_type &a)
1847
2195
  : m_flat_tree(boost::move(x.m_flat_tree), dtl::force<const impl_allocator_type>(a))
1848
2196
  {}
@@ -1850,14 +2198,14 @@ class flat_multimap
1850
2198
  //! <b>Effects</b>: Makes *this a copy of x.
1851
2199
  //!
1852
2200
  //! <b>Complexity</b>: Linear in x.size().
1853
- BOOST_CONTAINER_FORCEINLINE
2201
+ inline
1854
2202
  flat_multimap& operator=(BOOST_COPY_ASSIGN_REF(flat_multimap) x)
1855
2203
  { m_flat_tree = x.m_flat_tree; return *this; }
1856
2204
 
1857
2205
  //! <b>Effects</b>: this->swap(x.get()).
1858
2206
  //!
1859
2207
  //! <b>Complexity</b>: Constant.
1860
- BOOST_CONTAINER_FORCEINLINE
2208
+ inline
1861
2209
  flat_multimap& operator=(BOOST_RV_REF(flat_multimap) x)
1862
2210
  BOOST_NOEXCEPT_IF( (allocator_traits_type::propagate_on_container_move_assignment::value ||
1863
2211
  allocator_traits_type::is_always_equal::value) &&
@@ -1868,7 +2216,7 @@ class flat_multimap
1868
2216
  //! <b>Effects</b>: Assign content of il to *this
1869
2217
  //!
1870
2218
  //! <b>Complexity</b>: Linear in il.size().
1871
- BOOST_CONTAINER_FORCEINLINE
2219
+ inline
1872
2220
  flat_multimap& operator=(std::initializer_list<value_type> il)
1873
2221
  {
1874
2222
  this->clear();
@@ -1881,7 +2229,7 @@ class flat_multimap
1881
2229
  //! was passed to the object's constructor.
1882
2230
  //!
1883
2231
  //! <b>Complexity</b>: Constant.
1884
- BOOST_CONTAINER_FORCEINLINE
2232
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1885
2233
  allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
1886
2234
  { return dtl::force_copy<allocator_type>(m_flat_tree.get_allocator()); }
1887
2235
 
@@ -1892,7 +2240,7 @@ class flat_multimap
1892
2240
  //! <b>Complexity</b>: Constant.
1893
2241
  //!
1894
2242
  //! <b>Note</b>: Non-standard extension.
1895
- BOOST_CONTAINER_FORCEINLINE
2243
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1896
2244
  stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW
1897
2245
  { return dtl::force<stored_allocator_type>(m_flat_tree.get_stored_allocator()); }
1898
2246
 
@@ -1903,7 +2251,7 @@ class flat_multimap
1903
2251
  //! <b>Complexity</b>: Constant.
1904
2252
  //!
1905
2253
  //! <b>Note</b>: Non-standard extension.
1906
- BOOST_CONTAINER_FORCEINLINE
2254
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1907
2255
  const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
1908
2256
  { return dtl::force<const stored_allocator_type>(m_flat_tree.get_stored_allocator()); }
1909
2257
 
@@ -1918,7 +2266,7 @@ class flat_multimap
1918
2266
  //! <b>Throws</b>: Nothing.
1919
2267
  //!
1920
2268
  //! <b>Complexity</b>: Constant.
1921
- BOOST_CONTAINER_FORCEINLINE
2269
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1922
2270
  iterator begin() BOOST_NOEXCEPT_OR_NOTHROW
1923
2271
  { return dtl::force_copy<iterator>(m_flat_tree.begin()); }
1924
2272
 
@@ -1927,7 +2275,7 @@ class flat_multimap
1927
2275
  //! <b>Throws</b>: Nothing.
1928
2276
  //!
1929
2277
  //! <b>Complexity</b>: Constant.
1930
- BOOST_CONTAINER_FORCEINLINE
2278
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1931
2279
  const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW
1932
2280
  { return dtl::force_copy<const_iterator>(m_flat_tree.begin()); }
1933
2281
 
@@ -1936,7 +2284,7 @@ class flat_multimap
1936
2284
  //! <b>Throws</b>: Nothing.
1937
2285
  //!
1938
2286
  //! <b>Complexity</b>: Constant.
1939
- BOOST_CONTAINER_FORCEINLINE
2287
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1940
2288
  iterator end() BOOST_NOEXCEPT_OR_NOTHROW
1941
2289
  { return dtl::force_copy<iterator>(m_flat_tree.end()); }
1942
2290
 
@@ -1945,7 +2293,7 @@ class flat_multimap
1945
2293
  //! <b>Throws</b>: Nothing.
1946
2294
  //!
1947
2295
  //! <b>Complexity</b>: Constant.
1948
- BOOST_CONTAINER_FORCEINLINE
2296
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1949
2297
  const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW
1950
2298
  { return dtl::force_copy<const_iterator>(m_flat_tree.end()); }
1951
2299
 
@@ -1955,7 +2303,7 @@ class flat_multimap
1955
2303
  //! <b>Throws</b>: Nothing.
1956
2304
  //!
1957
2305
  //! <b>Complexity</b>: Constant.
1958
- BOOST_CONTAINER_FORCEINLINE
2306
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1959
2307
  reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW
1960
2308
  { return dtl::force_copy<reverse_iterator>(m_flat_tree.rbegin()); }
1961
2309
 
@@ -1965,7 +2313,7 @@ class flat_multimap
1965
2313
  //! <b>Throws</b>: Nothing.
1966
2314
  //!
1967
2315
  //! <b>Complexity</b>: Constant.
1968
- BOOST_CONTAINER_FORCEINLINE
2316
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1969
2317
  const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW
1970
2318
  { return dtl::force_copy<const_reverse_iterator>(m_flat_tree.rbegin()); }
1971
2319
 
@@ -1975,7 +2323,7 @@ class flat_multimap
1975
2323
  //! <b>Throws</b>: Nothing.
1976
2324
  //!
1977
2325
  //! <b>Complexity</b>: Constant.
1978
- BOOST_CONTAINER_FORCEINLINE
2326
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1979
2327
  reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW
1980
2328
  { return dtl::force_copy<reverse_iterator>(m_flat_tree.rend()); }
1981
2329
 
@@ -1985,7 +2333,7 @@ class flat_multimap
1985
2333
  //! <b>Throws</b>: Nothing.
1986
2334
  //!
1987
2335
  //! <b>Complexity</b>: Constant.
1988
- BOOST_CONTAINER_FORCEINLINE
2336
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1989
2337
  const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW
1990
2338
  { return dtl::force_copy<const_reverse_iterator>(m_flat_tree.rend()); }
1991
2339
 
@@ -1994,7 +2342,7 @@ class flat_multimap
1994
2342
  //! <b>Throws</b>: Nothing.
1995
2343
  //!
1996
2344
  //! <b>Complexity</b>: Constant.
1997
- BOOST_CONTAINER_FORCEINLINE
2345
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1998
2346
  const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW
1999
2347
  { return dtl::force_copy<const_iterator>(m_flat_tree.cbegin()); }
2000
2348
 
@@ -2003,7 +2351,7 @@ class flat_multimap
2003
2351
  //! <b>Throws</b>: Nothing.
2004
2352
  //!
2005
2353
  //! <b>Complexity</b>: Constant.
2006
- BOOST_CONTAINER_FORCEINLINE
2354
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2007
2355
  const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW
2008
2356
  { return dtl::force_copy<const_iterator>(m_flat_tree.cend()); }
2009
2357
 
@@ -2013,7 +2361,7 @@ class flat_multimap
2013
2361
  //! <b>Throws</b>: Nothing.
2014
2362
  //!
2015
2363
  //! <b>Complexity</b>: Constant.
2016
- BOOST_CONTAINER_FORCEINLINE
2364
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2017
2365
  const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW
2018
2366
  { return dtl::force_copy<const_reverse_iterator>(m_flat_tree.crbegin()); }
2019
2367
 
@@ -2023,7 +2371,7 @@ class flat_multimap
2023
2371
  //! <b>Throws</b>: Nothing.
2024
2372
  //!
2025
2373
  //! <b>Complexity</b>: Constant.
2026
- BOOST_CONTAINER_FORCEINLINE
2374
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2027
2375
  const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW
2028
2376
  { return dtl::force_copy<const_reverse_iterator>(m_flat_tree.crend()); }
2029
2377
 
@@ -2038,7 +2386,7 @@ class flat_multimap
2038
2386
  //! <b>Throws</b>: Nothing.
2039
2387
  //!
2040
2388
  //! <b>Complexity</b>: Constant.
2041
- BOOST_CONTAINER_FORCEINLINE
2389
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2042
2390
  bool empty() const BOOST_NOEXCEPT_OR_NOTHROW
2043
2391
  { return m_flat_tree.empty(); }
2044
2392
 
@@ -2047,7 +2395,7 @@ class flat_multimap
2047
2395
  //! <b>Throws</b>: Nothing.
2048
2396
  //!
2049
2397
  //! <b>Complexity</b>: Constant.
2050
- BOOST_CONTAINER_FORCEINLINE
2398
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2051
2399
  size_type size() const BOOST_NOEXCEPT_OR_NOTHROW
2052
2400
  { return m_flat_tree.size(); }
2053
2401
 
@@ -2056,7 +2404,7 @@ class flat_multimap
2056
2404
  //! <b>Throws</b>: Nothing.
2057
2405
  //!
2058
2406
  //! <b>Complexity</b>: Constant.
2059
- BOOST_CONTAINER_FORCEINLINE
2407
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2060
2408
  size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
2061
2409
  { return m_flat_tree.max_size(); }
2062
2410
 
@@ -2066,7 +2414,7 @@ class flat_multimap
2066
2414
  //! <b>Throws</b>: Nothing.
2067
2415
  //!
2068
2416
  //! <b>Complexity</b>: Constant.
2069
- BOOST_CONTAINER_FORCEINLINE
2417
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2070
2418
  size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
2071
2419
  { return m_flat_tree.capacity(); }
2072
2420
 
@@ -2080,7 +2428,7 @@ class flat_multimap
2080
2428
  //!
2081
2429
  //! <b>Note</b>: If capacity() is less than "cnt", iterators and references to
2082
2430
  //! to values might be invalidated.
2083
- BOOST_CONTAINER_FORCEINLINE
2431
+ inline
2084
2432
  void reserve(size_type cnt)
2085
2433
  { m_flat_tree.reserve(cnt); }
2086
2434
 
@@ -2090,27 +2438,27 @@ class flat_multimap
2090
2438
  //! <b>Throws</b>: If memory allocation throws, or T's copy constructor throws.
2091
2439
  //!
2092
2440
  //! <b>Complexity</b>: Linear to size().
2093
- BOOST_CONTAINER_FORCEINLINE
2441
+ inline
2094
2442
  void shrink_to_fit()
2095
2443
  { m_flat_tree.shrink_to_fit(); }
2096
2444
 
2097
2445
  //! @copydoc ::boost::container::flat_set::nth(size_type)
2098
- BOOST_CONTAINER_FORCEINLINE
2446
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2099
2447
  iterator nth(size_type n) BOOST_NOEXCEPT_OR_NOTHROW
2100
2448
  { return dtl::force_copy<iterator>(m_flat_tree.nth(n)); }
2101
2449
 
2102
2450
  //! @copydoc ::boost::container::flat_set::nth(size_type) const
2103
- BOOST_CONTAINER_FORCEINLINE
2451
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2104
2452
  const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
2105
- { return dtl::force_copy<iterator>(m_flat_tree.nth(n)); }
2453
+ { return dtl::force_copy<const_iterator>(m_flat_tree.nth(n)); }
2106
2454
 
2107
2455
  //! @copydoc ::boost::container::flat_set::index_of(iterator)
2108
- BOOST_CONTAINER_FORCEINLINE
2456
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2109
2457
  size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW
2110
2458
  { return m_flat_tree.index_of(dtl::force_copy<impl_iterator>(p)); }
2111
2459
 
2112
2460
  //! @copydoc ::boost::container::flat_set::index_of(const_iterator) const
2113
- BOOST_CONTAINER_FORCEINLINE
2461
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2114
2462
  size_type index_of(const_iterator p) const BOOST_NOEXCEPT_OR_NOTHROW
2115
2463
  { return m_flat_tree.index_of(dtl::force_copy<impl_const_iterator>(p)); }
2116
2464
 
@@ -2125,7 +2473,7 @@ class flat_multimap
2125
2473
  //!
2126
2474
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
2127
2475
  template <class... Args>
2128
- BOOST_CONTAINER_FORCEINLINE
2476
+ inline
2129
2477
  iterator emplace(BOOST_FWD_REF(Args)... args)
2130
2478
  { return dtl::force_copy<iterator>(m_flat_tree.emplace_equal(boost::forward<Args>(args)...)); }
2131
2479
 
@@ -2142,7 +2490,7 @@ class flat_multimap
2142
2490
  //!
2143
2491
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
2144
2492
  template <class... Args>
2145
- BOOST_CONTAINER_FORCEINLINE
2493
+ inline
2146
2494
  iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(Args)... args)
2147
2495
  {
2148
2496
  return dtl::force_copy<iterator>(m_flat_tree.emplace_hint_equal
@@ -2153,11 +2501,11 @@ class flat_multimap
2153
2501
 
2154
2502
  #define BOOST_CONTAINER_FLAT_MULTIMAP_EMPLACE_CODE(N) \
2155
2503
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
2156
- BOOST_CONTAINER_FORCEINLINE iterator emplace(BOOST_MOVE_UREF##N)\
2504
+ inline iterator emplace(BOOST_MOVE_UREF##N)\
2157
2505
  { return dtl::force_copy<iterator>(m_flat_tree.emplace_equal(BOOST_MOVE_FWD##N)); }\
2158
2506
  \
2159
2507
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
2160
- BOOST_CONTAINER_FORCEINLINE iterator emplace_hint(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
2508
+ inline iterator emplace_hint(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
2161
2509
  {\
2162
2510
  return dtl::force_copy<iterator>(m_flat_tree.emplace_hint_equal\
2163
2511
  (dtl::force_copy<impl_const_iterator>(hint) BOOST_MOVE_I##N BOOST_MOVE_FWD##N));\
@@ -2175,31 +2523,26 @@ class flat_multimap
2175
2523
  //! to the elements with bigger keys than x.
2176
2524
  //!
2177
2525
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
2178
- BOOST_CONTAINER_FORCEINLINE iterator insert(const value_type& x)
2526
+ inline iterator insert(const value_type& x)
2179
2527
  {
2180
2528
  return dtl::force_copy<iterator>(
2181
2529
  m_flat_tree.insert_equal(dtl::force<const impl_value_type>(x)));
2182
2530
  }
2183
2531
 
2184
- //! <b>Effects</b>: Inserts a new value move-constructed from x and returns
2185
- //! the iterator pointing to the newly inserted element.
2186
- //!
2187
- //! <b>Complexity</b>: Logarithmic search time plus linear insertion
2188
- //! to the elements with bigger keys than x.
2189
- //!
2190
- //! <b>Note</b>: If an element is inserted it might invalidate elements.
2191
- BOOST_CONTAINER_FORCEINLINE iterator insert(BOOST_RV_REF(value_type) x)
2192
- { return dtl::force_copy<iterator>(m_flat_tree.insert_equal(boost::move(x))); }
2193
-
2194
- //! <b>Effects</b>: Inserts a new value move-constructed from x and returns
2532
+ //! <b>Effects</b>: Inserts a new value constructed from x and returns
2195
2533
  //! the iterator pointing to the newly inserted element.
2196
2534
  //!
2197
2535
  //! <b>Complexity</b>: Logarithmic search time plus linear insertion
2198
2536
  //! to the elements with bigger keys than x.
2199
2537
  //!
2200
2538
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
2201
- BOOST_CONTAINER_FORCEINLINE iterator insert(BOOST_RV_REF(impl_value_type) x)
2202
- { return dtl::force_copy<iterator>(m_flat_tree.insert_equal(boost::move(x))); }
2539
+ template<class Pair>
2540
+ inline BOOST_CONTAINER_DOC1ST
2541
+ ( iterator
2542
+ , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I dtl_pair_t>::value
2543
+ BOOST_MOVE_I iterator >::type)
2544
+ insert(BOOST_FWD_REF(Pair) x)
2545
+ { return dtl::force_copy<iterator>(m_flat_tree.emplace_equal(boost::forward<Pair>(x))); }
2203
2546
 
2204
2547
  //! <b>Effects</b>: Inserts a copy of x in the container.
2205
2548
  //! p is a hint pointing to where the insert should start to search.
@@ -2212,32 +2555,14 @@ class flat_multimap
2212
2555
  //! to the elements with bigger keys than x.
2213
2556
  //!
2214
2557
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
2215
- BOOST_CONTAINER_FORCEINLINE iterator insert(const_iterator p, const value_type& x)
2558
+ inline iterator insert(const_iterator p, const value_type& x)
2216
2559
  {
2217
2560
  return dtl::force_copy<iterator>
2218
2561
  (m_flat_tree.insert_equal( dtl::force_copy<impl_const_iterator>(p)
2219
2562
  , dtl::force<const impl_value_type>(x)));
2220
2563
  }
2221
2564
 
2222
- //! <b>Effects</b>: Inserts a value move constructed from x in the container.
2223
- //! p is a hint pointing to where the insert should start to search.
2224
- //!
2225
- //! <b>Returns</b>: An iterator pointing to the element with key equivalent
2226
- //! to the key of x.
2227
- //!
2228
- //! <b>Complexity</b>: Logarithmic search time (constant time if the value
2229
- //! is to be inserted before p) plus linear insertion
2230
- //! to the elements with bigger keys than x.
2231
- //!
2232
- //! <b>Note</b>: If an element is inserted it might invalidate elements.
2233
- BOOST_CONTAINER_FORCEINLINE iterator insert(const_iterator p, BOOST_RV_REF(value_type) x)
2234
- {
2235
- return dtl::force_copy<iterator>
2236
- (m_flat_tree.insert_equal(dtl::force_copy<impl_const_iterator>(p)
2237
- , boost::move(x)));
2238
- }
2239
-
2240
- //! <b>Effects</b>: Inserts a value move constructed from x in the container.
2565
+ //! <b>Effects</b>: Inserts a value constructed from x in the container.
2241
2566
  //! p is a hint pointing to where the insert should start to search.
2242
2567
  //!
2243
2568
  //! <b>Returns</b>: An iterator pointing to the element with key equivalent
@@ -2248,10 +2573,15 @@ class flat_multimap
2248
2573
  //! to the elements with bigger keys than x.
2249
2574
  //!
2250
2575
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
2251
- BOOST_CONTAINER_FORCEINLINE iterator insert(const_iterator p, BOOST_RV_REF(impl_value_type) x)
2576
+ template<class Pair>
2577
+ inline BOOST_CONTAINER_DOC1ST
2578
+ ( iterator
2579
+ , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I dtl_pair_t>::value
2580
+ BOOST_MOVE_I iterator>::type)
2581
+ insert(const_iterator p, BOOST_FWD_REF(Pair) x)
2252
2582
  {
2253
2583
  return dtl::force_copy<iterator>(
2254
- m_flat_tree.insert_equal(dtl::force_copy<impl_const_iterator>(p), boost::move(x)));
2584
+ m_flat_tree.emplace_hint_equal(dtl::force_copy<impl_const_iterator>(p), boost::forward<Pair>(x)));
2255
2585
  }
2256
2586
 
2257
2587
  //! <b>Requires</b>: first, last are not iterators into *this.
@@ -2262,7 +2592,7 @@ class flat_multimap
2262
2592
  //!
2263
2593
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
2264
2594
  template <class InputIterator>
2265
- BOOST_CONTAINER_FORCEINLINE void insert(InputIterator first, InputIterator last)
2595
+ inline void insert(InputIterator first, InputIterator last)
2266
2596
  { m_flat_tree.insert_equal(first, last); }
2267
2597
 
2268
2598
  //! <b>Requires</b>: first, last are not iterators into *this.
@@ -2279,7 +2609,7 @@ class flat_multimap
2279
2609
  //!
2280
2610
  //! <b>Note</b>: Non-standard extension.
2281
2611
  template <class InputIterator>
2282
- BOOST_CONTAINER_FORCEINLINE void insert(ordered_range_t, InputIterator first, InputIterator last)
2612
+ inline void insert(ordered_range_t, InputIterator first, InputIterator last)
2283
2613
  { m_flat_tree.insert_equal(ordered_range, first, last); }
2284
2614
 
2285
2615
  #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
@@ -2288,7 +2618,7 @@ class flat_multimap
2288
2618
  //! <b>Complexity</b>: N log(N).
2289
2619
  //!
2290
2620
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
2291
- BOOST_CONTAINER_FORCEINLINE void insert(std::initializer_list<value_type> il)
2621
+ inline void insert(std::initializer_list<value_type> il)
2292
2622
  {
2293
2623
  m_flat_tree.insert_equal( dtl::force<impl_initializer_list>(il).begin()
2294
2624
  , dtl::force<impl_initializer_list>(il).end());
@@ -2305,7 +2635,7 @@ class flat_multimap
2305
2635
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
2306
2636
  //!
2307
2637
  //! <b>Note</b>: Non-standard extension.
2308
- BOOST_CONTAINER_FORCEINLINE void insert(ordered_range_t, std::initializer_list<value_type> il)
2638
+ inline void insert(ordered_range_t, std::initializer_list<value_type> il)
2309
2639
  {
2310
2640
  m_flat_tree.insert_equal( ordered_range
2311
2641
  , dtl::force<impl_initializer_list>(il).begin()
@@ -2315,34 +2645,29 @@ class flat_multimap
2315
2645
 
2316
2646
  //! <b>Requires</b>: this->get_allocator() == source.get_allocator().
2317
2647
  //!
2318
- //! <b>Effects</b>: Extracts each element in source and insert it into a using
2648
+ //! <b>Effects</b>: Move-inserts each element from source into *this a using
2319
2649
  //! the comparison object of *this.
2320
- //!
2321
- //! <b>Postcondition</b>: Pointers and references to the transferred elements of source refer
2322
- //! to those same elements but as members of *this. Iterators referring to the transferred
2323
- //! elements will continue to refer to their elements, but they now behave as iterators into *this,
2324
- //! not into source.
2325
2650
  //!
2326
- //! <b>Throws</b>: Nothing unless the comparison object throws.
2651
+ //! <b>Complexity</b>: Linear in this->size() + source.size().
2327
2652
  //!
2328
- //! <b>Complexity</b>: N log(a.size() + N) (N has the value source.size())
2653
+ //! <b>Note</b>: Invalidates all iterators and references.
2329
2654
  template<class C2>
2330
- BOOST_CONTAINER_FORCEINLINE void merge(flat_multimap<Key, T, C2, AllocatorOrContainer>& source)
2655
+ inline void merge(flat_multimap<Key, T, C2, AllocatorOrContainer>& source)
2331
2656
  { m_flat_tree.merge_equal(source.tree()); }
2332
2657
 
2333
2658
  //! @copydoc ::boost::container::flat_multimap::merge(flat_multimap<Key, T, C2, AllocatorOrContainer>&)
2334
2659
  template<class C2>
2335
- BOOST_CONTAINER_FORCEINLINE void merge(BOOST_RV_REF_BEG flat_multimap<Key, T, C2, AllocatorOrContainer> BOOST_RV_REF_END source)
2660
+ inline void merge(BOOST_RV_REF_BEG flat_multimap<Key, T, C2, AllocatorOrContainer> BOOST_RV_REF_END source)
2336
2661
  { return this->merge(static_cast<flat_multimap<Key, T, C2, AllocatorOrContainer>&>(source)); }
2337
2662
 
2338
2663
  //! @copydoc ::boost::container::flat_multimap::merge(flat_multimap<Key, T, C2, AllocatorOrContainer>&)
2339
2664
  template<class C2>
2340
- BOOST_CONTAINER_FORCEINLINE void merge(flat_map<Key, T, C2, AllocatorOrContainer>& source)
2665
+ inline void merge(flat_map<Key, T, C2, AllocatorOrContainer>& source)
2341
2666
  { m_flat_tree.merge_equal(source.tree()); }
2342
2667
 
2343
2668
  //! @copydoc ::boost::container::flat_multimap::merge(flat_map<Key, T, C2, AllocatorOrContainer>&)
2344
2669
  template<class C2>
2345
- BOOST_CONTAINER_FORCEINLINE void merge(BOOST_RV_REF_BEG flat_map<Key, T, C2, AllocatorOrContainer> BOOST_RV_REF_END source)
2670
+ inline void merge(BOOST_RV_REF_BEG flat_map<Key, T, C2, AllocatorOrContainer> BOOST_RV_REF_END source)
2346
2671
  { return this->merge(static_cast<flat_map<Key, T, C2, AllocatorOrContainer>&>(source)); }
2347
2672
 
2348
2673
  //! <b>Effects</b>: Erases the element pointed to by p.
@@ -2355,7 +2680,7 @@ class flat_multimap
2355
2680
  //!
2356
2681
  //! <b>Note</b>: Invalidates elements with keys
2357
2682
  //! not less than the erased element.
2358
- BOOST_CONTAINER_FORCEINLINE iterator erase(const_iterator p)
2683
+ inline iterator erase(const_iterator p)
2359
2684
  {
2360
2685
  return dtl::force_copy<iterator>(
2361
2686
  m_flat_tree.erase(dtl::force_copy<impl_const_iterator>(p)));
@@ -2367,7 +2692,24 @@ class flat_multimap
2367
2692
  //!
2368
2693
  //! <b>Complexity</b>: Logarithmic search time plus erasure time
2369
2694
  //! linear to the elements with bigger keys.
2370
- BOOST_CONTAINER_FORCEINLINE size_type erase(const key_type& x)
2695
+ inline size_type erase(const key_type& x)
2696
+ { return m_flat_tree.erase(x); }
2697
+
2698
+ //! <b>Requires</b>: This overload is available only if
2699
+ //! key_compare::is_transparent exists.
2700
+ //!
2701
+ //! <b>Effects</b>: Erases all elements in the container with key equivalent to x.
2702
+ //!
2703
+ //! <b>Returns</b>: Returns the number of erased elements.
2704
+ template <class K>
2705
+ inline BOOST_CONTAINER_DOC1ST
2706
+ (size_type
2707
+ , typename dtl::enable_if_c<
2708
+ dtl::is_transparent<key_compare>::value && //transparent
2709
+ !dtl::is_convertible<K BOOST_MOVE_I iterator>::value && //not convertible to iterator
2710
+ !dtl::is_convertible<K BOOST_MOVE_I const_iterator>::value //not convertible to const_iterator
2711
+ BOOST_MOVE_I size_type>::type)
2712
+ erase(const K& x)
2371
2713
  { return m_flat_tree.erase(x); }
2372
2714
 
2373
2715
  //! <b>Effects</b>: Erases all the elements in the range [first, last).
@@ -2378,7 +2720,7 @@ class flat_multimap
2378
2720
  //!
2379
2721
  //! <b>Complexity</b>: Logarithmic search time plus erasure time
2380
2722
  //! linear to the elements with bigger keys.
2381
- BOOST_CONTAINER_FORCEINLINE iterator erase(const_iterator first, const_iterator last)
2723
+ inline iterator erase(const_iterator first, const_iterator last)
2382
2724
  {
2383
2725
  return dtl::force_copy<iterator>
2384
2726
  (m_flat_tree.erase( dtl::force_copy<impl_const_iterator>(first)
@@ -2390,17 +2732,17 @@ class flat_multimap
2390
2732
  //! <b>Throws</b>: Nothing.
2391
2733
  //!
2392
2734
  //! <b>Complexity</b>: Constant.
2393
- BOOST_CONTAINER_FORCEINLINE void swap(flat_multimap& x)
2735
+ inline void swap(flat_multimap& x)
2394
2736
  BOOST_NOEXCEPT_IF( allocator_traits_type::is_always_equal::value
2395
2737
  && boost::container::dtl::is_nothrow_swappable<Compare>::value )
2396
2738
  { m_flat_tree.swap(x.m_flat_tree); }
2397
2739
 
2398
- //! <b>Effects</b>: erase(a.begin(),a.end()).
2740
+ //! <b>Effects</b>: erase(begin(),end()).
2399
2741
  //!
2400
2742
  //! <b>Postcondition</b>: size() == 0.
2401
2743
  //!
2402
2744
  //! <b>Complexity</b>: linear in size().
2403
- BOOST_CONTAINER_FORCEINLINE void clear() BOOST_NOEXCEPT_OR_NOTHROW
2745
+ inline void clear() BOOST_NOEXCEPT_OR_NOTHROW
2404
2746
  { m_flat_tree.clear(); }
2405
2747
 
2406
2748
  //////////////////////////////////////////////
@@ -2413,14 +2755,16 @@ class flat_multimap
2413
2755
  //! of which a was constructed.
2414
2756
  //!
2415
2757
  //! <b>Complexity</b>: Constant.
2416
- BOOST_CONTAINER_FORCEINLINE key_compare key_comp() const
2758
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2759
+ key_compare key_comp() const
2417
2760
  { return dtl::force_copy<key_compare>(m_flat_tree.key_comp()); }
2418
2761
 
2419
2762
  //! <b>Effects</b>: Returns an object of value_compare constructed out
2420
2763
  //! of the comparison object.
2421
2764
  //!
2422
2765
  //! <b>Complexity</b>: Constant.
2423
- BOOST_CONTAINER_FORCEINLINE value_compare value_comp() const
2766
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2767
+ value_compare value_comp() const
2424
2768
  { return value_compare(dtl::force_copy<key_compare>(m_flat_tree.key_comp())); }
2425
2769
 
2426
2770
  //////////////////////////////////////////////
@@ -2433,60 +2777,194 @@ class flat_multimap
2433
2777
  //! equivalent to x, or end() if such an element is not found.
2434
2778
  //!
2435
2779
  //! <b>Complexity</b>: Logarithmic.
2436
- BOOST_CONTAINER_FORCEINLINE iterator find(const key_type& x)
2780
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2781
+ iterator find(const key_type& x)
2782
+ { return dtl::force_copy<iterator>(m_flat_tree.find(x)); }
2783
+
2784
+ //! <b>Returns</b>: An const_iterator pointing to an element with the key
2785
+ //! equivalent to x, or end() if such an element is not found.
2786
+ //!
2787
+ //! <b>Complexity</b>: Logarithmic.
2788
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2789
+ const_iterator find(const key_type& x) const
2790
+ { return dtl::force_copy<const_iterator>(m_flat_tree.find(x)); }
2791
+
2792
+ //! <b>Requires</b>: This overload is available only if
2793
+ //! key_compare::is_transparent exists.
2794
+ //!
2795
+ //! <b>Returns</b>: An iterator pointing to an element with the key
2796
+ //! equivalent to x, or end() if such an element is not found.
2797
+ //!
2798
+ //! <b>Complexity</b>: Logarithmic.
2799
+ template<class K>
2800
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2801
+ iterator find(const K& x)
2437
2802
  { return dtl::force_copy<iterator>(m_flat_tree.find(x)); }
2438
2803
 
2804
+ //! <b>Requires</b>: This overload is available only if
2805
+ //! key_compare::is_transparent exists.
2806
+ //!
2439
2807
  //! <b>Returns</b>: An const_iterator pointing to an element with the key
2440
2808
  //! equivalent to x, or end() if such an element is not found.
2441
2809
  //!
2442
2810
  //! <b>Complexity</b>: Logarithmic.
2443
- BOOST_CONTAINER_FORCEINLINE const_iterator find(const key_type& x) const
2811
+ template<class K>
2812
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2813
+ const_iterator find(const K& x) const
2444
2814
  { return dtl::force_copy<const_iterator>(m_flat_tree.find(x)); }
2445
2815
 
2446
2816
  //! <b>Returns</b>: The number of elements with key equivalent to x.
2447
2817
  //!
2448
2818
  //! <b>Complexity</b>: log(size())+count(k)
2449
- BOOST_CONTAINER_FORCEINLINE size_type count(const key_type& x) const
2819
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2820
+ size_type count(const key_type& x) const
2821
+ { return m_flat_tree.count(x); }
2822
+
2823
+ //! <b>Requires</b>: This overload is available only if
2824
+ //! key_compare::is_transparent exists.
2825
+ //!
2826
+ //! <b>Returns</b>: The number of elements with key equivalent to x.
2827
+ //!
2828
+ //! <b>Complexity</b>: log(size())+count(k)
2829
+ template<class K>
2830
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2831
+ size_type count(const K& x) const
2450
2832
  { return m_flat_tree.count(x); }
2451
2833
 
2834
+ //! <b>Returns</b>: Returns true if there is an element with key
2835
+ //! equivalent to key in the container, otherwise false.
2836
+ //!
2837
+ //! <b>Complexity</b>: log(size()).
2838
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2839
+ bool contains(const key_type& x) const
2840
+ { return m_flat_tree.find(x) != m_flat_tree.end(); }
2841
+
2842
+ //! <b>Requires</b>: This overload is available only if
2843
+ //! key_compare::is_transparent exists.
2844
+ //!
2845
+ //! <b>Returns</b>: Returns true if there is an element with key
2846
+ //! equivalent to key in the container, otherwise false.
2847
+ //!
2848
+ //! <b>Complexity</b>: log(size()).
2849
+ template<typename K>
2850
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2851
+ bool contains(const K& x) const
2852
+ { return m_flat_tree.find(x) != m_flat_tree.end(); }
2853
+
2452
2854
  //! <b>Returns</b>: An iterator pointing to the first element with key not less
2453
- //! than k, or a.end() if such an element is not found.
2855
+ //! than x, or end() if such an element is not found.
2454
2856
  //!
2455
2857
  //! <b>Complexity</b>: Logarithmic
2456
- BOOST_CONTAINER_FORCEINLINE iterator lower_bound(const key_type& x)
2858
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2859
+ iterator lower_bound(const key_type& x)
2457
2860
  { return dtl::force_copy<iterator>(m_flat_tree.lower_bound(x)); }
2458
2861
 
2459
- //! <b>Returns</b>: A const iterator pointing to the first element with key
2460
- //! not less than k, or a.end() if such an element is not found.
2862
+ //! <b>Returns</b>: An iterator pointing to the first element with key not less
2863
+ //! than x, or end() if such an element is not found.
2864
+ //!
2865
+ //! <b>Complexity</b>: Logarithmic
2866
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2867
+ const_iterator lower_bound(const key_type& x) const
2868
+ { return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound(x)); }
2869
+
2870
+ //! <b>Requires</b>: This overload is available only if
2871
+ //! key_compare::is_transparent exists.
2872
+ //!
2873
+ //! <b>Returns</b>: An iterator pointing to the first element with key not less
2874
+ //! than x, or end() if such an element is not found.
2461
2875
  //!
2462
2876
  //! <b>Complexity</b>: Logarithmic
2463
- BOOST_CONTAINER_FORCEINLINE const_iterator lower_bound(const key_type& x) const
2464
- { return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound(x)); }
2877
+ template<class K>
2878
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2879
+ iterator lower_bound(const K& x)
2880
+ { return dtl::force_copy<iterator>(m_flat_tree.lower_bound(x)); }
2465
2881
 
2882
+ //! <b>Requires</b>: This overload is available only if
2883
+ //! key_compare::is_transparent exists.
2884
+ //!
2466
2885
  //! <b>Returns</b>: An iterator pointing to the first element with key not less
2467
2886
  //! than x, or end() if such an element is not found.
2468
2887
  //!
2469
2888
  //! <b>Complexity</b>: Logarithmic
2470
- BOOST_CONTAINER_FORCEINLINE iterator upper_bound(const key_type& x)
2889
+ template<class K>
2890
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2891
+ const_iterator lower_bound(const K& x) const
2892
+ { return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound(x)); }
2893
+
2894
+ //! <b>Returns</b>: An iterator pointing to the first element with key greater
2895
+ //! than x, or end() if such an element is not found.
2896
+ //!
2897
+ //! <b>Complexity</b>: Logarithmic
2898
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2899
+ iterator upper_bound(const key_type& x)
2471
2900
  {return dtl::force_copy<iterator>(m_flat_tree.upper_bound(x)); }
2472
2901
 
2473
2902
  //! <b>Returns</b>: A const iterator pointing to the first element with key
2474
- //! not less than x, or end() if such an element is not found.
2903
+ //! greater than x, or end() if such an element is not found.
2475
2904
  //!
2476
2905
  //! <b>Complexity</b>: Logarithmic
2477
- BOOST_CONTAINER_FORCEINLINE const_iterator upper_bound(const key_type& x) const
2906
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2907
+ const_iterator upper_bound(const key_type& x) const
2908
+ { return dtl::force_copy<const_iterator>(m_flat_tree.upper_bound(x)); }
2909
+
2910
+ //! <b>Requires</b>: This overload is available only if
2911
+ //! key_compare::is_transparent exists.
2912
+ //!
2913
+ //! <b>Returns</b>: An iterator pointing to the first element with key greater
2914
+ //! than x, or end() if such an element is not found.
2915
+ //!
2916
+ //! <b>Complexity</b>: Logarithmic
2917
+ template<class K>
2918
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2919
+ iterator upper_bound(const K& x)
2920
+ {return dtl::force_copy<iterator>(m_flat_tree.upper_bound(x)); }
2921
+
2922
+ //! <b>Requires</b>: This overload is available only if
2923
+ //! key_compare::is_transparent exists.
2924
+ //!
2925
+ //! <b>Returns</b>: A const iterator pointing to the first element with key
2926
+ //! greater than x, or end() if such an element is not found.
2927
+ //!
2928
+ //! <b>Complexity</b>: Logarithmic
2929
+ template<class K>
2930
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2931
+ const_iterator upper_bound(const K& x) const
2478
2932
  { return dtl::force_copy<const_iterator>(m_flat_tree.upper_bound(x)); }
2479
2933
 
2480
2934
  //! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
2481
2935
  //!
2482
2936
  //! <b>Complexity</b>: Logarithmic
2483
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator,iterator> equal_range(const key_type& x)
2937
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2938
+ std::pair<iterator,iterator> equal_range(const key_type& x)
2484
2939
  { return dtl::force_copy<std::pair<iterator,iterator> >(m_flat_tree.equal_range(x)); }
2485
2940
 
2486
2941
  //! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
2487
2942
  //!
2488
2943
  //! <b>Complexity</b>: Logarithmic
2489
- BOOST_CONTAINER_FORCEINLINE std::pair<const_iterator, const_iterator> equal_range(const key_type& x) const
2944
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2945
+ std::pair<const_iterator, const_iterator> equal_range(const key_type& x) const
2946
+ { return dtl::force_copy<std::pair<const_iterator,const_iterator> >(m_flat_tree.equal_range(x)); }
2947
+
2948
+ //! <b>Requires</b>: This overload is available only if
2949
+ //! key_compare::is_transparent exists.
2950
+ //!
2951
+ //! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
2952
+ //!
2953
+ //! <b>Complexity</b>: Logarithmic
2954
+ template<class K>
2955
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2956
+ std::pair<iterator,iterator> equal_range(const K& x)
2957
+ { return dtl::force_copy<std::pair<iterator,iterator> >(m_flat_tree.equal_range(x)); }
2958
+
2959
+ //! <b>Requires</b>: This overload is available only if
2960
+ //! key_compare::is_transparent exists.
2961
+ //!
2962
+ //! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
2963
+ //!
2964
+ //! <b>Complexity</b>: Logarithmic
2965
+ template<class K>
2966
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2967
+ std::pair<const_iterator, const_iterator> equal_range(const K& x) const
2490
2968
  { return dtl::force_copy<std::pair<const_iterator,const_iterator> >(m_flat_tree.equal_range(x)); }
2491
2969
 
2492
2970
  //! <b>Effects</b>: Extracts the internal sequence container.
@@ -2496,10 +2974,9 @@ class flat_multimap
2496
2974
  //! <b>Postcondition</b>: this->empty()
2497
2975
  //!
2498
2976
  //! <b>Throws</b>: If secuence_type's move constructor throws
2499
- BOOST_CONTAINER_FORCEINLINE sequence_type extract_sequence()
2500
- {
2501
- return boost::move(dtl::force<sequence_type>(m_flat_tree.get_sequence_ref()));
2502
- }
2977
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2978
+ sequence_type extract_sequence()
2979
+ { return boost::move(dtl::force<sequence_type>(m_flat_tree.get_sequence_ref())); }
2503
2980
 
2504
2981
  //! <b>Effects</b>: Discards the internally hold sequence container and adopts the
2505
2982
  //! one passed externally using the move assignment.
@@ -2507,7 +2984,7 @@ class flat_multimap
2507
2984
  //! <b>Complexity</b>: Assuming O(1) move assignment, O(NlogN) with N = seq.size()
2508
2985
  //!
2509
2986
  //! <b>Throws</b>: If the comparison or the move constructor throws
2510
- BOOST_CONTAINER_FORCEINLINE void adopt_sequence(BOOST_RV_REF(sequence_type) seq)
2987
+ inline void adopt_sequence(BOOST_RV_REF(sequence_type) seq)
2511
2988
  { this->m_flat_tree.adopt_sequence_equal(boost::move(dtl::force<impl_sequence_type>(seq))); }
2512
2989
 
2513
2990
  //! <b>Requires</b>: seq shall be ordered according to this->compare().
@@ -2518,52 +2995,135 @@ class flat_multimap
2518
2995
  //! <b>Complexity</b>: Assuming O(1) move assignment, O(1)
2519
2996
  //!
2520
2997
  //! <b>Throws</b>: If the move assignment throws
2521
- BOOST_CONTAINER_FORCEINLINE void adopt_sequence(ordered_range_t, BOOST_RV_REF(sequence_type) seq)
2998
+ inline void adopt_sequence(ordered_range_t, BOOST_RV_REF(sequence_type) seq)
2522
2999
  { this->m_flat_tree.adopt_sequence_equal(ordered_range_t(), boost::move(dtl::force<impl_sequence_type>(seq))); }
2523
3000
 
3001
+ //! <b>Effects</b>: Returns a const view of the underlying sequence.
3002
+ //!
3003
+ //! <b>Complexity</b>: Constant
3004
+ //!
3005
+ //! <b>Throws</b>: Nothing
3006
+ inline const sequence_type & sequence() const BOOST_NOEXCEPT
3007
+ { return dtl::force<sequence_type>(m_flat_tree.get_sequence_cref()); }
3008
+
2524
3009
  //! <b>Effects</b>: Returns true if x and y are equal
2525
3010
  //!
2526
3011
  //! <b>Complexity</b>: Linear to the number of elements in the container.
2527
- BOOST_CONTAINER_FORCEINLINE friend bool operator==(const flat_multimap& x, const flat_multimap& y)
3012
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
3013
+ friend bool operator==(const flat_multimap& x, const flat_multimap& y)
2528
3014
  { return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); }
2529
3015
 
2530
3016
  //! <b>Effects</b>: Returns true if x and y are unequal
2531
3017
  //!
2532
3018
  //! <b>Complexity</b>: Linear to the number of elements in the container.
2533
- BOOST_CONTAINER_FORCEINLINE friend bool operator!=(const flat_multimap& x, const flat_multimap& y)
3019
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
3020
+ friend bool operator!=(const flat_multimap& x, const flat_multimap& y)
2534
3021
  { return !(x == y); }
2535
3022
 
2536
3023
  //! <b>Effects</b>: Returns true if x is less than y
2537
3024
  //!
2538
3025
  //! <b>Complexity</b>: Linear to the number of elements in the container.
2539
- BOOST_CONTAINER_FORCEINLINE friend bool operator<(const flat_multimap& x, const flat_multimap& y)
3026
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
3027
+ friend bool operator<(const flat_multimap& x, const flat_multimap& y)
2540
3028
  { return ::boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); }
2541
3029
 
2542
3030
  //! <b>Effects</b>: Returns true if x is greater than y
2543
3031
  //!
2544
3032
  //! <b>Complexity</b>: Linear to the number of elements in the container.
2545
- BOOST_CONTAINER_FORCEINLINE friend bool operator>(const flat_multimap& x, const flat_multimap& y)
3033
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
3034
+ friend bool operator>(const flat_multimap& x, const flat_multimap& y)
2546
3035
  { return y < x; }
2547
3036
 
2548
3037
  //! <b>Effects</b>: Returns true if x is equal or less than y
2549
3038
  //!
2550
3039
  //! <b>Complexity</b>: Linear to the number of elements in the container.
2551
- BOOST_CONTAINER_FORCEINLINE friend bool operator<=(const flat_multimap& x, const flat_multimap& y)
3040
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
3041
+ friend bool operator<=(const flat_multimap& x, const flat_multimap& y)
2552
3042
  { return !(y < x); }
2553
3043
 
2554
3044
  //! <b>Effects</b>: Returns true if x is equal or greater than y
2555
3045
  //!
2556
3046
  //! <b>Complexity</b>: Linear to the number of elements in the container.
2557
- BOOST_CONTAINER_FORCEINLINE friend bool operator>=(const flat_multimap& x, const flat_multimap& y)
3047
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
3048
+ friend bool operator>=(const flat_multimap& x, const flat_multimap& y)
2558
3049
  { return !(x < y); }
2559
3050
 
2560
3051
  //! <b>Effects</b>: x.swap(y)
2561
3052
  //!
2562
3053
  //! <b>Complexity</b>: Constant.
2563
- BOOST_CONTAINER_FORCEINLINE friend void swap(flat_multimap& x, flat_multimap& y)
3054
+ inline friend void swap(flat_multimap& x, flat_multimap& y)
3055
+ BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT(x.swap(y)))
2564
3056
  { x.swap(y); }
2565
3057
  };
2566
3058
 
3059
+ #if defined(BOOST_GCC) && (BOOST_GCC >= 100000) && !defined(BOOST_CONTAINER_STD_PAIR_IS_MOVABLE)
3060
+ #pragma GCC pop_options
3061
+ #endif
3062
+
3063
+ #ifndef BOOST_CONTAINER_NO_CXX17_CTAD
3064
+
3065
+ template <typename InputIterator>
3066
+ flat_multimap(InputIterator, InputIterator) ->
3067
+ flat_multimap< it_based_non_const_first_type_t<InputIterator>
3068
+ , it_based_second_type_t<InputIterator>>;
3069
+
3070
+ template < typename InputIterator, typename AllocatorOrCompare>
3071
+ flat_multimap(InputIterator, InputIterator, AllocatorOrCompare const&) ->
3072
+ flat_multimap< it_based_non_const_first_type_t<InputIterator>
3073
+ , it_based_second_type_t<InputIterator>
3074
+ , typename dtl::if_c< // Compare
3075
+ dtl::is_allocator<AllocatorOrCompare>::value
3076
+ , std::less<it_based_non_const_first_type_t<InputIterator>>
3077
+ , AllocatorOrCompare
3078
+ >::type
3079
+ , typename dtl::if_c< // Allocator
3080
+ dtl::is_allocator<AllocatorOrCompare>::value
3081
+ , AllocatorOrCompare
3082
+ , new_allocator<std::pair<it_based_non_const_first_type_t<InputIterator>, it_based_second_type_t<InputIterator>>>
3083
+ >::type
3084
+ >;
3085
+
3086
+ template < typename InputIterator, typename Compare, typename Allocator
3087
+ , typename = dtl::require_nonallocator_t<Compare>
3088
+ , typename = dtl::require_allocator_t<Allocator>>
3089
+ flat_multimap(InputIterator, InputIterator, Compare const&, Allocator const&) ->
3090
+ flat_multimap< it_based_non_const_first_type_t<InputIterator>
3091
+ , it_based_second_type_t<InputIterator>
3092
+ , Compare
3093
+ , Allocator>;
3094
+
3095
+ template <typename InputIterator>
3096
+ flat_multimap(ordered_range_t, InputIterator, InputIterator) ->
3097
+ flat_multimap< it_based_non_const_first_type_t<InputIterator>
3098
+ , it_based_second_type_t<InputIterator>>;
3099
+
3100
+ template < typename InputIterator, typename AllocatorOrCompare>
3101
+ flat_multimap(ordered_range_t, InputIterator, InputIterator, AllocatorOrCompare const&) ->
3102
+ flat_multimap< it_based_non_const_first_type_t<InputIterator>
3103
+ , it_based_second_type_t<InputIterator>
3104
+ , typename dtl::if_c< // Compare
3105
+ dtl::is_allocator<AllocatorOrCompare>::value
3106
+ , std::less<it_based_non_const_first_type_t<InputIterator>>
3107
+ , AllocatorOrCompare
3108
+ >::type
3109
+ , typename dtl::if_c< // Allocator
3110
+ dtl::is_allocator<AllocatorOrCompare>::value
3111
+ , AllocatorOrCompare
3112
+ , new_allocator<std::pair<it_based_non_const_first_type_t<InputIterator>, it_based_second_type_t<InputIterator>>>
3113
+ >::type
3114
+ >;
3115
+
3116
+ template < typename InputIterator, typename Compare, typename Allocator
3117
+ , typename = dtl::require_nonallocator_t<Compare>
3118
+ , typename = dtl::require_allocator_t<Allocator>>
3119
+ flat_multimap(ordered_range_t, InputIterator, InputIterator, Compare const&, Allocator const&) ->
3120
+ flat_multimap< it_based_non_const_first_type_t<InputIterator>
3121
+ , it_based_second_type_t<InputIterator>
3122
+ , Compare
3123
+ , Allocator>;
3124
+
3125
+ #endif
3126
+
2567
3127
  }}
2568
3128
 
2569
3129
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
@@ -2575,10 +3135,10 @@ namespace boost {
2575
3135
  template <class Key, class T, class Compare, class AllocatorOrContainer>
2576
3136
  struct has_trivial_destructor_after_move< boost::container::flat_multimap<Key, T, Compare, AllocatorOrContainer> >
2577
3137
  {
2578
- typedef typename ::boost::container::allocator_traits<AllocatorOrContainer>::pointer pointer;
2579
- static const bool value = ::boost::has_trivial_destructor_after_move<AllocatorOrContainer>::value &&
2580
- ::boost::has_trivial_destructor_after_move<pointer>::value &&
2581
- ::boost::has_trivial_destructor_after_move<Compare>::value;
3138
+ typedef typename boost::container::flat_multimap<Key, T, Compare, AllocatorOrContainer>::value_type value_t;
3139
+ typedef typename ::boost::container::dtl::container_or_allocator_rebind<AllocatorOrContainer, value_t>::type alloc_or_cont_t;
3140
+ typedef ::boost::container::dtl::flat_tree<value_t,::boost::container::dtl::select1st<Key>, Compare, alloc_or_cont_t> tree;
3141
+ BOOST_STATIC_CONSTEXPR bool value = ::boost::has_trivial_destructor_after_move<tree>::value;
2582
3142
  };
2583
3143
 
2584
3144
  } //namespace boost {