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
@@ -39,18 +39,16 @@
39
39
  #include <boost/container/detail/version_type.hpp>
40
40
  #include <boost/container/detail/type_traits.hpp>
41
41
  #include <boost/container/detail/algorithm.hpp>
42
-
42
+ #include <boost/container/detail/minimal_char_traits_header.hpp> // for char_traits
43
+ //intrusive
43
44
  #include <boost/intrusive/pointer_traits.hpp>
44
-
45
+ #include <boost/intrusive/detail/hash_combine.hpp>
46
+ #include <boost/move/detail/launder.hpp>
47
+ //move
45
48
  #include <boost/move/utility_core.hpp>
46
49
  #include <boost/move/adl_move_swap.hpp>
47
50
  #include <boost/move/traits.hpp>
48
51
 
49
- #include <boost/static_assert.hpp>
50
- #include <boost/core/no_exceptions_support.hpp>
51
- #include <boost/intrusive/detail/hash_combine.hpp>
52
-
53
- #include <boost/container/detail/minimal_char_traits_header.hpp> // for char_traits
54
52
  #include <iosfwd>
55
53
  #include <istream> //
56
54
  #include <ostream>
@@ -64,6 +62,12 @@
64
62
  #include <initializer_list> //for std::initializer_list
65
63
  #endif
66
64
 
65
+ //GCC 12 has a regression for array-bounds warnings
66
+ #if defined(BOOST_GCC) && (BOOST_GCC >= 120000) && (BOOST_GCC < 130000)
67
+ #pragma GCC diagnostic push
68
+ #pragma GCC diagnostic ignored "-Warray-bounds"
69
+ #endif
70
+
67
71
 
68
72
  namespace boost {
69
73
  namespace container {
@@ -88,38 +92,40 @@ class basic_string_base
88
92
 
89
93
  typedef Allocator allocator_type;
90
94
  public:
91
- typedef allocator_traits<allocator_type> allocator_traits_type;
92
- typedef allocator_type stored_allocator_type;
93
- typedef typename allocator_traits_type::pointer pointer;
94
- typedef typename allocator_traits_type::value_type value_type;
95
- typedef typename allocator_traits_type::size_type size_type;
95
+ typedef allocator_traits<allocator_type> allocator_traits_type;
96
+ typedef allocator_type stored_allocator_type;
97
+ typedef typename allocator_traits_type::pointer pointer;
98
+ typedef typename allocator_traits_type::value_type value_type;
99
+ typedef typename allocator_traits_type::size_type size_type;
100
+ typedef typename allocator_traits_type::difference_type difference_type;
101
+
96
102
  typedef ::boost::intrusive::pointer_traits<pointer> pointer_traits;
97
103
 
98
- basic_string_base()
104
+ inline basic_string_base()
99
105
  : members_()
100
106
  {}
101
107
 
102
- explicit basic_string_base(const allocator_type& a)
108
+ inline explicit basic_string_base(const allocator_type& a)
103
109
  : members_(a)
104
110
  {}
105
111
 
106
- explicit basic_string_base(BOOST_RV_REF(allocator_type) a)
112
+ inline explicit basic_string_base(BOOST_RV_REF(allocator_type) a)
107
113
  : members_(boost::move(a))
108
114
  {}
109
115
 
110
- basic_string_base(const allocator_type& a, size_type n)
116
+ inline basic_string_base(const allocator_type& a, size_type n)
111
117
  : members_(a)
112
118
  {
113
119
  this->allocate_initial_block(n);
114
120
  }
115
121
 
116
- explicit basic_string_base(size_type n)
122
+ inline explicit basic_string_base(size_type n)
117
123
  : members_()
118
124
  {
119
125
  this->allocate_initial_block(n);
120
126
  }
121
127
 
122
- ~basic_string_base()
128
+ inline ~basic_string_base()
123
129
  {
124
130
  if(!this->is_short()){
125
131
  this->deallocate(this->priv_long_addr(), this->priv_long_storage());
@@ -128,6 +134,11 @@ class basic_string_base
128
134
 
129
135
  private:
130
136
 
137
+ #if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
138
+ #pragma GCC diagnostic push
139
+ #pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
140
+ #endif
141
+
131
142
  //This is the structure controlling a long string
132
143
  struct long_t
133
144
  {
@@ -136,15 +147,15 @@ class basic_string_base
136
147
  size_type storage;
137
148
  pointer start;
138
149
 
139
- long_t()
150
+ inline long_t()
140
151
  : is_short(0)
141
152
  {}
142
153
 
143
- long_t(size_type len, size_type stor, pointer ptr)
154
+ inline long_t(size_type len, size_type stor, pointer ptr)
144
155
  : is_short(0), length(len), storage(stor), start(ptr)
145
156
  {}
146
157
 
147
- long_t(const long_t &other)
158
+ inline long_t(const long_t &other)
148
159
  {
149
160
  this->is_short = false;
150
161
  length = other.length;
@@ -152,7 +163,7 @@ class basic_string_base
152
163
  start = other.start;
153
164
  }
154
165
 
155
- long_t &operator= (const long_t &other)
166
+ inline long_t &operator= (const long_t &other)
156
167
  {
157
168
  length = other.length;
158
169
  storage = other.storage;
@@ -161,6 +172,11 @@ class basic_string_base
161
172
  }
162
173
  };
163
174
 
175
+ #if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
176
+ #pragma GCC diagnostic pop
177
+ #endif
178
+
179
+
164
180
  //This type is the first part of the structure controlling a short string
165
181
  //The "data" member stores
166
182
  struct short_header
@@ -176,13 +192,13 @@ class basic_string_base
176
192
  <sizeof(long_t), dtl::alignment_of<long_t>::value>::type long_raw_t;
177
193
 
178
194
  protected:
179
- static const size_type MinInternalBufferChars = 8;
180
- static const size_type AlignmentOfValueType =
195
+ BOOST_STATIC_CONSTEXPR size_type MinInternalBufferChars = 8;
196
+ BOOST_STATIC_CONSTEXPR size_type AlignmentOfValueType =
181
197
  alignment_of<value_type>::value;
182
- static const size_type ShortDataOffset = ((sizeof(short_header)-1)/AlignmentOfValueType+1)*AlignmentOfValueType;
183
- static const size_type ZeroCostInternalBufferChars =
198
+ BOOST_STATIC_CONSTEXPR size_type ShortDataOffset = ((sizeof(short_header)-1)/AlignmentOfValueType+1)*AlignmentOfValueType;
199
+ BOOST_STATIC_CONSTEXPR size_type ZeroCostInternalBufferChars =
184
200
  (sizeof(long_t) - ShortDataOffset)/sizeof(value_type);
185
- static const size_type UnalignedFinalInternalBufferChars =
201
+ BOOST_STATIC_CONSTEXPR size_type UnalignedFinalInternalBufferChars =
186
202
  (ZeroCostInternalBufferChars > MinInternalBufferChars) ?
187
203
  ZeroCostInternalBufferChars : MinInternalBufferChars;
188
204
 
@@ -208,68 +224,68 @@ class basic_string_base
208
224
  struct members_holder
209
225
  : public allocator_type
210
226
  {
211
- void init()
227
+ inline void init()
212
228
  {
213
- short_t &s = *::new(this->m_repr.data) short_t;
229
+ short_t &s = *::new(&this->m_repr) short_t;
214
230
  s.h.is_short = 1;
215
231
  s.h.length = 0;
216
232
  }
217
233
 
218
- members_holder()
234
+ inline members_holder()
219
235
  : allocator_type()
220
236
  { this->init(); }
221
237
 
222
238
  template<class AllocatorConvertible>
223
- explicit members_holder(BOOST_FWD_REF(AllocatorConvertible) a)
239
+ inline explicit members_holder(BOOST_FWD_REF(AllocatorConvertible) a)
224
240
  : allocator_type(boost::forward<AllocatorConvertible>(a))
225
241
  { this->init(); }
226
242
 
227
- const short_t *pshort_repr() const
228
- { return reinterpret_cast<const short_t*>(m_repr.data); }
243
+ inline const short_t *pshort_repr() const
244
+ { return move_detail::launder_cast<const short_t*>(&m_repr); }
229
245
 
230
- const long_t *plong_repr() const
231
- { return reinterpret_cast<const long_t*>(m_repr.data); }
246
+ inline const long_t *plong_repr() const
247
+ { return move_detail::launder_cast<const long_t*>(&m_repr); }
232
248
 
233
- short_t *pshort_repr()
234
- { return reinterpret_cast<short_t*>(m_repr.data); }
249
+ inline short_t *pshort_repr()
250
+ { return move_detail::launder_cast<short_t*>(&m_repr); }
235
251
 
236
- long_t *plong_repr()
237
- { return reinterpret_cast<long_t*>(m_repr.data); }
252
+ inline long_t *plong_repr()
253
+ { return move_detail::launder_cast<long_t*>(&m_repr); }
238
254
 
239
255
  repr_t m_repr;
240
256
  } members_;
241
257
 
242
- const allocator_type &alloc() const
258
+ inline const allocator_type &alloc() const
243
259
  { return members_; }
244
260
 
245
- allocator_type &alloc()
261
+ inline allocator_type &alloc()
246
262
  { return members_; }
247
263
 
248
- static const size_type InternalBufferChars = (sizeof(repr_t) - ShortDataOffset)/sizeof(value_type);
264
+ BOOST_STATIC_CONSTEXPR size_type InternalBufferChars = (sizeof(repr_t) - ShortDataOffset)/sizeof(value_type);
249
265
 
250
266
  private:
251
267
 
252
- static const size_type MinAllocation = InternalBufferChars*2;
268
+ BOOST_STATIC_CONSTEXPR size_type MinAllocation = InternalBufferChars*2;
253
269
 
254
270
  protected:
255
- bool is_short() const
271
+ inline bool is_short() const
256
272
  {
257
273
  //Access and copy (to avoid UB) the first byte of the union to know if the
258
274
  //active representation is short or long
259
275
  short_header hdr;
260
- BOOST_STATIC_ASSERT((sizeof(short_header) == 1));
276
+ BOOST_CONTAINER_STATIC_ASSERT((sizeof(short_header) == 1));
261
277
  *(unsigned char*)&hdr = *(unsigned char*)&this->members_.m_repr;
262
278
  return hdr.is_short != 0;
263
279
  }
264
280
 
265
- short_t *construct_short()
281
+ inline short_t *construct_short()
266
282
  {
267
- short_t *ps = ::new(this->members_.m_repr.data) short_t;
283
+ short_t *ps = ::new(&this->members_.m_repr) short_t;
268
284
  ps->h.is_short = 1;
269
285
  return ps;
270
286
  }
271
287
 
272
- void destroy_short()
288
+ inline void destroy_short()
273
289
  {
274
290
  BOOST_ASSERT(this->is_short());
275
291
  this->members_.pshort_repr()->~short_t();
@@ -284,14 +300,14 @@ class basic_string_base
284
300
  return this->members_.pshort_repr();
285
301
  }
286
302
 
287
- long_t *construct_long()
303
+ inline long_t *construct_long()
288
304
  {
289
- long_t *pl = ::new(this->members_.m_repr.data) long_t;
305
+ long_t *pl = ::new(&this->members_.m_repr) long_t;
290
306
  //is_short flag is written in the constructor
291
307
  return pl;
292
308
  }
293
309
 
294
- void destroy_long()
310
+ inline void destroy_long()
295
311
  {
296
312
  BOOST_ASSERT(!this->is_short());
297
313
  this->members_.plong_repr()->~long_t();
@@ -337,15 +353,6 @@ class basic_string_base
337
353
  this->alloc().deallocate(p, n);
338
354
  }
339
355
 
340
- void construct(pointer p, const value_type &value = value_type())
341
- {
342
- allocator_traits_type::construct
343
- ( this->alloc()
344
- , boost::movelib::to_raw_pointer(p)
345
- , value
346
- );
347
- }
348
-
349
356
  void destroy(pointer p, size_type n)
350
357
  {
351
358
  value_type *raw_p = boost::movelib::to_raw_pointer(p);
@@ -354,7 +361,7 @@ class basic_string_base
354
361
  }
355
362
  }
356
363
 
357
- void destroy(pointer p)
364
+ inline void destroy(pointer p)
358
365
  {
359
366
  allocator_traits_type::destroy
360
367
  ( this->alloc()
@@ -381,17 +388,17 @@ class basic_string_base
381
388
  }
382
389
  }
383
390
 
384
- void deallocate_block()
391
+ inline void deallocate_block()
385
392
  { this->deallocate(this->priv_addr(), this->priv_storage()); }
386
393
 
387
- size_type max_size() const
394
+ inline size_type max_size() const
388
395
  { return allocator_traits_type::max_size(this->alloc()) - 1; }
389
396
 
390
397
  protected:
391
- size_type priv_capacity() const
398
+ inline size_type priv_capacity() const
392
399
  { return this->priv_storage() - 1; }
393
400
 
394
- pointer priv_short_addr() const
401
+ inline pointer priv_short_addr() const
395
402
  { return pointer_traits::pointer_to(const_cast<value_type&>(this->members_.pshort_repr()->data[0])); }
396
403
 
397
404
  //GCC seems a bit confused about uninitialized accesses
@@ -400,10 +407,10 @@ class basic_string_base
400
407
  #pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
401
408
  #endif
402
409
 
403
- pointer priv_long_addr() const
410
+ inline pointer priv_long_addr() const
404
411
  { return this->members_.plong_repr()->start; }
405
412
 
406
- pointer priv_addr() const
413
+ inline pointer priv_addr() const
407
414
  {
408
415
  return this->is_short()
409
416
  ? priv_short_addr()
@@ -411,47 +418,47 @@ class basic_string_base
411
418
  ;
412
419
  }
413
420
 
414
- pointer priv_end_addr() const
421
+ inline pointer priv_end_addr() const
415
422
  {
416
423
  return this->is_short()
417
- ? this->priv_short_addr() + this->priv_short_size()
418
- : this->priv_long_addr() + this->priv_long_size()
424
+ ? this->priv_short_addr() + difference_type(this->priv_short_size())
425
+ : this->priv_long_addr() + difference_type(this->priv_long_size())
419
426
  ;
420
427
  }
421
428
 
422
- void priv_long_addr(pointer addr)
429
+ inline void priv_long_addr(pointer addr)
423
430
  { this->members_.plong_repr()->start = addr; }
424
431
 
425
- size_type priv_storage() const
432
+ inline size_type priv_storage() const
426
433
  { return this->is_short() ? priv_short_storage() : priv_long_storage(); }
427
434
 
428
- size_type priv_short_storage() const
435
+ inline size_type priv_short_storage() const
429
436
  { return InternalBufferChars; }
430
437
 
431
- size_type priv_long_storage() const
438
+ inline size_type priv_long_storage() const
432
439
  { return this->members_.plong_repr()->storage; }
433
440
 
434
- void priv_storage(size_type storage)
441
+ inline void priv_storage(size_type storage)
435
442
  {
436
443
  if(!this->is_short())
437
444
  this->priv_long_storage(storage);
438
445
  }
439
446
 
440
- void priv_long_storage(size_type storage)
447
+ inline void priv_long_storage(size_type storage)
441
448
  {
442
449
  this->members_.plong_repr()->storage = storage;
443
450
  }
444
451
 
445
- size_type priv_size() const
452
+ inline size_type priv_size() const
446
453
  { return this->is_short() ? this->priv_short_size() : this->priv_long_size(); }
447
454
 
448
- size_type priv_short_size() const
455
+ inline size_type priv_short_size() const
449
456
  { return this->members_.pshort_repr()->h.length; }
450
457
 
451
- size_type priv_long_size() const
458
+ inline size_type priv_long_size() const
452
459
  { return this->members_.plong_repr()->length; }
453
460
 
454
- void priv_size(size_type sz)
461
+ inline void priv_size(size_type sz)
455
462
  {
456
463
  if(this->is_short())
457
464
  this->priv_short_size(sz);
@@ -459,12 +466,22 @@ class basic_string_base
459
466
  this->priv_long_size(sz);
460
467
  }
461
468
 
462
- void priv_short_size(size_type sz)
463
- { this->members_.pshort_repr()->h.length = (unsigned char)sz; }
464
-
465
- void priv_long_size(size_type sz)
466
- { this->members_.plong_repr()->length = sz; }
469
+ inline void priv_short_size(size_type sz)
470
+ {
471
+ typedef unsigned char uchar_type;
472
+ BOOST_STATIC_CONSTEXPR uchar_type mask = uchar_type(uchar_type(-1) >> 1U);
473
+ BOOST_ASSERT( sz <= mask );
474
+ //Make -Wconversion happy
475
+ this->members_.pshort_repr()->h.length = uchar_type(uchar_type(sz) & mask);
476
+ }
467
477
 
478
+ inline void priv_long_size(size_type sz)
479
+ {
480
+ BOOST_STATIC_CONSTEXPR size_type mask = size_type(-1) >> 1U;
481
+ BOOST_ASSERT( sz <= mask );
482
+ //Make -Wconversion happy
483
+ this->members_.plong_repr()->length = sz & mask;
484
+ }
468
485
  #if defined(BOOST_GCC) && (BOOST_GCC >= 40700)
469
486
  #pragma GCC diagnostic pop
470
487
  #endif
@@ -549,7 +566,7 @@ class basic_string
549
566
  BOOST_COPYABLE_AND_MOVABLE(basic_string)
550
567
  typedef dtl::basic_string_base<typename real_allocator<CharT, Allocator>::type> base_t;
551
568
  typedef typename base_t::allocator_traits_type allocator_traits_type;
552
- static const typename base_t::size_type InternalBufferChars = base_t::InternalBufferChars;
569
+ BOOST_STATIC_CONSTEXPR typename base_t::size_type InternalBufferChars = base_t::InternalBufferChars;
553
570
 
554
571
  protected:
555
572
  // Allocator helper class to use a char_traits as a function object.
@@ -607,11 +624,16 @@ class basic_string
607
624
  typedef BOOST_CONTAINER_IMPDEF(const_pointer) const_iterator;
608
625
  typedef BOOST_CONTAINER_IMPDEF(boost::container::reverse_iterator<iterator>) reverse_iterator;
609
626
  typedef BOOST_CONTAINER_IMPDEF(boost::container::reverse_iterator<const_iterator>) const_reverse_iterator;
610
- static const size_type npos = size_type(-1);
627
+ BOOST_STATIC_CONSTEXPR size_type npos = size_type(-1);
611
628
 
612
629
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
613
630
  private:
614
- typedef constant_iterator<CharT, difference_type> cvalue_iterator;
631
+
632
+ //`allocator_type::value_type` must match container's `value type`. If this
633
+ //assertion fails, please review your allocator definition.
634
+ BOOST_CONTAINER_STATIC_ASSERT((dtl::is_same<value_type, typename allocator_traits<allocator_type>::value_type>::value));
635
+
636
+ typedef constant_iterator<CharT> cvalue_iterator;
615
637
  typedef typename base_t::alloc_version alloc_version;
616
638
  typedef ::boost::intrusive::pointer_traits<pointer> pointer_traits;
617
639
  #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
@@ -751,7 +773,7 @@ class basic_string
751
773
  : base_t()
752
774
  {
753
775
  this->priv_terminate_string();
754
- this->assign(s, s + n);
776
+ this->assign(s, s + difference_type(n));
755
777
  }
756
778
 
757
779
  //! <b>Effects</b>: Constructs a basic_string taking the allocator as parameter,
@@ -760,7 +782,7 @@ class basic_string
760
782
  : base_t(a)
761
783
  {
762
784
  this->priv_terminate_string();
763
- this->assign(s, s + n);
785
+ this->assign(s, s + difference_type(n));
764
786
  }
765
787
 
766
788
  //! <b>Effects</b>: Constructs a basic_string with a default-constructed allocator,
@@ -896,26 +918,13 @@ class basic_string
896
918
  || allocator_traits_type::is_always_equal::value)
897
919
  {
898
920
  if (BOOST_LIKELY(this != &x)) {
899
- allocator_type &this_alloc = this->alloc();
900
- allocator_type &x_alloc = x.alloc();
901
- const bool propagate_alloc = allocator_traits_type::
902
- propagate_on_container_move_assignment::value;
903
- dtl::bool_<propagate_alloc> flag;
904
- const bool allocators_equal = this_alloc == x_alloc; (void)allocators_equal;
905
- //Resources can be transferred if both allocators are
906
- //going to be equal after this function (either propagated or already equal)
907
- if(propagate_alloc || allocators_equal){
908
- //Destroy objects but retain memory in case x reuses it in the future
909
- this->clear();
910
- //Move allocator if needed
911
- dtl::move_alloc(this_alloc, x_alloc, flag);
912
- //Nothrow swap
913
- this->swap_data(x);
914
- }
915
- //Else do a one by one move
916
- else{
917
- this->assign( x.begin(), x.end());
918
- }
921
+ //We know resources can be transferred at comiple time if both allocators are
922
+ //always equal or the allocator is going to be propagated
923
+ const bool can_steal_resources_alloc
924
+ = allocator_traits_type::propagate_on_container_move_assignment::value
925
+ || allocator_traits_type::is_always_equal::value;
926
+ dtl::bool_<can_steal_resources_alloc> flag;
927
+ this->priv_move_assign(boost::move(x), flag);
919
928
  }
920
929
  return *this;
921
930
  }
@@ -950,7 +959,7 @@ class basic_string
950
959
  //! <b>Throws</b>: If allocator's copy constructor throws.
951
960
  //!
952
961
  //! <b>Complexity</b>: Constant.
953
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
962
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
954
963
  allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
955
964
  { return this->alloc(); }
956
965
 
@@ -961,7 +970,7 @@ class basic_string
961
970
  //! <b>Complexity</b>: Constant.
962
971
  //!
963
972
  //! <b>Note</b>: Non-standard extension.
964
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
973
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
965
974
  stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW
966
975
  { return this->alloc(); }
967
976
 
@@ -972,7 +981,7 @@ class basic_string
972
981
  //! <b>Complexity</b>: Constant.
973
982
  //!
974
983
  //! <b>Note</b>: Non-standard extension.
975
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
984
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
976
985
  const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
977
986
  { return this->alloc(); }
978
987
 
@@ -987,7 +996,7 @@ class basic_string
987
996
  //! <b>Throws</b>: Nothing.
988
997
  //!
989
998
  //! <b>Complexity</b>: Constant.
990
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
999
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
991
1000
  iterator begin() BOOST_NOEXCEPT_OR_NOTHROW
992
1001
  { return this->priv_addr(); }
993
1002
 
@@ -996,7 +1005,7 @@ class basic_string
996
1005
  //! <b>Throws</b>: Nothing.
997
1006
  //!
998
1007
  //! <b>Complexity</b>: Constant.
999
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1008
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1000
1009
  const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW
1001
1010
  { return this->priv_addr(); }
1002
1011
 
@@ -1005,7 +1014,7 @@ class basic_string
1005
1014
  //! <b>Throws</b>: Nothing.
1006
1015
  //!
1007
1016
  //! <b>Complexity</b>: Constant.
1008
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1017
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1009
1018
  iterator end() BOOST_NOEXCEPT_OR_NOTHROW
1010
1019
  { return this->priv_end_addr(); }
1011
1020
 
@@ -1014,7 +1023,7 @@ class basic_string
1014
1023
  //! <b>Throws</b>: Nothing.
1015
1024
  //!
1016
1025
  //! <b>Complexity</b>: Constant.
1017
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1026
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1018
1027
  const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW
1019
1028
  { return this->priv_end_addr(); }
1020
1029
 
@@ -1024,7 +1033,7 @@ class basic_string
1024
1033
  //! <b>Throws</b>: Nothing.
1025
1034
  //!
1026
1035
  //! <b>Complexity</b>: Constant.
1027
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1036
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1028
1037
  reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW
1029
1038
  { return reverse_iterator(this->priv_end_addr()); }
1030
1039
 
@@ -1034,7 +1043,7 @@ class basic_string
1034
1043
  //! <b>Throws</b>: Nothing.
1035
1044
  //!
1036
1045
  //! <b>Complexity</b>: Constant.
1037
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1046
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1038
1047
  const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW
1039
1048
  { return this->crbegin(); }
1040
1049
 
@@ -1044,7 +1053,7 @@ class basic_string
1044
1053
  //! <b>Throws</b>: Nothing.
1045
1054
  //!
1046
1055
  //! <b>Complexity</b>: Constant.
1047
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1056
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1048
1057
  reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW
1049
1058
  { return reverse_iterator(this->priv_addr()); }
1050
1059
 
@@ -1054,7 +1063,7 @@ class basic_string
1054
1063
  //! <b>Throws</b>: Nothing.
1055
1064
  //!
1056
1065
  //! <b>Complexity</b>: Constant.
1057
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1066
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1058
1067
  const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW
1059
1068
  { return this->crend(); }
1060
1069
 
@@ -1063,7 +1072,7 @@ class basic_string
1063
1072
  //! <b>Throws</b>: Nothing.
1064
1073
  //!
1065
1074
  //! <b>Complexity</b>: Constant.
1066
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1075
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1067
1076
  const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW
1068
1077
  { return this->priv_addr(); }
1069
1078
 
@@ -1072,7 +1081,7 @@ class basic_string
1072
1081
  //! <b>Throws</b>: Nothing.
1073
1082
  //!
1074
1083
  //! <b>Complexity</b>: Constant.
1075
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1084
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1076
1085
  const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW
1077
1086
  { return this->priv_end_addr(); }
1078
1087
 
@@ -1082,7 +1091,7 @@ class basic_string
1082
1091
  //! <b>Throws</b>: Nothing.
1083
1092
  //!
1084
1093
  //! <b>Complexity</b>: Constant.
1085
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1094
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1086
1095
  const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW
1087
1096
  { return const_reverse_iterator(this->priv_end_addr()); }
1088
1097
 
@@ -1092,7 +1101,7 @@ class basic_string
1092
1101
  //! <b>Throws</b>: Nothing.
1093
1102
  //!
1094
1103
  //! <b>Complexity</b>: Constant.
1095
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1104
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1096
1105
  const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW
1097
1106
  { return const_reverse_iterator(this->priv_addr()); }
1098
1107
 
@@ -1107,7 +1116,7 @@ class basic_string
1107
1116
  //! <b>Throws</b>: Nothing.
1108
1117
  //!
1109
1118
  //! <b>Complexity</b>: Constant.
1110
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1119
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1111
1120
  bool empty() const BOOST_NOEXCEPT_OR_NOTHROW
1112
1121
  { return !this->priv_size(); }
1113
1122
 
@@ -1116,7 +1125,7 @@ class basic_string
1116
1125
  //! <b>Throws</b>: Nothing.
1117
1126
  //!
1118
1127
  //! <b>Complexity</b>: Constant.
1119
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1128
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1120
1129
  size_type size() const BOOST_NOEXCEPT_OR_NOTHROW
1121
1130
  { return this->priv_size(); }
1122
1131
 
@@ -1125,7 +1134,7 @@ class basic_string
1125
1134
  //! <b>Throws</b>: Nothing.
1126
1135
  //!
1127
1136
  //! <b>Complexity</b>: Constant.
1128
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1137
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1129
1138
  size_type length() const BOOST_NOEXCEPT_OR_NOTHROW
1130
1139
  { return this->size(); }
1131
1140
 
@@ -1134,7 +1143,7 @@ class basic_string
1134
1143
  //! <b>Throws</b>: Nothing.
1135
1144
  //!
1136
1145
  //! <b>Complexity</b>: Constant
1137
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1146
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1138
1147
  size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
1139
1148
  { return base_t::max_size(); }
1140
1149
 
@@ -1147,7 +1156,7 @@ class basic_string
1147
1156
  void resize(size_type n, CharT c)
1148
1157
  {
1149
1158
  if (n <= this->size())
1150
- this->erase(this->begin() + n, this->end());
1159
+ this->erase(this->begin() + difference_type(n), this->end());
1151
1160
  else
1152
1161
  this->append(n - this->size(), c);
1153
1162
  }
@@ -1172,9 +1181,9 @@ class basic_string
1172
1181
  void resize(size_type n, default_init_t)
1173
1182
  {
1174
1183
  if (n <= this->size())
1175
- this->erase(this->begin() + n, this->end());
1184
+ this->erase(this->begin() + difference_type(n), this->end());
1176
1185
  else{
1177
- this->priv_reserve(n, false);
1186
+ this->priv_reserve_no_null_end(n);
1178
1187
  this->priv_size(n);
1179
1188
  this->priv_terminate_string();
1180
1189
  }
@@ -1186,7 +1195,7 @@ class basic_string
1186
1195
  //! <b>Throws</b>: Nothing.
1187
1196
  //!
1188
1197
  //! <b>Complexity</b>: Constant.
1189
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1198
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1190
1199
  size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
1191
1200
  { return this->priv_capacity(); }
1192
1201
 
@@ -1246,7 +1255,7 @@ class basic_string
1246
1255
  //! <b>Throws</b>: Nothing.
1247
1256
  //!
1248
1257
  //! <b>Complexity</b>: Constant.
1249
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1258
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1250
1259
  reference front() BOOST_NOEXCEPT_OR_NOTHROW
1251
1260
  {
1252
1261
  BOOST_ASSERT(!this->empty());
@@ -1261,7 +1270,7 @@ class basic_string
1261
1270
  //! <b>Throws</b>: Nothing.
1262
1271
  //!
1263
1272
  //! <b>Complexity</b>: Constant.
1264
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1273
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1265
1274
  const_reference front() const BOOST_NOEXCEPT_OR_NOTHROW
1266
1275
  {
1267
1276
  BOOST_ASSERT(!this->empty());
@@ -1276,7 +1285,7 @@ class basic_string
1276
1285
  //! <b>Throws</b>: Nothing.
1277
1286
  //!
1278
1287
  //! <b>Complexity</b>: Constant.
1279
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1288
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1280
1289
  reference back() BOOST_NOEXCEPT_OR_NOTHROW
1281
1290
  {
1282
1291
  BOOST_ASSERT(!this->empty());
@@ -1291,7 +1300,7 @@ class basic_string
1291
1300
  //! <b>Throws</b>: Nothing.
1292
1301
  //!
1293
1302
  //! <b>Complexity</b>: Constant.
1294
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1303
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1295
1304
  const_reference back() const BOOST_NOEXCEPT_OR_NOTHROW
1296
1305
  {
1297
1306
  BOOST_ASSERT(!this->empty());
@@ -1306,11 +1315,11 @@ class basic_string
1306
1315
  //! <b>Throws</b>: Nothing.
1307
1316
  //!
1308
1317
  //! <b>Complexity</b>: Constant.
1309
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1318
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1310
1319
  reference operator[](size_type n) BOOST_NOEXCEPT_OR_NOTHROW
1311
1320
  {
1312
1321
  BOOST_ASSERT(this->size() > n);
1313
- return *(this->priv_addr() + n);
1322
+ return *(this->priv_addr() + difference_type(n));
1314
1323
  }
1315
1324
 
1316
1325
  //! <b>Requires</b>: size() > n.
@@ -1321,11 +1330,11 @@ class basic_string
1321
1330
  //! <b>Throws</b>: Nothing.
1322
1331
  //!
1323
1332
  //! <b>Complexity</b>: Constant.
1324
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1333
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1325
1334
  const_reference operator[](size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
1326
1335
  {
1327
1336
  BOOST_ASSERT(this->size() > n);
1328
- return *(this->priv_addr() + n);
1337
+ return *(this->priv_addr() + difference_type(n));
1329
1338
  }
1330
1339
 
1331
1340
  //! <b>Requires</b>: size() > n.
@@ -1336,12 +1345,12 @@ class basic_string
1336
1345
  //! <b>Throws</b>: range_error if n >= size()
1337
1346
  //!
1338
1347
  //! <b>Complexity</b>: Constant.
1339
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1348
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1340
1349
  reference at(size_type n)
1341
1350
  {
1342
1351
  if (n >= this->size())
1343
1352
  throw_out_of_range("basic_string::at invalid subscript");
1344
- return *(this->priv_addr() + n);
1353
+ return *(this->priv_addr() + difference_type(n));
1345
1354
  }
1346
1355
 
1347
1356
  //! <b>Requires</b>: size() > n.
@@ -1352,11 +1361,11 @@ class basic_string
1352
1361
  //! <b>Throws</b>: range_error if n >= size()
1353
1362
  //!
1354
1363
  //! <b>Complexity</b>: Constant.
1355
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1364
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1356
1365
  const_reference at(size_type n) const {
1357
1366
  if (n >= this->size())
1358
1367
  throw_out_of_range("basic_string::at invalid subscript");
1359
- return *(this->priv_addr() + n);
1368
+ return *(this->priv_addr() + difference_type(n));
1360
1369
  }
1361
1370
 
1362
1371
  //////////////////////////////////////////////
@@ -1439,7 +1448,7 @@ class basic_string
1439
1448
  //!
1440
1449
  //! <b>Returns</b>: *this
1441
1450
  basic_string& append(const CharT* s, size_type n)
1442
- { return this->append(s, s + n); }
1451
+ { return this->append(s, s + difference_type(n)); }
1443
1452
 
1444
1453
  //! <b>Requires</b>: s points to an array of at least traits::length(s) + 1 elements of CharT.
1445
1454
  //!
@@ -1480,9 +1489,9 @@ class basic_string
1480
1489
  const size_type old_size = this->priv_size();
1481
1490
  if (old_size < this->capacity()){
1482
1491
  const pointer addr = this->priv_addr();
1483
- this->priv_construct_null(addr + old_size + 1);
1484
- Traits::assign(addr[old_size], c);
1485
- this->priv_size(old_size+1);
1492
+ this->priv_construct_null(addr + difference_type(old_size + 1u));
1493
+ Traits::assign(addr[difference_type(old_size)], c);
1494
+ this->priv_size(old_size+1u);
1486
1495
  }
1487
1496
  else{
1488
1497
  //No enough memory, insert a new object at the end
@@ -1538,7 +1547,7 @@ class basic_string
1538
1547
  //!
1539
1548
  //! <b>Returns</b>: *this
1540
1549
  basic_string& assign(const CharT* s, size_type n)
1541
- { return this->assign(s, s + n); }
1550
+ { return this->assign(s, s + difference_type(n)); }
1542
1551
 
1543
1552
  //! <b>Requires</b>: s points to an array of at least traits::length(s) + 1 elements of CharT.
1544
1553
  //!
@@ -1563,7 +1572,7 @@ class basic_string
1563
1572
  this->reserve(n);
1564
1573
  CharT* ptr = boost::movelib::to_raw_pointer(this->priv_addr());
1565
1574
  Traits::copy(ptr, first, n);
1566
- this->priv_construct_null(ptr + n);
1575
+ this->priv_construct_null(ptr + difference_type(n));
1567
1576
  this->priv_size(n);
1568
1577
  return *this;
1569
1578
  }
@@ -1589,7 +1598,7 @@ class basic_string
1589
1598
  ++ptr;
1590
1599
  }
1591
1600
  if (first == last)
1592
- this->erase(addr + cur, addr + old_size);
1601
+ this->erase(addr + difference_type(cur), addr + difference_type(old_size));
1593
1602
  else
1594
1603
  this->append(first, last);
1595
1604
  return *this;
@@ -1662,7 +1671,7 @@ class basic_string
1662
1671
  throw_out_of_range("basic_string::insert out of range position");
1663
1672
  if (this->size() > this->max_size() - n)
1664
1673
  throw_length_error("basic_string::insert max_size() exceeded");
1665
- this->insert(this->priv_addr() + pos, s, s + n);
1674
+ this->insert(this->priv_addr() + pos, s, s + difference_type(n));
1666
1675
  return *this;
1667
1676
  }
1668
1677
 
@@ -1714,7 +1723,7 @@ class basic_string
1714
1723
  //! <b>Returns</b>: An iterator which refers to the copy of the inserted character.
1715
1724
  iterator insert(const_iterator p, CharT c)
1716
1725
  {
1717
- size_type new_offset = p - this->priv_addr();
1726
+ size_type new_offset = size_type(p - this->priv_addr());
1718
1727
  this->insert(p, cvalue_iterator(c, 1), cvalue_iterator());
1719
1728
  return this->priv_addr() + new_offset;
1720
1729
  }
@@ -1747,7 +1756,7 @@ class basic_string
1747
1756
  for ( ; first != last; ++first, ++p) {
1748
1757
  p = this->insert(p, *first);
1749
1758
  }
1750
- return this->begin() + n_pos;
1759
+ return this->begin() + difference_type(n_pos);
1751
1760
  }
1752
1761
 
1753
1762
  #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
@@ -1760,9 +1769,9 @@ class basic_string
1760
1769
  >::type * = 0
1761
1770
  )
1762
1771
  {
1763
- const size_type n_pos = p - this->cbegin();
1772
+ const size_type n_pos = size_type(p - this->cbegin());
1764
1773
  if (first != last) {
1765
- const size_type n = boost::container::iterator_distance(first, last);
1774
+ const size_type n = boost::container::iterator_udistance(first, last);
1766
1775
  const size_type old_size = this->priv_size();
1767
1776
  const size_type remaining = this->capacity() - old_size;
1768
1777
  const pointer old_start = this->priv_addr();
@@ -1780,7 +1789,7 @@ class basic_string
1780
1789
  new_cap = this->next_capacity(n);
1781
1790
  hint = old_start;
1782
1791
  allocation_ret = this->allocation_command
1783
- (allocate_new | expand_fwd | expand_bwd, old_size + n + 1, new_cap, hint);
1792
+ (allocate_new | expand_fwd | expand_bwd, old_size + n + 1u, new_cap, hint);
1784
1793
 
1785
1794
  //Check forward expansion
1786
1795
  if(old_start == allocation_ret){
@@ -1791,32 +1800,35 @@ class basic_string
1791
1800
 
1792
1801
  //Reuse same buffer
1793
1802
  if(enough_capacity){
1794
- const size_type elems_after = old_size - (p - old_start);
1803
+ const size_type elems_after = old_size - size_type(p - old_start);
1795
1804
  const size_type old_length = old_size;
1805
+ size_type new_size = 0;
1796
1806
  if (elems_after >= n) {
1797
- const pointer pointer_past_last = old_start + old_size + 1;
1798
- priv_uninitialized_copy(old_start + (old_size - n + 1),
1807
+ const pointer pointer_past_last = old_start + difference_type(old_size + 1u);
1808
+ priv_uninitialized_copy(old_start + difference_type(old_size - n + 1u),
1799
1809
  pointer_past_last, pointer_past_last);
1800
1810
 
1801
- this->priv_size(old_size+n);
1802
- Traits::move(const_cast<CharT*>(boost::movelib::to_raw_pointer(p + n)),
1811
+ Traits::move(const_cast<CharT*>(boost::movelib::to_raw_pointer(p + difference_type(n))),
1803
1812
  boost::movelib::to_raw_pointer(p),
1804
- (elems_after - n) + 1);
1805
- this->priv_copy(first, last, const_cast<CharT*>(boost::movelib::to_raw_pointer(p)));
1813
+ (elems_after - n) + 1u);
1814
+ (priv_copy)(first, last, const_cast<CharT*>(boost::movelib::to_raw_pointer(p)));
1815
+ new_size = old_size + n;
1806
1816
  }
1807
1817
  else {
1808
1818
  ForwardIter mid = first;
1809
- boost::container::iterator_advance(mid, elems_after + 1);
1819
+ boost::container::iterator_uadvance(mid, elems_after + 1u);
1810
1820
 
1811
- priv_uninitialized_copy(mid, last, old_start + old_size + 1);
1821
+ priv_uninitialized_copy(mid, last, old_start + difference_type(old_size + 1u));
1812
1822
  const size_type newer_size = old_size + (n - elems_after);
1813
1823
  this->priv_size(newer_size);
1814
1824
  priv_uninitialized_copy
1815
- (p, const_iterator(old_start + old_length + 1),
1816
- old_start + newer_size);
1817
- this->priv_size(newer_size + elems_after);
1818
- this->priv_copy(first, mid, const_cast<CharT*>(boost::movelib::to_raw_pointer(p)));
1825
+ (p, const_iterator(old_start + difference_type(old_length + 1u)),
1826
+ old_start + difference_type(newer_size));
1827
+ (priv_copy)(first, mid, const_cast<CharT*>(boost::movelib::to_raw_pointer(p)));
1828
+ new_size = newer_size + elems_after;
1819
1829
  }
1830
+ this->priv_size(new_size);
1831
+ this->priv_construct_null(old_start + difference_type(new_size));
1820
1832
  }
1821
1833
  else{
1822
1834
  pointer new_start = allocation_ret;
@@ -1827,11 +1839,11 @@ class basic_string
1827
1839
  new_length += priv_uninitialized_copy
1828
1840
  (const_iterator(old_start), p, new_start);
1829
1841
  new_length += priv_uninitialized_copy
1830
- (first, last, new_start + new_length);
1842
+ (first, last, new_start + difference_type(new_length));
1831
1843
  new_length += priv_uninitialized_copy
1832
- (p, const_iterator(old_start + old_size),
1833
- new_start + new_length);
1834
- this->priv_construct_null(new_start + new_length);
1844
+ (p, const_iterator(old_start + difference_type(old_size)),
1845
+ new_start + difference_type(new_length));
1846
+ this->priv_construct_null(new_start + difference_type(new_length));
1835
1847
 
1836
1848
  this->deallocate_block();
1837
1849
  this->assure_long();
@@ -1845,14 +1857,14 @@ class basic_string
1845
1857
  value_type * const oldbuf = boost::movelib::to_raw_pointer(old_start);
1846
1858
  value_type * const newbuf = boost::movelib::to_raw_pointer(new_start);
1847
1859
  const value_type *const pos = boost::movelib::to_raw_pointer(p);
1848
- const size_type before = pos - oldbuf;
1860
+ const size_type before = size_type(pos - oldbuf);
1849
1861
 
1850
1862
  //First move old data
1851
1863
  Traits::move(newbuf, oldbuf, before);
1852
- Traits::move(newbuf + before + n, pos, old_size - before);
1864
+ Traits::move(newbuf + difference_type(before + n), pos, old_size - before);
1853
1865
  //Now initialize the new data
1854
- priv_uninitialized_copy(first, last, new_start + before);
1855
- this->priv_construct_null(new_start + (old_size + n));
1866
+ priv_uninitialized_copy(first, last, new_start + difference_type(before));
1867
+ this->priv_construct_null(new_start + difference_type(old_size + n));
1856
1868
  this->assure_long();
1857
1869
  this->priv_long_addr(new_start);
1858
1870
  this->priv_long_size(old_size + n);
@@ -1860,7 +1872,7 @@ class basic_string
1860
1872
  }
1861
1873
  }
1862
1874
  }
1863
- return this->begin() + n_pos;
1875
+ return this->begin() + difference_type(n_pos);
1864
1876
  }
1865
1877
  #endif
1866
1878
 
@@ -1869,7 +1881,7 @@ class basic_string
1869
1881
  //!
1870
1882
  //! <b>Returns</b>: An iterator which refers to the copy of the first inserted
1871
1883
  //! character, or p if i1 is empty.
1872
- iterator insert(const_iterator p, std::initializer_list<CharT> il)
1884
+ inline iterator insert(const_iterator p, std::initializer_list<CharT> il)
1873
1885
  {
1874
1886
  return this->insert(p, il.begin(), il.end());
1875
1887
  }
@@ -1903,7 +1915,7 @@ class basic_string
1903
1915
  if (pos > this->size())
1904
1916
  throw_out_of_range("basic_string::erase out of range position");
1905
1917
  const pointer addr = this->priv_addr();
1906
- erase(addr + pos, addr + pos + dtl::min_value(n, this->size() - pos));
1918
+ erase(addr + difference_type(pos), addr + difference_type(pos) + dtl::min_value(n, this->size() - pos));
1907
1919
  return *this;
1908
1920
  }
1909
1921
 
@@ -1920,8 +1932,8 @@ class basic_string
1920
1932
  const size_type old_size = this->priv_size();
1921
1933
  Traits::move(ptr,
1922
1934
  boost::movelib::to_raw_pointer(p + 1),
1923
- old_size - (p - this->priv_addr()));
1924
- this->priv_size(old_size-1);
1935
+ old_size - size_type(p - this->priv_addr()));
1936
+ this->priv_size(old_size-1u);
1925
1937
  return iterator(ptr);
1926
1938
  }
1927
1939
 
@@ -1937,11 +1949,11 @@ class basic_string
1937
1949
  {
1938
1950
  CharT * f = const_cast<CharT*>(boost::movelib::to_raw_pointer(first));
1939
1951
  if (first != last) { // The move includes the terminating null.
1940
- const size_type num_erased = last - first;
1952
+ const size_type num_erased = size_type(last - first);
1941
1953
  const size_type old_size = this->priv_size();
1942
1954
  Traits::move(f,
1943
1955
  boost::movelib::to_raw_pointer(last),
1944
- (old_size + 1)-(last - this->priv_addr()));
1956
+ old_size + 1u - size_type(last - this->priv_addr()));
1945
1957
  const size_type new_length = old_size - num_erased;
1946
1958
  this->priv_size(new_length);
1947
1959
  }
@@ -1955,10 +1967,14 @@ class basic_string
1955
1967
  //! <b>Complexity</b>: Linear to the number of elements in the vector.
1956
1968
  void clear() BOOST_NOEXCEPT_OR_NOTHROW
1957
1969
  {
1958
- if (!this->empty()) {
1959
- Traits::assign(*this->priv_addr(), CharT(0));
1960
- this->priv_size(0);
1961
- }
1970
+ if(this->is_short()) {
1971
+ Traits::assign(*this->priv_short_addr(), CharT(0));
1972
+ this->priv_short_size(0);
1973
+ }
1974
+ else {
1975
+ Traits::assign(*this->priv_long_addr(), CharT(0));
1976
+ this->priv_long_size(0);
1977
+ }
1962
1978
  }
1963
1979
 
1964
1980
  //! <b>Requires</b>: pos1 <= size().
@@ -1976,15 +1992,15 @@ class basic_string
1976
1992
  if (this->size() - len >= this->max_size() - str.size())
1977
1993
  throw_length_error("basic_string::replace max_size() exceeded");
1978
1994
  const pointer addr = this->priv_addr();
1979
- return this->replace( const_iterator(addr + pos1)
1980
- , const_iterator(addr + pos1 + len)
1995
+ return this->replace( const_iterator(addr + difference_type(pos1))
1996
+ , const_iterator(addr + difference_type(pos1 + len))
1981
1997
  , str.begin(), str.end());
1982
1998
  }
1983
1999
 
1984
2000
  //! <b>Effects</b>: Calls `return replace(pos1, n1, sv.data(), sv.size());`.
1985
2001
  //!
1986
2002
  template<template<class, class> class BasicStringView>
1987
- basic_string& replace(size_type pos1, size_type n1, BasicStringView<CharT, Traits> sv)
2003
+ inline basic_string& replace(size_type pos1, size_type n1, BasicStringView<CharT, Traits> sv)
1988
2004
  {
1989
2005
  return this->replace(pos1, n1, sv.data(), sv.size());
1990
2006
  }
@@ -2040,11 +2056,11 @@ class basic_string
2040
2056
  if (pos1 > this->size())
2041
2057
  throw_out_of_range("basic_string::replace out of range position");
2042
2058
  const size_type len = dtl::min_value(n1, this->size() - pos1);
2043
- const size_type max_size = this->max_size();
2044
- if (n2 > max_size || (this->size() - len) >= (max_size - n2))
2059
+ const size_type max_sz = this->max_size();
2060
+ if (n2 > max_sz || (this->size() - len) >= (max_sz - n2))
2045
2061
  throw_length_error("basic_string::replace max_size() exceeded");
2046
2062
  const pointer addr = this->priv_addr() + pos1;
2047
- return this->replace(addr, addr + len, s, s + n2);
2063
+ return this->replace(addr, addr + difference_type(len), s, s + difference_type(n2));
2048
2064
  }
2049
2065
 
2050
2066
  //! <b>Requires</b>: pos1 <= size() and s points to an array of at least n2 elements of CharT.
@@ -2061,7 +2077,7 @@ class basic_string
2061
2077
  //! if the length of the resulting string would exceed max_size()
2062
2078
  //!
2063
2079
  //! <b>Returns</b>: *this
2064
- basic_string& replace(size_type pos, size_type n1, const CharT* s)
2080
+ inline basic_string& replace(size_type pos, size_type n1, const CharT* s)
2065
2081
  {
2066
2082
  return this->replace(pos, n1, s, Traits::length(s));
2067
2083
  }
@@ -2082,7 +2098,7 @@ class basic_string
2082
2098
  if (n2 > this->max_size() || this->size() - len >= this->max_size() - n2)
2083
2099
  throw_length_error("basic_string::replace max_size() exceeded");
2084
2100
  const pointer addr = this->priv_addr();
2085
- return this->replace(addr + pos1, addr + pos1 + len, n2, c);
2101
+ return this->replace(addr + difference_type(pos1), addr + difference_type(pos1 + len), n2, c);
2086
2102
  }
2087
2103
 
2088
2104
  //! <b>Requires</b>: [begin(),i1) and [i1,i2) are valid ranges.
@@ -2092,7 +2108,7 @@ class basic_string
2092
2108
  //! <b>Throws</b>: if memory allocation throws
2093
2109
  //!
2094
2110
  //! <b>Returns</b>: *this
2095
- basic_string& replace(const_iterator i1, const_iterator i2, const basic_string& str)
2111
+ inline basic_string& replace(const_iterator i1, const_iterator i2, const basic_string& str)
2096
2112
  { return this->replace(i1, i2, str.data(), str.data()+str.size()); }
2097
2113
 
2098
2114
  //! <b>Requires</b>: [begin(),i1) and [i1,i2) are valid ranges and
@@ -2103,8 +2119,8 @@ class basic_string
2103
2119
  //! <b>Throws</b>: if memory allocation throws
2104
2120
  //!
2105
2121
  //! <b>Returns</b>: *this
2106
- basic_string& replace(const_iterator i1, const_iterator i2, const CharT* s, size_type n)
2107
- { return this->replace(i1, i2, s, s + n); }
2122
+ inline basic_string& replace(const_iterator i1, const_iterator i2, const CharT* s, size_type n)
2123
+ { return this->replace(i1, i2, s, s + difference_type(n)); }
2108
2124
 
2109
2125
  //! <b>Requires</b>: [begin(),i1) and [i1,i2) are valid ranges and s points to an
2110
2126
  //! array of at least traits::length(s) + 1 elements of CharT.
@@ -2114,7 +2130,7 @@ class basic_string
2114
2130
  //! <b>Throws</b>: if memory allocation throws
2115
2131
  //!
2116
2132
  //! <b>Returns</b>: *this
2117
- basic_string& replace(const_iterator i1, const_iterator i2, const CharT* s)
2133
+ inline basic_string& replace(const_iterator i1, const_iterator i2, const CharT* s)
2118
2134
  { return this->replace(i1, i2, s, s + Traits::length(s)); }
2119
2135
 
2120
2136
  //! <b>Requires</b>: [begin(),i1) and [i1,i2) are valid ranges.
@@ -2129,7 +2145,7 @@ class basic_string
2129
2145
  const size_type len = static_cast<size_type>(i2 - i1);
2130
2146
  if (len >= n) {
2131
2147
  Traits::assign(const_cast<CharT*>(boost::movelib::to_raw_pointer(i1)), n, c);
2132
- erase(i1 + n, i2);
2148
+ erase(i1 + difference_type(n), i2);
2133
2149
  }
2134
2150
  else {
2135
2151
  Traits::assign(const_cast<CharT*>(boost::movelib::to_raw_pointer(i1)), len, c);
@@ -2181,7 +2197,7 @@ class basic_string
2181
2197
  const difference_type len = i2 - i1;
2182
2198
  if (len >= n) {
2183
2199
  this->priv_copy(j1, j2, const_cast<CharT*>(boost::movelib::to_raw_pointer(i1)));
2184
- this->erase(i1 + n, i2);
2200
+ this->erase(i1 + difference_type(n), i2);
2185
2201
  }
2186
2202
  else {
2187
2203
  ForwardIter m = j1;
@@ -2199,7 +2215,7 @@ class basic_string
2199
2215
  //!
2200
2216
  //! <b>Returns</b>: *this.
2201
2217
  template<template <class, class> class BasicStringView>
2202
- basic_string& replace(const_iterator i1, const_iterator i2, BasicStringView<CharT, Traits> sv)
2218
+ inline basic_string& replace(const_iterator i1, const_iterator i2, BasicStringView<CharT, Traits> sv)
2203
2219
  {
2204
2220
  return this->replace( static_cast<size_type>(i1 - this->cbegin())
2205
2221
  , static_cast<size_type>(i2 - i1), sv);
@@ -2211,7 +2227,7 @@ class basic_string
2211
2227
  //! <b>Effects</b>: Calls replace(i1 - begin(), i2 - i1, il.begin(), il.size()).
2212
2228
  //!
2213
2229
  //! <b>Returns</b>: *this.
2214
- basic_string& replace(const_iterator i1, const_iterator i2, std::initializer_list<CharT> il)
2230
+ inline basic_string& replace(const_iterator i1, const_iterator i2, std::initializer_list<CharT> il)
2215
2231
  {
2216
2232
  return this->replace( static_cast<size_type>(i1 - this->cbegin())
2217
2233
  , static_cast<size_type>(i2 - i1)
@@ -2263,7 +2279,7 @@ class basic_string
2263
2279
  //! <b>Returns</b>: A pointer p such that p + i == &operator[](i) for each i in [0,size()].
2264
2280
  //!
2265
2281
  //! <b>Complexity</b>: constant time.
2266
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2282
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2267
2283
  const CharT* c_str() const BOOST_NOEXCEPT_OR_NOTHROW
2268
2284
  { return boost::movelib::to_raw_pointer(this->priv_addr()); }
2269
2285
 
@@ -2272,14 +2288,14 @@ class basic_string
2272
2288
  //! <b>Returns</b>: A pointer p such that p + i == &operator[](i) for each i in [0,size()].
2273
2289
  //!
2274
2290
  //! <b>Complexity</b>: constant time.
2275
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2291
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2276
2292
  const CharT* data() const BOOST_NOEXCEPT_OR_NOTHROW
2277
2293
  { return boost::movelib::to_raw_pointer(this->priv_addr()); }
2278
2294
 
2279
2295
  //! <b>Returns</b>: A pointer p such that p + i == &operator[](i) for each i in [0,size()].
2280
2296
  //!
2281
2297
  //! <b>Complexity</b>: constant time.
2282
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2298
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2283
2299
  CharT* data() BOOST_NOEXCEPT_OR_NOTHROW
2284
2300
  { return boost::movelib::to_raw_pointer(this->priv_addr()); }
2285
2301
 
@@ -2288,7 +2304,7 @@ class basic_string
2288
2304
  //!
2289
2305
  //! <b>Complexity</b>: constant time.
2290
2306
  template<template <class, class> class BasicStringView>
2291
- operator BasicStringView<CharT, Traits>() const BOOST_NOEXCEPT_OR_NOTHROW
2307
+ inline operator BasicStringView<CharT, Traits>() const BOOST_NOEXCEPT_OR_NOTHROW
2292
2308
  { return this->to_view< BasicStringView<CharT, Traits> >(); }
2293
2309
  #endif
2294
2310
 
@@ -2299,7 +2315,7 @@ class basic_string
2299
2315
  //! <b>Note</b>: This function is available to write portable code for compilers
2300
2316
  //! that don't support templated conversion operators.
2301
2317
  template<class BasicStringView>
2302
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2318
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2303
2319
  BasicStringView to_view() const BOOST_NOEXCEPT_OR_NOTHROW
2304
2320
  { return BasicStringView(this->data(), this->size()); }
2305
2321
 
@@ -2317,7 +2333,7 @@ class basic_string
2317
2333
  //! <b>Throws</b>: Nothing
2318
2334
  //!
2319
2335
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2320
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2336
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2321
2337
  size_type find(const basic_string& s, size_type pos = 0) const
2322
2338
  { return find(s.c_str(), pos, s.size()); }
2323
2339
 
@@ -2330,7 +2346,7 @@ class basic_string
2330
2346
  //!
2331
2347
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2332
2348
  template<template <class, class> class BasicStringView>
2333
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2349
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2334
2350
  size_type find(BasicStringView<CharT, Traits> sv, size_type pos = 0) const
2335
2351
  { return this->find(sv.data(), pos, sv.size()); }
2336
2352
 
@@ -2339,19 +2355,19 @@ class basic_string
2339
2355
  //! <b>Throws</b>: Nothing
2340
2356
  //!
2341
2357
  //! <b>Returns</b>: find(basic_string<CharT,traits,allocator_type>(s,n),pos).
2342
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2358
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2343
2359
  size_type find(const CharT* s, size_type pos, size_type n) const
2344
2360
  {
2345
2361
  if (pos + n > this->size())
2346
2362
  return npos;
2347
2363
  else {
2348
2364
  const pointer addr = this->priv_addr();
2349
- pointer finish = addr + this->priv_size();
2365
+ pointer finish = addr + difference_type(this->priv_size());
2350
2366
  const const_iterator result =
2351
- boost::container::search(boost::movelib::to_raw_pointer(addr + pos),
2367
+ boost::container::search(boost::movelib::to_raw_pointer(addr + difference_type(pos)),
2352
2368
  boost::movelib::to_raw_pointer(finish),
2353
- s, s + n, Eq_traits<Traits>());
2354
- return result != finish ? result - begin() : npos;
2369
+ s, s + difference_type(n), Eq_traits<Traits>());
2370
+ return result != finish ? size_type(result - begin()) : npos;
2355
2371
  }
2356
2372
  }
2357
2373
 
@@ -2360,14 +2376,14 @@ class basic_string
2360
2376
  //! <b>Throws</b>: Nothing
2361
2377
  //!
2362
2378
  //! <b>Returns</b>: find(basic_string(s), pos).
2363
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2379
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2364
2380
  size_type find(const CharT* s, size_type pos = 0) const
2365
2381
  { return this->find(s, pos, Traits::length(s)); }
2366
2382
 
2367
2383
  //! <b>Throws</b>: Nothing
2368
2384
  //!
2369
2385
  //! <b>Returns</b>: find(basic_string<CharT,traits,allocator_type>(1,c), pos).
2370
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2386
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2371
2387
  size_type find(CharT c, size_type pos = 0) const
2372
2388
  {
2373
2389
  const size_type sz = this->size();
@@ -2375,11 +2391,11 @@ class basic_string
2375
2391
  return npos;
2376
2392
  else {
2377
2393
  const pointer addr = this->priv_addr();
2378
- pointer finish = addr + sz;
2394
+ pointer finish = addr + difference_type(sz);
2379
2395
  const const_iterator result =
2380
- boost::container::find_if(addr + pos, finish,
2396
+ boost::container::find_if(addr + difference_type(pos), finish,
2381
2397
  boost::container::bind2nd(Eq_traits<Traits>(), c));
2382
- return result != finish ? result - begin() : npos;
2398
+ return result != finish ? size_type(result - begin()) : npos;
2383
2399
  }
2384
2400
  }
2385
2401
 
@@ -2391,7 +2407,7 @@ class basic_string
2391
2407
  //! <b>Throws</b>: Nothing
2392
2408
  //!
2393
2409
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2394
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2410
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2395
2411
  size_type rfind(const basic_string& str, size_type pos = npos) const
2396
2412
  { return this->rfind(str.c_str(), pos, str.size()); }
2397
2413
 
@@ -2404,7 +2420,7 @@ class basic_string
2404
2420
  //!
2405
2421
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2406
2422
  template<template <class, class> class BasicStringView>
2407
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2423
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2408
2424
  size_type rfind(BasicStringView<CharT, Traits> sv, size_type pos = npos) const
2409
2425
  { return this->rfind(sv.data(), pos, sv.size()); }
2410
2426
 
@@ -2413,7 +2429,7 @@ class basic_string
2413
2429
  //! <b>Throws</b>: Nothing
2414
2430
  //!
2415
2431
  //! <b>Returns</b>: rfind(basic_string(s, n), pos).
2416
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2432
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2417
2433
  size_type rfind(const CharT* s, size_type pos, size_type n) const
2418
2434
  {
2419
2435
  const size_type len = this->size();
@@ -2423,10 +2439,10 @@ class basic_string
2423
2439
  else if (n == 0)
2424
2440
  return dtl::min_value(len, pos);
2425
2441
  else {
2426
- const const_iterator last = begin() + dtl::min_value(len - n, pos) + n;
2442
+ const const_iterator last = begin() + difference_type(dtl::min_value(len - n, pos) + n);
2427
2443
  const const_iterator result = boost::container::find_end
2428
- (begin(), last, s, s + n, Eq_traits<Traits>());
2429
- return result != last ? result - begin() : npos;
2444
+ (begin(), last, s, s + difference_type(n), Eq_traits<Traits>());
2445
+ return result != last ? size_type(result - begin()) : npos;
2430
2446
  }
2431
2447
  }
2432
2448
 
@@ -2436,14 +2452,14 @@ class basic_string
2436
2452
  //! <b>Throws</b>: Nothing
2437
2453
  //!
2438
2454
  //! <b>Returns</b>: rfind(basic_string(s), pos).
2439
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2455
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2440
2456
  size_type rfind(const CharT* s, size_type pos = npos) const
2441
2457
  { return this->rfind(s, pos, Traits::length(s)); }
2442
2458
 
2443
2459
  //! <b>Throws</b>: Nothing
2444
2460
  //!
2445
2461
  //! <b>Returns</b>: rfind(basic_string<CharT,traits,allocator_type>(1,c),pos).
2446
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2462
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2447
2463
  size_type rfind(CharT c, size_type pos = npos) const
2448
2464
  {
2449
2465
  const size_type len = this->size();
@@ -2455,7 +2471,7 @@ class basic_string
2455
2471
  const_reverse_iterator rresult =
2456
2472
  boost::container::find_if(const_reverse_iterator(last), rend(),
2457
2473
  boost::container::bind2nd(Eq_traits<Traits>(), c));
2458
- return rresult != rend() ? (rresult.base() - 1) - begin() : npos;
2474
+ return rresult != rend() ? size_type((rresult.base() - 1) - begin()) : npos;
2459
2475
  }
2460
2476
  }
2461
2477
 
@@ -2466,7 +2482,7 @@ class basic_string
2466
2482
  //! <b>Throws</b>: Nothing
2467
2483
  //!
2468
2484
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2469
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2485
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2470
2486
  size_type find_first_of(const basic_string& str, size_type pos = 0) const
2471
2487
  { return this->find_first_of(str.c_str(), pos, str.size()); }
2472
2488
 
@@ -2478,7 +2494,7 @@ class basic_string
2478
2494
  //!
2479
2495
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2480
2496
  template<template <class, class> class BasicStringView>
2481
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2497
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2482
2498
  size_type find_first_of(BasicStringView<CharT, Traits> sv, size_type pos = 0) const
2483
2499
  { return this->find_first_of(sv.data(), pos, sv.size()); }
2484
2500
 
@@ -2487,7 +2503,7 @@ class basic_string
2487
2503
  //! <b>Throws</b>: Nothing
2488
2504
  //!
2489
2505
  //! <b>Returns</b>: find_first_of(basic_string(s, n), pos).
2490
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2506
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2491
2507
  size_type find_first_of(const CharT* s, size_type pos, size_type n) const
2492
2508
  {
2493
2509
  const size_type sz = this->size();
@@ -2495,10 +2511,10 @@ class basic_string
2495
2511
  return npos;
2496
2512
  else {
2497
2513
  const pointer addr = this->priv_addr();
2498
- pointer finish = addr + sz;
2514
+ pointer finish = addr + difference_type(sz);
2499
2515
  const_iterator result = boost::container::find_first_of
2500
- (addr + pos, finish, s, s + n, Eq_traits<Traits>());
2501
- return result != finish ? result - this->begin() : npos;
2516
+ (addr + difference_type(pos), finish, s, s + difference_type(n), Eq_traits<Traits>());
2517
+ return result != finish ? size_type(result - this->begin()) : npos;
2502
2518
  }
2503
2519
  }
2504
2520
 
@@ -2507,7 +2523,7 @@ class basic_string
2507
2523
  //! <b>Throws</b>: Nothing
2508
2524
  //!
2509
2525
  //! <b>Returns</b>: find_first_of(basic_string(s), pos).
2510
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2526
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2511
2527
  size_type find_first_of(const CharT* s, size_type pos = 0) const
2512
2528
  { return this->find_first_of(s, pos, Traits::length(s)); }
2513
2529
 
@@ -2516,7 +2532,7 @@ class basic_string
2516
2532
  //! <b>Throws</b>: Nothing
2517
2533
  //!
2518
2534
  //! <b>Returns</b>: find_first_of(basic_string<CharT,traits,allocator_type>(1,c), pos).
2519
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2535
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2520
2536
  size_type find_first_of(CharT c, size_type pos = 0) const
2521
2537
  { return this->find(c, pos); }
2522
2538
 
@@ -2527,7 +2543,7 @@ class basic_string
2527
2543
  //! <b>Throws</b>: Nothing
2528
2544
  //!
2529
2545
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2530
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2546
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2531
2547
  size_type find_last_of(const basic_string& str, size_type pos = npos) const
2532
2548
  { return this->find_last_of(str.c_str(), pos, str.size()); }
2533
2549
 
@@ -2539,7 +2555,7 @@ class basic_string
2539
2555
  //!
2540
2556
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2541
2557
  template<template <class, class> class BasicStringView>
2542
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2558
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2543
2559
  size_type find_last_of(BasicStringView<CharT, Traits> sv, size_type pos = npos) const
2544
2560
  { return this->find_last_of(sv.data(), pos, sv.size()); }
2545
2561
 
@@ -2548,7 +2564,7 @@ class basic_string
2548
2564
  //! <b>Throws</b>: Nothing
2549
2565
  //!
2550
2566
  //! <b>Returns</b>: find_last_of(basic_string(s, n), pos).
2551
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2567
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2552
2568
  size_type find_last_of(const CharT* s, size_type pos, size_type n) const
2553
2569
  {
2554
2570
  const size_type len = this->size();
@@ -2557,11 +2573,11 @@ class basic_string
2557
2573
  return npos;
2558
2574
  else {
2559
2575
  const pointer addr = this->priv_addr();
2560
- const const_iterator last = addr + dtl::min_value(len - 1, pos) + 1;
2576
+ const const_iterator last = addr + difference_type(dtl::min_value(len - 1, pos) + 1);
2561
2577
  const const_reverse_iterator rresult =
2562
2578
  boost::container::find_first_of(const_reverse_iterator(last), rend(),
2563
- s, s + n, Eq_traits<Traits>());
2564
- return rresult != rend() ? (rresult.base() - 1) - addr : npos;
2579
+ s, s + difference_type(n), Eq_traits<Traits>());
2580
+ return rresult != rend() ? size_type((rresult.base() - 1) - addr) : npos;
2565
2581
  }
2566
2582
  }
2567
2583
 
@@ -2570,14 +2586,14 @@ class basic_string
2570
2586
  //! <b>Throws</b>: Nothing
2571
2587
  //!
2572
2588
  //! <b>Returns</b>: find_last_of(basic_string<CharT,traits,allocator_type>(1,c),pos).
2573
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2589
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2574
2590
  size_type find_last_of(const CharT* s, size_type pos = npos) const
2575
2591
  { return this->find_last_of(s, pos, Traits::length(s)); }
2576
2592
 
2577
2593
  //! <b>Throws</b>: Nothing
2578
2594
  //!
2579
2595
  //! <b>Returns</b>: find_last_of(basic_string(s), pos).
2580
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2596
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2581
2597
  size_type find_last_of(CharT c, size_type pos = npos) const
2582
2598
  { return this->rfind(c, pos); }
2583
2599
 
@@ -2589,7 +2605,7 @@ class basic_string
2589
2605
  //! <b>Throws</b>: Nothing
2590
2606
  //!
2591
2607
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2592
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2608
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2593
2609
  size_type find_first_not_of(const basic_string& str, size_type pos = 0) const
2594
2610
  { return this->find_first_not_of(str.c_str(), pos, str.size()); }
2595
2611
 
@@ -2602,7 +2618,7 @@ class basic_string
2602
2618
  //!
2603
2619
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2604
2620
  template<template <class, class> class BasicStringView>
2605
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2621
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2606
2622
  size_type find_first_not_of(BasicStringView<CharT, Traits> sv, size_type pos = 0) const
2607
2623
  { return this->find_first_not_of(sv.data(), pos, sv.size()); }
2608
2624
 
@@ -2611,17 +2627,17 @@ class basic_string
2611
2627
  //! <b>Throws</b>: Nothing
2612
2628
  //!
2613
2629
  //! <b>Returns</b>: find_first_not_of(basic_string(s, n), pos).
2614
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2630
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2615
2631
  size_type find_first_not_of(const CharT* s, size_type pos, size_type n) const
2616
2632
  {
2617
2633
  if (pos > this->size())
2618
2634
  return npos;
2619
2635
  else {
2620
2636
  const pointer addr = this->priv_addr();
2621
- const pointer finish = addr + this->priv_size();
2637
+ const pointer finish = addr + difference_type(this->priv_size());
2622
2638
  const const_iterator result = boost::container::find_if
2623
- (addr + pos, finish, Not_within_traits<Traits>(s, s + n));
2624
- return result != finish ? result - addr : npos;
2639
+ (addr + difference_type(pos), finish, Not_within_traits<Traits>(s, s + difference_type(n)));
2640
+ return result != finish ? size_type(result - addr) : npos;
2625
2641
  }
2626
2642
  }
2627
2643
 
@@ -2630,25 +2646,25 @@ class basic_string
2630
2646
  //! <b>Throws</b>: Nothing
2631
2647
  //!
2632
2648
  //! <b>Returns</b>: find_first_not_of(basic_string(s), pos).
2633
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2649
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2634
2650
  size_type find_first_not_of(const CharT* s, size_type pos = 0) const
2635
2651
  { return this->find_first_not_of(s, pos, Traits::length(s)); }
2636
2652
 
2637
2653
  //! <b>Throws</b>: Nothing
2638
2654
  //!
2639
2655
  //! <b>Returns</b>: find_first_not_of(basic_string(1, c), pos).
2640
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2656
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2641
2657
  size_type find_first_not_of(CharT c, size_type pos = 0) const
2642
2658
  {
2643
2659
  if (pos > this->size())
2644
2660
  return npos;
2645
2661
  else {
2646
2662
  const pointer addr = this->priv_addr();
2647
- const pointer finish = addr + this->priv_size();
2663
+ const pointer finish = addr + difference_type(this->priv_size());
2648
2664
  const const_iterator result
2649
- = boost::container::find_if(addr + pos, finish,
2665
+ = boost::container::find_if(addr + difference_type(pos), finish,
2650
2666
  boost::container::not1(boost::container::bind2nd(Eq_traits<Traits>(), c)));
2651
- return result != finish ? result - begin() : npos;
2667
+ return result != finish ? size_type(result - begin()) : npos;
2652
2668
  }
2653
2669
  }
2654
2670
 
@@ -2659,7 +2675,7 @@ class basic_string
2659
2675
  //! <b>Throws</b>: Nothing
2660
2676
  //!
2661
2677
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2662
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2678
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2663
2679
  size_type find_last_not_of(const basic_string& str, size_type pos = npos) const
2664
2680
  { return this->find_last_not_of(str.c_str(), pos, str.size()); }
2665
2681
 
@@ -2671,7 +2687,7 @@ class basic_string
2671
2687
  //!
2672
2688
  //! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
2673
2689
  template<template <class, class> class BasicStringView>
2674
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2690
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2675
2691
  size_type find_last_not_of(BasicStringView<CharT, Traits> sv, size_type pos = npos) const
2676
2692
  { return this->find_last_not_of(sv.data(), pos, sv.size()); }
2677
2693
 
@@ -2680,7 +2696,7 @@ class basic_string
2680
2696
  //! <b>Throws</b>: Nothing
2681
2697
  //!
2682
2698
  //! <b>Returns</b>: find_last_not_of(basic_string(s, n), pos).
2683
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2699
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2684
2700
  size_type find_last_not_of(const CharT* s, size_type pos, size_type n) const
2685
2701
  {
2686
2702
  const size_type len = this->size();
@@ -2691,8 +2707,8 @@ class basic_string
2691
2707
  const const_iterator last = begin() + dtl::min_value(len - 1, pos) + 1;
2692
2708
  const const_reverse_iterator rresult =
2693
2709
  boost::container::find_if(const_reverse_iterator(last), rend(),
2694
- Not_within_traits<Traits>(s, s + n));
2695
- return rresult != rend() ? (rresult.base() - 1) - begin() : npos;
2710
+ Not_within_traits<Traits>(s, s + difference_type(n)));
2711
+ return rresult != rend() ? size_type((rresult.base() - 1) - begin()) : npos;
2696
2712
  }
2697
2713
  }
2698
2714
 
@@ -2701,14 +2717,14 @@ class basic_string
2701
2717
  //! <b>Throws</b>: Nothing
2702
2718
  //!
2703
2719
  //! <b>Returns</b>: find_last_not_of(basic_string(s), pos).
2704
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2720
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2705
2721
  size_type find_last_not_of(const CharT* s, size_type pos = npos) const
2706
2722
  { return this->find_last_not_of(s, pos, Traits::length(s)); }
2707
2723
 
2708
2724
  //! <b>Throws</b>: Nothing
2709
2725
  //!
2710
2726
  //! <b>Returns</b>: find_last_not_of(basic_string(1, c), pos).
2711
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2727
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2712
2728
  size_type find_last_not_of(CharT c, size_type pos = npos) const
2713
2729
  {
2714
2730
  const size_type len = this->size();
@@ -2720,7 +2736,7 @@ class basic_string
2720
2736
  const const_reverse_iterator rresult =
2721
2737
  boost::container::find_if(const_reverse_iterator(last), rend(),
2722
2738
  boost::container::not1(boost::container::bind2nd(Eq_traits<Traits>(), c)));
2723
- return rresult != rend() ? (rresult.base() - 1) - begin() : npos;
2739
+ return rresult != rend() ? size_type((rresult.base() - 1) - begin()) : npos;
2724
2740
  }
2725
2741
  }
2726
2742
 
@@ -2732,14 +2748,14 @@ class basic_string
2732
2748
  //! <b>Throws</b>: If memory allocation throws or out_of_range if pos > size().
2733
2749
  //!
2734
2750
  //! <b>Returns</b>: basic_string<CharT,traits,allocator_type>(data()+pos,rlen).
2735
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2751
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2736
2752
  basic_string substr(size_type pos = 0, size_type n = npos) const
2737
2753
  {
2738
2754
  if (pos > this->size())
2739
2755
  throw_out_of_range("basic_string::substr out of range position");
2740
2756
  const pointer addr = this->priv_addr();
2741
- return basic_string(addr + pos,
2742
- addr + pos + dtl::min_value(n, size() - pos), this->alloc());
2757
+ return basic_string(addr + difference_type(pos),
2758
+ addr + difference_type(pos + dtl::min_value(n, size() - pos)), this->alloc());
2743
2759
  }
2744
2760
 
2745
2761
  //! <b>Effects</b>: Determines the effective length rlen of the string to compare as
@@ -2751,23 +2767,23 @@ class basic_string
2751
2767
  //! <b>Returns</b>: The nonzero result if the result of the comparison is nonzero.
2752
2768
  //! Otherwise, returns a value < 0 if size() < str.size(), a 0 value if size() == str.size(),
2753
2769
  //! and value > 0 if size() > str.size()
2754
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2770
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2755
2771
  int compare(const basic_string& str) const
2756
2772
  {
2757
2773
  const pointer addr = this->priv_addr();
2758
2774
  const pointer str_addr = str.priv_addr();
2759
- return this->s_compare(addr, addr + this->priv_size(), str_addr, str_addr + str.priv_size());
2775
+ return this->s_compare(addr, addr + difference_type(this->priv_size()), str_addr, str_addr + difference_type(str.priv_size()));
2760
2776
  }
2761
2777
 
2762
2778
  //! <b>Throws</b>: Nothing
2763
2779
  //!
2764
2780
  //! <b>Returns</b>: compare(basic_string(sv)).
2765
2781
  template<template <class, class> class BasicStringView>
2766
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2782
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2767
2783
  int compare(BasicStringView<CharT,Traits> sv) const
2768
2784
  {
2769
2785
  const pointer addr = this->priv_addr();
2770
- return this->s_compare(addr, addr + this->priv_size(), sv.data(), sv.data() + sv.size());
2786
+ return this->s_compare(addr, addr + difference_type(this->priv_size()), sv.data(), sv.data() + difference_type(sv.size()));
2771
2787
  }
2772
2788
 
2773
2789
  //! <b>Requires</b>: pos1 <= size()
@@ -2779,16 +2795,16 @@ class basic_string
2779
2795
  //! <b>Throws</b>: out_of_range if pos1 > size()
2780
2796
  //!
2781
2797
  //! <b>Returns</b>:basic_string(*this,pos1,n1).compare(str).
2782
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2798
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2783
2799
  int compare(size_type pos1, size_type n1, const basic_string& str) const
2784
2800
  {
2785
2801
  if (pos1 > this->size())
2786
2802
  throw_out_of_range("basic_string::compare out of range position");
2787
2803
  const pointer addr = this->priv_addr();
2788
2804
  const pointer str_addr = str.priv_addr();
2789
- return this->s_compare(addr + pos1,
2790
- addr + pos1 + dtl::min_value(n1, this->size() - pos1),
2791
- str_addr, str_addr + str.priv_size());
2805
+ return this->s_compare(addr + difference_type(pos1),
2806
+ addr + difference_type(pos1 + dtl::min_value(n1, this->size() - pos1)),
2807
+ str_addr, str_addr + difference_type(str.priv_size()));
2792
2808
  }
2793
2809
 
2794
2810
  //! <b>Requires</b>: pos1 <= size()
@@ -2797,14 +2813,14 @@ class basic_string
2797
2813
  //!
2798
2814
  //! <b>Returns</b>:basic_string(*this,pos1,n1).compare(sv).
2799
2815
  template<template <class, class> class BasicStringView>
2800
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2816
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2801
2817
  int compare(size_type pos1, size_type n1, BasicStringView<CharT,Traits> sv) const
2802
2818
  {
2803
2819
  if (pos1 > this->size())
2804
2820
  throw_out_of_range("basic_string::compare out of range position");
2805
2821
  const pointer addr = this->priv_addr() + pos1;
2806
2822
  const CharT* str_addr = sv.data();
2807
- return this->s_compare(addr, addr + dtl::min_value(n1, this->size() - pos1),
2823
+ return this->s_compare(addr, addr + difference_type(dtl::min_value(n1, this->size() - pos1)),
2808
2824
  str_addr, str_addr + sv.size());
2809
2825
  }
2810
2826
 
@@ -2816,15 +2832,15 @@ class basic_string
2816
2832
  //! <b>Throws</b>: out_of_range if pos1 > size() or pos2 > str.size()
2817
2833
  //!
2818
2834
  //! <b>Returns</b>: basic_string(*this, pos1, n1).compare(basic_string(str, pos2, n2)).
2819
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2835
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2820
2836
  int compare(size_type pos1, size_type n1, const basic_string& str, size_type pos2, size_type n2 = npos) const
2821
2837
  {
2822
2838
  if (pos1 > this->size() || pos2 > str.size())
2823
2839
  throw_out_of_range("basic_string::compare out of range position");
2824
2840
  const pointer addr = this->priv_addr() + pos1;
2825
2841
  const pointer str_addr = str.priv_addr() + pos2;
2826
- return this->s_compare(addr, addr + dtl::min_value(n1, this->size() - pos1),
2827
- str_addr, str_addr + dtl::min_value(n2, str.size() - pos2));
2842
+ return this->s_compare(addr, addr + difference_type(dtl::min_value(n1, this->size() - pos1)),
2843
+ str_addr, str_addr + difference_type(dtl::min_value(n2, str.size() - pos2)));
2828
2844
  }
2829
2845
 
2830
2846
  //! <b>Requires</b>: pos1 <= size() and pos2 <= str.size()
@@ -2836,25 +2852,25 @@ class basic_string
2836
2852
  //!
2837
2853
  //! <b>Returns</b>: basic_string(*this, pos1, n1).compare(BasicStringView<CharT, Traits>(sv, pos2, n2)).
2838
2854
  template<template <class, class> class BasicStringView>
2839
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2855
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2840
2856
  int compare(size_type pos1, size_type n1, BasicStringView<CharT,Traits> sv, size_type pos2, size_type n2) const
2841
2857
  {
2842
2858
  if (pos1 > this->size() || pos2 > sv.size())
2843
2859
  throw_out_of_range("basic_string::compare out of range position");
2844
2860
  const pointer addr = this->priv_addr() + pos1;
2845
2861
  const CharT * str_addr = sv.data() + pos2;
2846
- return this->s_compare(addr, addr + dtl::min_value(n1, this->size() - pos1),
2847
- str_addr, str_addr + dtl::min_value(n2, sv.size() - pos2));
2862
+ return this->s_compare(addr, addr + difference_type(dtl::min_value(n1, this->size() - pos1)),
2863
+ str_addr, str_addr + difference_type(dtl::min_value(n2, sv.size() - pos2)));
2848
2864
  }
2849
2865
 
2850
2866
  //! <b>Throws</b>: Nothing
2851
2867
  //!
2852
2868
  //! <b>Returns</b>: compare(basic_string(s)).
2853
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2869
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2854
2870
  int compare(const CharT* s) const
2855
2871
  {
2856
2872
  const pointer addr = this->priv_addr();
2857
- return this->s_compare(addr, addr + this->priv_size(), s, s + Traits::length(s));
2873
+ return this->s_compare(addr, addr + difference_type(this->priv_size()), s, s + Traits::length(s));
2858
2874
  }
2859
2875
 
2860
2876
  //! <b>Requires</b>: pos1 > size() and s points to an array of at least n2 elements of CharT.
@@ -2862,15 +2878,15 @@ class basic_string
2862
2878
  //! <b>Throws</b>: out_of_range if pos1 > size()
2863
2879
  //!
2864
2880
  //! <b>Returns</b>: basic_string(*this, pos, n1).compare(basic_string(s, n2)).
2865
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2881
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2866
2882
  int compare(size_type pos1, size_type n1, const CharT* s, size_type n2) const
2867
2883
  {
2868
2884
  if (pos1 > this->size())
2869
2885
  throw_out_of_range("basic_string::compare out of range position");
2870
2886
  const pointer addr = this->priv_addr();
2871
- return this->s_compare( addr + pos1,
2872
- addr + pos1 + dtl::min_value(n1, this->size() - pos1),
2873
- s, s + n2);
2887
+ return this->s_compare( addr + difference_type(pos1),
2888
+ addr + difference_type(pos1 + dtl::min_value(n1, this->size() - pos1)),
2889
+ s, s + difference_type(n2));
2874
2890
  }
2875
2891
 
2876
2892
  //! <b>Requires</b>: pos1 > size() and s points to an array of at least traits::length(s) + 1 elements of CharT.
@@ -2878,44 +2894,73 @@ class basic_string
2878
2894
  //! <b>Throws</b>: out_of_range if pos1 > size()
2879
2895
  //!
2880
2896
  //! <b>Returns</b>: basic_string(*this, pos, n1).compare(basic_string(s, n2)).
2881
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2897
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2882
2898
  int compare(size_type pos1, size_type n1, const CharT* s) const
2883
2899
  { return this->compare(pos1, n1, s, Traits::length(s)); }
2884
2900
 
2885
2901
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
2886
2902
  private:
2887
- void priv_reserve(size_type res_arg, const bool null_terminate = true)
2903
+ void priv_move_assign(BOOST_RV_REF(basic_string) x, dtl::bool_<true> /*steal_resources*/)
2904
+ {
2905
+ //Destroy objects but retain memory in case x reuses it in the future
2906
+ this->clear();
2907
+ //Move allocator if needed
2908
+ dtl::bool_<allocator_traits_type::
2909
+ propagate_on_container_move_assignment::value> flag;
2910
+ dtl::move_alloc(this->alloc(), x.alloc(), flag);
2911
+ //Nothrow swap
2912
+ this->swap_data(x);
2913
+ }
2914
+
2915
+ void priv_move_assign(BOOST_RV_REF(basic_string) x, dtl::bool_<false> /*steal_resources*/)
2916
+ {
2917
+ //We can't guarantee a compile-time equal allocator or propagation so fallback to runtime
2918
+ //Resources can be transferred if both allocators are equal
2919
+ if (this->alloc() == x.alloc()) {
2920
+ this->priv_move_assign(boost::move(x), dtl::true_());
2921
+ }
2922
+ else {
2923
+ this->assign(x.begin(), x.end());
2924
+ }
2925
+ }
2926
+
2927
+ bool priv_reserve_no_null_end(size_type res_arg)
2888
2928
  {
2889
2929
  if (res_arg > this->max_size()){
2890
2930
  throw_length_error("basic_string::reserve max_size() exceeded");
2891
2931
  }
2892
2932
 
2893
- if (this->capacity() < res_arg){
2894
- size_type n = dtl::max_value(res_arg, this->size()) + 1;
2933
+ const bool do_alloc = this->capacity() < res_arg;
2934
+ if (do_alloc){
2935
+ //size_type n = dtl::max_value(res_arg, this->size()) + 1;
2936
+ size_type n = res_arg + 1;
2895
2937
  size_type new_cap = this->next_capacity(n);
2896
2938
  pointer reuse = 0;
2897
2939
  pointer new_start = this->allocation_command(allocate_new, n, new_cap, reuse);
2898
- size_type new_length = 0;
2899
2940
 
2900
2941
  const pointer addr = this->priv_addr();
2901
- new_length += priv_uninitialized_copy
2902
- (addr, addr + this->priv_size(), new_start);
2903
- if(null_terminate){
2904
- this->priv_construct_null(new_start + new_length);
2905
- }
2942
+ size_type new_length = priv_uninitialized_copy
2943
+ (addr, addr + difference_type(this->priv_size()), new_start);
2906
2944
  this->deallocate_block();
2907
2945
  this->assure_long();
2908
2946
  this->priv_long_addr(new_start);
2909
2947
  this->priv_long_size(new_length);
2910
2948
  this->priv_storage(new_cap);
2911
2949
  }
2950
+ return do_alloc;
2951
+ }
2952
+
2953
+ void priv_reserve(size_type res_arg)
2954
+ {
2955
+ if(this->priv_reserve_no_null_end(res_arg))
2956
+ this->priv_terminate_string();
2912
2957
  }
2913
2958
 
2914
2959
  template<class It1, class It2>
2915
2960
  static int s_compare(It1 f1, It1 l1, It2 f2, It2 l2)
2916
2961
  {
2917
- const difference_type n1 = l1 - f1;
2918
- const difference_type n2 = l2 - f2;
2962
+ const std::size_t n1 = std::size_t(l1 - f1);
2963
+ const std::size_t n2 = std::size_t(l2 - f2);
2919
2964
  const int cmp = Traits::compare(boost::movelib::to_raw_pointer(f1),
2920
2965
  boost::movelib::to_raw_pointer(f2),
2921
2966
  dtl::min_value(n1, n2));
@@ -2933,7 +2978,7 @@ class basic_string
2933
2978
  const size_type long_size = this->priv_long_size();
2934
2979
  const size_type long_storage = this->priv_long_storage();
2935
2980
  //We can make this nothrow as chars are always NoThrowCopyables
2936
- BOOST_TRY{
2981
+ BOOST_CONTAINER_TRY{
2937
2982
  pointer reuse = 0;
2938
2983
  real_cap = long_size+1;
2939
2984
  const pointer ret = this->allocation_command(allocate_new, long_size+1, real_cap, reuse);
@@ -2946,10 +2991,10 @@ class basic_string
2946
2991
  //And release old buffer
2947
2992
  this->alloc().deallocate(long_addr, long_storage);
2948
2993
  }
2949
- BOOST_CATCH(...){
2994
+ BOOST_CONTAINER_CATCH(...){
2950
2995
  return;
2951
2996
  }
2952
- BOOST_CATCH_END
2997
+ BOOST_CONTAINER_CATCH_END
2953
2998
  }
2954
2999
 
2955
3000
  template<class AllocVersion>
@@ -2965,78 +3010,44 @@ class basic_string
2965
3010
  }
2966
3011
  }
2967
3012
 
2968
- void priv_construct_null(pointer p)
2969
- { this->construct(p, CharT(0)); }
3013
+ inline void priv_construct_null(pointer p)
3014
+ { traits_type::assign(*p, CharT()); }
2970
3015
 
2971
3016
  // Helper functions used by constructors. It is a severe error for
2972
3017
  // any of them to be called anywhere except from within constructors.
2973
- void priv_terminate_string()
3018
+ inline void priv_terminate_string()
2974
3019
  { this->priv_construct_null(this->priv_end_addr()); }
2975
3020
 
2976
- template<class FwdIt, class Count> inline
2977
- void priv_uninitialized_fill_n(FwdIt first, Count count, const CharT val)
2978
- {
2979
- //Save initial position
2980
- FwdIt init = first;
2981
-
2982
- BOOST_TRY{
2983
- //Construct objects
2984
- for (; count--; ++first){
2985
- this->construct(first, val);
2986
- }
2987
- }
2988
- BOOST_CATCH(...){
2989
- //Call destructors
2990
- for (; init != first; ++init){
2991
- this->destroy(init);
2992
- }
2993
- BOOST_RETHROW
2994
- }
2995
- BOOST_CATCH_END
2996
- }
2997
-
2998
3021
  template<class InpIt, class FwdIt> inline
2999
3022
  size_type priv_uninitialized_copy(InpIt first, InpIt last, FwdIt dest)
3000
3023
  {
3001
3024
  //Save initial destination position
3002
- FwdIt dest_init = dest;
3003
3025
  size_type constructed = 0;
3004
3026
 
3005
- BOOST_TRY{
3006
- //Try to build objects
3007
- for (; first != last; ++dest, ++first, ++constructed){
3008
- this->construct(dest, *first);
3009
- }
3010
- }
3011
- BOOST_CATCH(...){
3012
- //Call destructors
3013
- for (; constructed--; ++dest_init){
3014
- this->destroy(dest_init);
3015
- }
3016
- BOOST_RETHROW
3027
+ for (; first != last; ++dest, ++first, ++constructed){
3028
+ traits_type::assign(*dest, *first);
3017
3029
  }
3018
- BOOST_CATCH_END
3019
- return (constructed);
3030
+ return constructed;
3020
3031
  }
3021
3032
 
3022
3033
  template <class InputIterator, class OutIterator>
3023
- void priv_copy(InputIterator first, InputIterator last, OutIterator result)
3034
+ static void priv_copy(InputIterator first, InputIterator last, OutIterator result)
3024
3035
  {
3025
3036
  for ( ; first != last; ++first, ++result)
3026
3037
  Traits::assign(*result, *first);
3027
3038
  }
3028
3039
 
3029
- void priv_copy(const CharT* first, const CharT* last, CharT* result)
3030
- { Traits::copy(result, first, last - first); }
3040
+ static inline void priv_copy(const CharT* first, const CharT* last, CharT* result)
3041
+ { Traits::copy(result, first, std::size_t(last - first)); }
3031
3042
 
3032
3043
  template <class Integer>
3033
- basic_string& priv_replace_dispatch(const_iterator first, const_iterator last,
3044
+ inline basic_string& priv_replace_dispatch(const_iterator first, const_iterator last,
3034
3045
  Integer n, Integer x,
3035
3046
  dtl::true_)
3036
3047
  { return this->replace(first, last, (size_type) n, (CharT) x); }
3037
3048
 
3038
3049
  template <class InputIter>
3039
- basic_string& priv_replace_dispatch(const_iterator first, const_iterator last,
3050
+ inline basic_string& priv_replace_dispatch(const_iterator first, const_iterator last,
3040
3051
  InputIter f, InputIter l,
3041
3052
  dtl::false_)
3042
3053
  {
@@ -3079,20 +3090,16 @@ wstring;
3079
3090
 
3080
3091
  #else
3081
3092
 
3082
- template <class CharT, class Traits, class Allocator>
3083
- const typename basic_string<CharT,Traits,Allocator>::size_type
3084
- basic_string<CharT,Traits,Allocator>::npos;
3085
-
3086
3093
  template<class S>
3087
3094
  struct is_string
3088
3095
  {
3089
- static const bool value = false;
3096
+ BOOST_STATIC_CONSTEXPR bool value = false;
3090
3097
  };
3091
3098
 
3092
3099
  template<class C, class T, class A>
3093
3100
  struct is_string< basic_string<C, T, A> >
3094
3101
  {
3095
- static const bool value = true;
3102
+ BOOST_STATIC_CONSTEXPR bool value = true;
3096
3103
  };
3097
3104
 
3098
3105
  #endif
@@ -3543,22 +3550,13 @@ getline(std::basic_istream<CharT, Traits>& is, basic_string<CharT,Traits,Allocat
3543
3550
  return getline(is, s, '\n');
3544
3551
  }
3545
3552
 
3546
- template <class Ch, class Allocator>
3547
- inline std::size_t hash_value(basic_string<Ch, std::char_traits<Ch>, Allocator> const& v)
3548
- {
3549
- std::size_t seed = 0;
3550
- const Ch *first = v.data();
3551
-
3552
- for(std::size_t i = 0, i_max = v.size(); i != i_max; ++i)
3553
- {
3554
- boost::intrusive::detail::hash_combine_size_t(seed, static_cast<std::size_t>(*first));
3555
- ++first;
3556
- }
3553
+ }}
3557
3554
 
3558
- return seed;
3559
- }
3555
+ //GCC 12 has a regression for array-bounds warnings
3556
+ #if defined(BOOST_GCC) && (BOOST_GCC >= 120000) && (BOOST_GCC < 130000)
3557
+ #pragma GCC diagnostic pop
3558
+ #endif
3560
3559
 
3561
- }}
3562
3560
 
3563
3561
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
3564
3562
 
@@ -3571,8 +3569,9 @@ struct has_trivial_destructor_after_move<boost::container::basic_string<C, T, Al
3571
3569
  {
3572
3570
  typedef typename boost::container::basic_string<C, T, Allocator>::allocator_type allocator_type;
3573
3571
  typedef typename ::boost::container::allocator_traits<allocator_type>::pointer pointer;
3574
- static const bool value = ::boost::has_trivial_destructor_after_move<allocator_type>::value &&
3575
- ::boost::has_trivial_destructor_after_move<pointer>::value;
3572
+ BOOST_STATIC_CONSTEXPR bool value =
3573
+ ::boost::has_trivial_destructor_after_move<allocator_type>::value &&
3574
+ ::boost::has_trivial_destructor_after_move<pointer>::value;
3576
3575
  };
3577
3576
 
3578
3577
  }