passenger 6.0.14 → 6.0.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1978) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG +380 -85
  3. data/CONTRIBUTING.md +2 -2
  4. data/CONTRIBUTORS +8 -0
  5. data/LICENSE +1 -1
  6. data/README.md +3 -3
  7. data/Rakefile +15 -4
  8. data/bin/passenger +2 -2
  9. data/bin/passenger-config +2 -2
  10. data/bin/passenger-install-apache2-module +7 -2
  11. data/bin/passenger-install-nginx-module +24 -8
  12. data/bin/passenger-memory-stats +2 -2
  13. data/bin/passenger-status +2 -2
  14. data/build/agent.rb +2 -4
  15. data/build/apache2.rb +3 -3
  16. data/build/basics.rb +14 -6
  17. data/build/common_library.rb +3 -8
  18. data/build/cxx_tests.rb +20 -9
  19. data/build/integration_tests.rb +10 -9
  20. data/build/misc.rb +2 -4
  21. data/build/nginx.rb +2 -2
  22. data/build/node_tests.rb +2 -2
  23. data/build/oxt_tests.rb +2 -2
  24. data/build/packaging.rb +2 -2
  25. data/build/ruby_extension.rb +2 -2
  26. data/build/ruby_tests.rb +3 -3
  27. data/build/schema_printer.rb +2 -4
  28. data/build/support/cplusplus.rb +2 -2
  29. data/build/support/cxx_dependency_map.rb +249 -311
  30. data/build/support/general.rb +2 -2
  31. data/build/support/vendor/cxx_hinted_parser/LICENSE.md +1 -1
  32. data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser/parser.rb +2 -2
  33. data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser.rb +2 -2
  34. data/build/support/vendor/cxxcodebuilder/LICENSE.md +1 -1
  35. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +2 -2
  36. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/initializer_builder.rb +2 -2
  37. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder.rb +2 -2
  38. data/build/test_basics.rb +27 -13
  39. data/dev/copy_boost_headers +96 -77
  40. data/dev/index_cxx_dependencies.rb +1 -1
  41. data/dev/nginx_version_sha256 +72 -0
  42. data/doc/AiInstructions.md +112 -0
  43. data/doc/CxxMockingStrategy.md +42 -0
  44. data/doc/CxxTestingGuide.md +110 -0
  45. data/doc/DesignAspects/LimitedGemDependencies.md +47 -0
  46. data/doc/DesignAspects/NoGemActivationDuringRubyLoaderInitialization.md +27 -0
  47. data/doc/TempFileHandling.md +15 -0
  48. data/package.json +15 -15
  49. data/passenger.gemspec +8 -2
  50. data/resources/templates/apache2/deployment_example.txt.erb +1 -1
  51. data/resources/templates/nginx/deployment_example.txt.erb +1 -1
  52. data/resources/templates/standalone/http.erb +1 -0
  53. data/resources/templates/standalone/server.erb +2 -0
  54. data/src/agent/AgentMain.cpp +4 -10
  55. data/src/agent/Core/ApiServer.h +3 -4
  56. data/src/agent/Core/ApplicationPool/AbstractSession.h +12 -3
  57. data/src/agent/Core/ApplicationPool/BasicGroupInfo.h +2 -2
  58. data/src/agent/Core/ApplicationPool/BasicProcessInfo.h +2 -2
  59. data/src/agent/Core/ApplicationPool/Common.h +2 -2
  60. data/src/agent/Core/ApplicationPool/Context.h +7 -4
  61. data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +10 -2
  62. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +12 -4
  63. data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +10 -2
  64. data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +11 -2
  65. data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +11 -2
  66. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +85 -5
  67. data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +66 -21
  68. data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +10 -2
  69. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +11 -3
  70. data/src/agent/Core/ApplicationPool/Group/Verification.cpp +10 -2
  71. data/src/agent/Core/ApplicationPool/Group.h +18 -8
  72. data/src/agent/Core/ApplicationPool/Implementation.cpp +2 -5
  73. data/src/agent/Core/ApplicationPool/Options.h +3 -4
  74. data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +7 -2
  75. data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +7 -2
  76. data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +7 -2
  77. data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +7 -2
  78. data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +7 -2
  79. data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +7 -2
  80. data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +7 -2
  81. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +17 -3
  82. data/src/agent/Core/ApplicationPool/Pool.h +2 -4
  83. data/src/agent/Core/ApplicationPool/Process.cpp +2 -2
  84. data/src/agent/Core/ApplicationPool/Process.h +24 -8
  85. data/src/agent/Core/ApplicationPool/Session.h +22 -22
  86. data/src/agent/Core/ApplicationPool/Socket.h +17 -7
  87. data/src/agent/Core/ApplicationPool/TestSession.h +76 -17
  88. data/src/agent/Core/Config.h +17 -40
  89. data/src/agent/Core/ConfigChange.cpp +3 -43
  90. data/src/agent/Core/ConfigChange.h +2 -2
  91. data/src/agent/Core/Controller/AppResponse.h +2 -3
  92. data/src/agent/Core/Controller/BufferBody.cpp +2 -2
  93. data/src/agent/Core/Controller/CheckoutSession.cpp +125 -16
  94. data/src/agent/Core/Controller/Client.h +2 -3
  95. data/src/agent/Core/Controller/Config.cpp +2 -2
  96. data/src/agent/Core/Controller/Config.h +14 -5
  97. data/src/agent/Core/Controller/ForwardResponse.cpp +2 -2
  98. data/src/agent/Core/Controller/Hooks.cpp +15 -2
  99. data/src/agent/Core/Controller/Implementation.cpp +2 -2
  100. data/src/agent/Core/Controller/InitRequest.cpp +4 -3
  101. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +2 -2
  102. data/src/agent/Core/Controller/InternalUtils.cpp +14 -2
  103. data/src/agent/Core/Controller/Miscellaneous.cpp +2 -2
  104. data/src/agent/Core/Controller/Request.h +5 -4
  105. data/src/agent/Core/Controller/SendRequest.cpp +4 -4
  106. data/src/agent/Core/Controller/StateInspection.cpp +2 -2
  107. data/src/agent/Core/Controller/TurboCaching.h +2 -2
  108. data/src/agent/Core/Controller.h +15 -15
  109. data/src/agent/Core/CoreMain.cpp +14 -75
  110. data/src/agent/Core/OptionParser.h +11 -9
  111. data/src/agent/Core/ResponseCache.h +5 -4
  112. data/src/agent/Core/SecurityUpdateChecker.h +7 -8
  113. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +2 -2
  114. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h.cxxcodebuilder +2 -2
  115. data/src/agent/Core/SpawningKit/Config.h +2 -2
  116. data/src/agent/Core/SpawningKit/Context.h +2 -2
  117. data/src/agent/Core/SpawningKit/DirectSpawner.h +2 -2
  118. data/src/agent/Core/SpawningKit/DummySpawner.h +2 -2
  119. data/src/agent/Core/SpawningKit/ErrorRenderer.h +7 -2
  120. data/src/agent/Core/SpawningKit/Exceptions.h +2 -2
  121. data/src/agent/Core/SpawningKit/Factory.h +2 -2
  122. data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +2 -2
  123. data/src/agent/Core/SpawningKit/Handshake/Perform.h +6 -6
  124. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +3 -55
  125. data/src/agent/Core/SpawningKit/Handshake/Session.h +5 -2
  126. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +7 -4
  127. data/src/agent/Core/SpawningKit/Journey.h +2 -2
  128. data/src/agent/Core/SpawningKit/PipeWatcher.h +20 -5
  129. data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h +2 -2
  130. data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h.cxxcodebuilder +2 -2
  131. data/src/agent/Core/SpawningKit/Result.h +2 -2
  132. data/src/agent/Core/SpawningKit/SmartSpawner.h +8 -4
  133. data/src/agent/Core/SpawningKit/Spawner.h +6 -2
  134. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +4 -4
  135. data/src/agent/Core/TelemetryCollector.h +2 -2
  136. data/src/agent/ExecHelper/ExecHelperMain.cpp +12 -14
  137. data/src/agent/FileReadHelper/FileReadHelperMain.cpp +9 -12
  138. data/src/{cxx_supportlib/FileTools/LargeFiles.h → agent/MainFunctions.h} +12 -17
  139. data/src/agent/Shared/ApiAccountUtils.h +2 -2
  140. data/src/agent/Shared/ApiServerUtils.h +5 -4
  141. data/src/agent/Shared/ApplicationPoolApiKey.h +2 -2
  142. data/src/agent/Shared/Fundamentals/AbortHandler.cpp +90 -11
  143. data/src/agent/Shared/Fundamentals/AbortHandler.h +4 -2
  144. data/src/agent/Shared/Fundamentals/Initialization.cpp +12 -6
  145. data/src/agent/Shared/Fundamentals/Initialization.h +5 -5
  146. data/src/agent/Shared/Fundamentals/Utils.cpp +2 -2
  147. data/src/agent/Shared/Fundamentals/Utils.h +2 -2
  148. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +33 -13
  149. data/src/agent/SystemMetrics/SystemMetricsMain.cpp +3 -2
  150. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +8 -6
  151. data/src/agent/Watchdog/AgentWatcher.cpp +2 -2
  152. data/src/agent/Watchdog/ApiServer.h +3 -3
  153. data/src/agent/Watchdog/Config.h +6 -23
  154. data/src/agent/Watchdog/CoreWatcher.cpp +2 -2
  155. data/src/agent/Watchdog/InstanceDirToucher.cpp +2 -2
  156. data/src/agent/Watchdog/WatchdogMain.cpp +15 -23
  157. data/src/apache2_module/Bucket.cpp +2 -2
  158. data/src/apache2_module/Bucket.h +2 -2
  159. data/src/apache2_module/CBindings.cpp +2 -2
  160. data/src/apache2_module/Config.cpp +2 -2
  161. data/src/apache2_module/Config.h +2 -2
  162. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +12 -22
  163. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp.cxxcodebuilder +2 -2
  164. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +7 -2
  165. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp.cxxcodebuilder +2 -2
  166. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +32 -62
  167. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp.cxxcodebuilder +2 -2
  168. data/src/apache2_module/ConfigGeneral/Common.h +2 -2
  169. data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +7 -5
  170. data/src/apache2_module/ConfigGeneral/SetterFuncs.h +2 -2
  171. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +7 -2
  172. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp.cxxcodebuilder +2 -2
  173. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +5 -2
  174. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp.cxxcodebuilder +2 -2
  175. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +15 -2
  176. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +2 -2
  177. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +9 -2
  178. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp.cxxcodebuilder +2 -2
  179. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +18 -2
  180. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +5 -2
  181. data/src/apache2_module/DirectoryMapper.h +2 -2
  182. data/src/apache2_module/Hooks.cpp +29 -7
  183. data/src/apache2_module/Hooks.h +2 -2
  184. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +11 -46
  185. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +2 -2
  186. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +15 -55
  187. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +4 -3
  188. data/src/apache2_module/Utils.h +2 -2
  189. data/src/apache2_module/mod_passenger.c +2 -2
  190. data/src/cxx_supportlib/Algorithms/Hasher.cpp +3 -3
  191. data/src/cxx_supportlib/Algorithms/Hasher.h +6 -9
  192. data/src/cxx_supportlib/Algorithms/MovingAverage.h +3 -168
  193. data/src/cxx_supportlib/AppLocalConfigFileUtils.h +2 -2
  194. data/src/cxx_supportlib/AppTypeDetector/CBindings.cpp +2 -2
  195. data/src/cxx_supportlib/AppTypeDetector/CBindings.h +2 -2
  196. data/src/cxx_supportlib/AppTypeDetector/Detector.h +2 -2
  197. data/src/cxx_supportlib/BackgroundEventLoop.cpp +6 -2
  198. data/src/cxx_supportlib/BackgroundEventLoop.h +2 -2
  199. data/src/cxx_supportlib/ConfigKit/AsyncUtils.h +2 -2
  200. data/src/cxx_supportlib/ConfigKit/Common.h +3 -3
  201. data/src/cxx_supportlib/ConfigKit/ConfigKit.h +2 -2
  202. data/src/cxx_supportlib/ConfigKit/DummyTranslator.h +2 -2
  203. data/src/cxx_supportlib/ConfigKit/PrefixTranslator.h +2 -2
  204. data/src/cxx_supportlib/ConfigKit/Schema.h +2 -2
  205. data/src/cxx_supportlib/ConfigKit/SchemaUtils.h +2 -2
  206. data/src/cxx_supportlib/ConfigKit/Store.h +2 -2
  207. data/src/cxx_supportlib/ConfigKit/SubComponentUtils.h +2 -2
  208. data/src/cxx_supportlib/ConfigKit/TableTranslator.h +2 -2
  209. data/src/cxx_supportlib/ConfigKit/Translator.h +2 -2
  210. data/src/cxx_supportlib/ConfigKit/Utils.h +2 -2
  211. data/src/cxx_supportlib/Constants.h +4 -3
  212. data/src/cxx_supportlib/Constants.h.cxxcodebuilder +2 -2
  213. data/src/cxx_supportlib/DataStructures/HashedStaticString.h +2 -2
  214. data/src/cxx_supportlib/DataStructures/LString.cpp +2 -2
  215. data/src/cxx_supportlib/DataStructures/LString.h +6 -2
  216. data/src/cxx_supportlib/DataStructures/StringKeyTable.h +3 -3
  217. data/src/cxx_supportlib/DataStructures/StringMap.h +4 -6
  218. data/src/cxx_supportlib/Exceptions.cpp +2 -2
  219. data/src/cxx_supportlib/Exceptions.h +2 -2
  220. data/src/cxx_supportlib/FileDescriptor.h +2 -2
  221. data/src/cxx_supportlib/FileTools/FileManip.cpp +2 -2
  222. data/src/cxx_supportlib/FileTools/FileManip.h +4 -2
  223. data/src/cxx_supportlib/FileTools/PathManip.cpp +13 -4
  224. data/src/cxx_supportlib/FileTools/PathManip.h +2 -2
  225. data/src/cxx_supportlib/FileTools/PathManipCBindings.cpp +2 -2
  226. data/src/cxx_supportlib/FileTools/PathManipCBindings.h +2 -2
  227. data/src/cxx_supportlib/FileTools/PathSecurityCheck.cpp +2 -2
  228. data/src/cxx_supportlib/FileTools/PathSecurityCheck.h +2 -2
  229. data/src/cxx_supportlib/Hooks.h +2 -3
  230. data/src/cxx_supportlib/IOTools/BufferedIO.h +2 -2
  231. data/src/cxx_supportlib/IOTools/IOUtils.cpp +53 -68
  232. data/src/cxx_supportlib/IOTools/IOUtils.h +67 -75
  233. data/src/cxx_supportlib/IOTools/MessageIO.h +2 -2
  234. data/src/cxx_supportlib/IOTools/MessageSerialization.h +2 -2
  235. data/src/cxx_supportlib/InstanceDirectory.h +2 -2
  236. data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +5 -5
  237. data/src/cxx_supportlib/JsonTools/Autocast.h +2 -2
  238. data/src/cxx_supportlib/JsonTools/CBindings.cpp +2 -4
  239. data/src/cxx_supportlib/JsonTools/CBindings.h +2 -2
  240. data/src/cxx_supportlib/JsonTools/JsonUtils.h +6 -6
  241. data/src/cxx_supportlib/LoggingKit/Assert.h +2 -2
  242. data/src/cxx_supportlib/LoggingKit/Config.h +2 -2
  243. data/src/cxx_supportlib/LoggingKit/Context.h +18 -23
  244. data/src/cxx_supportlib/LoggingKit/Forward.h +2 -4
  245. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +38 -74
  246. data/src/cxx_supportlib/LoggingKit/Logging.h +2 -2
  247. data/src/cxx_supportlib/LoggingKit/LoggingKit.h +2 -2
  248. data/src/cxx_supportlib/LveLoggingDecorator.h +2 -2
  249. data/src/cxx_supportlib/MemoryKit/mbuf.cpp +14 -6
  250. data/src/cxx_supportlib/MemoryKit/mbuf.h +3 -3
  251. data/src/cxx_supportlib/MemoryKit/palloc.cpp +1 -1
  252. data/src/cxx_supportlib/MemoryKit/palloc.h +1 -1
  253. data/src/cxx_supportlib/ProcessManagement/Ruby.cpp +2 -2
  254. data/src/cxx_supportlib/ProcessManagement/Ruby.h +2 -2
  255. data/src/cxx_supportlib/ProcessManagement/Spawn.cpp +2 -2
  256. data/src/cxx_supportlib/ProcessManagement/Spawn.h +2 -2
  257. data/src/cxx_supportlib/ProcessManagement/Utils.cpp +3 -3
  258. data/src/cxx_supportlib/ProcessManagement/Utils.h +2 -2
  259. data/src/cxx_supportlib/RandomGenerator.h +2 -2
  260. data/src/cxx_supportlib/ResourceLocator.h +3 -3
  261. data/src/cxx_supportlib/SafeLibev.h +5 -5
  262. data/src/cxx_supportlib/SecurityKit/Crypto.cpp +5 -96
  263. data/src/cxx_supportlib/SecurityKit/Crypto.h +2 -10
  264. data/src/cxx_supportlib/SecurityKit/MemZeroGuard.h +2 -2
  265. data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +4 -2
  266. data/src/cxx_supportlib/ServerKit/Channel.h +2 -2
  267. data/src/cxx_supportlib/ServerKit/Client.h +2 -2
  268. data/src/cxx_supportlib/ServerKit/ClientRef.h +2 -2
  269. data/src/cxx_supportlib/ServerKit/Config.h +2 -2
  270. data/src/cxx_supportlib/ServerKit/Context.h +8 -2
  271. data/src/cxx_supportlib/ServerKit/CookieUtils.h +2 -2
  272. data/src/cxx_supportlib/ServerKit/Errors.h +5 -4
  273. data/src/cxx_supportlib/ServerKit/FdSinkChannel.h +2 -2
  274. data/src/cxx_supportlib/ServerKit/FdSourceChannel.h +2 -2
  275. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +2 -2
  276. data/src/cxx_supportlib/ServerKit/FileBufferedFdSinkChannel.h +2 -2
  277. data/src/cxx_supportlib/ServerKit/HeaderTable.h +2 -2
  278. data/src/cxx_supportlib/ServerKit/Hooks.h +4 -4
  279. data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +2 -2
  280. data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParserState.h +2 -2
  281. data/src/cxx_supportlib/ServerKit/HttpClient.h +2 -2
  282. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +105 -71
  283. data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +6 -3
  284. data/src/cxx_supportlib/ServerKit/HttpRequest.h +4 -4
  285. data/src/cxx_supportlib/ServerKit/HttpRequestRef.h +2 -2
  286. data/src/cxx_supportlib/ServerKit/HttpServer.h +20 -14
  287. data/src/cxx_supportlib/ServerKit/Implementation.cpp +2 -2
  288. data/src/cxx_supportlib/ServerKit/Server.h +2 -8
  289. data/src/cxx_supportlib/ServerKit/llerrors.h +84 -0
  290. data/src/cxx_supportlib/ServerKit/llhttp.c +10168 -0
  291. data/src/cxx_supportlib/ServerKit/llhttp.h +903 -0
  292. data/src/cxx_supportlib/ServerKit/llhttp_api.c +510 -0
  293. data/src/cxx_supportlib/ServerKit/llhttp_http.c +170 -0
  294. data/src/cxx_supportlib/ServerKit/llversion.h +12 -0
  295. data/src/cxx_supportlib/ServerKit/url_parser.c +574 -0
  296. data/src/cxx_supportlib/ServerKit/url_parser.h +74 -0
  297. data/src/cxx_supportlib/StaticString.h +5 -3
  298. data/src/cxx_supportlib/StrIntTools/DateParsing.h +3 -3
  299. data/src/cxx_supportlib/StrIntTools/StrIntUtils.cpp +14 -5
  300. data/src/cxx_supportlib/StrIntTools/StrIntUtils.h +9 -4
  301. data/src/cxx_supportlib/StrIntTools/StrIntUtilsNoStrictAliasing.cpp +2 -2
  302. data/src/cxx_supportlib/StrIntTools/StringScanning.h +2 -2
  303. data/src/cxx_supportlib/StrIntTools/Template.h +2 -2
  304. data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +2 -2
  305. data/src/cxx_supportlib/SystemTools/ProcessMetricsCollector.h +2 -2
  306. data/src/cxx_supportlib/SystemTools/SystemMetricsCollector.h +4 -6
  307. data/src/cxx_supportlib/SystemTools/SystemTime.cpp +2 -2
  308. data/src/cxx_supportlib/SystemTools/SystemTime.h +2 -2
  309. data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +16 -16
  310. data/src/cxx_supportlib/SystemTools/UserDatabase.h +8 -12
  311. data/src/cxx_supportlib/Utils/AnsiColorConstants.h +13 -11
  312. data/src/cxx_supportlib/Utils/AsyncSignalSafeUtils.h +4 -2
  313. data/src/cxx_supportlib/Utils/BlockingQueue.h +2 -2
  314. data/src/cxx_supportlib/Utils/CachedFileStat.cpp +2 -2
  315. data/src/cxx_supportlib/Utils/CachedFileStat.h +2 -2
  316. data/src/cxx_supportlib/Utils/CachedFileStat.hpp +2 -2
  317. data/src/cxx_supportlib/Utils/ClassUtils.h +2 -2
  318. data/src/cxx_supportlib/Utils/Curl.h +2 -2
  319. data/src/cxx_supportlib/Utils/FastStringStream.h +9 -9
  320. data/src/cxx_supportlib/Utils/FileChangeChecker.h +2 -2
  321. data/src/cxx_supportlib/Utils/HttpConstants.h +2 -2
  322. data/src/cxx_supportlib/Utils/IniFile.h +26 -27
  323. data/src/cxx_supportlib/Utils/MessagePassing.h +2 -2
  324. data/src/cxx_supportlib/Utils/OptionParsing.h +2 -2
  325. data/src/cxx_supportlib/Utils/ReleaseableScopedPointer.h +2 -2
  326. data/src/cxx_supportlib/Utils/ScopeGuard.h +2 -2
  327. data/src/cxx_supportlib/Utils/SpeedMeter.h +2 -5
  328. data/src/cxx_supportlib/Utils/Timer.h +2 -2
  329. data/src/cxx_supportlib/Utils/VariantMap.h +2 -2
  330. data/src/cxx_supportlib/Utils.cpp +3 -3
  331. data/src/cxx_supportlib/Utils.h +2 -32
  332. data/src/cxx_supportlib/WatchdogLauncher.cpp +2 -2
  333. data/src/cxx_supportlib/WatchdogLauncher.h +3 -5
  334. data/src/cxx_supportlib/WrapperRegistry/CBindings.cpp +2 -2
  335. data/src/cxx_supportlib/WrapperRegistry/CBindings.h +2 -2
  336. data/src/cxx_supportlib/WrapperRegistry/Entry.h +2 -2
  337. data/src/cxx_supportlib/WrapperRegistry/Registry.h +2 -2
  338. data/src/cxx_supportlib/oxt/backtrace.hpp +1 -1
  339. data/src/cxx_supportlib/oxt/detail/backtrace_disabled.hpp +1 -1
  340. data/src/cxx_supportlib/oxt/detail/backtrace_enabled.hpp +1 -1
  341. data/src/cxx_supportlib/oxt/detail/context.hpp +1 -1
  342. data/src/cxx_supportlib/oxt/detail/spin_lock_darwin.hpp +1 -1
  343. data/src/cxx_supportlib/oxt/detail/spin_lock_gcc_x86.hpp +1 -1
  344. data/src/cxx_supportlib/oxt/detail/spin_lock_portable.hpp +1 -1
  345. data/src/cxx_supportlib/oxt/detail/spin_lock_pthreads.hpp +1 -1
  346. data/src/cxx_supportlib/oxt/detail/tracable_exception_disabled.hpp +5 -1
  347. data/src/cxx_supportlib/oxt/detail/tracable_exception_enabled.hpp +2 -1
  348. data/src/cxx_supportlib/oxt/dynamic_thread_group.hpp +1 -1
  349. data/src/cxx_supportlib/oxt/implementation.cpp +53 -4
  350. data/src/cxx_supportlib/oxt/initialize.hpp +1 -1
  351. data/src/cxx_supportlib/oxt/macros.hpp +1 -1
  352. data/src/cxx_supportlib/oxt/spin_lock.hpp +1 -1
  353. data/src/cxx_supportlib/oxt/system_calls.cpp +13 -5
  354. data/src/cxx_supportlib/oxt/system_calls.hpp +4 -5
  355. data/src/cxx_supportlib/oxt/thread.hpp +2 -2
  356. data/src/cxx_supportlib/oxt/tracable_exception.hpp +1 -1
  357. data/src/cxx_supportlib/vendor-copy/adhoc_lve.h +2 -2
  358. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_iterator.hpp +11 -3
  359. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/find_iterator.hpp +27 -1
  360. data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +1 -1
  361. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_sunos.hpp +34 -0
  362. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +124 -26
  363. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +10 -18
  364. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +4 -5
  365. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +5 -1
  366. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_impl.hpp +183 -64
  367. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +170 -68
  368. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +83 -12
  369. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +40 -11
  370. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_aarch32.hpp +8 -1
  371. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_aarch64.hpp +8 -1
  372. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_arm.hpp +8 -1
  373. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/classify.hpp +19 -10
  374. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +19 -54
  375. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_ppc.hpp +105 -100
  376. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +107 -40
  377. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_x86.hpp +32 -5
  378. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +12 -13
  379. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +7 -8
  380. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +1 -1
  381. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +26 -27
  382. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +73 -72
  383. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/float_sizes.hpp +122 -35
  384. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +2 -3
  385. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +50 -12
  386. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_arm_asm_common.hpp +4 -0
  387. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_ppc_asm_common.hpp +33 -0
  388. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +7 -0
  389. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +15 -6
  390. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/alignment_of.hpp +3 -3
  391. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/has_unique_object_representations.hpp +143 -0
  392. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_enum.hpp +42 -0
  393. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_nothrow_default_constructible.hpp +46 -0
  394. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/remove_cv.hpp +42 -0
  395. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_darwin_ulock.hpp +58 -0
  396. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +64 -0
  397. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_darwin_ulock.hpp +158 -0
  398. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +3 -4
  399. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +10 -5
  400. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +4 -5
  401. data/src/cxx_supportlib/vendor-modified/boost/bind/apply.hpp +2 -60
  402. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +257 -1789
  403. data/src/cxx_supportlib/vendor-modified/boost/bind/{bind_cc.hpp → detail/bind_cc.hpp} +20 -20
  404. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf2_cc.hpp +210 -0
  405. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf_cc.hpp +405 -0
  406. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/integer_sequence.hpp +111 -0
  407. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/result_traits.hpp +13 -2
  408. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/tuple_for_each.hpp +64 -0
  409. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +140 -290
  410. data/src/cxx_supportlib/vendor-modified/boost/bind/placeholders.hpp +3 -16
  411. data/src/cxx_supportlib/vendor-modified/boost/bind/protect.hpp +0 -279
  412. data/src/cxx_supportlib/vendor-modified/boost/bind/std_placeholders.hpp +0 -6
  413. data/src/cxx_supportlib/vendor-modified/boost/chrono/config.hpp +2 -0
  414. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +4 -4
  415. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/is_evenly_divisible_by.hpp +1 -7
  416. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/requires_cxx11.hpp +23 -0
  417. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/scan_keyword.hpp +4 -2
  418. data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +10 -6
  419. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_get.hpp +1 -1
  420. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +4 -4
  421. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_put.hpp +5 -5
  422. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_style.hpp +1 -1
  423. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +3 -2
  424. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +3 -3
  425. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/timezone.hpp +2 -1
  426. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/ios_base_state_ptr.hpp +7 -7
  427. data/src/cxx_supportlib/vendor-modified/boost/chrono/io_v1/chrono_io.hpp +3 -3
  428. data/src/cxx_supportlib/vendor-modified/boost/chrono/system_clocks.hpp +1 -0
  429. data/src/cxx_supportlib/vendor-modified/boost/chrono/time_point.hpp +1 -1
  430. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +5 -1
  431. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +1 -1
  432. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +4 -4
  433. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +1 -1
  434. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +7 -1
  435. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +4 -1
  436. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx23.hpp +41 -0
  437. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +6 -1
  438. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +4 -0
  439. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +20 -3
  440. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +89 -0
  441. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +5 -0
  442. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +4 -1
  443. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +1 -0
  444. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +4 -0
  445. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +16 -5
  446. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +4 -2
  447. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +5 -0
  448. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +1 -0
  449. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +4 -0
  450. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +4 -0
  451. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +6 -0
  452. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +4 -0
  453. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +10 -0
  454. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +4 -0
  455. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +23 -3
  456. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +13 -0
  457. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +2 -0
  458. data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +19 -3
  459. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +139 -34
  460. data/src/cxx_supportlib/vendor-modified/boost/config/header_deprecated.hpp +1 -1
  461. data/src/cxx_supportlib/vendor-modified/boost/config/platform/wasm.hpp +6 -0
  462. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +45 -18
  463. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +11 -45
  464. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +42 -3
  465. data/src/cxx_supportlib/vendor-modified/boost/config/workaround.hpp +11 -0
  466. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +26 -21
  467. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +30 -26
  468. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +178 -39
  469. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +12 -12
  470. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +827 -303
  471. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +1 -1
  472. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +57 -57
  473. data/src/cxx_supportlib/vendor-modified/boost/container/detail/addressof.hpp +2 -10
  474. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +155 -179
  475. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +6 -6
  476. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocation_type.hpp +7 -7
  477. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +14 -15
  478. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_list.hpp +2 -2
  479. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_slist.hpp +2 -2
  480. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +24 -21
  481. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +12 -0
  482. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_end.hpp +3 -0
  483. data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +52 -16
  484. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_or_allocator_rebind.hpp +1 -2
  485. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +23 -13
  486. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +891 -182
  487. data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +121 -66
  488. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +42 -42
  489. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +310 -231
  490. data/src/cxx_supportlib/vendor-modified/boost/container/detail/function_detector.hpp +1 -1
  491. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +2 -2
  492. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +16 -12
  493. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_pair.hpp +91 -0
  494. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +8 -0
  495. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +213 -195
  496. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +10 -11
  497. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +4 -4
  498. data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +98 -12
  499. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +48 -12
  500. data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +8 -10
  501. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +268 -120
  502. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +1 -1
  503. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +12 -12
  504. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +49 -122
  505. data/src/cxx_supportlib/vendor-modified/boost/container/detail/placement_new.hpp +1 -7
  506. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common.hpp +1 -1
  507. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +2 -2
  508. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_resource.hpp +7 -11
  509. data/src/cxx_supportlib/vendor-modified/boost/container/detail/transform_iterator.hpp +28 -28
  510. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +265 -354
  511. data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +1 -0
  512. data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +3 -3
  513. data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +4 -4
  514. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +93 -11
  515. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +1364 -1296
  516. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +367 -260
  517. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +112 -93
  518. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +80 -125
  519. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +136 -119
  520. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +19 -14
  521. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +27 -21
  522. data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +35 -22
  523. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +158 -45
  524. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +8 -3
  525. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +4 -4
  526. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +1 -0
  527. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +7 -7
  528. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/synchronized_pool_resource.hpp +3 -3
  529. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/unsynchronized_pool_resource.hpp +3 -3
  530. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +81 -83
  531. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +93 -90
  532. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +82 -127
  533. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +229 -245
  534. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +198 -175
  535. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +131 -87
  536. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +373 -374
  537. data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +6 -7
  538. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +3 -3
  539. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +618 -631
  540. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_integral.hpp +146 -0
  541. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_mix.hpp +113 -0
  542. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_range.hpp +408 -0
  543. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_tuple_like.hpp +62 -0
  544. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/mulx.hpp +79 -0
  545. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +395 -581
  546. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +25 -24
  547. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_contiguous_range.hpp +98 -0
  548. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_described_class.hpp +37 -0
  549. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_range.hpp +41 -0
  550. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_tuple_like.hpp +36 -0
  551. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_unordered_range.hpp +38 -0
  552. data/src/cxx_supportlib/vendor-modified/boost/core/alignof.hpp +57 -0
  553. data/src/cxx_supportlib/vendor-modified/boost/core/alloc_construct.hpp +7 -81
  554. data/src/cxx_supportlib/vendor-modified/boost/core/allocator_access.hpp +448 -215
  555. data/src/cxx_supportlib/vendor-modified/boost/core/allocator_traits.hpp +112 -0
  556. data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +418 -45
  557. data/src/cxx_supportlib/vendor-modified/boost/core/checked_delete.hpp +29 -3
  558. data/src/cxx_supportlib/vendor-modified/boost/core/cmath.hpp +100 -1
  559. data/src/cxx_supportlib/vendor-modified/boost/core/data.hpp +46 -0
  560. data/src/cxx_supportlib/vendor-modified/boost/core/default_allocator.hpp +19 -9
  561. data/src/cxx_supportlib/vendor-modified/boost/core/detail/is_same.hpp +39 -0
  562. data/src/cxx_supportlib/vendor-modified/boost/core/detail/lwt_unattended.hpp +66 -0
  563. data/src/cxx_supportlib/vendor-modified/boost/core/detail/minstd_rand.hpp +58 -0
  564. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_pause.hpp +71 -0
  565. data/src/cxx_supportlib/vendor-modified/boost/{smart_ptr → core}/detail/sp_thread_sleep.hpp +39 -21
  566. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_yield.hpp +100 -0
  567. data/src/cxx_supportlib/vendor-modified/boost/core/detail/splitmix64.hpp +3 -3
  568. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +1272 -0
  569. data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +78 -21
  570. data/src/cxx_supportlib/vendor-modified/boost/core/fclose_deleter.hpp +53 -0
  571. data/src/cxx_supportlib/vendor-modified/boost/core/functor.hpp +41 -0
  572. data/src/cxx_supportlib/vendor-modified/boost/core/identity.hpp +61 -0
  573. data/src/cxx_supportlib/vendor-modified/boost/core/invoke_swap.hpp +93 -0
  574. data/src/cxx_supportlib/vendor-modified/boost/core/is_same.hpp +10 -15
  575. data/src/cxx_supportlib/vendor-modified/boost/core/launder.hpp +69 -0
  576. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +41 -37
  577. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +8 -54
  578. data/src/cxx_supportlib/vendor-modified/boost/core/make_span.hpp +59 -0
  579. data/src/cxx_supportlib/vendor-modified/boost/core/max_align.hpp +82 -0
  580. data/src/cxx_supportlib/vendor-modified/boost/core/memory_resource.hpp +108 -0
  581. data/src/cxx_supportlib/vendor-modified/boost/core/noinit_adaptor.hpp +3 -0
  582. data/src/cxx_supportlib/vendor-modified/boost/core/noncopyable.hpp +1 -1
  583. data/src/cxx_supportlib/vendor-modified/boost/core/null_deleter.hpp +7 -0
  584. data/src/cxx_supportlib/vendor-modified/boost/core/pointer_in_range.hpp +49 -0
  585. data/src/cxx_supportlib/vendor-modified/boost/core/pointer_traits.hpp +111 -60
  586. data/src/cxx_supportlib/vendor-modified/boost/core/quick_exit.hpp +1 -1
  587. data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +23 -16
  588. data/src/cxx_supportlib/vendor-modified/boost/core/serialization.hpp +131 -0
  589. data/src/cxx_supportlib/vendor-modified/boost/core/size.hpp +31 -0
  590. data/src/cxx_supportlib/vendor-modified/boost/core/snprintf.hpp +173 -0
  591. data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +401 -0
  592. data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +10 -40
  593. data/src/cxx_supportlib/vendor-modified/boost/core/type_name.hpp +1186 -0
  594. data/src/cxx_supportlib/vendor-modified/boost/core/verbose_terminate_handler.hpp +88 -0
  595. data/src/cxx_supportlib/vendor-modified/boost/core/yield_primitives.hpp +12 -0
  596. data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +1 -1
  597. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters.hpp +3 -3
  598. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters_limited.hpp +3 -3
  599. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +12 -13
  600. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/parsers.hpp +2 -2
  601. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.ipp +3 -3
  602. data/src/cxx_supportlib/vendor-modified/boost/date_time/iso_format.hpp +13 -13
  603. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_date_time.hpp +2 -2
  604. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/conversion.hpp +1 -1
  605. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_io.hpp +1 -1
  606. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters.hpp +4 -4
  607. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters_limited.hpp +2 -2
  608. data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_parser.hpp +1 -1
  609. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +1 -1
  610. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_parsing.hpp +2 -2
  611. data/src/cxx_supportlib/vendor-modified/boost/describe/bases.hpp +50 -0
  612. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +40 -0
  613. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/cx_streq.hpp +30 -0
  614. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/void_t.hpp +32 -0
  615. data/src/cxx_supportlib/vendor-modified/boost/describe/members.hpp +161 -0
  616. data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +33 -0
  617. data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +3 -7
  618. data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +24 -126
  619. data/src/cxx_supportlib/vendor-modified/boost/detail/workaround.hpp +3 -3
  620. data/src/cxx_supportlib/vendor-modified/boost/exception/current_exception_cast.hpp +1 -1
  621. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/clone_current_exception.hpp +1 -1
  622. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +1 -1
  623. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +58 -30
  624. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/is_output_streamable.hpp +1 -1
  625. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/object_hex_dump.hpp +1 -1
  626. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/requires_cxx11.hpp +24 -0
  627. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +1 -1
  628. data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +4 -4
  629. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +85 -3
  630. data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +1 -1
  631. data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +2 -2
  632. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string.hpp +2 -2
  633. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string_stub.hpp +1 -1
  634. data/src/cxx_supportlib/vendor-modified/boost/function/function0.hpp +1 -3
  635. data/src/cxx_supportlib/vendor-modified/boost/function/function1.hpp +1 -3
  636. data/src/cxx_supportlib/vendor-modified/boost/function/function10.hpp +1 -3
  637. data/src/cxx_supportlib/vendor-modified/boost/function/function2.hpp +1 -3
  638. data/src/cxx_supportlib/vendor-modified/boost/function/function3.hpp +1 -3
  639. data/src/cxx_supportlib/vendor-modified/boost/function/function4.hpp +1 -3
  640. data/src/cxx_supportlib/vendor-modified/boost/function/function5.hpp +1 -3
  641. data/src/cxx_supportlib/vendor-modified/boost/function/function6.hpp +1 -3
  642. data/src/cxx_supportlib/vendor-modified/boost/function/function7.hpp +1 -3
  643. data/src/cxx_supportlib/vendor-modified/boost/function/function8.hpp +1 -3
  644. data/src/cxx_supportlib/vendor-modified/boost/function/function9.hpp +1 -3
  645. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +71 -223
  646. data/src/cxx_supportlib/vendor-modified/boost/function/function_fwd.hpp +36 -41
  647. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +428 -452
  648. data/src/cxx_supportlib/vendor-modified/boost/function/function_typeof.hpp +1 -31
  649. data/src/cxx_supportlib/vendor-modified/boost/function.hpp +5 -61
  650. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +6 -10
  651. data/src/cxx_supportlib/vendor-modified/boost/integer/extended_euclidean.hpp +2 -2
  652. data/src/cxx_supportlib/vendor-modified/boost/integer/integer_log2.hpp +85 -80
  653. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +32 -25
  654. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +16 -13
  655. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +45 -45
  656. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +32 -25
  657. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +104 -97
  658. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +87 -90
  659. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +29 -20
  660. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +77 -8
  661. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +2 -2
  662. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algorithm.hpp +8 -8
  663. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +30 -30
  664. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/array_initializer.hpp +8 -7
  665. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +14 -14
  666. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +38 -39
  667. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +84 -15
  668. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +3 -3
  669. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +24 -24
  670. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/empty_node_checker.hpp +1 -1
  671. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/equal_to_value.hpp +1 -1
  672. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/exception_disposer.hpp +1 -32
  673. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/function_detector.hpp +1 -1
  674. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +14 -15
  675. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash.hpp +277 -0
  676. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +11 -49
  677. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_integral.hpp +119 -0
  678. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_mix.hpp +130 -0
  679. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +195 -115
  680. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +22 -26
  681. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iiterator.hpp +6 -6
  682. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +121 -75
  683. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +7 -7
  684. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +20 -20
  685. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +4 -4
  686. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/math.hpp +3 -3
  687. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +7 -1
  688. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +3 -3
  689. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_to_value.hpp +1 -1
  690. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +7 -17
  691. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +18 -18
  692. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/reverse_iterator.hpp +3 -140
  693. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +1 -1
  694. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/size_holder.hpp +14 -14
  695. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +26 -19
  696. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +2 -2
  697. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/transform_iterator.hpp +22 -22
  698. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +21 -21
  699. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +6 -6
  700. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +28 -28
  701. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/value_functors.hpp +10 -0
  702. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +70 -3
  703. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +1722 -995
  704. data/src/cxx_supportlib/vendor-modified/boost/intrusive/intrusive_fwd.hpp +2 -0
  705. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +84 -11
  706. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +68 -63
  707. data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +2 -2
  708. data/src/cxx_supportlib/vendor-modified/boost/intrusive/options.hpp +17 -3
  709. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pack_options.hpp +15 -11
  710. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +12 -4
  711. data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +11 -4
  712. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +16 -13
  713. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +38 -38
  714. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +32 -25
  715. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +32 -25
  716. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +18 -15
  717. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +22 -22
  718. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +80 -79
  719. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +32 -25
  720. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +16 -13
  721. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +38 -36
  722. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +22 -19
  723. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +25 -21
  724. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +44 -37
  725. data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +2 -2
  726. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +64 -54
  727. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +11 -11
  728. data/src/cxx_supportlib/vendor-modified/boost/io/ios_state.hpp +2 -2
  729. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +11 -0
  730. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_def.hpp +6 -6
  731. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_undef.hpp +1 -1
  732. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/enable_if.hpp +5 -5
  733. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +10 -11
  734. data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +148 -0
  735. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +2 -2
  736. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +106 -25
  737. data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +8 -4
  738. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +7 -13
  739. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +59 -0
  740. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +113 -131
  741. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +618 -646
  742. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +83 -74
  743. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +26 -33
  744. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +22 -29
  745. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +73 -0
  746. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
  747. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +23 -18
  748. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +7 -9
  749. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +22 -161
  750. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +9 -12
  751. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/chrono.cpp +4 -2
  752. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/process_cpu_clocks.cpp +3 -1
  753. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/thread_clock.cpp +3 -1
  754. data/src/cxx_supportlib/vendor-modified/boost/libs/random/src/random_device.cpp +3 -1
  755. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/posix_api.cpp +10 -18
  756. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +13 -14
  757. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +24 -14
  758. data/src/cxx_supportlib/vendor-modified/boost/limits.hpp +12 -12
  759. data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +7 -5
  760. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +48 -33
  761. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +92 -75
  762. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +216 -185
  763. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +11 -10
  764. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/heap_sort.hpp +22 -11
  765. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/insertion_sort.hpp +9 -0
  766. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +125 -165
  767. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge_sort.hpp +24 -15
  768. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/pdqsort.hpp +16 -5
  769. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/search.hpp +79 -0
  770. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/set_difference.hpp +8 -2
  771. data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +8 -5
  772. data/src/cxx_supportlib/vendor-modified/boost/move/algo/predicate.hpp +11 -11
  773. data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +0 -1
  774. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +22 -1
  775. data/src/cxx_supportlib/vendor-modified/boost/move/default_delete.hpp +5 -6
  776. data/src/cxx_supportlib/vendor-modified/boost/move/detail/addressof.hpp +61 -0
  777. data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +0 -1
  778. data/src/cxx_supportlib/vendor-modified/boost/move/detail/force_ptr.hpp +36 -0
  779. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +3 -3
  780. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +108 -9
  781. data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +53 -0
  782. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +9 -52
  783. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils_core.hpp +15 -0
  784. data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +24 -24
  785. data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +70 -26
  786. data/src/cxx_supportlib/vendor-modified/boost/move/detail/placement_new.hpp +2 -0
  787. data/src/cxx_supportlib/vendor-modified/boost/move/detail/reverse_iterator.hpp +40 -33
  788. data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_begin.hpp +7 -3
  789. data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_end.hpp +5 -0
  790. data/src/cxx_supportlib/vendor-modified/boost/move/detail/to_raw_pointer.hpp +1 -1
  791. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +90 -30
  792. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +90 -3
  793. data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +22 -22
  794. data/src/cxx_supportlib/vendor-modified/boost/move/make_unique.hpp +10 -0
  795. data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +65 -66
  796. data/src/cxx_supportlib/vendor-modified/boost/move/utility.hpp +2 -2
  797. data/src/cxx_supportlib/vendor-modified/boost/move/utility_core.hpp +38 -33
  798. data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +1386 -0
  799. data/src/cxx_supportlib/vendor-modified/boost/mp11/bind.hpp +120 -0
  800. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/config.hpp +149 -0
  801. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_append.hpp +321 -0
  802. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_copy_if.hpp +48 -0
  803. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_count.hpp +147 -0
  804. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_defer.hpp +119 -0
  805. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_fold.hpp +166 -0
  806. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_front.hpp +50 -0
  807. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_is_list.hpp +39 -0
  808. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_is_value_list.hpp +41 -0
  809. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_list.hpp +24 -0
  810. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_list_v.hpp +27 -0
  811. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +87 -0
  812. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_min_element.hpp +51 -0
  813. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_plus.hpp +84 -0
  814. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_remove_if.hpp +48 -0
  815. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_rename.hpp +54 -0
  816. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_value.hpp +25 -0
  817. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_void.hpp +32 -0
  818. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_with_index.hpp +385 -0
  819. data/src/cxx_supportlib/vendor-modified/boost/mp11/function.hpp +222 -0
  820. data/src/cxx_supportlib/vendor-modified/boost/mp11/integer_sequence.hpp +121 -0
  821. data/src/cxx_supportlib/vendor-modified/boost/mp11/integral.hpp +51 -0
  822. data/src/cxx_supportlib/vendor-modified/boost/mp11/list.hpp +481 -0
  823. data/src/cxx_supportlib/vendor-modified/boost/mp11/set.hpp +188 -0
  824. data/src/cxx_supportlib/vendor-modified/boost/mp11/utility.hpp +169 -0
  825. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +16 -0
  826. data/src/cxx_supportlib/vendor-modified/boost/mpl/and.hpp +1 -1
  827. data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +6 -6
  828. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/integral_wrapper.hpp +2 -1
  829. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp +1 -1
  830. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/template_arity.hpp +1 -1
  831. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/yes_no.hpp +2 -1
  832. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitand.hpp +1 -1
  833. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitor.hpp +1 -1
  834. data/src/cxx_supportlib/vendor-modified/boost/mpl/or.hpp +1 -1
  835. data/src/cxx_supportlib/vendor-modified/boost/next_prior.hpp +3 -44
  836. data/src/cxx_supportlib/vendor-modified/boost/nondet_random.hpp +22 -0
  837. data/src/cxx_supportlib/vendor-modified/boost/none.hpp +1 -1
  838. data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +15 -1
  839. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/int_float_mixture.hpp +5 -5
  840. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/sign_mixture.hpp +5 -5
  841. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/udt_builtin_mixture.hpp +5 -5
  842. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +4 -49
  843. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_aligned_storage.hpp +3 -4
  844. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +16 -7
  845. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_hash.hpp +49 -0
  846. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +49 -48
  847. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +11 -11
  848. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +9 -9
  849. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +31 -260
  850. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_utility.hpp +41 -0
  851. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +169 -599
  852. data/src/cxx_supportlib/vendor-modified/boost/optional/optional_io.hpp +4 -7
  853. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_keyword_arg_ref.hpp +2 -2
  854. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/unmatched_argument.hpp +1 -1
  855. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/overloads.hpp +1 -1
  856. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tag.hpp +4 -4
  857. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/unwrap_cv_reference.hpp +1 -1
  858. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/void.hpp +1 -1
  859. data/src/cxx_supportlib/vendor-modified/boost/parameter/binding.hpp +3 -3
  860. data/src/cxx_supportlib/vendor-modified/boost/parameter/match.hpp +1 -1
  861. data/src/cxx_supportlib/vendor-modified/boost/parameter/template_keyword.hpp +1 -1
  862. data/src/cxx_supportlib/vendor-modified/boost/parameter/value_type.hpp +3 -3
  863. data/src/cxx_supportlib/vendor-modified/boost/pointer_cast.hpp +12 -24
  864. data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +22 -9
  865. data/src/cxx_supportlib/vendor-modified/boost/pool/simple_segregated_storage.hpp +13 -0
  866. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/loongarch.h +41 -0
  867. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sparc.h +2 -2
  868. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +1 -0
  869. data/src/cxx_supportlib/vendor-modified/boost/predef/language/stdc.h +1 -1
  870. data/src/cxx_supportlib/vendor-modified/boost/predef/language/stdcpp.h +2 -2
  871. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/msvc.h +53 -0
  872. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std.h +1 -0
  873. data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
  874. data/src/cxx_supportlib/vendor-modified/boost/predef/os/vms.h +1 -1
  875. data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +1 -0
  876. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  877. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/has_opt.hpp +8 -2
  878. data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +5 -5
  879. data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +15 -15
  880. data/src/cxx_supportlib/vendor-modified/boost/random/inversive_congruential.hpp +1 -1
  881. data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +203 -0
  882. data/src/cxx_supportlib/vendor-modified/boost/random/subtract_with_carry.hpp +14 -14
  883. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real_distribution.hpp +2 -2
  884. data/src/cxx_supportlib/vendor-modified/boost/random.hpp +1 -0
  885. data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +4 -82
  886. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/gcd_lcm.hpp +53 -0
  887. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_evenly_divisible_by.hpp +32 -0
  888. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_ratio.hpp +28 -0
  889. data/src/cxx_supportlib/vendor-modified/boost/ratio/include.hpp +1 -3
  890. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio.hpp +5 -249
  891. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_fwd.hpp +30 -56
  892. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_io.hpp +0 -533
  893. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +8 -1
  894. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/icu.hpp +1 -1
  895. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/pattern_except.hpp +3 -2
  896. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +1 -0
  897. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +7 -7
  898. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_creator.hpp +4 -3
  899. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +23 -13
  900. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/icu.hpp +10 -10
  901. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +2 -0
  902. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/pattern_except.hpp +3 -2
  903. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_common.hpp +6 -0
  904. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_non_recursive.hpp +3 -1
  905. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_workaround.hpp +7 -7
  906. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +235 -104
  907. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +37 -43
  908. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +1 -23
  909. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +1 -0
  910. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/deprecated_macros.hpp +52 -0
  911. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +14 -18
  912. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_sp_deleter.hpp +7 -15
  913. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +40 -91
  914. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_convertible.hpp +0 -16
  915. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +1 -0
  916. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +4 -2
  917. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +1 -1
  918. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +13 -14
  919. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +16 -17
  920. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +17 -56
  921. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +4 -1
  922. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_noexcept.hpp +5 -14
  923. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_type_traits.hpp +55 -0
  924. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +1 -0
  925. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp +11 -2
  926. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_std_atomic.hpp +5 -6
  927. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +4 -6
  928. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +7 -9
  929. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +32 -119
  930. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ref_counter.hpp +17 -18
  931. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared.hpp +2 -5
  932. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +10 -8
  933. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +28 -564
  934. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_unique.hpp +64 -0
  935. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +17 -20
  936. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +20 -21
  937. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +34 -66
  938. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +79 -370
  939. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +31 -88
  940. data/src/cxx_supportlib/vendor-modified/boost/static_assert.hpp +2 -1
  941. data/src/cxx_supportlib/vendor-modified/boost/system/detail/append_int.hpp +32 -0
  942. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +26 -8
  943. data/src/cxx_supportlib/vendor-modified/boost/system/detail/enable_if.hpp +3 -12
  944. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +38 -50
  945. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +76 -49
  946. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +261 -159
  947. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +145 -58
  948. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +7 -7
  949. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category_message.hpp +17 -5
  950. data/src/cxx_supportlib/vendor-modified/boost/system/detail/interop_category.hpp +7 -7
  951. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_same.hpp +3 -13
  952. data/src/cxx_supportlib/vendor-modified/boost/system/detail/mutex.hpp +128 -0
  953. data/src/cxx_supportlib/vendor-modified/boost/system/detail/snprintf.hpp +1 -43
  954. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category.hpp +20 -77
  955. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category_impl.hpp +97 -0
  956. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category.hpp +7 -7
  957. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +8 -20
  958. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_message.hpp +71 -0
  959. data/src/cxx_supportlib/vendor-modified/boost/system/errc.hpp +9 -2
  960. data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +30 -59
  961. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/deque.hpp +1 -24
  962. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/functional.hpp +1 -14
  963. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/list.hpp +1 -14
  964. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_arg.hpp +2 -12
  965. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_traits.hpp +0 -11
  966. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/config.hpp +0 -2
  967. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/default_delete.hpp +0 -16
  968. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/pointer_traits.hpp +0 -11
  969. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/scoped_allocator.hpp +0 -11
  970. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/shared_ptr.hpp +0 -19
  971. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/unique_ptr.hpp +4 -6
  972. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/queue.hpp +2 -26
  973. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/tuple.hpp +1 -18
  974. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/vector.hpp +1 -14
  975. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/invoke.hpp +11 -4
  976. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_to_unsigned.hpp +55 -0
  977. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_trim.hpp +29 -0
  978. data/src/cxx_supportlib/vendor-modified/boost/thread/externally_locked.hpp +5 -5
  979. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +0 -1
  980. data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_any.hpp +3 -2
  981. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +1 -1
  982. data/src/cxx_supportlib/vendor-modified/boost/thread/scoped_thread.hpp +9 -0
  983. data/src/cxx_supportlib/vendor-modified/boost/thread/synchronized_value.hpp +4 -4
  984. data/src/cxx_supportlib/vendor-modified/boost/thread/thread_guard.hpp +5 -0
  985. data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +104 -6
  986. data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +2 -2
  987. data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +25 -24
  988. data/src/cxx_supportlib/vendor-modified/boost/tuple/tuple.hpp +1 -1
  989. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +4 -1
  990. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_helper.hpp +27 -27
  991. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +27 -27
  992. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_swappable_cxx_11.hpp +70 -0
  993. data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +22 -8
  994. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +2 -1
  995. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_floating_point.hpp +22 -0
  996. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_function.hpp +1 -1
  997. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_integral.hpp +3 -0
  998. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_function_pointer.hpp +1 -1
  999. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_swappable.hpp +4 -24
  1000. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_swappable.hpp +92 -0
  1001. data/src/cxx_supportlib/vendor-modified/boost/typeof/decltype.hpp +2 -3
  1002. data/src/cxx_supportlib/vendor-modified/boost/typeof/incr_registration_group.hpp +1 -10
  1003. data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +5 -6
  1004. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/bitset.hpp +2 -4
  1005. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/complex.hpp +2 -4
  1006. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/deque.hpp +2 -5
  1007. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/fstream.hpp +2 -15
  1008. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/functional.hpp +4 -51
  1009. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iostream.hpp +2 -6
  1010. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/istream.hpp +2 -9
  1011. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iterator.hpp +2 -46
  1012. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/list.hpp +2 -5
  1013. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/locale.hpp +2 -29
  1014. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/map.hpp +2 -9
  1015. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/memory.hpp +4 -9
  1016. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/ostream.hpp +2 -6
  1017. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/queue.hpp +2 -5
  1018. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/set.hpp +2 -9
  1019. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/sstream.hpp +2 -19
  1020. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/stack.hpp +2 -5
  1021. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/streambuf.hpp +2 -5
  1022. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/string.hpp +2 -12
  1023. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/utility.hpp +2 -4
  1024. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/valarray.hpp +2 -10
  1025. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/vector.hpp +2 -5
  1026. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof.hpp +8 -202
  1027. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +1055 -0
  1028. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map_fwd.hpp +66 -0
  1029. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +917 -0
  1030. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set_fwd.hpp +67 -0
  1031. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_map.hpp +1202 -0
  1032. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_map_fwd.hpp +67 -0
  1033. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_set.hpp +1065 -0
  1034. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_set_fwd.hpp +67 -0
  1035. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/allocator_constructed.hpp +59 -0
  1036. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/archive_constructed.hpp +71 -0
  1037. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/bad_archive_exception.hpp +27 -0
  1038. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/concurrent_static_asserts.hpp +127 -0
  1039. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +900 -0
  1040. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +1993 -0
  1041. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +2404 -0
  1042. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/cumulative_stats.hpp +177 -0
  1043. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/element_type.hpp +64 -0
  1044. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_map_types.hpp +94 -0
  1045. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_set_types.hpp +50 -0
  1046. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/ignore_wshadow.hpp +35 -0
  1047. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_handle.hpp +319 -0
  1048. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_map_handle.hpp +56 -0
  1049. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_map_types.hpp +150 -0
  1050. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_set_handle.hpp +48 -0
  1051. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_set_types.hpp +101 -0
  1052. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/reentrancy_check.hpp +138 -0
  1053. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/restore_wshadow.hpp +11 -0
  1054. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/rw_spinlock.hpp +179 -0
  1055. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +661 -0
  1056. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/tuple_rotate_right.hpp +53 -0
  1057. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/types_constructibility.hpp +172 -0
  1058. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +1463 -3502
  1059. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +10 -31
  1060. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/mulx.hpp +129 -0
  1061. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/narrow_cast.hpp +44 -0
  1062. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/opt_storage.hpp +30 -0
  1063. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/prime_fmod.hpp +214 -0
  1064. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialization_version.hpp +74 -0
  1065. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_container.hpp +204 -0
  1066. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_fca_container.hpp +156 -0
  1067. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_tracked_address.hpp +104 -0
  1068. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/set.hpp +8 -30
  1069. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/static_assert.hpp +16 -0
  1070. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/throw_exception.hpp +30 -0
  1071. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +237 -0
  1072. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/xmx.hpp +75 -0
  1073. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +70 -0
  1074. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +821 -0
  1075. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +59 -0
  1076. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +631 -0
  1077. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +58 -0
  1078. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +760 -994
  1079. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +35 -13
  1080. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +895 -0
  1081. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map_fwd.hpp +59 -0
  1082. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +707 -0
  1083. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set_fwd.hpp +58 -0
  1084. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_printers.hpp +414 -0
  1085. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +539 -664
  1086. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +35 -15
  1087. data/src/cxx_supportlib/vendor-modified/boost/utility/base_from_member.hpp +2 -1
  1088. data/src/cxx_supportlib/vendor-modified/boost/utility/binary.hpp +3 -2
  1089. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +1 -43
  1090. data/src/cxx_supportlib/vendor-modified/boost/utility/in_place_factory.hpp +6 -0
  1091. data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +13 -2
  1092. data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +6 -2
  1093. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +24 -3
  1094. data/src/cxx_supportlib/vendor-modified/boost/utility/swap.hpp +4 -1
  1095. data/src/cxx_supportlib/vendor-modified/boost/utility/typed_in_place_factory.hpp +6 -1
  1096. data/src/cxx_supportlib/vendor-modified/boost/utility/value_init.hpp +12 -8
  1097. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  1098. data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +2 -9
  1099. data/src/cxx_supportlib/vendor-modified/modp_b64_strict_aliasing.cpp +3 -3
  1100. data/src/helper-scripts/backtrace-sanitizer.rb +2 -2
  1101. data/src/helper-scripts/crash-watch.rb +1 -1
  1102. data/src/helper-scripts/download_binaries/extconf.rb +2 -2
  1103. data/src/helper-scripts/meteor-loader.rb +9 -4
  1104. data/src/helper-scripts/node-loader.js +2 -2
  1105. data/src/helper-scripts/prespawn +2 -2
  1106. data/src/helper-scripts/rack-loader.rb +2 -2
  1107. data/src/helper-scripts/rack-preloader.rb +2 -2
  1108. data/src/helper-scripts/wsgi-loader.py +36 -19
  1109. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +26 -34
  1110. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c.cxxcodebuilder +2 -2
  1111. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +14 -2
  1112. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c.cxxcodebuilder +2 -2
  1113. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +38 -50
  1114. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c.cxxcodebuilder +2 -2
  1115. data/src/nginx_module/ConfigGeneral/ManifestGeneration.c +2 -2
  1116. data/src/nginx_module/Configuration.c +8 -3
  1117. data/src/nginx_module/Configuration.h +1 -1
  1118. data/src/nginx_module/ContentHandler.c +1 -1
  1119. data/src/nginx_module/ContentHandler.h +1 -1
  1120. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +13 -2
  1121. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +2 -2
  1122. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +38 -2
  1123. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c.cxxcodebuilder +2 -2
  1124. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +29 -2
  1125. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +2 -2
  1126. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +8 -2
  1127. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c.cxxcodebuilder +2 -2
  1128. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +10 -2
  1129. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h.cxxcodebuilder +2 -2
  1130. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +7 -26
  1131. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +2 -2
  1132. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +13 -50
  1133. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +2 -2
  1134. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +6 -18
  1135. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h.cxxcodebuilder +2 -2
  1136. data/src/nginx_module/StaticContentHandler.c +1 -1
  1137. data/src/nginx_module/StaticContentHandler.h +1 -1
  1138. data/src/nginx_module/ngx_http_passenger_module.c +2 -6
  1139. data/src/nginx_module/ngx_http_passenger_module.h +1 -1
  1140. data/src/nodejs_supportlib/phusion_passenger/line_reader.js +2 -2
  1141. data/src/ruby_native_extension/extconf.rb +3 -3
  1142. data/src/ruby_native_extension/passenger_native_support.c +22 -5
  1143. data/src/ruby_supportlib/phusion_passenger/abstract_installer.rb +2 -2
  1144. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +2 -2
  1145. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +2 -2
  1146. data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +2 -2
  1147. data/src/ruby_supportlib/phusion_passenger/admin_tools.rb +2 -2
  1148. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +22 -26
  1149. data/src/ruby_supportlib/phusion_passenger/apache2/config_utils.rb +2 -2
  1150. data/src/ruby_supportlib/phusion_passenger/common_library.rb +18 -10
  1151. data/src/ruby_supportlib/phusion_passenger/config/about_command.rb +2 -2
  1152. data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +2 -2
  1153. data/src/ruby_supportlib/phusion_passenger/config/api_call_command.rb +2 -2
  1154. data/src/ruby_supportlib/phusion_passenger/config/build_native_support_command.rb +2 -2
  1155. data/src/ruby_supportlib/phusion_passenger/config/command.rb +2 -2
  1156. data/src/ruby_supportlib/phusion_passenger/config/compile_agent_command.rb +2 -2
  1157. data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +8 -4
  1158. data/src/ruby_supportlib/phusion_passenger/config/detach_process_command.rb +2 -2
  1159. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +2 -2
  1160. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +2 -2
  1161. data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +2 -2
  1162. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +12 -2
  1163. data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +2 -2
  1164. data/src/ruby_supportlib/phusion_passenger/config/list_instances_command.rb +2 -2
  1165. data/src/ruby_supportlib/phusion_passenger/config/main.rb +2 -2
  1166. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +15 -7
  1167. data/src/ruby_supportlib/phusion_passenger/config/reopen_logs_command.rb +2 -2
  1168. data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +2 -2
  1169. data/src/ruby_supportlib/phusion_passenger/config/system_metrics_command.rb +2 -2
  1170. data/src/ruby_supportlib/phusion_passenger/config/system_properties_command.rb +2 -2
  1171. data/src/ruby_supportlib/phusion_passenger/config/utils.rb +2 -2
  1172. data/src/ruby_supportlib/phusion_passenger/config/validate_install_command.rb +2 -2
  1173. data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +2 -2
  1174. data/src/ruby_supportlib/phusion_passenger/constants.rb +3 -2
  1175. data/src/ruby_supportlib/phusion_passenger/debug_logging.rb +2 -2
  1176. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +15 -5
  1177. data/src/ruby_supportlib/phusion_passenger/message_channel.rb +2 -2
  1178. data/src/ruby_supportlib/phusion_passenger/message_client.rb +2 -2
  1179. data/src/ruby_supportlib/phusion_passenger/native_support.rb +12 -7
  1180. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +21 -30
  1181. data/src/ruby_supportlib/phusion_passenger/packaging.rb +3 -2
  1182. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +11 -12
  1183. data/src/ruby_supportlib/phusion_passenger/platform_info/apache_detector.rb +2 -2
  1184. data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +3 -3
  1185. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +56 -14
  1186. data/src/ruby_supportlib/phusion_passenger/platform_info/crypto.rb +2 -2
  1187. data/src/ruby_supportlib/phusion_passenger/platform_info/curl.rb +2 -2
  1188. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +9 -31
  1189. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/gems.rb +10 -0
  1190. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/libs.rb +6 -6
  1191. data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +2 -2
  1192. data/src/ruby_supportlib/phusion_passenger/platform_info/networking.rb +2 -2
  1193. data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +2 -2
  1194. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +7 -37
  1195. data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +13 -14
  1196. data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +4 -4
  1197. data/src/ruby_supportlib/phusion_passenger/platform_info/zlib.rb +2 -2
  1198. data/src/ruby_supportlib/phusion_passenger/platform_info.rb +2 -2
  1199. data/src/ruby_supportlib/phusion_passenger/plugin.rb +2 -2
  1200. data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +14 -8
  1201. data/src/ruby_supportlib/phusion_passenger/public_api.rb +5 -2
  1202. data/src/ruby_supportlib/phusion_passenger/rack/handler.rb +73 -0
  1203. data/src/ruby_supportlib/phusion_passenger/rack/out_of_band_gc.rb +2 -2
  1204. data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +14 -3
  1205. data/src/ruby_supportlib/phusion_passenger/rack_handler.rb +32 -58
  1206. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -2
  1207. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +2 -2
  1208. data/src/ruby_supportlib/phusion_passenger/ruby_core_enhancements.rb +7 -2
  1209. data/src/ruby_supportlib/phusion_passenger/ruby_core_io_enhancements.rb +2 -2
  1210. data/src/ruby_supportlib/phusion_passenger/simple_benchmarking.rb +2 -2
  1211. data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +2 -2
  1212. data/src/ruby_supportlib/phusion_passenger/standalone/command.rb +2 -2
  1213. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +27 -23
  1214. data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +2 -2
  1215. data/src/ruby_supportlib/phusion_passenger/standalone/control_utils.rb +2 -2
  1216. data/src/ruby_supportlib/phusion_passenger/standalone/main.rb +2 -2
  1217. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +6 -3
  1218. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +3 -3
  1219. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +2 -6
  1220. data/src/ruby_supportlib/phusion_passenger/standalone/status_command.rb +3 -4
  1221. data/src/ruby_supportlib/phusion_passenger/standalone/stop_command.rb +9 -3
  1222. data/src/ruby_supportlib/phusion_passenger/standalone/version_command.rb +2 -2
  1223. data/src/ruby_supportlib/phusion_passenger/utils/ansi_colors.rb +2 -2
  1224. data/src/ruby_supportlib/phusion_passenger/utils/download.rb +2 -2
  1225. data/src/ruby_supportlib/phusion_passenger/utils/file_system_watcher.rb +2 -2
  1226. data/src/ruby_supportlib/phusion_passenger/utils/hosts_file_parser.rb +2 -2
  1227. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +7 -198
  1228. data/src/ruby_supportlib/phusion_passenger/utils/lock.rb +2 -2
  1229. data/src/ruby_supportlib/phusion_passenger/utils/native_support_utils.rb +2 -2
  1230. data/src/ruby_supportlib/phusion_passenger/utils/progress_bar.rb +2 -2
  1231. data/src/ruby_supportlib/phusion_passenger/utils/strscan.rb +67 -0
  1232. data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +2 -2
  1233. data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +2 -2
  1234. data/src/ruby_supportlib/phusion_passenger/utils.rb +8 -17
  1235. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +2 -2
  1236. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/base.rb +1 -1
  1237. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +5 -1
  1238. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +6 -2
  1239. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/utils.rb +1 -1
  1240. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/version.rb +1 -1
  1241. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/lock_file.rb +1 -1
  1242. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/spawn.rb +1 -1
  1243. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/version.rb +1 -1
  1244. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +1 -1
  1245. data/src/ruby_supportlib/phusion_passenger.rb +11 -11
  1246. data/src/schema_printer/SchemaPrinterMain.cpp +2 -6
  1247. data/src/schema_printer/SchemaPrinterMain.cpp.cxxcodebuilder +2 -2
  1248. metadata +211 -741
  1249. data/dev/webpacketpp.patch +0 -39
  1250. data/src/agent/Core/AdminPanelConnector.h +0 -681
  1251. data/src/cxx_supportlib/DataStructures/HashMap.h +0 -60
  1252. data/src/cxx_supportlib/FileTools/LargeFiles.cpp +0 -41
  1253. data/src/cxx_supportlib/ServerKit/http_parser.cpp +0 -2265
  1254. data/src/cxx_supportlib/ServerKit/http_parser.h +0 -330
  1255. data/src/cxx_supportlib/WebSocketCommandReverseServer.h +0 -975
  1256. data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +0 -19
  1257. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of.hpp +0 -54
  1258. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of_forward.hpp +0 -20
  1259. data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +0 -21
  1260. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc.hpp +0 -52
  1261. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of.hpp +0 -31
  1262. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of_cxx11.hpp +0 -23
  1263. data/src/cxx_supportlib/vendor-modified/boost/align/detail/element_type.hpp +0 -91
  1264. data/src/cxx_supportlib/vendor-modified/boost/align/detail/integral_constant.hpp +0 -53
  1265. data/src/cxx_supportlib/vendor-modified/boost/align/detail/min_size.hpp +0 -26
  1266. data/src/cxx_supportlib/vendor-modified/boost/array.hpp +0 -456
  1267. data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +0 -302
  1268. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +0 -179
  1269. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +0 -179
  1270. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +0 -224
  1271. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +0 -37
  1272. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +0 -1267
  1273. data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +0 -135
  1274. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +0 -1305
  1275. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +0 -705
  1276. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +0 -292
  1277. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +0 -1296
  1278. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +0 -800
  1279. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +0 -909
  1280. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +0 -578
  1281. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +0 -1917
  1282. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +0 -2600
  1283. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +0 -409
  1284. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +0 -689
  1285. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +0 -1122
  1286. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +0 -454
  1287. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +0 -38
  1288. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +0 -823
  1289. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +0 -723
  1290. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +0 -756
  1291. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +0 -2500
  1292. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +0 -255
  1293. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +0 -27
  1294. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +0 -281
  1295. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +0 -27
  1296. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +0 -247
  1297. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +0 -27
  1298. data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +0 -523
  1299. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +0 -361
  1300. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +0 -237
  1301. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +0 -176
  1302. data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +0 -501
  1303. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +0 -220
  1304. data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +0 -138
  1305. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +0 -1138
  1306. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +0 -330
  1307. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +0 -40
  1308. data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +0 -132
  1309. data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +0 -114
  1310. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +0 -40
  1311. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +0 -34
  1312. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +0 -32
  1313. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +0 -66
  1314. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +0 -165
  1315. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +0 -71
  1316. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +0 -1073
  1317. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/blocking_executor_op.hpp +0 -109
  1318. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +0 -68
  1319. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +0 -652
  1320. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +0 -128
  1321. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bulk_executor_op.hpp +0 -90
  1322. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +0 -127
  1323. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +0 -68
  1324. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +0 -192
  1325. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +0 -90
  1326. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +0 -94
  1327. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +0 -122
  1328. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +0 -151
  1329. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +0 -1938
  1330. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +0 -416
  1331. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +0 -33
  1332. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +0 -62
  1333. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +0 -34
  1334. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +0 -337
  1335. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +0 -38
  1336. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +0 -141
  1337. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +0 -150
  1338. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +0 -150
  1339. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +0 -224
  1340. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +0 -278
  1341. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +0 -50
  1342. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +0 -85
  1343. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_function.hpp +0 -206
  1344. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +0 -86
  1345. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +0 -41
  1346. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +0 -82
  1347. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +0 -46
  1348. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +0 -33
  1349. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +0 -93
  1350. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +0 -70
  1351. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +0 -67
  1352. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +0 -101
  1353. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +0 -54
  1354. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +0 -290
  1355. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +0 -45
  1356. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +0 -80
  1357. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +0 -268
  1358. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +0 -561
  1359. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +0 -527
  1360. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +0 -333
  1361. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +0 -120
  1362. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +0 -610
  1363. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +0 -101
  1364. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +0 -462
  1365. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +0 -111
  1366. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +0 -819
  1367. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +0 -173
  1368. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +0 -398
  1369. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +0 -115
  1370. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +0 -601
  1371. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +0 -76
  1372. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +0 -131
  1373. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +0 -65
  1374. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +0 -48
  1375. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +0 -86
  1376. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +0 -48
  1377. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +0 -225
  1378. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_serial_port_service.ipp +0 -151
  1379. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +0 -302
  1380. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +0 -160
  1381. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/scheduler.ipp +0 -661
  1382. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +0 -126
  1383. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +0 -359
  1384. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +0 -96
  1385. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +0 -199
  1386. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +0 -670
  1387. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +0 -3966
  1388. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +0 -187
  1389. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +0 -356
  1390. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +0 -160
  1391. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +0 -89
  1392. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +0 -204
  1393. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/thread_context.ipp +0 -37
  1394. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +0 -47
  1395. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +0 -99
  1396. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +0 -103
  1397. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +0 -86
  1398. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_object_impl.hpp +0 -174
  1399. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +0 -314
  1400. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +0 -128
  1401. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +0 -72
  1402. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +0 -254
  1403. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/limits.hpp +0 -26
  1404. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +0 -61
  1405. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +0 -64
  1406. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +0 -135
  1407. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +0 -50
  1408. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/non_const_lvalue.hpp +0 -56
  1409. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +0 -45
  1410. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +0 -108
  1411. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +0 -49
  1412. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +0 -61
  1413. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +0 -66
  1414. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +0 -70
  1415. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +0 -71
  1416. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +0 -521
  1417. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +0 -62
  1418. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +0 -69
  1419. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +0 -70
  1420. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +0 -173
  1421. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +0 -216
  1422. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +0 -164
  1423. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +0 -40
  1424. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +0 -91
  1425. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +0 -149
  1426. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +0 -177
  1427. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +0 -120
  1428. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_global.hpp +0 -82
  1429. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +0 -78
  1430. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +0 -87
  1431. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +0 -66
  1432. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +0 -111
  1433. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +0 -81
  1434. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +0 -218
  1435. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +0 -511
  1436. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +0 -100
  1437. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_serial_port_service.hpp +0 -239
  1438. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +0 -244
  1439. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +0 -125
  1440. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +0 -161
  1441. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +0 -166
  1442. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +0 -147
  1443. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +0 -164
  1444. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +0 -158
  1445. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +0 -607
  1446. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +0 -654
  1447. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +0 -100
  1448. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +0 -32
  1449. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_fwd.hpp +0 -42
  1450. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +0 -73
  1451. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +0 -214
  1452. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +0 -107
  1453. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +0 -44
  1454. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +0 -142
  1455. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +0 -47
  1456. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +0 -152
  1457. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +0 -147
  1458. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +0 -160
  1459. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler.hpp +0 -231
  1460. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_operation.hpp +0 -80
  1461. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_thread_info.hpp +0 -42
  1462. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +0 -103
  1463. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +0 -89
  1464. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +0 -48
  1465. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +0 -250
  1466. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +0 -166
  1467. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +0 -46
  1468. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +0 -92
  1469. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +0 -49
  1470. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +0 -51
  1471. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +0 -231
  1472. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +0 -100
  1473. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +0 -385
  1474. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +0 -318
  1475. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +0 -93
  1476. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +0 -419
  1477. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +0 -64
  1478. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/source_location.hpp +0 -47
  1479. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +0 -54
  1480. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +0 -190
  1481. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +0 -64
  1482. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_global.hpp +0 -72
  1483. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +0 -75
  1484. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +0 -83
  1485. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +0 -73
  1486. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +0 -175
  1487. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +0 -146
  1488. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +0 -49
  1489. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +0 -62
  1490. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +0 -53
  1491. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +0 -101
  1492. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +0 -258
  1493. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +0 -55
  1494. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +0 -53
  1495. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +0 -391
  1496. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +0 -70
  1497. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +0 -105
  1498. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +0 -68
  1499. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +0 -35
  1500. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +0 -42
  1501. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +0 -71
  1502. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +0 -158
  1503. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +0 -294
  1504. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +0 -92
  1505. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +0 -51
  1506. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +0 -130
  1507. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +0 -153
  1508. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +0 -329
  1509. data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +0 -123
  1510. data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +0 -361
  1511. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +0 -339
  1512. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +0 -2348
  1513. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bad_executor.hpp +0 -49
  1514. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +0 -1553
  1515. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +0 -1214
  1516. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +0 -401
  1517. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_guarantee.hpp +0 -1217
  1518. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +0 -493
  1519. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +0 -235
  1520. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +0 -223
  1521. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_invocable.hpp +0 -154
  1522. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_operation.hpp +0 -107
  1523. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_receiver.hpp +0 -130
  1524. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/bulk_sender.hpp +0 -263
  1525. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/submit_receiver.hpp +0 -235
  1526. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/void_receiver.hpp +0 -92
  1527. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +0 -289
  1528. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +0 -254
  1529. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/bad_executor.ipp +0 -42
  1530. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/receiver_invocation_error.ipp +0 -38
  1531. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/invocable_archetype.hpp +0 -73
  1532. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +0 -1118
  1533. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +0 -228
  1534. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/operation_state.hpp +0 -96
  1535. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +0 -869
  1536. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/prefer_only.hpp +0 -333
  1537. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver.hpp +0 -282
  1538. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver_invocation_error.hpp +0 -50
  1539. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +0 -867
  1540. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +0 -291
  1541. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/scheduler.hpp +0 -88
  1542. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/sender.hpp +0 -313
  1543. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +0 -254
  1544. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +0 -254
  1545. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +0 -487
  1546. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +0 -251
  1547. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +0 -454
  1548. data/src/cxx_supportlib/vendor-modified/boost/asio/execution.hpp +0 -48
  1549. data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +0 -414
  1550. data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +0 -349
  1551. data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +0 -304
  1552. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +0 -73
  1553. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_single.hpp +0 -137
  1554. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +0 -133
  1555. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +0 -538
  1556. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +0 -157
  1557. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +0 -1057
  1558. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +0 -607
  1559. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/completion_handler_erasure.hpp +0 -160
  1560. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +0 -120
  1561. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_traits.hpp +0 -185
  1562. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +0 -181
  1563. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/append.hpp +0 -219
  1564. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +0 -231
  1565. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_tuple.hpp +0 -248
  1566. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/deferred.hpp +0 -106
  1567. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +0 -434
  1568. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/prepend.hpp +0 -219
  1569. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +0 -100
  1570. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +0 -217
  1571. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +0 -73
  1572. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +0 -608
  1573. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +0 -284
  1574. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +0 -195
  1575. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +0 -125
  1576. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +0 -135
  1577. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +0 -112
  1578. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +0 -123
  1579. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +0 -124
  1580. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +0 -129
  1581. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +0 -106
  1582. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +0 -56
  1583. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +0 -113
  1584. data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +0 -46
  1585. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +0 -762
  1586. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +0 -500
  1587. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +0 -480
  1588. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +0 -348
  1589. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +0 -689
  1590. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +0 -906
  1591. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +0 -258
  1592. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +0 -132
  1593. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +0 -253
  1594. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +0 -130
  1595. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.hpp +0 -111
  1596. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +0 -84
  1597. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +0 -302
  1598. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +0 -45
  1599. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +0 -64
  1600. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +0 -446
  1601. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +0 -177
  1602. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/multiple_exceptions.ipp +0 -51
  1603. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +0 -258
  1604. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +0 -1201
  1605. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +0 -735
  1606. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +0 -3317
  1607. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +0 -611
  1608. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +0 -61
  1609. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +0 -556
  1610. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +0 -519
  1611. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +0 -85
  1612. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +0 -36
  1613. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +0 -94
  1614. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +0 -187
  1615. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +0 -356
  1616. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +0 -143
  1617. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +0 -293
  1618. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +0 -1030
  1619. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +0 -1102
  1620. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +0 -646
  1621. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +0 -1552
  1622. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +0 -378
  1623. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +0 -35
  1624. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +0 -20
  1625. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +0 -292
  1626. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +0 -357
  1627. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +0 -164
  1628. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +0 -136
  1629. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +0 -384
  1630. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +0 -185
  1631. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +0 -131
  1632. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +0 -55
  1633. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +0 -293
  1634. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +0 -1078
  1635. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +0 -115
  1636. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +0 -194
  1637. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +0 -246
  1638. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +0 -313
  1639. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +0 -143
  1640. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +0 -201
  1641. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +0 -568
  1642. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +0 -44
  1643. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +0 -117
  1644. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +0 -69
  1645. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +0 -241
  1646. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +0 -69
  1647. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +0 -212
  1648. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +0 -69
  1649. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +0 -352
  1650. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +0 -45
  1651. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +0 -56
  1652. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.hpp +0 -56
  1653. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +0 -218
  1654. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +0 -55
  1655. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +0 -187
  1656. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +0 -193
  1657. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +0 -263
  1658. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +0 -237
  1659. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +0 -131
  1660. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +0 -45
  1661. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +0 -157
  1662. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +0 -113
  1663. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +0 -72
  1664. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +0 -71
  1665. data/src/cxx_supportlib/vendor-modified/boost/asio/is_applicable_property.hpp +0 -63
  1666. data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +0 -48
  1667. data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +0 -61
  1668. data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +0 -61
  1669. data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +0 -249
  1670. data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +0 -103
  1671. data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +0 -82
  1672. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +0 -141
  1673. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +0 -133
  1674. data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +0 -92
  1675. data/src/cxx_supportlib/vendor-modified/boost/asio/multiple_exceptions.hpp +0 -60
  1676. data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +0 -128
  1677. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +0 -153
  1678. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +0 -710
  1679. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +0 -503
  1680. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +0 -39
  1681. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +0 -92
  1682. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +0 -39
  1683. data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +0 -128
  1684. data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +0 -738
  1685. data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +0 -328
  1686. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +0 -1390
  1687. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +0 -740
  1688. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +0 -3033
  1689. data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +0 -68
  1690. data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +0 -575
  1691. data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +0 -356
  1692. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +0 -38
  1693. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +0 -169
  1694. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +0 -30
  1695. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +0 -561
  1696. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +0 -346
  1697. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +0 -763
  1698. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +0 -211
  1699. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +0 -121
  1700. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +0 -172
  1701. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +0 -69
  1702. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +0 -365
  1703. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +0 -167
  1704. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +0 -427
  1705. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +0 -103
  1706. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +0 -34
  1707. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +0 -68
  1708. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +0 -74
  1709. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +0 -71
  1710. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +0 -208
  1711. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +0 -64
  1712. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +0 -78
  1713. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +0 -129
  1714. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/host_name_verification.hpp +0 -92
  1715. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +0 -69
  1716. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +0 -1247
  1717. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +0 -104
  1718. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/host_name_verification.ipp +0 -75
  1719. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +0 -166
  1720. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +0 -29
  1721. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +0 -100
  1722. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +0 -974
  1723. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +0 -54
  1724. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +0 -69
  1725. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +0 -65
  1726. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +0 -28
  1727. data/src/cxx_supportlib/vendor-modified/boost/asio/static_thread_pool.hpp +0 -33
  1728. data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +0 -44
  1729. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +0 -571
  1730. data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +0 -35
  1731. data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +0 -92
  1732. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +0 -686
  1733. data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +0 -44
  1734. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +0 -282
  1735. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +0 -1133
  1736. data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +0 -88
  1737. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_free.hpp +0 -116
  1738. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_member.hpp +0 -116
  1739. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_free.hpp +0 -114
  1740. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_member.hpp +0 -114
  1741. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/equality_comparable.hpp +0 -106
  1742. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_free.hpp +0 -110
  1743. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_member.hpp +0 -110
  1744. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_free.hpp +0 -110
  1745. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_member.hpp +0 -110
  1746. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_free.hpp +0 -110
  1747. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_member.hpp +0 -110
  1748. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_static_constexpr_member.hpp +0 -110
  1749. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_free.hpp +0 -110
  1750. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_member.hpp +0 -110
  1751. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_free.hpp +0 -110
  1752. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_member.hpp +0 -110
  1753. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_free.hpp +0 -110
  1754. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_member.hpp +0 -110
  1755. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_free.hpp +0 -110
  1756. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_member.hpp +0 -110
  1757. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_free.hpp +0 -114
  1758. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_member.hpp +0 -114
  1759. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_free.hpp +0 -236
  1760. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_member.hpp +0 -236
  1761. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_free.hpp +0 -110
  1762. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_member.hpp +0 -110
  1763. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_query.hpp +0 -110
  1764. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require.hpp +0 -125
  1765. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require_concept.hpp +0 -126
  1766. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_free.hpp +0 -114
  1767. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_member.hpp +0 -114
  1768. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +0 -24
  1769. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +0 -35
  1770. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +0 -40
  1771. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +0 -20
  1772. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +0 -26
  1773. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +0 -256
  1774. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +0 -27
  1775. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +0 -26
  1776. data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +0 -21
  1777. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +0 -168
  1778. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +0 -162
  1779. data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +0 -73
  1780. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +0 -23
  1781. data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +0 -58
  1782. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +0 -437
  1783. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_overlapped_handle.hpp +0 -363
  1784. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +0 -512
  1785. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +0 -496
  1786. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +0 -40
  1787. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_handle.hpp +0 -41
  1788. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +0 -147
  1789. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +0 -39
  1790. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +0 -39
  1791. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +0 -1348
  1792. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +0 -748
  1793. data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +0 -23
  1794. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +0 -187
  1795. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_windows.hpp +0 -201
  1796. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_windows.hpp +0 -67
  1797. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_windows.hpp +0 -55
  1798. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_windows.hpp +0 -150
  1799. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf2_cc.hpp +0 -228
  1800. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf_cc.hpp +0 -441
  1801. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_template.hpp +0 -345
  1802. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_cc.hpp +0 -103
  1803. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_template.hpp +0 -1047
  1804. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_vw.hpp +0 -130
  1805. data/src/cxx_supportlib/vendor-modified/boost/bind/storage.hpp +0 -475
  1806. data/src/cxx_supportlib/vendor-modified/boost/checked_delete.hpp +0 -17
  1807. data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +0 -71
  1808. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/float_functions.hpp +0 -336
  1809. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_float.hpp +0 -271
  1810. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/limits.hpp +0 -62
  1811. data/src/cxx_supportlib/vendor-modified/boost/container_hash/extensions.hpp +0 -361
  1812. data/src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp +0 -21
  1813. data/src/cxx_supportlib/vendor-modified/boost/detail/container_fwd.hpp +0 -157
  1814. data/src/cxx_supportlib/vendor-modified/boost/function/detail/function_iterate.hpp +0 -16
  1815. data/src/cxx_supportlib/vendor-modified/boost/function/detail/gen_maybe_include.pl +0 -39
  1816. data/src/cxx_supportlib/vendor-modified/boost/function/detail/maybe_include.hpp +0 -369
  1817. data/src/cxx_supportlib/vendor-modified/boost/function/detail/prologue.hpp +0 -26
  1818. data/src/cxx_supportlib/vendor-modified/boost/function/gen_function_N.pl +0 -26
  1819. data/src/cxx_supportlib/vendor-modified/boost/functional/hash_fwd.hpp +0 -6
  1820. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +0 -1058
  1821. data/src/cxx_supportlib/vendor-modified/boost/pointer_to_other.hpp +0 -55
  1822. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/abs.hpp +0 -89
  1823. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/gcd.hpp +0 -124
  1824. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/lcm.hpp +0 -126
  1825. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/sign.hpp +0 -89
  1826. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/overflow_helpers.hpp +0 -367
  1827. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/ratio_io.hpp +0 -1342
  1828. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/abs.hpp +0 -30
  1829. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/arithmetic.hpp +0 -22
  1830. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/comparison.hpp +0 -19
  1831. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/divides.hpp +0 -30
  1832. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/equal_to.hpp +0 -30
  1833. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/gcd.hpp +0 -30
  1834. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater.hpp +0 -30
  1835. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater_equal.hpp +0 -30
  1836. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/lcm.hpp +0 -30
  1837. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less.hpp +0 -30
  1838. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less_equal.hpp +0 -30
  1839. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/minus.hpp +0 -30
  1840. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/negate.hpp +0 -30
  1841. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/not_equal_to.hpp +0 -30
  1842. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/numeric_cast.hpp +0 -31
  1843. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/plus.hpp +0 -30
  1844. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_c_tag.hpp +0 -25
  1845. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_constant.hpp +0 -15
  1846. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/sign.hpp +0 -30
  1847. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/times.hpp +0 -30
  1848. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/indexed_bit_flag.hpp +0 -54
  1849. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/operator_bool.hpp +0 -64
  1850. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_forward.hpp +0 -52
  1851. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_nullptr_t.hpp +0 -45
  1852. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_obsolete.hpp +0 -32
  1853. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_thread_pause.hpp +0 -51
  1854. data/src/cxx_supportlib/vendor-modified/boost/swap.hpp +0 -17
  1855. data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +0 -278
  1856. data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +0 -297
  1857. data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +0 -265
  1858. data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +0 -100
  1859. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -58
  1860. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +0 -34
  1861. data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +0 -118
  1862. data/src/cxx_supportlib/vendor-modified/boost/typeof/integral_template_param.hpp +0 -80
  1863. data/src/cxx_supportlib/vendor-modified/boost/typeof/message.hpp +0 -8
  1864. data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +0 -121
  1865. data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +0 -60
  1866. data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +0 -38
  1867. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions.hpp +0 -50
  1868. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +0 -135
  1869. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_fundamental.hpp +0 -61
  1870. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +0 -32
  1871. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +0 -160
  1872. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +0 -149
  1873. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +0 -27
  1874. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_template_param.hpp +0 -37
  1875. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +0 -187
  1876. data/src/cxx_supportlib/vendor-modified/boost/typeof/unsupported.hpp +0 -29
  1877. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +0 -166
  1878. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +0 -321
  1879. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +0 -471
  1880. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +0 -621
  1881. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +0 -171
  1882. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +0 -63
  1883. data/src/cxx_supportlib/vendor-modified/websocketpp/COPYING +0 -145
  1884. data/src/cxx_supportlib/vendor-modified/websocketpp/changelog.md +0 -444
  1885. data/src/cxx_supportlib/vendor-modified/websocketpp/readme.md +0 -49
  1886. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/base64/base64.hpp +0 -178
  1887. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/client.hpp +0 -33
  1888. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/close.hpp +0 -353
  1889. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/asio.hpp +0 -141
  1890. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/asio_ssl.hpp +0 -39
  1891. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/chrono.hpp +0 -68
  1892. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/connection_hdl.hpp +0 -52
  1893. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/cpp11.hpp +0 -162
  1894. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/functional.hpp +0 -100
  1895. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/md5.hpp +0 -448
  1896. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/memory.hpp +0 -88
  1897. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/network.hpp +0 -106
  1898. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/platforms.hpp +0 -46
  1899. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/random.hpp +0 -82
  1900. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/regex.hpp +0 -59
  1901. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/stdint.hpp +0 -73
  1902. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/system_error.hpp +0 -84
  1903. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/thread.hpp +0 -88
  1904. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/time.hpp +0 -56
  1905. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/type_traits.hpp +0 -65
  1906. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/concurrency/basic.hpp +0 -46
  1907. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/concurrency/none.hpp +0 -80
  1908. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio.hpp +0 -77
  1909. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio_client.hpp +0 -77
  1910. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio_no_tls.hpp +0 -73
  1911. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio_no_tls_client.hpp +0 -73
  1912. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/boost_config.hpp +0 -72
  1913. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/core.hpp +0 -297
  1914. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/core_client.hpp +0 -294
  1915. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/debug.hpp +0 -286
  1916. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/debug_asio.hpp +0 -77
  1917. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/debug_asio_no_tls.hpp +0 -73
  1918. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/minimal_client.hpp +0 -72
  1919. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/minimal_server.hpp +0 -312
  1920. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/connection.hpp +0 -1642
  1921. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/connection_base.hpp +0 -38
  1922. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/endpoint.hpp +0 -700
  1923. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/endpoint_base.hpp +0 -38
  1924. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/error.hpp +0 -277
  1925. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/extensions/extension.hpp +0 -102
  1926. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/extensions/permessage_deflate/disabled.hpp +0 -129
  1927. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/extensions/permessage_deflate/enabled.hpp +0 -817
  1928. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/frame.hpp +0 -864
  1929. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/constants.hpp +0 -308
  1930. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/impl/parser.hpp +0 -200
  1931. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/impl/request.hpp +0 -191
  1932. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/impl/response.hpp +0 -266
  1933. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/parser.hpp +0 -629
  1934. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/request.hpp +0 -124
  1935. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/response.hpp +0 -188
  1936. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/impl/connection_impl.hpp +0 -2375
  1937. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/impl/endpoint_impl.hpp +0 -269
  1938. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/impl/utilities_impl.hpp +0 -87
  1939. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/basic.hpp +0 -199
  1940. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/levels.hpp +0 -203
  1941. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/stub.hpp +0 -119
  1942. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/syslog.hpp +0 -146
  1943. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/message_buffer/alloc.hpp +0 -105
  1944. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/message_buffer/message.hpp +0 -340
  1945. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/message_buffer/pool.hpp +0 -229
  1946. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/base.hpp +0 -299
  1947. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi00.hpp +0 -462
  1948. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi07.hpp +0 -78
  1949. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi08.hpp +0 -83
  1950. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi13.hpp +0 -1078
  1951. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/processor.hpp +0 -407
  1952. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/random/none.hpp +0 -60
  1953. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/random/random_device.hpp +0 -80
  1954. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/roles/client_endpoint.hpp +0 -173
  1955. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/roles/server_endpoint.hpp +0 -195
  1956. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/server.hpp +0 -33
  1957. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/sha1/sha1.hpp +0 -189
  1958. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/base.hpp +0 -232
  1959. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/connection.hpp +0 -1197
  1960. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/endpoint.hpp +0 -1182
  1961. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/security/base.hpp +0 -159
  1962. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/security/none.hpp +0 -372
  1963. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/security/tls.hpp +0 -474
  1964. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/base/connection.hpp +0 -238
  1965. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/base/endpoint.hpp +0 -77
  1966. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/debug/base.hpp +0 -104
  1967. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/debug/connection.hpp +0 -412
  1968. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/debug/endpoint.hpp +0 -140
  1969. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/iostream/base.hpp +0 -133
  1970. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/iostream/connection.hpp +0 -714
  1971. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/iostream/endpoint.hpp +0 -222
  1972. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/stub/base.hpp +0 -95
  1973. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/stub/connection.hpp +0 -286
  1974. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/stub/endpoint.hpp +0 -140
  1975. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/uri.hpp +0 -356
  1976. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/utf8_validator.hpp +0 -154
  1977. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/utilities.hpp +0 -180
  1978. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/version.hpp +0 -61
@@ -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)
75
+ template<class D, class S>
76
+ BOOST_CONTAINER_FORCEINLINE static D &force(S &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
+
62
89
  template<class D, class S>
63
90
  BOOST_CONTAINER_FORCEINLINE static D &force(S &s)
64
- { return *reinterpret_cast<D*>(&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,30 @@ 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
125
- typedef dtl::flat_tree<
126
- dtl::pair<Key, T>,
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
+
166
+ typedef dtl::flat_tree< impl_pair_t,
127
167
  dtl::select1st<Key>,
128
168
  Compare,
129
- typename dtl::container_or_allocator_rebind<AllocatorOrContainer, dtl::pair<Key, T> >::type
169
+ #ifdef BOOST_CONTAINER_STD_PAIR_IS_MOVABLE
170
+ AllocatorOrContainer
171
+ #else
172
+ typename dtl::container_or_allocator_rebind<AllocatorOrContainer, impl_pair_t >::type
173
+ #endif
130
174
  > impl_tree_t;
131
175
  impl_tree_t m_flat_tree; // flat tree representing flat_map
132
176
 
@@ -151,10 +195,10 @@ class flat_map
151
195
  typedef typename impl_tree_t::stored_allocator_type impl_stored_allocator_type;
152
196
  typedef typename impl_tree_t::sequence_type impl_sequence_type;
153
197
 
154
- BOOST_CONTAINER_FORCEINLINE impl_tree_t &tree()
198
+ inline impl_tree_t &tree()
155
199
  { return m_flat_tree; }
156
200
 
157
- BOOST_CONTAINER_FORCEINLINE const impl_tree_t &tree() const
201
+ inline const impl_tree_t &tree() const
158
202
  { return m_flat_tree; }
159
203
 
160
204
  private:
@@ -195,7 +239,7 @@ class flat_map
195
239
  typedef BOOST_CONTAINER_IMPDEF(impl_value_type) movable_value_type;
196
240
 
197
241
  //AllocatorOrContainer::value_type must be std::pair<Key, T>
198
- BOOST_STATIC_ASSERT((dtl::is_same<std::pair<Key, T>, value_type>::value));
242
+ BOOST_CONTAINER_STATIC_ASSERT((dtl::is_same<std::pair<Key, T>, value_type>::value));
199
243
 
200
244
  //////////////////////////////////////////////
201
245
  //
@@ -206,7 +250,7 @@ class flat_map
206
250
  //! <b>Effects</b>: Default constructs an empty flat_map.
207
251
  //!
208
252
  //! <b>Complexity</b>: Constant.
209
- BOOST_CONTAINER_FORCEINLINE flat_map() BOOST_NOEXCEPT_IF(dtl::is_nothrow_default_constructible<AllocatorOrContainer>::value &&
253
+ inline flat_map() BOOST_NOEXCEPT_IF(dtl::is_nothrow_default_constructible<AllocatorOrContainer>::value &&
210
254
  dtl::is_nothrow_default_constructible<Compare>::value)
211
255
  : m_flat_tree()
212
256
  {}
@@ -214,7 +258,7 @@ class flat_map
214
258
  //! <b>Effects</b>: Constructs an empty flat_map using the specified allocator.
215
259
  //!
216
260
  //! <b>Complexity</b>: Constant.
217
- BOOST_CONTAINER_FORCEINLINE explicit flat_map(const allocator_type& a)
261
+ inline explicit flat_map(const allocator_type& a)
218
262
  : m_flat_tree(dtl::force<const impl_allocator_type>(a))
219
263
  {}
220
264
 
@@ -222,7 +266,7 @@ class flat_map
222
266
  //! comparison object.
223
267
  //!
224
268
  //! <b>Complexity</b>: Constant.
225
- BOOST_CONTAINER_FORCEINLINE explicit flat_map(const Compare& comp)
269
+ inline explicit flat_map(const Compare& comp)
226
270
  : m_flat_tree(comp)
227
271
  {}
228
272
 
@@ -230,7 +274,7 @@ class flat_map
230
274
  //! comparison object and allocator.
231
275
  //!
232
276
  //! <b>Complexity</b>: Constant.
233
- BOOST_CONTAINER_FORCEINLINE flat_map(const Compare& comp, const allocator_type& a)
277
+ inline flat_map(const Compare& comp, const allocator_type& a)
234
278
  : m_flat_tree(comp, dtl::force<const impl_allocator_type>(a))
235
279
  {}
236
280
 
@@ -240,7 +284,7 @@ class flat_map
240
284
  //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
241
285
  //! the predicate and otherwise N logN, where N is last - first.
242
286
  template <class InputIterator>
243
- BOOST_CONTAINER_FORCEINLINE flat_map(InputIterator first, InputIterator last)
287
+ inline flat_map(InputIterator first, InputIterator last)
244
288
  : m_flat_tree(true, first, last)
245
289
  {}
246
290
 
@@ -250,7 +294,7 @@ class flat_map
250
294
  //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
251
295
  //! the predicate and otherwise N logN, where N is last - first.
252
296
  template <class InputIterator>
253
- BOOST_CONTAINER_FORCEINLINE flat_map(InputIterator first, InputIterator last, const allocator_type& a)
297
+ inline flat_map(InputIterator first, InputIterator last, const allocator_type& a)
254
298
  : m_flat_tree(true, first, last, dtl::force<const impl_allocator_type>(a))
255
299
  {}
256
300
 
@@ -260,7 +304,7 @@ class flat_map
260
304
  //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
261
305
  //! the predicate and otherwise N logN, where N is last - first.
262
306
  template <class InputIterator>
263
- BOOST_CONTAINER_FORCEINLINE flat_map(InputIterator first, InputIterator last, const Compare& comp)
307
+ inline flat_map(InputIterator first, InputIterator last, const Compare& comp)
264
308
  : m_flat_tree(true, first, last, comp)
265
309
  {}
266
310
 
@@ -270,7 +314,7 @@ class flat_map
270
314
  //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
271
315
  //! the predicate and otherwise N logN, where N is last - first.
272
316
  template <class InputIterator>
273
- BOOST_CONTAINER_FORCEINLINE flat_map(InputIterator first, InputIterator last, const Compare& comp, const allocator_type& a)
317
+ inline flat_map(InputIterator first, InputIterator last, const Compare& comp, const allocator_type& a)
274
318
  : m_flat_tree(true, first, last, comp, dtl::force<const impl_allocator_type>(a))
275
319
  {}
276
320
 
@@ -284,7 +328,7 @@ class flat_map
284
328
  //!
285
329
  //! <b>Note</b>: Non-standard extension.
286
330
  template <class InputIterator>
287
- BOOST_CONTAINER_FORCEINLINE
331
+ inline
288
332
  flat_map(ordered_unique_range_t, InputIterator first, InputIterator last)
289
333
  : m_flat_tree(ordered_range, first, last)
290
334
  {}
@@ -299,7 +343,7 @@ class flat_map
299
343
  //!
300
344
  //! <b>Note</b>: Non-standard extension.
301
345
  template <class InputIterator>
302
- BOOST_CONTAINER_FORCEINLINE
346
+ inline
303
347
  flat_map(ordered_unique_range_t, InputIterator first, InputIterator last, const Compare& comp)
304
348
  : m_flat_tree(ordered_range, first, last, comp)
305
349
  {}
@@ -314,7 +358,7 @@ class flat_map
314
358
  //!
315
359
  //! <b>Note</b>: Non-standard extension.
316
360
  template <class InputIterator>
317
- BOOST_CONTAINER_FORCEINLINE
361
+ inline
318
362
  flat_map(ordered_unique_range_t, InputIterator first, InputIterator last, const Compare& comp, const allocator_type& a)
319
363
  : m_flat_tree(ordered_range, first, last, comp, dtl::force<const impl_allocator_type>(a))
320
364
  {}
@@ -329,7 +373,7 @@ class flat_map
329
373
  //!
330
374
  //! <b>Note</b>: Non-standard extension.
331
375
  template <class InputIterator>
332
- BOOST_CONTAINER_FORCEINLINE
376
+ inline
333
377
  flat_map(ordered_unique_range_t, InputIterator first, InputIterator last, const allocator_type& a)
334
378
  : m_flat_tree(ordered_range, first, last, Compare(), a)
335
379
  {}
@@ -340,7 +384,7 @@ class flat_map
340
384
  //!
341
385
  //! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
342
386
  //! the predicate and otherwise N logN, where N is last - first.
343
- BOOST_CONTAINER_FORCEINLINE flat_map(std::initializer_list<value_type> il)
387
+ inline flat_map(std::initializer_list<value_type> il)
344
388
  : m_flat_tree( true
345
389
  , dtl::force<impl_initializer_list>(il).begin()
346
390
  , dtl::force<impl_initializer_list>(il).end())
@@ -351,7 +395,7 @@ class flat_map
351
395
  //!
352
396
  //! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
353
397
  //! the predicate and otherwise N logN, where N is last - first.
354
- BOOST_CONTAINER_FORCEINLINE flat_map(std::initializer_list<value_type> il, const allocator_type& a)
398
+ inline flat_map(std::initializer_list<value_type> il, const allocator_type& a)
355
399
  : m_flat_tree( true
356
400
  , dtl::force<impl_initializer_list>(il).begin()
357
401
  , dtl::force<impl_initializer_list>(il).end()
@@ -363,7 +407,7 @@ class flat_map
363
407
  //!
364
408
  //! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
365
409
  //! the predicate and otherwise N logN, where N is last - first.
366
- BOOST_CONTAINER_FORCEINLINE flat_map(std::initializer_list<value_type> il, const Compare& comp)
410
+ inline flat_map(std::initializer_list<value_type> il, const Compare& comp)
367
411
  : m_flat_tree(true
368
412
  , dtl::force<impl_initializer_list>(il).begin()
369
413
  , dtl::force<impl_initializer_list>(il).end()
@@ -375,7 +419,7 @@ class flat_map
375
419
  //!
376
420
  //! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
377
421
  //! the predicate and otherwise N logN, where N is last - first.
378
- BOOST_CONTAINER_FORCEINLINE flat_map(std::initializer_list<value_type> il, const Compare& comp, const allocator_type& a)
422
+ inline flat_map(std::initializer_list<value_type> il, const Compare& comp, const allocator_type& a)
379
423
  : m_flat_tree(true
380
424
  , dtl::force<impl_initializer_list>(il).begin()
381
425
  , dtl::force<impl_initializer_list>(il).end()
@@ -393,7 +437,7 @@ class flat_map
393
437
  //! <b>Complexity</b>: Linear in N.
394
438
  //!
395
439
  //! <b>Note</b>: Non-standard extension.
396
- BOOST_CONTAINER_FORCEINLINE flat_map(ordered_unique_range_t, std::initializer_list<value_type> il)
440
+ inline flat_map(ordered_unique_range_t, std::initializer_list<value_type> il)
397
441
  : m_flat_tree(ordered_unique_range
398
442
  , dtl::force<impl_initializer_list>(il).begin()
399
443
  , dtl::force<impl_initializer_list>(il).end())
@@ -409,7 +453,7 @@ class flat_map
409
453
  //! <b>Complexity</b>: Linear in N.
410
454
  //!
411
455
  //! <b>Note</b>: Non-standard extension.
412
- BOOST_CONTAINER_FORCEINLINE flat_map(ordered_unique_range_t, std::initializer_list<value_type> il, const Compare& comp)
456
+ inline flat_map(ordered_unique_range_t, std::initializer_list<value_type> il, const Compare& comp)
413
457
  : m_flat_tree(ordered_unique_range
414
458
  , dtl::force<impl_initializer_list>(il).begin()
415
459
  , dtl::force<impl_initializer_list>(il).end()
@@ -426,7 +470,7 @@ class flat_map
426
470
  //! <b>Complexity</b>: Linear in N.
427
471
  //!
428
472
  //! <b>Note</b>: Non-standard extension.
429
- BOOST_CONTAINER_FORCEINLINE flat_map(ordered_unique_range_t, std::initializer_list<value_type> il, const Compare& comp, const allocator_type& a)
473
+ inline flat_map(ordered_unique_range_t, std::initializer_list<value_type> il, const Compare& comp, const allocator_type& a)
430
474
  : m_flat_tree( ordered_unique_range
431
475
  , dtl::force<impl_initializer_list>(il).begin()
432
476
  , dtl::force<impl_initializer_list>(il).end()
@@ -438,7 +482,7 @@ class flat_map
438
482
  //! <b>Effects</b>: Copy constructs a flat_map.
439
483
  //!
440
484
  //! <b>Complexity</b>: Linear in x.size().
441
- BOOST_CONTAINER_FORCEINLINE flat_map(const flat_map& x)
485
+ inline flat_map(const flat_map& x)
442
486
  : m_flat_tree(x.m_flat_tree)
443
487
  {}
444
488
 
@@ -448,7 +492,7 @@ class flat_map
448
492
  //! <b>Complexity</b>: Constant.
449
493
  //!
450
494
  //! <b>Postcondition</b>: x is emptied.
451
- BOOST_CONTAINER_FORCEINLINE flat_map(BOOST_RV_REF(flat_map) x)
495
+ inline flat_map(BOOST_RV_REF(flat_map) x)
452
496
  BOOST_NOEXCEPT_IF(boost::container::dtl::is_nothrow_move_constructible<Compare>::value)
453
497
  : m_flat_tree(boost::move(x.m_flat_tree))
454
498
  {}
@@ -456,7 +500,7 @@ class flat_map
456
500
  //! <b>Effects</b>: Copy constructs a flat_map using the specified allocator.
457
501
  //!
458
502
  //! <b>Complexity</b>: Linear in x.size().
459
- BOOST_CONTAINER_FORCEINLINE flat_map(const flat_map& x, const allocator_type &a)
503
+ inline flat_map(const flat_map& x, const allocator_type &a)
460
504
  : m_flat_tree(x.m_flat_tree, dtl::force<const impl_allocator_type>(a))
461
505
  {}
462
506
 
@@ -464,14 +508,14 @@ class flat_map
464
508
  //! Constructs *this using x's resources.
465
509
  //!
466
510
  //! <b>Complexity</b>: Constant if x.get_allocator() == a, linear otherwise.
467
- BOOST_CONTAINER_FORCEINLINE flat_map(BOOST_RV_REF(flat_map) x, const allocator_type &a)
511
+ inline flat_map(BOOST_RV_REF(flat_map) x, const allocator_type &a)
468
512
  : m_flat_tree(boost::move(x.m_flat_tree), dtl::force<const impl_allocator_type>(a))
469
513
  {}
470
514
 
471
515
  //! <b>Effects</b>: Makes *this a copy of x.
472
516
  //!
473
517
  //! <b>Complexity</b>: Linear in x.size().
474
- BOOST_CONTAINER_FORCEINLINE flat_map& operator=(BOOST_COPY_ASSIGN_REF(flat_map) x)
518
+ inline flat_map& operator=(BOOST_COPY_ASSIGN_REF(flat_map) x)
475
519
  { m_flat_tree = x.m_flat_tree; return *this; }
476
520
 
477
521
  //! <b>Effects</b>: Move constructs a flat_map.
@@ -483,7 +527,7 @@ class flat_map
483
527
  //! <b>Complexity</b>: Constant if allocator_traits_type::
484
528
  //! propagate_on_container_move_assignment is true or
485
529
  //! this->get>allocator() == x.get_allocator(). Linear otherwise.
486
- BOOST_CONTAINER_FORCEINLINE flat_map& operator=(BOOST_RV_REF(flat_map) x)
530
+ inline flat_map& operator=(BOOST_RV_REF(flat_map) x)
487
531
  BOOST_NOEXCEPT_IF( (allocator_traits_type::propagate_on_container_move_assignment::value ||
488
532
  allocator_traits_type::is_always_equal::value) &&
489
533
  boost::container::dtl::is_nothrow_move_assignable<Compare>::value)
@@ -503,7 +547,7 @@ class flat_map
503
547
  //! was passed to the object's constructor.
504
548
  //!
505
549
  //! <b>Complexity</b>: Constant.
506
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
550
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
507
551
  allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
508
552
  { return dtl::force_copy<allocator_type>(m_flat_tree.get_allocator()); }
509
553
 
@@ -514,7 +558,7 @@ class flat_map
514
558
  //! <b>Complexity</b>: Constant.
515
559
  //!
516
560
  //! <b>Note</b>: Non-standard extension.
517
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
561
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
518
562
  get_stored_allocator_noconst_return_t get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW
519
563
  {
520
564
  impl_get_stored_allocator_noconst_return_t r = m_flat_tree.get_stored_allocator();
@@ -528,7 +572,7 @@ class flat_map
528
572
  //! <b>Complexity</b>: Constant.
529
573
  //!
530
574
  //! <b>Note</b>: Non-standard extension.
531
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
575
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
532
576
  get_stored_allocator_const_return_t get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
533
577
  {
534
578
  impl_get_stored_allocator_const_return_t r = m_flat_tree.get_stored_allocator();
@@ -546,7 +590,7 @@ class flat_map
546
590
  //! <b>Throws</b>: Nothing.
547
591
  //!
548
592
  //! <b>Complexity</b>: Constant.
549
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
593
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
550
594
  iterator begin() BOOST_NOEXCEPT_OR_NOTHROW
551
595
  { return dtl::force_copy<iterator>(m_flat_tree.begin()); }
552
596
 
@@ -555,7 +599,7 @@ class flat_map
555
599
  //! <b>Throws</b>: Nothing.
556
600
  //!
557
601
  //! <b>Complexity</b>: Constant.
558
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
602
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
559
603
  const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW
560
604
  { return dtl::force_copy<const_iterator>(m_flat_tree.begin()); }
561
605
 
@@ -564,7 +608,7 @@ class flat_map
564
608
  //! <b>Throws</b>: Nothing.
565
609
  //!
566
610
  //! <b>Complexity</b>: Constant.
567
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
611
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
568
612
  iterator end() BOOST_NOEXCEPT_OR_NOTHROW
569
613
  { return dtl::force_copy<iterator>(m_flat_tree.end()); }
570
614
 
@@ -573,7 +617,7 @@ class flat_map
573
617
  //! <b>Throws</b>: Nothing.
574
618
  //!
575
619
  //! <b>Complexity</b>: Constant.
576
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
620
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
577
621
  const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW
578
622
  { return dtl::force_copy<const_iterator>(m_flat_tree.end()); }
579
623
 
@@ -583,7 +627,7 @@ class flat_map
583
627
  //! <b>Throws</b>: Nothing.
584
628
  //!
585
629
  //! <b>Complexity</b>: Constant.
586
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
630
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
587
631
  reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW
588
632
  { return dtl::force_copy<reverse_iterator>(m_flat_tree.rbegin()); }
589
633
 
@@ -593,7 +637,7 @@ class flat_map
593
637
  //! <b>Throws</b>: Nothing.
594
638
  //!
595
639
  //! <b>Complexity</b>: Constant.
596
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
640
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
597
641
  const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW
598
642
  { return dtl::force_copy<const_reverse_iterator>(m_flat_tree.rbegin()); }
599
643
 
@@ -603,7 +647,7 @@ class flat_map
603
647
  //! <b>Throws</b>: Nothing.
604
648
  //!
605
649
  //! <b>Complexity</b>: Constant.
606
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
650
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
607
651
  reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW
608
652
  { return dtl::force_copy<reverse_iterator>(m_flat_tree.rend()); }
609
653
 
@@ -613,7 +657,7 @@ class flat_map
613
657
  //! <b>Throws</b>: Nothing.
614
658
  //!
615
659
  //! <b>Complexity</b>: Constant.
616
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
660
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
617
661
  const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW
618
662
  { return dtl::force_copy<const_reverse_iterator>(m_flat_tree.rend()); }
619
663
 
@@ -622,7 +666,7 @@ class flat_map
622
666
  //! <b>Throws</b>: Nothing.
623
667
  //!
624
668
  //! <b>Complexity</b>: Constant.
625
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
669
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
626
670
  const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW
627
671
  { return dtl::force_copy<const_iterator>(m_flat_tree.cbegin()); }
628
672
 
@@ -631,7 +675,7 @@ class flat_map
631
675
  //! <b>Throws</b>: Nothing.
632
676
  //!
633
677
  //! <b>Complexity</b>: Constant.
634
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
678
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
635
679
  const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW
636
680
  { return dtl::force_copy<const_iterator>(m_flat_tree.cend()); }
637
681
 
@@ -641,7 +685,7 @@ class flat_map
641
685
  //! <b>Throws</b>: Nothing.
642
686
  //!
643
687
  //! <b>Complexity</b>: Constant.
644
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
688
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
645
689
  const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW
646
690
  { return dtl::force_copy<const_reverse_iterator>(m_flat_tree.crbegin()); }
647
691
 
@@ -651,7 +695,7 @@ class flat_map
651
695
  //! <b>Throws</b>: Nothing.
652
696
  //!
653
697
  //! <b>Complexity</b>: Constant.
654
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
698
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
655
699
  const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW
656
700
  { return dtl::force_copy<const_reverse_iterator>(m_flat_tree.crend()); }
657
701
 
@@ -666,7 +710,7 @@ class flat_map
666
710
  //! <b>Throws</b>: Nothing.
667
711
  //!
668
712
  //! <b>Complexity</b>: Constant.
669
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
713
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
670
714
  bool empty() const BOOST_NOEXCEPT_OR_NOTHROW
671
715
  { return m_flat_tree.empty(); }
672
716
 
@@ -675,7 +719,7 @@ class flat_map
675
719
  //! <b>Throws</b>: Nothing.
676
720
  //!
677
721
  //! <b>Complexity</b>: Constant.
678
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
722
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
679
723
  size_type size() const BOOST_NOEXCEPT_OR_NOTHROW
680
724
  { return m_flat_tree.size(); }
681
725
 
@@ -684,7 +728,7 @@ class flat_map
684
728
  //! <b>Throws</b>: Nothing.
685
729
  //!
686
730
  //! <b>Complexity</b>: Constant.
687
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
731
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
688
732
  size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
689
733
  { return m_flat_tree.max_size(); }
690
734
 
@@ -694,7 +738,7 @@ class flat_map
694
738
  //! <b>Throws</b>: Nothing.
695
739
  //!
696
740
  //! <b>Complexity</b>: Constant.
697
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
741
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
698
742
  size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
699
743
  { return m_flat_tree.capacity(); }
700
744
 
@@ -708,7 +752,7 @@ class flat_map
708
752
  //!
709
753
  //! <b>Note</b>: If capacity() is less than "cnt", iterators and references to
710
754
  //! to values might be invalidated.
711
- BOOST_CONTAINER_FORCEINLINE void reserve(size_type cnt)
755
+ inline void reserve(size_type cnt)
712
756
  { m_flat_tree.reserve(cnt); }
713
757
 
714
758
  //! <b>Effects</b>: Tries to deallocate the excess of memory created
@@ -717,7 +761,7 @@ class flat_map
717
761
  //! <b>Throws</b>: If memory allocation throws, or T's copy constructor throws.
718
762
  //!
719
763
  //! <b>Complexity</b>: Linear to size().
720
- BOOST_CONTAINER_FORCEINLINE void shrink_to_fit()
764
+ inline void shrink_to_fit()
721
765
  { m_flat_tree.shrink_to_fit(); }
722
766
 
723
767
  //////////////////////////////////////////////
@@ -744,8 +788,8 @@ class flat_map
744
788
  mapped_type &operator[](key_type &&k);
745
789
  #elif defined(BOOST_MOVE_HELPERS_RETURN_SFINAE_BROKEN)
746
790
  //in compilers like GCC 3.4, we can't catch temporaries
747
- BOOST_CONTAINER_FORCEINLINE mapped_type& operator[](const key_type &k) { return this->priv_subscript(k); }
748
- BOOST_CONTAINER_FORCEINLINE mapped_type& operator[](BOOST_RV_REF(key_type) k) { return this->priv_subscript(::boost::move(k)); }
791
+ inline mapped_type& operator[](const key_type &k) { return this->priv_subscript(k); }
792
+ inline mapped_type& operator[](BOOST_RV_REF(key_type) k) { return this->priv_subscript(::boost::move(k)); }
749
793
  #else
750
794
  BOOST_MOVE_CONVERSION_AWARE_CATCH( operator[] , key_type, mapped_type&, this->priv_subscript)
751
795
  #endif
@@ -763,7 +807,7 @@ class flat_map
763
807
  //!
764
808
  //! Complexity: Logarithmic search time plus linear insertion time in case no equivalent key is present.
765
809
  template <class M>
766
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator, bool> insert_or_assign(const key_type& k, BOOST_FWD_REF(M) obj)
810
+ inline std::pair<iterator, bool> insert_or_assign(const key_type& k, BOOST_FWD_REF(M) obj)
767
811
  {
768
812
  return dtl::force_copy< std::pair<iterator, bool> >
769
813
  (this->m_flat_tree.insert_or_assign
@@ -784,7 +828,7 @@ class flat_map
784
828
  //!
785
829
  //! Complexity: Logarithmic in the size of the container.
786
830
  template <class M>
787
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator, bool> insert_or_assign(BOOST_RV_REF(key_type) k, BOOST_FWD_REF(M) obj)
831
+ inline std::pair<iterator, bool> insert_or_assign(BOOST_RV_REF(key_type) k, BOOST_FWD_REF(M) obj)
788
832
  {
789
833
  return dtl::force_copy< std::pair<iterator, bool> >
790
834
  (this->m_flat_tree.insert_or_assign
@@ -807,7 +851,7 @@ class flat_map
807
851
  //! Complexity: Logarithmic in the size of the container in general, but amortized constant if
808
852
  //! the new element is inserted just before hint.
809
853
  template <class M>
810
- BOOST_CONTAINER_FORCEINLINE iterator insert_or_assign(const_iterator hint, const key_type& k, BOOST_FWD_REF(M) obj)
854
+ inline iterator insert_or_assign(const_iterator hint, const key_type& k, BOOST_FWD_REF(M) obj)
811
855
  {
812
856
  return dtl::force_copy<iterator>
813
857
  (this->m_flat_tree.insert_or_assign
@@ -831,7 +875,7 @@ class flat_map
831
875
  //! Complexity: Logarithmic in the size of the container in general, but amortized constant if
832
876
  //! the new element is inserted just before hint.
833
877
  template <class M>
834
- BOOST_CONTAINER_FORCEINLINE iterator insert_or_assign(const_iterator hint, BOOST_RV_REF(key_type) k, BOOST_FWD_REF(M) obj)
878
+ inline iterator insert_or_assign(const_iterator hint, BOOST_RV_REF(key_type) k, BOOST_FWD_REF(M) obj)
835
879
  {
836
880
  return dtl::force_copy<iterator>
837
881
  (this->m_flat_tree.insert_or_assign
@@ -841,22 +885,22 @@ class flat_map
841
885
  }
842
886
 
843
887
  //! @copydoc ::boost::container::flat_set::nth(size_type)
844
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
888
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
845
889
  iterator nth(size_type n) BOOST_NOEXCEPT_OR_NOTHROW
846
890
  { return dtl::force_copy<iterator>(m_flat_tree.nth(n)); }
847
891
 
848
892
  //! @copydoc ::boost::container::flat_set::nth(size_type) const
849
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
893
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
850
894
  const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
851
- { return dtl::force_copy<iterator>(m_flat_tree.nth(n)); }
895
+ { return dtl::force_copy<const_iterator>(m_flat_tree.nth(n)); }
852
896
 
853
897
  //! @copydoc ::boost::container::flat_set::index_of(iterator)
854
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
898
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
855
899
  size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW
856
900
  { return m_flat_tree.index_of(dtl::force_copy<impl_iterator>(p)); }
857
901
 
858
902
  //! @copydoc ::boost::container::flat_set::index_of(const_iterator) const
859
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
903
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
860
904
  size_type index_of(const_iterator p) const BOOST_NOEXCEPT_OR_NOTHROW
861
905
  { return m_flat_tree.index_of(dtl::force_copy<impl_const_iterator>(p)); }
862
906
 
@@ -909,7 +953,7 @@ class flat_map
909
953
  //!
910
954
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
911
955
  template <class... Args>
912
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator,bool> emplace(BOOST_FWD_REF(Args)... args)
956
+ inline std::pair<iterator,bool> emplace(BOOST_FWD_REF(Args)... args)
913
957
  { return dtl::force_copy< std::pair<iterator, bool> >(m_flat_tree.emplace_unique(boost::forward<Args>(args)...)); }
914
958
 
915
959
  //! <b>Effects</b>: Inserts an object of type T constructed with
@@ -925,7 +969,7 @@ class flat_map
925
969
  //!
926
970
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
927
971
  template <class... Args>
928
- BOOST_CONTAINER_FORCEINLINE iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(Args)... args)
972
+ inline iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(Args)... args)
929
973
  {
930
974
  return dtl::force_copy<iterator>
931
975
  (m_flat_tree.emplace_hint_unique( dtl::force_copy<impl_const_iterator>(hint)
@@ -944,7 +988,7 @@ class flat_map
944
988
  //!
945
989
  //! <b>Complexity</b>: Logarithmic.
946
990
  template <class... Args>
947
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator, bool> try_emplace(const key_type& k, BOOST_FWD_REF(Args)... args)
991
+ inline std::pair<iterator, bool> try_emplace(const key_type& k, BOOST_FWD_REF(Args)... args)
948
992
  {
949
993
  return dtl::force_copy< std::pair<iterator, bool> >(
950
994
  m_flat_tree.try_emplace(impl_const_iterator(), k, boost::forward<Args>(args)...));
@@ -962,7 +1006,7 @@ class flat_map
962
1006
  //! <b>Complexity</b>: Logarithmic in general, but amortized constant if value
963
1007
  //! is inserted right before p.
964
1008
  template <class... Args>
965
- BOOST_CONTAINER_FORCEINLINE iterator try_emplace(const_iterator hint, const key_type &k, BOOST_FWD_REF(Args)... args)
1009
+ inline iterator try_emplace(const_iterator hint, const key_type &k, BOOST_FWD_REF(Args)... args)
966
1010
  {
967
1011
  return dtl::force_copy<iterator>(m_flat_tree.try_emplace
968
1012
  (dtl::force_copy<impl_const_iterator>(hint), k, boost::forward<Args>(args)...).first);
@@ -980,7 +1024,7 @@ class flat_map
980
1024
  //!
981
1025
  //! <b>Complexity</b>: Logarithmic search time plus linear insertion time in case the key is not present.
982
1026
  template <class... Args>
983
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator, bool> try_emplace(BOOST_RV_REF(key_type) k, BOOST_FWD_REF(Args)... args)
1027
+ inline std::pair<iterator, bool> try_emplace(BOOST_RV_REF(key_type) k, BOOST_FWD_REF(Args)... args)
984
1028
  {
985
1029
  return dtl::force_copy< std::pair<iterator, bool> >
986
1030
  (m_flat_tree.try_emplace(impl_const_iterator(), boost::move(k), boost::forward<Args>(args)...));
@@ -998,7 +1042,7 @@ class flat_map
998
1042
  //! <b>Complexity</b>: Logarithmic in general, but amortized constant if value
999
1043
  //! is inserted right before p. Linear insertion time in case no equivalent key is present.
1000
1044
  template <class... Args>
1001
- BOOST_CONTAINER_FORCEINLINE iterator try_emplace(const_iterator hint, BOOST_RV_REF(key_type) k, BOOST_FWD_REF(Args)... args)
1045
+ inline iterator try_emplace(const_iterator hint, BOOST_RV_REF(key_type) k, BOOST_FWD_REF(Args)... args)
1002
1046
  {
1003
1047
  return dtl::force_copy<iterator>
1004
1048
  (m_flat_tree.try_emplace(dtl::force_copy
@@ -1009,39 +1053,39 @@ class flat_map
1009
1053
 
1010
1054
  #define BOOST_CONTAINER_FLAT_MAP_EMPLACE_CODE(N) \
1011
1055
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
1012
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator,bool> emplace(BOOST_MOVE_UREF##N)\
1056
+ inline std::pair<iterator,bool> emplace(BOOST_MOVE_UREF##N)\
1013
1057
  {\
1014
1058
  return dtl::force_copy< std::pair<iterator, bool> >\
1015
1059
  (m_flat_tree.emplace_unique(BOOST_MOVE_FWD##N));\
1016
1060
  }\
1017
1061
  \
1018
1062
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
1019
- BOOST_CONTAINER_FORCEINLINE iterator emplace_hint(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
1063
+ inline iterator emplace_hint(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
1020
1064
  {\
1021
1065
  return dtl::force_copy<iterator>(m_flat_tree.emplace_hint_unique\
1022
1066
  (dtl::force_copy<impl_const_iterator>(hint) BOOST_MOVE_I##N BOOST_MOVE_FWD##N));\
1023
1067
  }\
1024
1068
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
1025
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator, bool> try_emplace(const key_type& k BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
1069
+ inline std::pair<iterator, bool> try_emplace(const key_type& k BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
1026
1070
  {\
1027
1071
  return dtl::force_copy< std::pair<iterator, bool> >\
1028
1072
  (m_flat_tree.try_emplace(impl_const_iterator(), k BOOST_MOVE_I##N BOOST_MOVE_FWD##N));\
1029
1073
  }\
1030
1074
  \
1031
1075
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
1032
- BOOST_CONTAINER_FORCEINLINE iterator try_emplace(const_iterator hint, const key_type &k BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
1076
+ inline iterator try_emplace(const_iterator hint, const key_type &k BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
1033
1077
  { return dtl::force_copy<iterator>(m_flat_tree.try_emplace\
1034
1078
  (dtl::force_copy<impl_const_iterator>(hint), k BOOST_MOVE_I##N BOOST_MOVE_FWD##N).first); }\
1035
1079
  \
1036
1080
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
1037
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator, bool> try_emplace(BOOST_RV_REF(key_type) k BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
1081
+ inline std::pair<iterator, bool> try_emplace(BOOST_RV_REF(key_type) k BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
1038
1082
  {\
1039
1083
  return dtl::force_copy< std::pair<iterator, bool> >\
1040
1084
  (m_flat_tree.try_emplace(impl_const_iterator(), boost::move(k) BOOST_MOVE_I##N BOOST_MOVE_FWD##N));\
1041
1085
  }\
1042
1086
  \
1043
1087
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
1044
- BOOST_CONTAINER_FORCEINLINE iterator try_emplace(const_iterator hint, BOOST_RV_REF(key_type) k BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
1088
+ inline iterator try_emplace(const_iterator hint, BOOST_RV_REF(key_type) k BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
1045
1089
  { return dtl::force_copy<iterator>(m_flat_tree.try_emplace\
1046
1090
  (dtl::force_copy<impl_const_iterator>(hint), boost::move(k) BOOST_MOVE_I##N BOOST_MOVE_FWD##N).first); }\
1047
1091
  //
@@ -1061,7 +1105,7 @@ class flat_map
1061
1105
  //! to the elements with bigger keys than x.
1062
1106
  //!
1063
1107
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1064
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator,bool> insert(const value_type& x)
1108
+ inline std::pair<iterator,bool> insert(const value_type& x)
1065
1109
  { return dtl::force_copy<std::pair<iterator,bool> >(
1066
1110
  m_flat_tree.insert_unique(dtl::force<const impl_value_type>(x))); }
1067
1111
 
@@ -1076,7 +1120,7 @@ class flat_map
1076
1120
  //! to the elements with bigger keys than x.
1077
1121
  //!
1078
1122
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1079
- BOOST_CONTAINER_FORCEINLINE std::pair<iterator,bool> insert(BOOST_RV_REF(value_type) x)
1123
+ inline std::pair<iterator,bool> insert(BOOST_RV_REF(value_type) x)
1080
1124
  {
1081
1125
  return dtl::force_copy<std::pair<iterator,bool> >(
1082
1126
  m_flat_tree.insert_unique(boost::move(dtl::force<impl_value_type>(x))));
@@ -1094,9 +1138,9 @@ class flat_map
1094
1138
  //!
1095
1139
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1096
1140
  template <class Pair>
1097
- BOOST_CONTAINER_FORCEINLINE BOOST_CONTAINER_DOC1ST
1141
+ inline BOOST_CONTAINER_DOC1ST
1098
1142
  ( std::pair<iterator BOOST_MOVE_I bool>
1099
- , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I impl_value_type>::value
1143
+ , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I dtl_pair_t>::value
1100
1144
  BOOST_MOVE_I std::pair<iterator BOOST_MOVE_I bool> >::type)
1101
1145
  insert(BOOST_FWD_REF(Pair) x)
1102
1146
  {
@@ -1115,7 +1159,7 @@ class flat_map
1115
1159
  //! right before p) plus insertion linear to the elements with bigger keys than x.
1116
1160
  //!
1117
1161
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1118
- BOOST_CONTAINER_FORCEINLINE iterator insert(const_iterator p, const value_type& x)
1162
+ inline iterator insert(const_iterator p, const value_type& x)
1119
1163
  {
1120
1164
  return dtl::force_copy<iterator>(
1121
1165
  m_flat_tree.insert_unique( dtl::force_copy<impl_const_iterator>(p)
@@ -1131,7 +1175,7 @@ class flat_map
1131
1175
  //! right before p) plus insertion linear to the elements with bigger keys than x.
1132
1176
  //!
1133
1177
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1134
- BOOST_CONTAINER_FORCEINLINE iterator insert(const_iterator p, BOOST_RV_REF(value_type) x)
1178
+ inline iterator insert(const_iterator p, BOOST_RV_REF(value_type) x)
1135
1179
  {
1136
1180
  return dtl::force_copy<iterator>
1137
1181
  (m_flat_tree.insert_unique( dtl::force_copy<impl_const_iterator>(p)
@@ -1148,9 +1192,9 @@ class flat_map
1148
1192
  //!
1149
1193
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1150
1194
  template <class Pair>
1151
- BOOST_CONTAINER_FORCEINLINE BOOST_CONTAINER_DOC1ST
1195
+ inline BOOST_CONTAINER_DOC1ST
1152
1196
  ( iterator
1153
- , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I impl_value_type>::value
1197
+ , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I dtl_pair_t>::value
1154
1198
  BOOST_MOVE_I iterator>::type)
1155
1199
  insert(const_iterator p, BOOST_FWD_REF(Pair) x)
1156
1200
  {
@@ -1167,7 +1211,7 @@ class flat_map
1167
1211
  //!
1168
1212
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1169
1213
  template <class InputIterator>
1170
- BOOST_CONTAINER_FORCEINLINE void insert(InputIterator first, InputIterator last)
1214
+ inline void insert(InputIterator first, InputIterator last)
1171
1215
  { m_flat_tree.insert_unique(first, last); }
1172
1216
 
1173
1217
  //! <b>Requires</b>: first, last are not iterators into *this.
@@ -1185,7 +1229,7 @@ class flat_map
1185
1229
  //!
1186
1230
  //! <b>Note</b>: Non-standard extension.
1187
1231
  template <class InputIterator>
1188
- BOOST_CONTAINER_FORCEINLINE void insert(ordered_unique_range_t, InputIterator first, InputIterator last)
1232
+ inline void insert(ordered_unique_range_t, InputIterator first, InputIterator last)
1189
1233
  { m_flat_tree.insert_unique(ordered_unique_range, first, last); }
1190
1234
 
1191
1235
  #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
@@ -1195,7 +1239,7 @@ class flat_map
1195
1239
  //! <b>Complexity</b>: N log(N).
1196
1240
  //!
1197
1241
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1198
- BOOST_CONTAINER_FORCEINLINE void insert(std::initializer_list<value_type> il)
1242
+ inline void insert(std::initializer_list<value_type> il)
1199
1243
  {
1200
1244
  m_flat_tree.insert_unique( dtl::force<impl_initializer_list>(il).begin()
1201
1245
  , dtl::force<impl_initializer_list>(il).end());
@@ -1213,7 +1257,7 @@ class flat_map
1213
1257
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
1214
1258
  //!
1215
1259
  //! <b>Note</b>: Non-standard extension.
1216
- BOOST_CONTAINER_FORCEINLINE void insert(ordered_unique_range_t, std::initializer_list<value_type> il)
1260
+ inline void insert(ordered_unique_range_t, std::initializer_list<value_type> il)
1217
1261
  {
1218
1262
  m_flat_tree.insert_unique(ordered_unique_range
1219
1263
  , dtl::force<impl_initializer_list>(il).begin()
@@ -1231,22 +1275,22 @@ class flat_map
1231
1275
  //!
1232
1276
  //! <b>Note</b>: Invalidates all iterators and references.
1233
1277
  template<class C2>
1234
- BOOST_CONTAINER_FORCEINLINE void merge(flat_map<Key, T, C2, AllocatorOrContainer>& source)
1278
+ inline void merge(flat_map<Key, T, C2, AllocatorOrContainer>& source)
1235
1279
  { m_flat_tree.merge_unique(source.tree()); }
1236
1280
 
1237
1281
  //! @copydoc ::boost::container::flat_map::merge(flat_map<Key, T, C2, AllocatorOrContainer>&)
1238
1282
  template<class C2>
1239
- BOOST_CONTAINER_FORCEINLINE void merge(BOOST_RV_REF_BEG flat_map<Key, T, C2, AllocatorOrContainer> BOOST_RV_REF_END source)
1283
+ inline void merge(BOOST_RV_REF_BEG flat_map<Key, T, C2, AllocatorOrContainer> BOOST_RV_REF_END source)
1240
1284
  { return this->merge(static_cast<flat_map<Key, T, C2, AllocatorOrContainer>&>(source)); }
1241
1285
 
1242
1286
  //! @copydoc ::boost::container::flat_map::merge(flat_map<Key, T, C2, AllocatorOrContainer>&)
1243
1287
  template<class C2>
1244
- BOOST_CONTAINER_FORCEINLINE void merge(flat_multimap<Key, T, C2, AllocatorOrContainer>& source)
1288
+ inline void merge(flat_multimap<Key, T, C2, AllocatorOrContainer>& source)
1245
1289
  { m_flat_tree.merge_unique(source.tree()); }
1246
1290
 
1247
1291
  //! @copydoc ::boost::container::flat_map::merge(flat_map<Key, T, C2, AllocatorOrContainer>&)
1248
1292
  template<class C2>
1249
- BOOST_CONTAINER_FORCEINLINE void merge(BOOST_RV_REF_BEG flat_multimap<Key, T, C2, AllocatorOrContainer> BOOST_RV_REF_END source)
1293
+ inline void merge(BOOST_RV_REF_BEG flat_multimap<Key, T, C2, AllocatorOrContainer> BOOST_RV_REF_END source)
1250
1294
  { return this->merge(static_cast<flat_multimap<Key, T, C2, AllocatorOrContainer>&>(source)); }
1251
1295
 
1252
1296
  //! <b>Effects</b>: Erases the element pointed to by p.
@@ -1259,20 +1303,37 @@ class flat_map
1259
1303
  //!
1260
1304
  //! <b>Note</b>: Invalidates elements with keys
1261
1305
  //! not less than the erased element.
1262
- BOOST_CONTAINER_FORCEINLINE iterator erase(const_iterator p)
1306
+ inline iterator erase(const_iterator p)
1263
1307
  {
1264
1308
  return dtl::force_copy<iterator>
1265
1309
  (m_flat_tree.erase(dtl::force_copy<impl_const_iterator>(p)));
1266
1310
  }
1267
1311
 
1268
- //! <b>Effects</b>: Erases all elements in the container with key equivalent to x.
1312
+ //! <b>Effects</b>: If present, erases the element in the container with key equivalent to x.
1269
1313
  //!
1270
- //! <b>Returns</b>: Returns the number of erased elements.
1314
+ //! <b>Returns</b>: Returns the number of erased elements (0/1).
1271
1315
  //!
1272
1316
  //! <b>Complexity</b>: Logarithmic search time plus erasure time
1273
1317
  //! linear to the elements with bigger keys.
1274
- BOOST_CONTAINER_FORCEINLINE size_type erase(const key_type& x)
1275
- { return m_flat_tree.erase(x); }
1318
+ inline size_type erase(const key_type& x)
1319
+ { return m_flat_tree.erase_unique(x); }
1320
+
1321
+ //! <b>Requires</b>: This overload is available only if
1322
+ //! key_compare::is_transparent exists.
1323
+ //!
1324
+ //! <b>Effects</b>: If present, erases the element in the container with key equivalent to x.
1325
+ //!
1326
+ //! <b>Returns</b>: Returns the number of erased elements (0/1).
1327
+ template <class K>
1328
+ inline BOOST_CONTAINER_DOC1ST
1329
+ (size_type
1330
+ , typename dtl::enable_if_c<
1331
+ dtl::is_transparent<key_compare>::value && //transparent
1332
+ !dtl::is_convertible<K BOOST_MOVE_I iterator>::value && //not convertible to iterator
1333
+ !dtl::is_convertible<K BOOST_MOVE_I const_iterator>::value //not convertible to const_iterator
1334
+ BOOST_MOVE_I size_type>::type)
1335
+ erase(const K& x)
1336
+ { return m_flat_tree.erase_unique(x); }
1276
1337
 
1277
1338
  //! <b>Effects</b>: Erases all the elements in the range [first, last).
1278
1339
  //!
@@ -1282,7 +1343,7 @@ class flat_map
1282
1343
  //!
1283
1344
  //! <b>Complexity</b>: Logarithmic search time plus erasure time
1284
1345
  //! linear to the elements with bigger keys.
1285
- BOOST_CONTAINER_FORCEINLINE iterator erase(const_iterator first, const_iterator last)
1346
+ inline iterator erase(const_iterator first, const_iterator last)
1286
1347
  {
1287
1348
  return dtl::force_copy<iterator>(
1288
1349
  m_flat_tree.erase( dtl::force_copy<impl_const_iterator>(first)
@@ -1294,7 +1355,7 @@ class flat_map
1294
1355
  //! <b>Throws</b>: Nothing.
1295
1356
  //!
1296
1357
  //! <b>Complexity</b>: Constant.
1297
- BOOST_CONTAINER_FORCEINLINE void swap(flat_map& x)
1358
+ inline void swap(flat_map& x)
1298
1359
  BOOST_NOEXCEPT_IF( allocator_traits_type::is_always_equal::value
1299
1360
  && boost::container::dtl::is_nothrow_swappable<Compare>::value )
1300
1361
  { m_flat_tree.swap(x.m_flat_tree); }
@@ -1304,7 +1365,7 @@ class flat_map
1304
1365
  //! <b>Postcondition</b>: size() == 0.
1305
1366
  //!
1306
1367
  //! <b>Complexity</b>: linear in size().
1307
- BOOST_CONTAINER_FORCEINLINE void clear() BOOST_NOEXCEPT_OR_NOTHROW
1368
+ inline void clear() BOOST_NOEXCEPT_OR_NOTHROW
1308
1369
  { m_flat_tree.clear(); }
1309
1370
 
1310
1371
  //////////////////////////////////////////////
@@ -1317,7 +1378,7 @@ class flat_map
1317
1378
  //! of which a was constructed.
1318
1379
  //!
1319
1380
  //! <b>Complexity</b>: Constant.
1320
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1381
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1321
1382
  key_compare key_comp() const
1322
1383
  { return dtl::force_copy<key_compare>(m_flat_tree.key_comp()); }
1323
1384
 
@@ -1325,7 +1386,7 @@ class flat_map
1325
1386
  //! of the comparison object.
1326
1387
  //!
1327
1388
  //! <b>Complexity</b>: Constant.
1328
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1389
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1329
1390
  value_compare value_comp() const
1330
1391
  { return value_compare(dtl::force_copy<key_compare>(m_flat_tree.key_comp())); }
1331
1392
 
@@ -1339,7 +1400,7 @@ class flat_map
1339
1400
  //! equivalent to x, or end() if such an element is not found.
1340
1401
  //!
1341
1402
  //! <b>Complexity</b>: Logarithmic.
1342
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1403
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1343
1404
  iterator find(const key_type& x)
1344
1405
  { return dtl::force_copy<iterator>(m_flat_tree.find(x)); }
1345
1406
 
@@ -1347,7 +1408,7 @@ class flat_map
1347
1408
  //! equivalent to x, or end() if such an element is not found.
1348
1409
  //!
1349
1410
  //! <b>Complexity</b>: Logarithmic.
1350
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1411
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1351
1412
  const_iterator find(const key_type& x) const
1352
1413
  { return dtl::force_copy<const_iterator>(m_flat_tree.find(x)); }
1353
1414
 
@@ -1359,7 +1420,7 @@ class flat_map
1359
1420
  //!
1360
1421
  //! <b>Complexity</b>: Logarithmic.
1361
1422
  template<class K>
1362
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1423
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1363
1424
  iterator find(const K& x)
1364
1425
  { return dtl::force_copy<iterator>(m_flat_tree.find(x)); }
1365
1426
 
@@ -1371,14 +1432,14 @@ class flat_map
1371
1432
  //!
1372
1433
  //! <b>Complexity</b>: Logarithmic.
1373
1434
  template<class K>
1374
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1435
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1375
1436
  const_iterator find(const K& x) const
1376
1437
  { return dtl::force_copy<const_iterator>(m_flat_tree.find(x)); }
1377
1438
 
1378
1439
  //! <b>Returns</b>: The number of elements with key equivalent to x.
1379
1440
  //!
1380
1441
  //! <b>Complexity</b>: log(size())+count(k)
1381
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1442
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1382
1443
  size_type count(const key_type& x) const
1383
1444
  { return static_cast<size_type>(m_flat_tree.find(x) != m_flat_tree.end()); }
1384
1445
 
@@ -1389,7 +1450,7 @@ class flat_map
1389
1450
  //!
1390
1451
  //! <b>Complexity</b>: log(size())+count(k)
1391
1452
  template<class K>
1392
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1453
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1393
1454
  size_type count(const K& x) const
1394
1455
  //Don't use find() != end optimization here as transparent comparators with key K might
1395
1456
  //return a different range than key_type (which can only return a single element range)
@@ -1399,7 +1460,7 @@ class flat_map
1399
1460
  //! equivalent to key in the container, otherwise false.
1400
1461
  //!
1401
1462
  //! <b>Complexity</b>: log(size()).
1402
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1463
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1403
1464
  bool contains(const key_type& x) const
1404
1465
  { return m_flat_tree.find(x) != m_flat_tree.end(); }
1405
1466
 
@@ -1411,7 +1472,7 @@ class flat_map
1411
1472
  //!
1412
1473
  //! <b>Complexity</b>: log(size()).
1413
1474
  template<typename K>
1414
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1475
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1415
1476
  bool contains(const K& x) const
1416
1477
  { return m_flat_tree.find(x) != m_flat_tree.end(); }
1417
1478
 
@@ -1419,7 +1480,7 @@ class flat_map
1419
1480
  //! than x, or end() if such an element is not found.
1420
1481
  //!
1421
1482
  //! <b>Complexity</b>: Logarithmic.
1422
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1483
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1423
1484
  iterator lower_bound(const key_type& x)
1424
1485
  { return dtl::force_copy<iterator>(m_flat_tree.lower_bound(x)); }
1425
1486
 
@@ -1427,7 +1488,7 @@ class flat_map
1427
1488
  //! less than x, or end() if such an element is not found.
1428
1489
  //!
1429
1490
  //! <b>Complexity</b>: Logarithmic.
1430
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1491
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1431
1492
  const_iterator lower_bound(const key_type& x) const
1432
1493
  { return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound(x)); }
1433
1494
 
@@ -1439,7 +1500,7 @@ class flat_map
1439
1500
  //!
1440
1501
  //! <b>Complexity</b>: Logarithmic.
1441
1502
  template<class K>
1442
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1503
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1443
1504
  iterator lower_bound(const K& x)
1444
1505
  { return dtl::force_copy<iterator>(m_flat_tree.lower_bound(x)); }
1445
1506
 
@@ -1451,7 +1512,7 @@ class flat_map
1451
1512
  //!
1452
1513
  //! <b>Complexity</b>: Logarithmic.
1453
1514
  template<class K>
1454
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1515
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1455
1516
  const_iterator lower_bound(const K& x) const
1456
1517
  { return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound(x)); }
1457
1518
 
@@ -1459,7 +1520,7 @@ class flat_map
1459
1520
  //! than x, or end() if such an element is not found.
1460
1521
  //!
1461
1522
  //! <b>Complexity</b>: Logarithmic.
1462
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1523
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1463
1524
  iterator upper_bound(const key_type& x)
1464
1525
  { return dtl::force_copy<iterator>(m_flat_tree.upper_bound(x)); }
1465
1526
 
@@ -1467,7 +1528,7 @@ class flat_map
1467
1528
  //! greater than x, or end() if such an element is not found.
1468
1529
  //!
1469
1530
  //! <b>Complexity</b>: Logarithmic.
1470
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1531
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1471
1532
  const_iterator upper_bound(const key_type& x) const
1472
1533
  { return dtl::force_copy<const_iterator>(m_flat_tree.upper_bound(x)); }
1473
1534
 
@@ -1479,7 +1540,7 @@ class flat_map
1479
1540
  //!
1480
1541
  //! <b>Complexity</b>: Logarithmic.
1481
1542
  template<class K>
1482
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1543
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1483
1544
  iterator upper_bound(const K& x)
1484
1545
  { return dtl::force_copy<iterator>(m_flat_tree.upper_bound(x)); }
1485
1546
 
@@ -1491,21 +1552,21 @@ class flat_map
1491
1552
  //!
1492
1553
  //! <b>Complexity</b>: Logarithmic.
1493
1554
  template<class K>
1494
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1555
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1495
1556
  const_iterator upper_bound(const K& x) const
1496
1557
  { return dtl::force_copy<const_iterator>(m_flat_tree.upper_bound(x)); }
1497
1558
 
1498
1559
  //! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
1499
1560
  //!
1500
1561
  //! <b>Complexity</b>: Logarithmic.
1501
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1562
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1502
1563
  std::pair<iterator,iterator> equal_range(const key_type& x)
1503
1564
  { return dtl::force_copy<std::pair<iterator,iterator> >(m_flat_tree.lower_bound_range(x)); }
1504
1565
 
1505
1566
  //! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
1506
1567
  //!
1507
1568
  //! <b>Complexity</b>: Logarithmic.
1508
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1569
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1509
1570
  std::pair<const_iterator, const_iterator> equal_range(const key_type& x) const
1510
1571
  { return dtl::force_copy<std::pair<const_iterator,const_iterator> >(m_flat_tree.lower_bound_range(x)); }
1511
1572
 
@@ -1516,7 +1577,7 @@ class flat_map
1516
1577
  //!
1517
1578
  //! <b>Complexity</b>: Logarithmic.
1518
1579
  template<class K>
1519
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1580
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1520
1581
  std::pair<iterator,iterator> equal_range(const K& x)
1521
1582
  //Don't use lower_bound_range optimization here as transparent comparators with key K might
1522
1583
  //return a different range than key_type (which can only return a single element range)
@@ -1529,7 +1590,7 @@ class flat_map
1529
1590
  //!
1530
1591
  //! <b>Complexity</b>: Logarithmic.
1531
1592
  template<class K>
1532
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1593
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1533
1594
  std::pair<const_iterator, const_iterator> equal_range(const K& x) const
1534
1595
  //Don't use lower_bound_range optimization here as transparent comparators with key K might
1535
1596
  //return a different range than key_type (which can only return a single element range)
@@ -1542,7 +1603,7 @@ class flat_map
1542
1603
  //! <b>Postcondition</b>: this->empty()
1543
1604
  //!
1544
1605
  //! <b>Throws</b>: If secuence_type's move constructor throws
1545
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE sequence_type extract_sequence()
1606
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline sequence_type extract_sequence()
1546
1607
  {
1547
1608
  return boost::move(dtl::force<sequence_type>(m_flat_tree.get_sequence_ref()));
1548
1609
  }
@@ -1553,7 +1614,7 @@ class flat_map
1553
1614
  //! <b>Complexity</b>: Assuming O(1) move assignment, O(NlogN) with N = seq.size()
1554
1615
  //!
1555
1616
  //! <b>Throws</b>: If the comparison or the move constructor throws
1556
- BOOST_CONTAINER_FORCEINLINE void adopt_sequence(BOOST_RV_REF(sequence_type) seq)
1617
+ inline void adopt_sequence(BOOST_RV_REF(sequence_type) seq)
1557
1618
  { this->m_flat_tree.adopt_sequence_unique(boost::move(dtl::force<impl_sequence_type>(seq))); }
1558
1619
 
1559
1620
  //! <b>Requires</b>: seq shall be ordered according to this->compare()
@@ -1565,55 +1626,63 @@ class flat_map
1565
1626
  //! <b>Complexity</b>: Assuming O(1) move assignment, O(1)
1566
1627
  //!
1567
1628
  //! <b>Throws</b>: If the move assignment throws
1568
- BOOST_CONTAINER_FORCEINLINE void adopt_sequence(ordered_unique_range_t, BOOST_RV_REF(sequence_type) seq)
1629
+ inline void adopt_sequence(ordered_unique_range_t, BOOST_RV_REF(sequence_type) seq)
1569
1630
  { this->m_flat_tree.adopt_sequence_unique(ordered_unique_range_t(), boost::move(dtl::force<impl_sequence_type>(seq))); }
1570
1631
 
1632
+ //! <b>Effects</b>: Returns a const view of the underlying sequence.
1633
+ //!
1634
+ //! <b>Complexity</b>: Constant
1635
+ //!
1636
+ //! <b>Throws</b>: Nothing
1637
+ inline const sequence_type & sequence() const BOOST_NOEXCEPT
1638
+ { return dtl::force<sequence_type>(m_flat_tree.get_sequence_cref()); }
1639
+
1571
1640
  //! <b>Effects</b>: Returns true if x and y are equal
1572
1641
  //!
1573
1642
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1574
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1643
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1575
1644
  friend bool operator==(const flat_map& x, const flat_map& y)
1576
1645
  { return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); }
1577
1646
 
1578
1647
  //! <b>Effects</b>: Returns true if x and y are unequal
1579
1648
  //!
1580
1649
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1581
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1650
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1582
1651
  friend bool operator!=(const flat_map& x, const flat_map& y)
1583
1652
  { return !(x == y); }
1584
1653
 
1585
1654
  //! <b>Effects</b>: Returns true if x is less than y
1586
1655
  //!
1587
1656
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1588
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1657
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1589
1658
  friend bool operator<(const flat_map& x, const flat_map& y)
1590
1659
  { return ::boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); }
1591
1660
 
1592
1661
  //! <b>Effects</b>: Returns true if x is greater than y
1593
1662
  //!
1594
1663
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1595
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1664
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1596
1665
  friend bool operator>(const flat_map& x, const flat_map& y)
1597
1666
  { return y < x; }
1598
1667
 
1599
1668
  //! <b>Effects</b>: Returns true if x is equal or less than y
1600
1669
  //!
1601
1670
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1602
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1671
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1603
1672
  friend bool operator<=(const flat_map& x, const flat_map& y)
1604
1673
  { return !(y < x); }
1605
1674
 
1606
1675
  //! <b>Effects</b>: Returns true if x is equal or greater than y
1607
1676
  //!
1608
1677
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1609
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1678
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1610
1679
  friend bool operator>=(const flat_map& x, const flat_map& y)
1611
1680
  { return !(x < y); }
1612
1681
 
1613
1682
  //! <b>Effects</b>: x.swap(y)
1614
1683
  //!
1615
1684
  //! <b>Complexity</b>: Constant.
1616
- BOOST_CONTAINER_FORCEINLINE friend void swap(flat_map& x, flat_map& y)
1685
+ inline friend void swap(flat_map& x, flat_map& y)
1617
1686
  BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT(x.swap(y)))
1618
1687
  { x.swap(y); }
1619
1688
 
@@ -1626,7 +1695,7 @@ class flat_map
1626
1695
  if (i == end() || key_comp()(k, (*i).first)){
1627
1696
  dtl::value_init<mapped_type> m;
1628
1697
  impl_value_type v(k, ::boost::move(m.m_t));
1629
- i = this->insert(i, ::boost::move(v));
1698
+ i = dtl::force_copy<iterator>(this->m_flat_tree.insert_equal(::boost::move(v)));
1630
1699
  }
1631
1700
  return (*i).second;
1632
1701
  }
@@ -1635,10 +1704,10 @@ class flat_map
1635
1704
  key_type &k = mk;
1636
1705
  iterator i = this->lower_bound(k);
1637
1706
  // i->first is greater than or equivalent to k.
1638
- if (i == end() || key_comp()(k, (*i).first)){
1707
+ if (i == end() || key_comp()(k, (*i).first)) {
1639
1708
  dtl::value_init<mapped_type> m;
1640
1709
  impl_value_type v(::boost::move(k), ::boost::move(m.m_t));
1641
- i = this->insert(i, ::boost::move(v));
1710
+ i = dtl::force_copy<iterator>(this->m_flat_tree.insert_equal(::boost::move(v)));
1642
1711
  }
1643
1712
  return (*i).second;
1644
1713
  }
@@ -1718,10 +1787,10 @@ flat_map(ordered_unique_range_t, InputIterator, InputIterator, Compare const&, A
1718
1787
  template <class Key, class T, class Compare, class AllocatorOrContainer>
1719
1788
  struct has_trivial_destructor_after_move<boost::container::flat_map<Key, T, Compare, AllocatorOrContainer> >
1720
1789
  {
1721
- typedef ::boost::container::dtl::pair<Key, T> value_t;
1790
+ typedef typename boost::container::flat_map<Key, T, Compare, AllocatorOrContainer>::value_type value_t;
1722
1791
  typedef typename ::boost::container::dtl::container_or_allocator_rebind<AllocatorOrContainer, value_t>::type alloc_or_cont_t;
1723
1792
  typedef ::boost::container::dtl::flat_tree<value_t,::boost::container::dtl::select1st<Key>, Compare, alloc_or_cont_t> tree;
1724
- static const bool value = ::boost::has_trivial_destructor_after_move<tree>::value;
1793
+ BOOST_STATIC_CONSTEXPR bool value = ::boost::has_trivial_destructor_after_move<tree>::value;
1725
1794
  };
1726
1795
 
1727
1796
  namespace container {
@@ -1766,17 +1835,28 @@ class flat_multimap
1766
1835
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
1767
1836
  private:
1768
1837
  BOOST_COPYABLE_AND_MOVABLE(flat_multimap)
1838
+ typedef std::pair<Key, T> std_pair_t;
1769
1839
  typedef dtl::flat_tree<
1770
- std::pair<Key, T>,
1840
+ std_pair_t,
1771
1841
  dtl::select1st<Key>,
1772
1842
  Compare,
1773
1843
  AllocatorOrContainer> tree_t;
1774
1844
  //This is the real tree stored here. It's based on a movable pair
1845
+ typedef dtl::pair<Key, T> dtl_pair_t;
1846
+ #ifdef BOOST_CONTAINER_STD_PAIR_IS_MOVABLE
1847
+ typedef std_pair_t impl_pair_t;
1848
+ #else
1849
+ typedef dtl_pair_t impl_pair_t;
1850
+ #endif
1775
1851
  typedef dtl::flat_tree<
1776
- dtl::pair<Key, T>,
1852
+ impl_pair_t,
1777
1853
  dtl::select1st<Key>,
1778
1854
  Compare,
1779
- typename dtl::container_or_allocator_rebind<AllocatorOrContainer, dtl::pair<Key, T> >::type
1855
+ #ifdef BOOST_CONTAINER_STD_PAIR_IS_MOVABLE
1856
+ AllocatorOrContainer
1857
+ #else
1858
+ typename dtl::container_or_allocator_rebind<AllocatorOrContainer, impl_pair_t >::type
1859
+ #endif
1780
1860
  > impl_tree_t;
1781
1861
  impl_tree_t m_flat_tree; // flat tree representing flat_map
1782
1862
 
@@ -1801,10 +1881,10 @@ class flat_multimap
1801
1881
  typedef typename impl_tree_t::stored_allocator_type impl_stored_allocator_type;
1802
1882
  typedef typename impl_tree_t::sequence_type impl_sequence_type;
1803
1883
 
1804
- BOOST_CONTAINER_FORCEINLINE impl_tree_t &tree()
1884
+ inline impl_tree_t &tree()
1805
1885
  { return m_flat_tree; }
1806
1886
 
1807
- BOOST_CONTAINER_FORCEINLINE const impl_tree_t &tree() const
1887
+ inline const impl_tree_t &tree() const
1808
1888
  { return m_flat_tree; }
1809
1889
 
1810
1890
  private:
@@ -1840,7 +1920,7 @@ class flat_multimap
1840
1920
  typedef BOOST_CONTAINER_IMPDEF(impl_value_type) movable_value_type;
1841
1921
 
1842
1922
  //AllocatorOrContainer::value_type must be std::pair<Key, T>
1843
- BOOST_STATIC_ASSERT((dtl::is_same<std::pair<Key, T>, value_type>::value));
1923
+ BOOST_CONTAINER_STATIC_ASSERT((dtl::is_same<std::pair<Key, T>, value_type>::value));
1844
1924
 
1845
1925
  //////////////////////////////////////////////
1846
1926
  //
@@ -1851,7 +1931,7 @@ class flat_multimap
1851
1931
  //! <b>Effects</b>: Default constructs an empty flat_map.
1852
1932
  //!
1853
1933
  //! <b>Complexity</b>: Constant.
1854
- BOOST_CONTAINER_FORCEINLINE flat_multimap()
1934
+ inline flat_multimap()
1855
1935
  BOOST_NOEXCEPT_IF(dtl::is_nothrow_default_constructible<AllocatorOrContainer>::value &&
1856
1936
  dtl::is_nothrow_default_constructible<Compare>::value)
1857
1937
  : m_flat_tree()
@@ -1860,7 +1940,7 @@ class flat_multimap
1860
1940
  //! <b>Effects</b>: Constructs an empty flat_multimap using the specified allocator.
1861
1941
  //!
1862
1942
  //! <b>Complexity</b>: Constant.
1863
- BOOST_CONTAINER_FORCEINLINE explicit flat_multimap(const allocator_type& a)
1943
+ inline explicit flat_multimap(const allocator_type& a)
1864
1944
  : m_flat_tree(dtl::force<const impl_allocator_type>(a))
1865
1945
  {}
1866
1946
 
@@ -1868,7 +1948,7 @@ class flat_multimap
1868
1948
  //! object .
1869
1949
  //!
1870
1950
  //! <b>Complexity</b>: Constant.
1871
- BOOST_CONTAINER_FORCEINLINE explicit flat_multimap(const Compare& comp)
1951
+ inline explicit flat_multimap(const Compare& comp)
1872
1952
  : m_flat_tree(comp)
1873
1953
  {}
1874
1954
 
@@ -1876,7 +1956,7 @@ class flat_multimap
1876
1956
  //! object and allocator.
1877
1957
  //!
1878
1958
  //! <b>Complexity</b>: Constant.
1879
- BOOST_CONTAINER_FORCEINLINE
1959
+ inline
1880
1960
  flat_multimap(const Compare& comp, const allocator_type& a)
1881
1961
  : m_flat_tree(comp, dtl::force<const impl_allocator_type>(a))
1882
1962
  {}
@@ -1887,7 +1967,7 @@ class flat_multimap
1887
1967
  //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
1888
1968
  //! the predicate and otherwise N logN, where N is last - first.
1889
1969
  template <class InputIterator>
1890
- BOOST_CONTAINER_FORCEINLINE
1970
+ inline
1891
1971
  flat_multimap(InputIterator first, InputIterator last)
1892
1972
  : m_flat_tree(false, first, last)
1893
1973
  {}
@@ -1898,7 +1978,7 @@ class flat_multimap
1898
1978
  //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
1899
1979
  //! the predicate and otherwise N logN, where N is last - first.
1900
1980
  template <class InputIterator>
1901
- BOOST_CONTAINER_FORCEINLINE
1981
+ inline
1902
1982
  flat_multimap(InputIterator first, InputIterator last, const allocator_type& a)
1903
1983
  : m_flat_tree(false, first, last, dtl::force<const impl_allocator_type>(a))
1904
1984
  {}
@@ -1909,7 +1989,7 @@ class flat_multimap
1909
1989
  //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
1910
1990
  //! the predicate and otherwise N logN, where N is last - first.
1911
1991
  template <class InputIterator>
1912
- BOOST_CONTAINER_FORCEINLINE
1992
+ inline
1913
1993
  flat_multimap(InputIterator first, InputIterator last, const Compare& comp)
1914
1994
  : m_flat_tree(false, first, last, comp)
1915
1995
  {}
@@ -1920,7 +2000,7 @@ class flat_multimap
1920
2000
  //! <b>Complexity</b>: Linear in N if the range [first ,last ) is already sorted using
1921
2001
  //! the predicate and otherwise N logN, where N is last - first.
1922
2002
  template <class InputIterator>
1923
- BOOST_CONTAINER_FORCEINLINE
2003
+ inline
1924
2004
  flat_multimap(InputIterator first, InputIterator last, const Compare& comp, const allocator_type& a)
1925
2005
  : m_flat_tree(false, first, last, comp, dtl::force<const impl_allocator_type>(a))
1926
2006
  {}
@@ -1935,7 +2015,7 @@ class flat_multimap
1935
2015
  //!
1936
2016
  //! <b>Note</b>: Non-standard extension.
1937
2017
  template <class InputIterator>
1938
- BOOST_CONTAINER_FORCEINLINE
2018
+ inline
1939
2019
  flat_multimap(ordered_range_t, InputIterator first, InputIterator last)
1940
2020
  : m_flat_tree(ordered_range, first, last)
1941
2021
  {}
@@ -1950,7 +2030,7 @@ class flat_multimap
1950
2030
  //!
1951
2031
  //! <b>Note</b>: Non-standard extension.
1952
2032
  template <class InputIterator>
1953
- BOOST_CONTAINER_FORCEINLINE
2033
+ inline
1954
2034
  flat_multimap(ordered_range_t, InputIterator first, InputIterator last, const Compare& comp)
1955
2035
  : m_flat_tree(ordered_range, first, last, comp)
1956
2036
  {}
@@ -1965,7 +2045,7 @@ class flat_multimap
1965
2045
  //!
1966
2046
  //! <b>Note</b>: Non-standard extension.
1967
2047
  template <class InputIterator>
1968
- BOOST_CONTAINER_FORCEINLINE
2048
+ inline
1969
2049
  flat_multimap(ordered_range_t, InputIterator first, InputIterator last, const Compare& comp, const allocator_type& a)
1970
2050
  : m_flat_tree(ordered_range, first, last, comp, a)
1971
2051
  {}
@@ -1980,7 +2060,7 @@ class flat_multimap
1980
2060
  //!
1981
2061
  //! <b>Note</b>: Non-standard extension.
1982
2062
  template <class InputIterator>
1983
- BOOST_CONTAINER_FORCEINLINE
2063
+ inline
1984
2064
  flat_multimap(ordered_range_t, InputIterator first, InputIterator last, const allocator_type &a)
1985
2065
  : m_flat_tree(ordered_range, first, last, Compare(), a)
1986
2066
  {}
@@ -1991,7 +2071,7 @@ class flat_multimap
1991
2071
  //!
1992
2072
  //! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
1993
2073
  //! the predicate and otherwise N logN, where N is last - first.
1994
- BOOST_CONTAINER_FORCEINLINE
2074
+ inline
1995
2075
  flat_multimap(std::initializer_list<value_type> il)
1996
2076
  : m_flat_tree( false
1997
2077
  , dtl::force<impl_initializer_list>(il).begin()
@@ -2003,7 +2083,7 @@ class flat_multimap
2003
2083
  //!
2004
2084
  //! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
2005
2085
  //! the predicate and otherwise N logN, where N is last - first.
2006
- BOOST_CONTAINER_FORCEINLINE
2086
+ inline
2007
2087
  flat_multimap(std::initializer_list<value_type> il, const allocator_type& a)
2008
2088
  : m_flat_tree(false
2009
2089
  , dtl::force<impl_initializer_list>(il).begin()
@@ -2016,7 +2096,7 @@ class flat_multimap
2016
2096
  //!
2017
2097
  //! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
2018
2098
  //! the predicate and otherwise N logN, where N is last - first.
2019
- BOOST_CONTAINER_FORCEINLINE
2099
+ inline
2020
2100
  flat_multimap(std::initializer_list<value_type> il, const Compare& comp)
2021
2101
  : m_flat_tree(false
2022
2102
  , dtl::force<impl_initializer_list>(il).begin()
@@ -2028,7 +2108,7 @@ class flat_multimap
2028
2108
  //!
2029
2109
  //! <b>Complexity</b>: Linear in N if the range [il.begin(), il.end()) is already sorted using
2030
2110
  //! the predicate and otherwise N logN, where N is last - first.
2031
- BOOST_CONTAINER_FORCEINLINE
2111
+ inline
2032
2112
  flat_multimap(std::initializer_list<value_type> il, const Compare& comp, const allocator_type& a)
2033
2113
  : m_flat_tree( false
2034
2114
  , dtl::force<impl_initializer_list>(il).begin()
@@ -2045,7 +2125,7 @@ class flat_multimap
2045
2125
  //! <b>Complexity</b>: Linear in N.
2046
2126
  //!
2047
2127
  //! <b>Note</b>: Non-standard extension.
2048
- BOOST_CONTAINER_FORCEINLINE
2128
+ inline
2049
2129
  flat_multimap(ordered_range_t, std::initializer_list<value_type> il)
2050
2130
  : m_flat_tree( ordered_range
2051
2131
  , dtl::force<impl_initializer_list>(il).begin()
@@ -2061,7 +2141,7 @@ class flat_multimap
2061
2141
  //! <b>Complexity</b>: Linear in N.
2062
2142
  //!
2063
2143
  //! <b>Note</b>: Non-standard extension.
2064
- BOOST_CONTAINER_FORCEINLINE
2144
+ inline
2065
2145
  flat_multimap(ordered_range_t, std::initializer_list<value_type> il, const Compare& comp)
2066
2146
  : m_flat_tree( ordered_range
2067
2147
  , dtl::force<impl_initializer_list>(il).begin()
@@ -2077,7 +2157,7 @@ class flat_multimap
2077
2157
  //! <b>Complexity</b>: Linear in N.
2078
2158
  //!
2079
2159
  //! <b>Note</b>: Non-standard extension.
2080
- BOOST_CONTAINER_FORCEINLINE
2160
+ inline
2081
2161
  flat_multimap(ordered_range_t, std::initializer_list<value_type> il, const Compare& comp, const allocator_type& a)
2082
2162
  : m_flat_tree( ordered_range
2083
2163
  , dtl::force<impl_initializer_list>(il).begin()
@@ -2089,7 +2169,7 @@ class flat_multimap
2089
2169
  //! <b>Effects</b>: Copy constructs a flat_multimap.
2090
2170
  //!
2091
2171
  //! <b>Complexity</b>: Linear in x.size().
2092
- BOOST_CONTAINER_FORCEINLINE
2172
+ inline
2093
2173
  flat_multimap(const flat_multimap& x)
2094
2174
  : m_flat_tree(x.m_flat_tree)
2095
2175
  {}
@@ -2099,7 +2179,7 @@ class flat_multimap
2099
2179
  //! <b>Complexity</b>: Constant.
2100
2180
  //!
2101
2181
  //! <b>Postcondition</b>: x is emptied.
2102
- BOOST_CONTAINER_FORCEINLINE
2182
+ inline
2103
2183
  flat_multimap(BOOST_RV_REF(flat_multimap) x)
2104
2184
  BOOST_NOEXCEPT_IF(boost::container::dtl::is_nothrow_move_constructible<Compare>::value)
2105
2185
  : m_flat_tree(boost::move(x.m_flat_tree))
@@ -2108,7 +2188,7 @@ class flat_multimap
2108
2188
  //! <b>Effects</b>: Copy constructs a flat_multimap using the specified allocator.
2109
2189
  //!
2110
2190
  //! <b>Complexity</b>: Linear in x.size().
2111
- BOOST_CONTAINER_FORCEINLINE
2191
+ inline
2112
2192
  flat_multimap(const flat_multimap& x, const allocator_type &a)
2113
2193
  : m_flat_tree(x.m_flat_tree, dtl::force<const impl_allocator_type>(a))
2114
2194
  {}
@@ -2117,7 +2197,7 @@ class flat_multimap
2117
2197
  //! Constructs *this using x's resources.
2118
2198
  //!
2119
2199
  //! <b>Complexity</b>: Constant if a == x.get_allocator(), linear otherwise.
2120
- BOOST_CONTAINER_FORCEINLINE
2200
+ inline
2121
2201
  flat_multimap(BOOST_RV_REF(flat_multimap) x, const allocator_type &a)
2122
2202
  : m_flat_tree(boost::move(x.m_flat_tree), dtl::force<const impl_allocator_type>(a))
2123
2203
  {}
@@ -2125,14 +2205,14 @@ class flat_multimap
2125
2205
  //! <b>Effects</b>: Makes *this a copy of x.
2126
2206
  //!
2127
2207
  //! <b>Complexity</b>: Linear in x.size().
2128
- BOOST_CONTAINER_FORCEINLINE
2208
+ inline
2129
2209
  flat_multimap& operator=(BOOST_COPY_ASSIGN_REF(flat_multimap) x)
2130
2210
  { m_flat_tree = x.m_flat_tree; return *this; }
2131
2211
 
2132
2212
  //! <b>Effects</b>: this->swap(x.get()).
2133
2213
  //!
2134
2214
  //! <b>Complexity</b>: Constant.
2135
- BOOST_CONTAINER_FORCEINLINE
2215
+ inline
2136
2216
  flat_multimap& operator=(BOOST_RV_REF(flat_multimap) x)
2137
2217
  BOOST_NOEXCEPT_IF( (allocator_traits_type::propagate_on_container_move_assignment::value ||
2138
2218
  allocator_traits_type::is_always_equal::value) &&
@@ -2143,7 +2223,7 @@ class flat_multimap
2143
2223
  //! <b>Effects</b>: Assign content of il to *this
2144
2224
  //!
2145
2225
  //! <b>Complexity</b>: Linear in il.size().
2146
- BOOST_CONTAINER_FORCEINLINE
2226
+ inline
2147
2227
  flat_multimap& operator=(std::initializer_list<value_type> il)
2148
2228
  {
2149
2229
  this->clear();
@@ -2156,7 +2236,7 @@ class flat_multimap
2156
2236
  //! was passed to the object's constructor.
2157
2237
  //!
2158
2238
  //! <b>Complexity</b>: Constant.
2159
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2239
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2160
2240
  allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
2161
2241
  { return dtl::force_copy<allocator_type>(m_flat_tree.get_allocator()); }
2162
2242
 
@@ -2167,7 +2247,7 @@ class flat_multimap
2167
2247
  //! <b>Complexity</b>: Constant.
2168
2248
  //!
2169
2249
  //! <b>Note</b>: Non-standard extension.
2170
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2250
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2171
2251
  stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW
2172
2252
  { return dtl::force<stored_allocator_type>(m_flat_tree.get_stored_allocator()); }
2173
2253
 
@@ -2178,7 +2258,7 @@ class flat_multimap
2178
2258
  //! <b>Complexity</b>: Constant.
2179
2259
  //!
2180
2260
  //! <b>Note</b>: Non-standard extension.
2181
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2261
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2182
2262
  const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
2183
2263
  { return dtl::force<const stored_allocator_type>(m_flat_tree.get_stored_allocator()); }
2184
2264
 
@@ -2193,7 +2273,7 @@ class flat_multimap
2193
2273
  //! <b>Throws</b>: Nothing.
2194
2274
  //!
2195
2275
  //! <b>Complexity</b>: Constant.
2196
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2276
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2197
2277
  iterator begin() BOOST_NOEXCEPT_OR_NOTHROW
2198
2278
  { return dtl::force_copy<iterator>(m_flat_tree.begin()); }
2199
2279
 
@@ -2202,7 +2282,7 @@ class flat_multimap
2202
2282
  //! <b>Throws</b>: Nothing.
2203
2283
  //!
2204
2284
  //! <b>Complexity</b>: Constant.
2205
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2285
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2206
2286
  const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW
2207
2287
  { return dtl::force_copy<const_iterator>(m_flat_tree.begin()); }
2208
2288
 
@@ -2211,7 +2291,7 @@ class flat_multimap
2211
2291
  //! <b>Throws</b>: Nothing.
2212
2292
  //!
2213
2293
  //! <b>Complexity</b>: Constant.
2214
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2294
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2215
2295
  iterator end() BOOST_NOEXCEPT_OR_NOTHROW
2216
2296
  { return dtl::force_copy<iterator>(m_flat_tree.end()); }
2217
2297
 
@@ -2220,7 +2300,7 @@ class flat_multimap
2220
2300
  //! <b>Throws</b>: Nothing.
2221
2301
  //!
2222
2302
  //! <b>Complexity</b>: Constant.
2223
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2303
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2224
2304
  const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW
2225
2305
  { return dtl::force_copy<const_iterator>(m_flat_tree.end()); }
2226
2306
 
@@ -2230,7 +2310,7 @@ class flat_multimap
2230
2310
  //! <b>Throws</b>: Nothing.
2231
2311
  //!
2232
2312
  //! <b>Complexity</b>: Constant.
2233
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2313
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2234
2314
  reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW
2235
2315
  { return dtl::force_copy<reverse_iterator>(m_flat_tree.rbegin()); }
2236
2316
 
@@ -2240,7 +2320,7 @@ class flat_multimap
2240
2320
  //! <b>Throws</b>: Nothing.
2241
2321
  //!
2242
2322
  //! <b>Complexity</b>: Constant.
2243
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2323
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2244
2324
  const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW
2245
2325
  { return dtl::force_copy<const_reverse_iterator>(m_flat_tree.rbegin()); }
2246
2326
 
@@ -2250,7 +2330,7 @@ class flat_multimap
2250
2330
  //! <b>Throws</b>: Nothing.
2251
2331
  //!
2252
2332
  //! <b>Complexity</b>: Constant.
2253
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2333
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2254
2334
  reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW
2255
2335
  { return dtl::force_copy<reverse_iterator>(m_flat_tree.rend()); }
2256
2336
 
@@ -2260,7 +2340,7 @@ class flat_multimap
2260
2340
  //! <b>Throws</b>: Nothing.
2261
2341
  //!
2262
2342
  //! <b>Complexity</b>: Constant.
2263
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2343
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2264
2344
  const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW
2265
2345
  { return dtl::force_copy<const_reverse_iterator>(m_flat_tree.rend()); }
2266
2346
 
@@ -2269,7 +2349,7 @@ class flat_multimap
2269
2349
  //! <b>Throws</b>: Nothing.
2270
2350
  //!
2271
2351
  //! <b>Complexity</b>: Constant.
2272
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2352
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2273
2353
  const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW
2274
2354
  { return dtl::force_copy<const_iterator>(m_flat_tree.cbegin()); }
2275
2355
 
@@ -2278,7 +2358,7 @@ class flat_multimap
2278
2358
  //! <b>Throws</b>: Nothing.
2279
2359
  //!
2280
2360
  //! <b>Complexity</b>: Constant.
2281
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2361
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2282
2362
  const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW
2283
2363
  { return dtl::force_copy<const_iterator>(m_flat_tree.cend()); }
2284
2364
 
@@ -2288,7 +2368,7 @@ class flat_multimap
2288
2368
  //! <b>Throws</b>: Nothing.
2289
2369
  //!
2290
2370
  //! <b>Complexity</b>: Constant.
2291
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2371
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2292
2372
  const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW
2293
2373
  { return dtl::force_copy<const_reverse_iterator>(m_flat_tree.crbegin()); }
2294
2374
 
@@ -2298,7 +2378,7 @@ class flat_multimap
2298
2378
  //! <b>Throws</b>: Nothing.
2299
2379
  //!
2300
2380
  //! <b>Complexity</b>: Constant.
2301
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2381
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2302
2382
  const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW
2303
2383
  { return dtl::force_copy<const_reverse_iterator>(m_flat_tree.crend()); }
2304
2384
 
@@ -2313,7 +2393,7 @@ class flat_multimap
2313
2393
  //! <b>Throws</b>: Nothing.
2314
2394
  //!
2315
2395
  //! <b>Complexity</b>: Constant.
2316
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2396
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2317
2397
  bool empty() const BOOST_NOEXCEPT_OR_NOTHROW
2318
2398
  { return m_flat_tree.empty(); }
2319
2399
 
@@ -2322,7 +2402,7 @@ class flat_multimap
2322
2402
  //! <b>Throws</b>: Nothing.
2323
2403
  //!
2324
2404
  //! <b>Complexity</b>: Constant.
2325
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2405
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2326
2406
  size_type size() const BOOST_NOEXCEPT_OR_NOTHROW
2327
2407
  { return m_flat_tree.size(); }
2328
2408
 
@@ -2331,7 +2411,7 @@ class flat_multimap
2331
2411
  //! <b>Throws</b>: Nothing.
2332
2412
  //!
2333
2413
  //! <b>Complexity</b>: Constant.
2334
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2414
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2335
2415
  size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
2336
2416
  { return m_flat_tree.max_size(); }
2337
2417
 
@@ -2341,7 +2421,7 @@ class flat_multimap
2341
2421
  //! <b>Throws</b>: Nothing.
2342
2422
  //!
2343
2423
  //! <b>Complexity</b>: Constant.
2344
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2424
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2345
2425
  size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
2346
2426
  { return m_flat_tree.capacity(); }
2347
2427
 
@@ -2355,7 +2435,7 @@ class flat_multimap
2355
2435
  //!
2356
2436
  //! <b>Note</b>: If capacity() is less than "cnt", iterators and references to
2357
2437
  //! to values might be invalidated.
2358
- BOOST_CONTAINER_FORCEINLINE
2438
+ inline
2359
2439
  void reserve(size_type cnt)
2360
2440
  { m_flat_tree.reserve(cnt); }
2361
2441
 
@@ -2365,27 +2445,27 @@ class flat_multimap
2365
2445
  //! <b>Throws</b>: If memory allocation throws, or T's copy constructor throws.
2366
2446
  //!
2367
2447
  //! <b>Complexity</b>: Linear to size().
2368
- BOOST_CONTAINER_FORCEINLINE
2448
+ inline
2369
2449
  void shrink_to_fit()
2370
2450
  { m_flat_tree.shrink_to_fit(); }
2371
2451
 
2372
2452
  //! @copydoc ::boost::container::flat_set::nth(size_type)
2373
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2453
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2374
2454
  iterator nth(size_type n) BOOST_NOEXCEPT_OR_NOTHROW
2375
2455
  { return dtl::force_copy<iterator>(m_flat_tree.nth(n)); }
2376
2456
 
2377
2457
  //! @copydoc ::boost::container::flat_set::nth(size_type) const
2378
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2458
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2379
2459
  const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
2380
- { return dtl::force_copy<iterator>(m_flat_tree.nth(n)); }
2460
+ { return dtl::force_copy<const_iterator>(m_flat_tree.nth(n)); }
2381
2461
 
2382
2462
  //! @copydoc ::boost::container::flat_set::index_of(iterator)
2383
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2463
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2384
2464
  size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW
2385
2465
  { return m_flat_tree.index_of(dtl::force_copy<impl_iterator>(p)); }
2386
2466
 
2387
2467
  //! @copydoc ::boost::container::flat_set::index_of(const_iterator) const
2388
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2468
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2389
2469
  size_type index_of(const_iterator p) const BOOST_NOEXCEPT_OR_NOTHROW
2390
2470
  { return m_flat_tree.index_of(dtl::force_copy<impl_const_iterator>(p)); }
2391
2471
 
@@ -2400,7 +2480,7 @@ class flat_multimap
2400
2480
  //!
2401
2481
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
2402
2482
  template <class... Args>
2403
- BOOST_CONTAINER_FORCEINLINE
2483
+ inline
2404
2484
  iterator emplace(BOOST_FWD_REF(Args)... args)
2405
2485
  { return dtl::force_copy<iterator>(m_flat_tree.emplace_equal(boost::forward<Args>(args)...)); }
2406
2486
 
@@ -2417,7 +2497,7 @@ class flat_multimap
2417
2497
  //!
2418
2498
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
2419
2499
  template <class... Args>
2420
- BOOST_CONTAINER_FORCEINLINE
2500
+ inline
2421
2501
  iterator emplace_hint(const_iterator hint, BOOST_FWD_REF(Args)... args)
2422
2502
  {
2423
2503
  return dtl::force_copy<iterator>(m_flat_tree.emplace_hint_equal
@@ -2428,11 +2508,11 @@ class flat_multimap
2428
2508
 
2429
2509
  #define BOOST_CONTAINER_FLAT_MULTIMAP_EMPLACE_CODE(N) \
2430
2510
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
2431
- BOOST_CONTAINER_FORCEINLINE iterator emplace(BOOST_MOVE_UREF##N)\
2511
+ inline iterator emplace(BOOST_MOVE_UREF##N)\
2432
2512
  { return dtl::force_copy<iterator>(m_flat_tree.emplace_equal(BOOST_MOVE_FWD##N)); }\
2433
2513
  \
2434
2514
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
2435
- BOOST_CONTAINER_FORCEINLINE iterator emplace_hint(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
2515
+ inline iterator emplace_hint(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
2436
2516
  {\
2437
2517
  return dtl::force_copy<iterator>(m_flat_tree.emplace_hint_equal\
2438
2518
  (dtl::force_copy<impl_const_iterator>(hint) BOOST_MOVE_I##N BOOST_MOVE_FWD##N));\
@@ -2450,7 +2530,7 @@ class flat_multimap
2450
2530
  //! to the elements with bigger keys than x.
2451
2531
  //!
2452
2532
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
2453
- BOOST_CONTAINER_FORCEINLINE iterator insert(const value_type& x)
2533
+ inline iterator insert(const value_type& x)
2454
2534
  {
2455
2535
  return dtl::force_copy<iterator>(
2456
2536
  m_flat_tree.insert_equal(dtl::force<const impl_value_type>(x)));
@@ -2464,9 +2544,9 @@ class flat_multimap
2464
2544
  //!
2465
2545
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
2466
2546
  template<class Pair>
2467
- BOOST_CONTAINER_FORCEINLINE BOOST_CONTAINER_DOC1ST
2547
+ inline BOOST_CONTAINER_DOC1ST
2468
2548
  ( iterator
2469
- , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I impl_value_type>::value
2549
+ , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I dtl_pair_t>::value
2470
2550
  BOOST_MOVE_I iterator >::type)
2471
2551
  insert(BOOST_FWD_REF(Pair) x)
2472
2552
  { return dtl::force_copy<iterator>(m_flat_tree.emplace_equal(boost::forward<Pair>(x))); }
@@ -2482,7 +2562,7 @@ class flat_multimap
2482
2562
  //! to the elements with bigger keys than x.
2483
2563
  //!
2484
2564
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
2485
- BOOST_CONTAINER_FORCEINLINE iterator insert(const_iterator p, const value_type& x)
2565
+ inline iterator insert(const_iterator p, const value_type& x)
2486
2566
  {
2487
2567
  return dtl::force_copy<iterator>
2488
2568
  (m_flat_tree.insert_equal( dtl::force_copy<impl_const_iterator>(p)
@@ -2501,9 +2581,9 @@ class flat_multimap
2501
2581
  //!
2502
2582
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
2503
2583
  template<class Pair>
2504
- BOOST_CONTAINER_FORCEINLINE BOOST_CONTAINER_DOC1ST
2584
+ inline BOOST_CONTAINER_DOC1ST
2505
2585
  ( iterator
2506
- , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I impl_value_type>::value
2586
+ , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I dtl_pair_t>::value
2507
2587
  BOOST_MOVE_I iterator>::type)
2508
2588
  insert(const_iterator p, BOOST_FWD_REF(Pair) x)
2509
2589
  {
@@ -2519,7 +2599,7 @@ class flat_multimap
2519
2599
  //!
2520
2600
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
2521
2601
  template <class InputIterator>
2522
- BOOST_CONTAINER_FORCEINLINE void insert(InputIterator first, InputIterator last)
2602
+ inline void insert(InputIterator first, InputIterator last)
2523
2603
  { m_flat_tree.insert_equal(first, last); }
2524
2604
 
2525
2605
  //! <b>Requires</b>: first, last are not iterators into *this.
@@ -2536,7 +2616,7 @@ class flat_multimap
2536
2616
  //!
2537
2617
  //! <b>Note</b>: Non-standard extension.
2538
2618
  template <class InputIterator>
2539
- BOOST_CONTAINER_FORCEINLINE void insert(ordered_range_t, InputIterator first, InputIterator last)
2619
+ inline void insert(ordered_range_t, InputIterator first, InputIterator last)
2540
2620
  { m_flat_tree.insert_equal(ordered_range, first, last); }
2541
2621
 
2542
2622
  #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
@@ -2545,7 +2625,7 @@ class flat_multimap
2545
2625
  //! <b>Complexity</b>: N log(N).
2546
2626
  //!
2547
2627
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
2548
- BOOST_CONTAINER_FORCEINLINE void insert(std::initializer_list<value_type> il)
2628
+ inline void insert(std::initializer_list<value_type> il)
2549
2629
  {
2550
2630
  m_flat_tree.insert_equal( dtl::force<impl_initializer_list>(il).begin()
2551
2631
  , dtl::force<impl_initializer_list>(il).end());
@@ -2562,7 +2642,7 @@ class flat_multimap
2562
2642
  //! <b>Note</b>: If an element is inserted it might invalidate elements.
2563
2643
  //!
2564
2644
  //! <b>Note</b>: Non-standard extension.
2565
- BOOST_CONTAINER_FORCEINLINE void insert(ordered_range_t, std::initializer_list<value_type> il)
2645
+ inline void insert(ordered_range_t, std::initializer_list<value_type> il)
2566
2646
  {
2567
2647
  m_flat_tree.insert_equal( ordered_range
2568
2648
  , dtl::force<impl_initializer_list>(il).begin()
@@ -2579,22 +2659,22 @@ class flat_multimap
2579
2659
  //!
2580
2660
  //! <b>Note</b>: Invalidates all iterators and references.
2581
2661
  template<class C2>
2582
- BOOST_CONTAINER_FORCEINLINE void merge(flat_multimap<Key, T, C2, AllocatorOrContainer>& source)
2662
+ inline void merge(flat_multimap<Key, T, C2, AllocatorOrContainer>& source)
2583
2663
  { m_flat_tree.merge_equal(source.tree()); }
2584
2664
 
2585
2665
  //! @copydoc ::boost::container::flat_multimap::merge(flat_multimap<Key, T, C2, AllocatorOrContainer>&)
2586
2666
  template<class C2>
2587
- BOOST_CONTAINER_FORCEINLINE void merge(BOOST_RV_REF_BEG flat_multimap<Key, T, C2, AllocatorOrContainer> BOOST_RV_REF_END source)
2667
+ inline void merge(BOOST_RV_REF_BEG flat_multimap<Key, T, C2, AllocatorOrContainer> BOOST_RV_REF_END source)
2588
2668
  { return this->merge(static_cast<flat_multimap<Key, T, C2, AllocatorOrContainer>&>(source)); }
2589
2669
 
2590
2670
  //! @copydoc ::boost::container::flat_multimap::merge(flat_multimap<Key, T, C2, AllocatorOrContainer>&)
2591
2671
  template<class C2>
2592
- BOOST_CONTAINER_FORCEINLINE void merge(flat_map<Key, T, C2, AllocatorOrContainer>& source)
2672
+ inline void merge(flat_map<Key, T, C2, AllocatorOrContainer>& source)
2593
2673
  { m_flat_tree.merge_equal(source.tree()); }
2594
2674
 
2595
2675
  //! @copydoc ::boost::container::flat_multimap::merge(flat_map<Key, T, C2, AllocatorOrContainer>&)
2596
2676
  template<class C2>
2597
- BOOST_CONTAINER_FORCEINLINE void merge(BOOST_RV_REF_BEG flat_map<Key, T, C2, AllocatorOrContainer> BOOST_RV_REF_END source)
2677
+ inline void merge(BOOST_RV_REF_BEG flat_map<Key, T, C2, AllocatorOrContainer> BOOST_RV_REF_END source)
2598
2678
  { return this->merge(static_cast<flat_map<Key, T, C2, AllocatorOrContainer>&>(source)); }
2599
2679
 
2600
2680
  //! <b>Effects</b>: Erases the element pointed to by p.
@@ -2607,7 +2687,7 @@ class flat_multimap
2607
2687
  //!
2608
2688
  //! <b>Note</b>: Invalidates elements with keys
2609
2689
  //! not less than the erased element.
2610
- BOOST_CONTAINER_FORCEINLINE iterator erase(const_iterator p)
2690
+ inline iterator erase(const_iterator p)
2611
2691
  {
2612
2692
  return dtl::force_copy<iterator>(
2613
2693
  m_flat_tree.erase(dtl::force_copy<impl_const_iterator>(p)));
@@ -2619,7 +2699,24 @@ class flat_multimap
2619
2699
  //!
2620
2700
  //! <b>Complexity</b>: Logarithmic search time plus erasure time
2621
2701
  //! linear to the elements with bigger keys.
2622
- BOOST_CONTAINER_FORCEINLINE size_type erase(const key_type& x)
2702
+ inline size_type erase(const key_type& x)
2703
+ { return m_flat_tree.erase(x); }
2704
+
2705
+ //! <b>Requires</b>: This overload is available only if
2706
+ //! key_compare::is_transparent exists.
2707
+ //!
2708
+ //! <b>Effects</b>: Erases all elements in the container with key equivalent to x.
2709
+ //!
2710
+ //! <b>Returns</b>: Returns the number of erased elements.
2711
+ template <class K>
2712
+ inline BOOST_CONTAINER_DOC1ST
2713
+ (size_type
2714
+ , typename dtl::enable_if_c<
2715
+ dtl::is_transparent<key_compare>::value && //transparent
2716
+ !dtl::is_convertible<K BOOST_MOVE_I iterator>::value && //not convertible to iterator
2717
+ !dtl::is_convertible<K BOOST_MOVE_I const_iterator>::value //not convertible to const_iterator
2718
+ BOOST_MOVE_I size_type>::type)
2719
+ erase(const K& x)
2623
2720
  { return m_flat_tree.erase(x); }
2624
2721
 
2625
2722
  //! <b>Effects</b>: Erases all the elements in the range [first, last).
@@ -2630,7 +2727,7 @@ class flat_multimap
2630
2727
  //!
2631
2728
  //! <b>Complexity</b>: Logarithmic search time plus erasure time
2632
2729
  //! linear to the elements with bigger keys.
2633
- BOOST_CONTAINER_FORCEINLINE iterator erase(const_iterator first, const_iterator last)
2730
+ inline iterator erase(const_iterator first, const_iterator last)
2634
2731
  {
2635
2732
  return dtl::force_copy<iterator>
2636
2733
  (m_flat_tree.erase( dtl::force_copy<impl_const_iterator>(first)
@@ -2642,7 +2739,7 @@ class flat_multimap
2642
2739
  //! <b>Throws</b>: Nothing.
2643
2740
  //!
2644
2741
  //! <b>Complexity</b>: Constant.
2645
- BOOST_CONTAINER_FORCEINLINE void swap(flat_multimap& x)
2742
+ inline void swap(flat_multimap& x)
2646
2743
  BOOST_NOEXCEPT_IF( allocator_traits_type::is_always_equal::value
2647
2744
  && boost::container::dtl::is_nothrow_swappable<Compare>::value )
2648
2745
  { m_flat_tree.swap(x.m_flat_tree); }
@@ -2652,7 +2749,7 @@ class flat_multimap
2652
2749
  //! <b>Postcondition</b>: size() == 0.
2653
2750
  //!
2654
2751
  //! <b>Complexity</b>: linear in size().
2655
- BOOST_CONTAINER_FORCEINLINE void clear() BOOST_NOEXCEPT_OR_NOTHROW
2752
+ inline void clear() BOOST_NOEXCEPT_OR_NOTHROW
2656
2753
  { m_flat_tree.clear(); }
2657
2754
 
2658
2755
  //////////////////////////////////////////////
@@ -2665,7 +2762,7 @@ class flat_multimap
2665
2762
  //! of which a was constructed.
2666
2763
  //!
2667
2764
  //! <b>Complexity</b>: Constant.
2668
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2765
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2669
2766
  key_compare key_comp() const
2670
2767
  { return dtl::force_copy<key_compare>(m_flat_tree.key_comp()); }
2671
2768
 
@@ -2673,7 +2770,7 @@ class flat_multimap
2673
2770
  //! of the comparison object.
2674
2771
  //!
2675
2772
  //! <b>Complexity</b>: Constant.
2676
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2773
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2677
2774
  value_compare value_comp() const
2678
2775
  { return value_compare(dtl::force_copy<key_compare>(m_flat_tree.key_comp())); }
2679
2776
 
@@ -2687,7 +2784,7 @@ class flat_multimap
2687
2784
  //! equivalent to x, or end() if such an element is not found.
2688
2785
  //!
2689
2786
  //! <b>Complexity</b>: Logarithmic.
2690
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2787
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2691
2788
  iterator find(const key_type& x)
2692
2789
  { return dtl::force_copy<iterator>(m_flat_tree.find(x)); }
2693
2790
 
@@ -2695,7 +2792,7 @@ class flat_multimap
2695
2792
  //! equivalent to x, or end() if such an element is not found.
2696
2793
  //!
2697
2794
  //! <b>Complexity</b>: Logarithmic.
2698
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2795
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2699
2796
  const_iterator find(const key_type& x) const
2700
2797
  { return dtl::force_copy<const_iterator>(m_flat_tree.find(x)); }
2701
2798
 
@@ -2707,7 +2804,7 @@ class flat_multimap
2707
2804
  //!
2708
2805
  //! <b>Complexity</b>: Logarithmic.
2709
2806
  template<class K>
2710
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2807
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2711
2808
  iterator find(const K& x)
2712
2809
  { return dtl::force_copy<iterator>(m_flat_tree.find(x)); }
2713
2810
 
@@ -2719,14 +2816,14 @@ class flat_multimap
2719
2816
  //!
2720
2817
  //! <b>Complexity</b>: Logarithmic.
2721
2818
  template<class K>
2722
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2819
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2723
2820
  const_iterator find(const K& x) const
2724
2821
  { return dtl::force_copy<const_iterator>(m_flat_tree.find(x)); }
2725
2822
 
2726
2823
  //! <b>Returns</b>: The number of elements with key equivalent to x.
2727
2824
  //!
2728
2825
  //! <b>Complexity</b>: log(size())+count(k)
2729
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2826
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2730
2827
  size_type count(const key_type& x) const
2731
2828
  { return m_flat_tree.count(x); }
2732
2829
 
@@ -2737,7 +2834,7 @@ class flat_multimap
2737
2834
  //!
2738
2835
  //! <b>Complexity</b>: log(size())+count(k)
2739
2836
  template<class K>
2740
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2837
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2741
2838
  size_type count(const K& x) const
2742
2839
  { return m_flat_tree.count(x); }
2743
2840
 
@@ -2745,7 +2842,7 @@ class flat_multimap
2745
2842
  //! equivalent to key in the container, otherwise false.
2746
2843
  //!
2747
2844
  //! <b>Complexity</b>: log(size()).
2748
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2845
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2749
2846
  bool contains(const key_type& x) const
2750
2847
  { return m_flat_tree.find(x) != m_flat_tree.end(); }
2751
2848
 
@@ -2757,7 +2854,7 @@ class flat_multimap
2757
2854
  //!
2758
2855
  //! <b>Complexity</b>: log(size()).
2759
2856
  template<typename K>
2760
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2857
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2761
2858
  bool contains(const K& x) const
2762
2859
  { return m_flat_tree.find(x) != m_flat_tree.end(); }
2763
2860
 
@@ -2765,7 +2862,7 @@ class flat_multimap
2765
2862
  //! than x, or end() if such an element is not found.
2766
2863
  //!
2767
2864
  //! <b>Complexity</b>: Logarithmic
2768
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2865
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2769
2866
  iterator lower_bound(const key_type& x)
2770
2867
  { return dtl::force_copy<iterator>(m_flat_tree.lower_bound(x)); }
2771
2868
 
@@ -2773,7 +2870,7 @@ class flat_multimap
2773
2870
  //! than x, or end() if such an element is not found.
2774
2871
  //!
2775
2872
  //! <b>Complexity</b>: Logarithmic
2776
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2873
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2777
2874
  const_iterator lower_bound(const key_type& x) const
2778
2875
  { return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound(x)); }
2779
2876
 
@@ -2785,7 +2882,7 @@ class flat_multimap
2785
2882
  //!
2786
2883
  //! <b>Complexity</b>: Logarithmic
2787
2884
  template<class K>
2788
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2885
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2789
2886
  iterator lower_bound(const K& x)
2790
2887
  { return dtl::force_copy<iterator>(m_flat_tree.lower_bound(x)); }
2791
2888
 
@@ -2797,7 +2894,7 @@ class flat_multimap
2797
2894
  //!
2798
2895
  //! <b>Complexity</b>: Logarithmic
2799
2896
  template<class K>
2800
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2897
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2801
2898
  const_iterator lower_bound(const K& x) const
2802
2899
  { return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound(x)); }
2803
2900
 
@@ -2805,7 +2902,7 @@ class flat_multimap
2805
2902
  //! than x, or end() if such an element is not found.
2806
2903
  //!
2807
2904
  //! <b>Complexity</b>: Logarithmic
2808
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2905
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2809
2906
  iterator upper_bound(const key_type& x)
2810
2907
  {return dtl::force_copy<iterator>(m_flat_tree.upper_bound(x)); }
2811
2908
 
@@ -2813,7 +2910,7 @@ class flat_multimap
2813
2910
  //! greater than x, or end() if such an element is not found.
2814
2911
  //!
2815
2912
  //! <b>Complexity</b>: Logarithmic
2816
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2913
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2817
2914
  const_iterator upper_bound(const key_type& x) const
2818
2915
  { return dtl::force_copy<const_iterator>(m_flat_tree.upper_bound(x)); }
2819
2916
 
@@ -2825,7 +2922,7 @@ class flat_multimap
2825
2922
  //!
2826
2923
  //! <b>Complexity</b>: Logarithmic
2827
2924
  template<class K>
2828
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2925
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2829
2926
  iterator upper_bound(const K& x)
2830
2927
  {return dtl::force_copy<iterator>(m_flat_tree.upper_bound(x)); }
2831
2928
 
@@ -2837,21 +2934,21 @@ class flat_multimap
2837
2934
  //!
2838
2935
  //! <b>Complexity</b>: Logarithmic
2839
2936
  template<class K>
2840
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2937
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2841
2938
  const_iterator upper_bound(const K& x) const
2842
2939
  { return dtl::force_copy<const_iterator>(m_flat_tree.upper_bound(x)); }
2843
2940
 
2844
2941
  //! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
2845
2942
  //!
2846
2943
  //! <b>Complexity</b>: Logarithmic
2847
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2944
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2848
2945
  std::pair<iterator,iterator> equal_range(const key_type& x)
2849
2946
  { return dtl::force_copy<std::pair<iterator,iterator> >(m_flat_tree.equal_range(x)); }
2850
2947
 
2851
2948
  //! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
2852
2949
  //!
2853
2950
  //! <b>Complexity</b>: Logarithmic
2854
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2951
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2855
2952
  std::pair<const_iterator, const_iterator> equal_range(const key_type& x) const
2856
2953
  { return dtl::force_copy<std::pair<const_iterator,const_iterator> >(m_flat_tree.equal_range(x)); }
2857
2954
 
@@ -2862,7 +2959,7 @@ class flat_multimap
2862
2959
  //!
2863
2960
  //! <b>Complexity</b>: Logarithmic
2864
2961
  template<class K>
2865
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2962
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2866
2963
  std::pair<iterator,iterator> equal_range(const K& x)
2867
2964
  { return dtl::force_copy<std::pair<iterator,iterator> >(m_flat_tree.equal_range(x)); }
2868
2965
 
@@ -2873,7 +2970,7 @@ class flat_multimap
2873
2970
  //!
2874
2971
  //! <b>Complexity</b>: Logarithmic
2875
2972
  template<class K>
2876
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2973
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2877
2974
  std::pair<const_iterator, const_iterator> equal_range(const K& x) const
2878
2975
  { return dtl::force_copy<std::pair<const_iterator,const_iterator> >(m_flat_tree.equal_range(x)); }
2879
2976
 
@@ -2884,11 +2981,9 @@ class flat_multimap
2884
2981
  //! <b>Postcondition</b>: this->empty()
2885
2982
  //!
2886
2983
  //! <b>Throws</b>: If secuence_type's move constructor throws
2887
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2984
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2888
2985
  sequence_type extract_sequence()
2889
- {
2890
- return boost::move(dtl::force<sequence_type>(m_flat_tree.get_sequence_ref()));
2891
- }
2986
+ { return boost::move(dtl::force<sequence_type>(m_flat_tree.get_sequence_ref())); }
2892
2987
 
2893
2988
  //! <b>Effects</b>: Discards the internally hold sequence container and adopts the
2894
2989
  //! one passed externally using the move assignment.
@@ -2896,7 +2991,7 @@ class flat_multimap
2896
2991
  //! <b>Complexity</b>: Assuming O(1) move assignment, O(NlogN) with N = seq.size()
2897
2992
  //!
2898
2993
  //! <b>Throws</b>: If the comparison or the move constructor throws
2899
- BOOST_CONTAINER_FORCEINLINE void adopt_sequence(BOOST_RV_REF(sequence_type) seq)
2994
+ inline void adopt_sequence(BOOST_RV_REF(sequence_type) seq)
2900
2995
  { this->m_flat_tree.adopt_sequence_equal(boost::move(dtl::force<impl_sequence_type>(seq))); }
2901
2996
 
2902
2997
  //! <b>Requires</b>: seq shall be ordered according to this->compare().
@@ -2907,59 +3002,71 @@ class flat_multimap
2907
3002
  //! <b>Complexity</b>: Assuming O(1) move assignment, O(1)
2908
3003
  //!
2909
3004
  //! <b>Throws</b>: If the move assignment throws
2910
- BOOST_CONTAINER_FORCEINLINE void adopt_sequence(ordered_range_t, BOOST_RV_REF(sequence_type) seq)
3005
+ inline void adopt_sequence(ordered_range_t, BOOST_RV_REF(sequence_type) seq)
2911
3006
  { this->m_flat_tree.adopt_sequence_equal(ordered_range_t(), boost::move(dtl::force<impl_sequence_type>(seq))); }
2912
3007
 
3008
+ //! <b>Effects</b>: Returns a const view of the underlying sequence.
3009
+ //!
3010
+ //! <b>Complexity</b>: Constant
3011
+ //!
3012
+ //! <b>Throws</b>: Nothing
3013
+ inline const sequence_type & sequence() const BOOST_NOEXCEPT
3014
+ { return dtl::force<sequence_type>(m_flat_tree.get_sequence_cref()); }
3015
+
2913
3016
  //! <b>Effects</b>: Returns true if x and y are equal
2914
3017
  //!
2915
3018
  //! <b>Complexity</b>: Linear to the number of elements in the container.
2916
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
3019
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2917
3020
  friend bool operator==(const flat_multimap& x, const flat_multimap& y)
2918
3021
  { return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); }
2919
3022
 
2920
3023
  //! <b>Effects</b>: Returns true if x and y are unequal
2921
3024
  //!
2922
3025
  //! <b>Complexity</b>: Linear to the number of elements in the container.
2923
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
3026
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2924
3027
  friend bool operator!=(const flat_multimap& x, const flat_multimap& y)
2925
3028
  { return !(x == y); }
2926
3029
 
2927
3030
  //! <b>Effects</b>: Returns true if x is less than y
2928
3031
  //!
2929
3032
  //! <b>Complexity</b>: Linear to the number of elements in the container.
2930
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
3033
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2931
3034
  friend bool operator<(const flat_multimap& x, const flat_multimap& y)
2932
3035
  { return ::boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); }
2933
3036
 
2934
3037
  //! <b>Effects</b>: Returns true if x is greater than y
2935
3038
  //!
2936
3039
  //! <b>Complexity</b>: Linear to the number of elements in the container.
2937
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
3040
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2938
3041
  friend bool operator>(const flat_multimap& x, const flat_multimap& y)
2939
3042
  { return y < x; }
2940
3043
 
2941
3044
  //! <b>Effects</b>: Returns true if x is equal or less than y
2942
3045
  //!
2943
3046
  //! <b>Complexity</b>: Linear to the number of elements in the container.
2944
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
3047
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2945
3048
  friend bool operator<=(const flat_multimap& x, const flat_multimap& y)
2946
3049
  { return !(y < x); }
2947
3050
 
2948
3051
  //! <b>Effects</b>: Returns true if x is equal or greater than y
2949
3052
  //!
2950
3053
  //! <b>Complexity</b>: Linear to the number of elements in the container.
2951
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
3054
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2952
3055
  friend bool operator>=(const flat_multimap& x, const flat_multimap& y)
2953
3056
  { return !(x < y); }
2954
3057
 
2955
3058
  //! <b>Effects</b>: x.swap(y)
2956
3059
  //!
2957
3060
  //! <b>Complexity</b>: Constant.
2958
- BOOST_CONTAINER_FORCEINLINE friend void swap(flat_multimap& x, flat_multimap& y)
3061
+ inline friend void swap(flat_multimap& x, flat_multimap& y)
2959
3062
  BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT(x.swap(y)))
2960
3063
  { x.swap(y); }
2961
3064
  };
2962
3065
 
3066
+ #if defined(BOOST_GCC) && (BOOST_GCC >= 100000) && !defined(BOOST_CONTAINER_STD_PAIR_IS_MOVABLE)
3067
+ #pragma GCC pop_options
3068
+ #endif
3069
+
2963
3070
  #ifndef BOOST_CONTAINER_NO_CXX17_CTAD
2964
3071
 
2965
3072
  template <typename InputIterator>
@@ -3035,10 +3142,10 @@ namespace boost {
3035
3142
  template <class Key, class T, class Compare, class AllocatorOrContainer>
3036
3143
  struct has_trivial_destructor_after_move< boost::container::flat_multimap<Key, T, Compare, AllocatorOrContainer> >
3037
3144
  {
3038
- typedef ::boost::container::dtl::pair<Key, T> value_t;
3145
+ typedef typename boost::container::flat_multimap<Key, T, Compare, AllocatorOrContainer>::value_type value_t;
3039
3146
  typedef typename ::boost::container::dtl::container_or_allocator_rebind<AllocatorOrContainer, value_t>::type alloc_or_cont_t;
3040
3147
  typedef ::boost::container::dtl::flat_tree<value_t,::boost::container::dtl::select1st<Key>, Compare, alloc_or_cont_t> tree;
3041
- static const bool value = ::boost::has_trivial_destructor_after_move<tree>::value;
3148
+ BOOST_STATIC_CONSTEXPR bool value = ::boost::has_trivial_destructor_after_move<tree>::value;
3042
3149
  };
3043
3150
 
3044
3151
  } //namespace boost {