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
@@ -50,7 +50,6 @@
50
50
  #include <boost/move/detail/move_helpers.hpp>
51
51
  // other
52
52
  #include <boost/assert.hpp>
53
- #include <boost/core/no_exceptions_support.hpp>
54
53
  // std
55
54
  #include <cstddef>
56
55
 
@@ -69,16 +68,16 @@ template <class T>
69
68
  struct deque_value_traits
70
69
  {
71
70
  typedef T value_type;
72
- static const bool trivial_dctr = dtl::is_trivially_destructible<value_type>::value;
73
- static const bool trivial_dctr_after_move = ::boost::has_trivial_destructor_after_move<value_type>::value;
71
+ BOOST_STATIC_CONSTEXPR bool trivial_dctr = dtl::is_trivially_destructible<value_type>::value;
72
+ BOOST_STATIC_CONSTEXPR bool trivial_dctr_after_move = ::boost::has_trivial_destructor_after_move<value_type>::value;
74
73
  };
75
74
 
76
75
  template<class T, std::size_t BlockBytes, std::size_t BlockSize>
77
76
  struct deque_block_size
78
77
  {
79
- BOOST_STATIC_ASSERT_MSG(!(BlockBytes && BlockSize), "BlockBytes and BlockSize can't be specified at the same time");
80
- static const std::size_t block_bytes = BlockBytes ? BlockBytes : 512u;
81
- static const std::size_t value = BlockSize ? BlockSize : (sizeof(T) < block_bytes ? (block_bytes/sizeof(T)) : std::size_t(1));
78
+ BOOST_CONTAINER_STATIC_ASSERT_MSG(!(BlockBytes && BlockSize), "BlockBytes and BlockSize can't be specified at the same time");
79
+ BOOST_STATIC_CONSTEXPR std::size_t block_bytes = BlockBytes ? BlockBytes : 512u;
80
+ BOOST_STATIC_CONSTEXPR std::size_t value = BlockSize ? BlockSize : (sizeof(T) < block_bytes ? (block_bytes/sizeof(T)) : std::size_t(1));
82
81
  };
83
82
 
84
83
  namespace dtl {
@@ -107,6 +106,10 @@ namespace dtl {
107
106
  // [map, map + map_size).
108
107
  // A pointer in the range [map, map + map_size) points to an allocated node
109
108
  // if and only if the pointer is in the range [start.node, finish.node].
109
+
110
+ #define BOOST_CONTAINER_DEQUE_LIGHTER_ITERATOR_LEVEL 0
111
+
112
+ #if BOOST_CONTAINER_DEQUE_LIGHTER_ITERATOR_LEVEL == 0
110
113
  template<class Pointer, bool IsConst>
111
114
  class deque_iterator
112
115
  {
@@ -114,6 +117,7 @@ class deque_iterator
114
117
  typedef std::random_access_iterator_tag iterator_category;
115
118
  typedef typename boost::intrusive::pointer_traits<Pointer>::element_type value_type;
116
119
  typedef typename boost::intrusive::pointer_traits<Pointer>::difference_type difference_type;
120
+ typedef typename boost::intrusive::pointer_traits<Pointer>::size_type size_type;
117
121
  typedef typename if_c
118
122
  < IsConst
119
123
  , typename boost::intrusive::pointer_traits<Pointer>::template
@@ -142,43 +146,47 @@ class deque_iterator
142
146
 
143
147
  public:
144
148
 
145
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE Pointer get_cur() const { return m_cur; }
146
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE Pointer get_first() const { return m_first; }
147
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE Pointer get_last() const { return m_last; }
148
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE index_pointer get_node() const { return m_node; }
149
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline Pointer get_cur() const { return m_cur; }
150
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline Pointer get_first() const { return m_first; }
151
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline Pointer get_last() const { return m_last; }
152
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline index_pointer get_node() const { return m_node; }
149
153
 
150
- BOOST_CONTAINER_FORCEINLINE deque_iterator(val_alloc_ptr x, index_pointer y, difference_type block_size) BOOST_NOEXCEPT_OR_NOTHROW
154
+ inline deque_iterator(val_alloc_ptr x, index_pointer y, difference_type block_size) BOOST_NOEXCEPT_OR_NOTHROW
151
155
  : m_cur(x), m_first(*y), m_last(*y + block_size), m_node(y)
152
156
  {}
153
157
 
154
- BOOST_CONTAINER_FORCEINLINE deque_iterator() BOOST_NOEXCEPT_OR_NOTHROW
158
+ inline deque_iterator(val_alloc_ptr x, index_pointer y, size_type block_size) BOOST_NOEXCEPT_OR_NOTHROW
159
+ : m_cur(x), m_first(*y), m_last(*y + difference_type(block_size)), m_node(y)
160
+ {}
161
+
162
+ inline deque_iterator() BOOST_NOEXCEPT_OR_NOTHROW
155
163
  : m_cur(), m_first(), m_last(), m_node() //Value initialization to achieve "null iterators" (N3644)
156
164
  {}
157
165
 
158
- BOOST_CONTAINER_FORCEINLINE deque_iterator(const deque_iterator& x) BOOST_NOEXCEPT_OR_NOTHROW
166
+ inline deque_iterator(const deque_iterator& x) BOOST_NOEXCEPT_OR_NOTHROW
159
167
  : m_cur(x.get_cur()), m_first(x.get_first()), m_last(x.get_last()), m_node(x.get_node())
160
168
  {}
161
169
 
162
- BOOST_CONTAINER_FORCEINLINE deque_iterator(const nonconst_iterator& x) BOOST_NOEXCEPT_OR_NOTHROW
170
+ inline deque_iterator(const nonconst_iterator& x) BOOST_NOEXCEPT_OR_NOTHROW
163
171
  : m_cur(x.get_cur()), m_first(x.get_first()), m_last(x.get_last()), m_node(x.get_node())
164
172
  {}
165
173
 
166
- BOOST_CONTAINER_FORCEINLINE deque_iterator(Pointer cur, Pointer first, Pointer last, index_pointer node) BOOST_NOEXCEPT_OR_NOTHROW
174
+ inline deque_iterator(Pointer cur, Pointer first, Pointer last, index_pointer node) BOOST_NOEXCEPT_OR_NOTHROW
167
175
  : m_cur(cur), m_first(first), m_last(last), m_node(node)
168
176
  {}
169
177
 
170
- BOOST_CONTAINER_FORCEINLINE deque_iterator& operator=(const deque_iterator& x) BOOST_NOEXCEPT_OR_NOTHROW
178
+ inline deque_iterator& operator=(const deque_iterator& x) BOOST_NOEXCEPT_OR_NOTHROW
171
179
  { m_cur = x.get_cur(); m_first = x.get_first(); m_last = x.get_last(); m_node = x.get_node(); return *this; }
172
180
 
173
- BOOST_CONTAINER_FORCEINLINE deque_iterator<Pointer, false> unconst() const BOOST_NOEXCEPT_OR_NOTHROW
181
+ inline deque_iterator<Pointer, false> unconst() const BOOST_NOEXCEPT_OR_NOTHROW
174
182
  {
175
183
  return deque_iterator<Pointer, false>(this->get_cur(), this->get_first(), this->get_last(), this->get_node());
176
184
  }
177
185
 
178
- BOOST_CONTAINER_FORCEINLINE reference operator*() const BOOST_NOEXCEPT_OR_NOTHROW
186
+ inline reference operator*() const BOOST_NOEXCEPT_OR_NOTHROW
179
187
  { return *this->m_cur; }
180
188
 
181
- BOOST_CONTAINER_FORCEINLINE pointer operator->() const BOOST_NOEXCEPT_OR_NOTHROW
189
+ inline pointer operator->() const BOOST_NOEXCEPT_OR_NOTHROW
182
190
  { return this->m_cur; }
183
191
 
184
192
  BOOST_CONTAINER_ATTRIBUTE_NODISCARD difference_type operator-(const deque_iterator& x) const BOOST_NOEXCEPT_OR_NOTHROW
@@ -186,7 +194,7 @@ class deque_iterator
186
194
  if(!this->m_cur && !x.m_cur){
187
195
  return 0;
188
196
  }
189
- const difference_type block_size = this->m_last - this->m_first;
197
+ const difference_type block_size = m_last - m_first;
190
198
  BOOST_ASSERT(block_size);
191
199
  return block_size * (this->m_node - x.m_node - 1) +
192
200
  (this->m_cur - this->m_first) + (x.m_last - x.m_cur);
@@ -205,7 +213,7 @@ class deque_iterator
205
213
  return *this;
206
214
  }
207
215
 
208
- BOOST_CONTAINER_FORCEINLINE deque_iterator operator++(int) BOOST_NOEXCEPT_OR_NOTHROW
216
+ inline deque_iterator operator++(int) BOOST_NOEXCEPT_OR_NOTHROW
209
217
  {
210
218
  deque_iterator tmp(*this);
211
219
  ++*this;
@@ -225,7 +233,7 @@ class deque_iterator
225
233
  return *this;
226
234
  }
227
235
 
228
- BOOST_CONTAINER_FORCEINLINE deque_iterator operator--(int) BOOST_NOEXCEPT_OR_NOTHROW
236
+ inline deque_iterator operator--(int) BOOST_NOEXCEPT_OR_NOTHROW
229
237
  {
230
238
  deque_iterator tmp(*this);
231
239
  --*this;
@@ -237,67 +245,71 @@ class deque_iterator
237
245
  if (!n)
238
246
  return *this;
239
247
  BOOST_ASSERT(!!m_cur);
240
- difference_type offset = n + (this->m_cur - this->m_first);
241
- const difference_type block_size = this->m_last - this->m_first;
248
+ const difference_type offset = n + (this->m_cur - this->m_first);
249
+ const difference_type block_size = m_last - m_first;
242
250
  BOOST_ASSERT(block_size);
243
251
  if (offset >= 0 && offset < block_size)
244
- this->m_cur += n;
252
+ this->m_cur += difference_type(n);
245
253
  else {
246
- difference_type node_offset =
247
- offset > 0 ? (offset / block_size)
248
- : (-difference_type((-offset - 1) / block_size) - 1);
249
- this->priv_set_node(this->m_node + node_offset, block_size);
254
+ const difference_type node_offset =
255
+ offset > 0 ? (offset / block_size)
256
+ : (-difference_type((-offset - 1) / block_size) - 1);
257
+ this->priv_set_node(this->m_node + node_offset, size_type(block_size));
250
258
  this->m_cur = this->m_first +
251
259
  (offset - node_offset * block_size);
252
260
  }
253
261
  return *this;
254
262
  }
255
263
 
256
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
264
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
257
265
  deque_iterator operator+(difference_type n) const BOOST_NOEXCEPT_OR_NOTHROW
258
266
  { deque_iterator tmp(*this); return tmp += n; }
259
267
 
260
- BOOST_CONTAINER_FORCEINLINE
268
+ inline
261
269
  deque_iterator& operator-=(difference_type n) BOOST_NOEXCEPT_OR_NOTHROW
262
270
  { return *this += -n; }
263
271
 
264
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
272
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
265
273
  deque_iterator operator-(difference_type n) const BOOST_NOEXCEPT_OR_NOTHROW
266
274
  { deque_iterator tmp(*this); return tmp -= n; }
267
275
 
268
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
276
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
269
277
  reference operator[](difference_type n) const BOOST_NOEXCEPT_OR_NOTHROW
270
278
  { return *(*this + n); }
271
279
 
272
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
280
+ //Comparisons
281
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
273
282
  friend bool operator==(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
274
283
  { return l.m_cur == r.m_cur; }
275
284
 
276
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
285
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
277
286
  friend bool operator!=(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
278
287
  { return l.m_cur != r.m_cur; }
279
288
 
280
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
289
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
281
290
  friend bool operator<(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
282
291
  { return (l.m_node == r.m_node) ? (l.m_cur < r.m_cur) : (l.m_node < r.m_node); }
283
292
 
284
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
293
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
285
294
  friend bool operator>(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
286
295
  { return r < l; }
287
296
 
288
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
297
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
289
298
  friend bool operator<=(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
290
299
  { return !(r < l); }
291
300
 
292
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
301
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
293
302
  friend bool operator>=(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
294
303
  { return !(l < r); }
295
304
 
296
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
305
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
297
306
  friend deque_iterator operator+(difference_type n, deque_iterator x) BOOST_NOEXCEPT_OR_NOTHROW
298
307
  { return x += n; }
299
308
 
300
- BOOST_CONTAINER_FORCEINLINE void priv_set_node(index_pointer new_node, difference_type block_size) BOOST_NOEXCEPT_OR_NOTHROW
309
+ inline void priv_set_node(index_pointer new_node, size_type block_size) BOOST_NOEXCEPT_OR_NOTHROW
310
+ { return this->priv_set_node(new_node, difference_type(block_size)); }
311
+
312
+ inline void priv_set_node(index_pointer new_node, difference_type block_size) BOOST_NOEXCEPT_OR_NOTHROW
301
313
  {
302
314
  this->m_node = new_node;
303
315
  this->m_first = *new_node;
@@ -305,6 +317,447 @@ class deque_iterator
305
317
  }
306
318
  };
307
319
 
320
+ #elif BOOST_CONTAINER_DEQUE_LIGHTER_ITERATOR_LEVEL == 1
321
+
322
+ template<class Pointer, bool IsConst, unsigned BlockBytes, unsigned BlockSize>
323
+ class deque_iterator
324
+ {
325
+ public:
326
+ typedef std::random_access_iterator_tag iterator_category;
327
+ typedef typename boost::intrusive::pointer_traits<Pointer>::element_type value_type;
328
+ typedef typename boost::intrusive::pointer_traits<Pointer>::difference_type difference_type;
329
+ typedef typename boost::intrusive::pointer_traits<Pointer>::size_type size_type;
330
+ typedef typename if_c
331
+ < IsConst
332
+ , typename boost::intrusive::pointer_traits<Pointer>::template
333
+ rebind_pointer<const value_type>::type
334
+ , Pointer
335
+ >::type pointer;
336
+ typedef typename if_c
337
+ < IsConst
338
+ , const value_type&
339
+ , value_type&
340
+ >::type reference;
341
+
342
+ BOOST_CONSTEXPR inline static size_type get_block_size() BOOST_NOEXCEPT_OR_NOTHROW
343
+ { return deque_block_size<value_type, BlockBytes, BlockSize>::value; }
344
+
345
+ BOOST_CONSTEXPR inline static difference_type get_block_ssize() BOOST_NOEXCEPT_OR_NOTHROW
346
+ { return difference_type((get_block_size())); }
347
+
348
+ class nat;
349
+ typedef typename dtl::if_c< IsConst
350
+ , deque_iterator<Pointer, false, BlockBytes, BlockSize>
351
+ , nat>::type nonconst_iterator;
352
+
353
+ typedef Pointer val_alloc_ptr;
354
+ typedef typename boost::intrusive::pointer_traits<Pointer>::
355
+ template rebind_pointer<Pointer>::type index_pointer;
356
+
357
+ Pointer m_cur;
358
+ Pointer m_first;
359
+ index_pointer m_node;
360
+
361
+ public:
362
+
363
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline Pointer get_cur() const { return m_cur; }
364
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline Pointer get_first() const { return m_first; }
365
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline Pointer get_last() const { return m_first + get_block_ssize(); }
366
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline index_pointer get_node() const { return m_node; }
367
+
368
+ inline deque_iterator(val_alloc_ptr x, index_pointer y, difference_type ) BOOST_NOEXCEPT_OR_NOTHROW
369
+ : m_cur(x), m_first(*y), m_node(y)
370
+ {}
371
+
372
+ inline deque_iterator(val_alloc_ptr x, index_pointer y, size_type ) BOOST_NOEXCEPT_OR_NOTHROW
373
+ : m_cur(x), m_first(*y), m_node(y)
374
+ {}
375
+
376
+ inline deque_iterator() BOOST_NOEXCEPT_OR_NOTHROW
377
+ : m_cur(), m_first(), m_node() //Value initialization to achieve "null iterators" (N3644)
378
+ {}
379
+
380
+ inline deque_iterator(const deque_iterator& x) BOOST_NOEXCEPT_OR_NOTHROW
381
+ : m_cur(x.get_cur()), m_first(x.get_first()), m_node(x.get_node())
382
+ {}
383
+
384
+ inline deque_iterator(const nonconst_iterator& x) BOOST_NOEXCEPT_OR_NOTHROW
385
+ : m_cur(x.get_cur()), m_first(x.get_first()), m_node(x.get_node())
386
+ {}
387
+
388
+ inline deque_iterator(Pointer cur, Pointer first, index_pointer node) BOOST_NOEXCEPT_OR_NOTHROW
389
+ : m_cur(cur), m_first(first), m_node(node)
390
+ {}
391
+
392
+ inline deque_iterator& operator=(const deque_iterator& x) BOOST_NOEXCEPT_OR_NOTHROW
393
+ { m_cur = x.get_cur(); m_first = x.get_first(); m_node = x.get_node(); return *this; }
394
+
395
+ inline nonconst_iterator unconst() const BOOST_NOEXCEPT_OR_NOTHROW
396
+ {
397
+ return nonconst_iterator(this->get_cur(), this->get_first(), this->get_node());
398
+ }
399
+
400
+ inline reference operator*() const BOOST_NOEXCEPT_OR_NOTHROW
401
+ { return *this->m_cur; }
402
+
403
+ inline pointer operator->() const BOOST_NOEXCEPT_OR_NOTHROW
404
+ { return this->m_cur; }
405
+
406
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD difference_type operator-(const deque_iterator& x) const BOOST_NOEXCEPT_OR_NOTHROW
407
+ {
408
+ if(!this->m_cur && !x.m_cur){
409
+ return 0;
410
+ }
411
+ const difference_type block_size = get_block_ssize();
412
+ BOOST_ASSERT(block_size);
413
+ return block_size * (this->m_node - x.m_node - 1) +
414
+ (this->m_cur - this->m_first) + ((x.m_first+block_size) - x.m_cur);
415
+ }
416
+
417
+ deque_iterator& operator++() BOOST_NOEXCEPT_OR_NOTHROW
418
+ {
419
+ BOOST_ASSERT(!!m_cur);
420
+ ++this->m_cur;
421
+ const difference_type block_size = get_block_ssize();
422
+ if (this->m_cur == (this->m_first+block_size)) {
423
+
424
+ BOOST_ASSERT(block_size);
425
+ ++this->m_node;
426
+ this->m_first = *this->m_node;
427
+ this->m_cur = this->m_first;
428
+ }
429
+ return *this;
430
+ }
431
+
432
+ inline deque_iterator operator++(int) BOOST_NOEXCEPT_OR_NOTHROW
433
+ {
434
+ deque_iterator tmp(*this);
435
+ ++*this;
436
+ return tmp;
437
+ }
438
+
439
+ deque_iterator& operator--() BOOST_NOEXCEPT_OR_NOTHROW
440
+ {
441
+ BOOST_ASSERT(!!m_cur);
442
+ if (this->m_cur == this->m_first) {
443
+ --this->m_node;
444
+ this->m_first = *this->m_node;
445
+ this->m_cur = this->m_first + get_block_ssize();
446
+ }
447
+ --this->m_cur;
448
+ return *this;
449
+ }
450
+
451
+ inline deque_iterator operator--(int) BOOST_NOEXCEPT_OR_NOTHROW
452
+ {
453
+ deque_iterator tmp(*this);
454
+ --*this;
455
+ return tmp;
456
+ }
457
+
458
+ deque_iterator& operator+=(difference_type n) BOOST_NOEXCEPT_OR_NOTHROW
459
+ {
460
+ if (!n)
461
+ return *this;
462
+ BOOST_ASSERT(!!m_cur);
463
+ const difference_type offset = n + (this->m_cur - this->m_first);
464
+ const difference_type block_size = get_block_ssize();
465
+ BOOST_ASSERT(block_size);
466
+ if (offset >= 0 && offset < block_size)
467
+ this->m_cur += difference_type(n);
468
+ else {
469
+ const difference_type node_offset =
470
+ offset > 0 ? (offset / block_size)
471
+ : (-difference_type((-offset - 1) / block_size) - 1);
472
+ this->m_node += node_offset;
473
+ this->m_first = *this->m_node;
474
+ this->m_cur = this->m_first + (offset - node_offset * block_size);
475
+ }
476
+ return *this;
477
+ }
478
+
479
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
480
+ deque_iterator operator+(difference_type n) const BOOST_NOEXCEPT_OR_NOTHROW
481
+ { deque_iterator tmp(*this); return tmp += n; }
482
+
483
+ inline
484
+ deque_iterator& operator-=(difference_type n) BOOST_NOEXCEPT_OR_NOTHROW
485
+ { return *this += -n; }
486
+
487
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
488
+ deque_iterator operator-(difference_type n) const BOOST_NOEXCEPT_OR_NOTHROW
489
+ { deque_iterator tmp(*this); return tmp -= n; }
490
+
491
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
492
+ reference operator[](difference_type n) const BOOST_NOEXCEPT_OR_NOTHROW
493
+ { return *(*this + n); }
494
+
495
+ //Comparisons
496
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
497
+ friend bool operator==(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
498
+ { return l.m_cur == r.m_cur; }
499
+
500
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
501
+ friend bool operator!=(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
502
+ { return l.m_cur != r.m_cur; }
503
+
504
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
505
+ friend bool operator<(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
506
+ { return (l.m_node == r.m_node) ? (l.m_cur < r.m_cur) : (l.m_node < r.m_node); }
507
+
508
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
509
+ friend bool operator>(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
510
+ { return r < l; }
511
+
512
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
513
+ friend bool operator<=(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
514
+ { return !(r < l); }
515
+
516
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
517
+ friend bool operator>=(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
518
+ { return !(l < r); }
519
+
520
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
521
+ friend deque_iterator operator+(difference_type n, deque_iterator x) BOOST_NOEXCEPT_OR_NOTHROW
522
+ { return x += n; }
523
+
524
+ inline void priv_set_node(index_pointer new_node, size_type ) BOOST_NOEXCEPT_OR_NOTHROW
525
+ { return this->priv_set_node(new_node, difference_type()); }
526
+
527
+ inline void priv_set_node(index_pointer new_node, difference_type) BOOST_NOEXCEPT_OR_NOTHROW
528
+ {
529
+ this->m_node = new_node;
530
+ this->m_first = *new_node;
531
+ }
532
+ };
533
+
534
+ #elif BOOST_CONTAINER_DEQUE_LIGHTER_ITERATOR_LEVEL == 2
535
+
536
+ template<class Pointer, bool IsConst, unsigned BlockBytes, unsigned BlockSize>
537
+ class deque_iterator
538
+ {
539
+ public:
540
+ typedef std::random_access_iterator_tag iterator_category;
541
+ typedef typename boost::intrusive::pointer_traits<Pointer>::element_type value_type;
542
+ typedef typename boost::intrusive::pointer_traits<Pointer>::difference_type difference_type;
543
+ typedef typename boost::intrusive::pointer_traits<Pointer>::size_type size_type;
544
+ typedef typename if_c
545
+ < IsConst
546
+ , typename boost::intrusive::pointer_traits<Pointer>::template
547
+ rebind_pointer<const value_type>::type
548
+ , Pointer
549
+ >::type pointer;
550
+ typedef typename if_c
551
+ < IsConst
552
+ , const value_type&
553
+ , value_type&
554
+ >::type reference;
555
+
556
+ BOOST_CONSTEXPR inline static size_type get_block_size() BOOST_NOEXCEPT_OR_NOTHROW
557
+ {
558
+ BOOST_CONTAINER_STATIC_ASSERT((deque_block_size<value_type, BlockBytes, BlockSize>::value));
559
+ return deque_block_size<value_type, BlockBytes, BlockSize>::value;
560
+ }
561
+
562
+ BOOST_CONSTEXPR inline static difference_type get_block_ssize() BOOST_NOEXCEPT_OR_NOTHROW
563
+ { return difference_type((get_block_size())); }
564
+
565
+ class nat;
566
+ typedef typename dtl::if_c< IsConst
567
+ , deque_iterator<Pointer, false, BlockBytes, BlockSize>
568
+ , nat>::type nonconst_iterator;
569
+
570
+ typedef Pointer val_alloc_ptr;
571
+ typedef typename boost::intrusive::pointer_traits<Pointer>::
572
+ template rebind_pointer<Pointer>::type index_pointer;
573
+
574
+ Pointer m_cur;
575
+ index_pointer m_node;
576
+
577
+ public:
578
+
579
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline Pointer get_cur() const { return m_cur; }
580
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline Pointer get_first() const { return *m_node; }
581
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline Pointer get_last() const { return *m_node + get_block_ssize(); }
582
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline index_pointer get_node() const { return m_node; }
583
+
584
+ inline deque_iterator(val_alloc_ptr x, index_pointer y, difference_type ) BOOST_NOEXCEPT_OR_NOTHROW
585
+ : m_cur(x), m_node(y)
586
+ {}
587
+
588
+ inline deque_iterator(val_alloc_ptr x, index_pointer y, size_type ) BOOST_NOEXCEPT_OR_NOTHROW
589
+ : m_cur(x), m_node(y)
590
+ {}
591
+
592
+ inline deque_iterator() BOOST_NOEXCEPT_OR_NOTHROW
593
+ : m_cur(), m_node() //Value initialization to achieve "null iterators" (N3644)
594
+ {}
595
+
596
+ inline deque_iterator(const deque_iterator& x) BOOST_NOEXCEPT_OR_NOTHROW
597
+ : m_cur(x.get_cur()), m_node(x.get_node())
598
+ {}
599
+
600
+ inline deque_iterator(const nonconst_iterator& x) BOOST_NOEXCEPT_OR_NOTHROW
601
+ : m_cur(x.get_cur()), m_node(x.get_node())
602
+ {}
603
+
604
+ inline deque_iterator(Pointer cur, index_pointer node) BOOST_NOEXCEPT_OR_NOTHROW
605
+ : m_cur(cur), m_node(node)
606
+ {}
607
+
608
+ inline deque_iterator& operator=(const deque_iterator& x) BOOST_NOEXCEPT_OR_NOTHROW
609
+ { m_cur = x.get_cur(); m_node = x.get_node(); return *this; }
610
+
611
+ inline nonconst_iterator unconst() const BOOST_NOEXCEPT_OR_NOTHROW
612
+ {
613
+ return nonconst_iterator(this->get_cur(), this->get_node());
614
+ }
615
+
616
+ inline reference operator*() const BOOST_NOEXCEPT_OR_NOTHROW
617
+ { return *this->m_cur; }
618
+
619
+ inline pointer operator->() const BOOST_NOEXCEPT_OR_NOTHROW
620
+ { return this->m_cur; }
621
+
622
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD difference_type operator-(const deque_iterator& x) const BOOST_NOEXCEPT_OR_NOTHROW
623
+ {
624
+ if(!this->m_cur && !x.m_cur){
625
+ return 0;
626
+ }
627
+ const difference_type block_size = get_block_ssize();
628
+ BOOST_ASSERT(block_size);
629
+ return block_size * (this->m_node - x.m_node - 1) +
630
+ (this->m_cur - this->get_first()) + (x.get_last() - x.m_cur);
631
+ }
632
+
633
+ deque_iterator& operator++() BOOST_NOEXCEPT_OR_NOTHROW
634
+ {
635
+ BOOST_ASSERT(!!m_cur);
636
+ ++this->m_cur;
637
+ if (this->m_cur == (this->get_last())) {
638
+
639
+ ++this->m_node;
640
+ this->m_cur = *this->m_node;
641
+ }
642
+ return *this;
643
+ }
644
+
645
+ inline deque_iterator operator++(int) BOOST_NOEXCEPT_OR_NOTHROW
646
+ {
647
+ deque_iterator tmp(*this);
648
+ ++*this;
649
+ return tmp;
650
+ }
651
+
652
+ deque_iterator& operator--() BOOST_NOEXCEPT_OR_NOTHROW
653
+ {
654
+ BOOST_ASSERT(!!m_cur);
655
+ if (this->m_cur == this->get_first()) {
656
+ --this->m_node;
657
+ this->m_cur = this->get_last();
658
+ }
659
+ --this->m_cur;
660
+ return *this;
661
+ }
662
+
663
+ inline deque_iterator operator--(int) BOOST_NOEXCEPT_OR_NOTHROW
664
+ {
665
+ deque_iterator tmp(*this);
666
+ --*this;
667
+ return tmp;
668
+ }
669
+
670
+ deque_iterator& operator+=(difference_type n) BOOST_NOEXCEPT_OR_NOTHROW
671
+ {
672
+ if (!n)
673
+ return *this;
674
+ BOOST_ASSERT(!!m_cur);
675
+ const difference_type offset = n + (this->m_cur - this->get_first());
676
+ const difference_type block_size = get_block_ssize();
677
+ BOOST_ASSERT(block_size);
678
+ if (offset >= 0 && offset < block_size)
679
+ this->m_cur += difference_type(n);
680
+ else {
681
+ const difference_type node_offset =
682
+ offset > 0 ? (offset / block_size)
683
+ : (-difference_type((-offset - 1) / block_size) - 1);
684
+ this->m_node += node_offset;
685
+ this->m_cur = this->get_first() + (offset - node_offset * block_size);
686
+ }
687
+ return *this;
688
+ }
689
+
690
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
691
+ deque_iterator operator+(difference_type n) const BOOST_NOEXCEPT_OR_NOTHROW
692
+ { deque_iterator tmp(*this); return tmp += n; }
693
+
694
+ inline
695
+ deque_iterator& operator-=(difference_type n) BOOST_NOEXCEPT_OR_NOTHROW
696
+ { return *this += -n; }
697
+
698
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
699
+ deque_iterator operator-(difference_type n) const BOOST_NOEXCEPT_OR_NOTHROW
700
+ { deque_iterator tmp(*this); return tmp -= n; }
701
+
702
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
703
+ reference operator[](difference_type n) const BOOST_NOEXCEPT_OR_NOTHROW
704
+ {
705
+ BOOST_ASSERT(!!m_cur);
706
+ const difference_type offset = n + (this->m_cur - this->get_first());
707
+ const difference_type block_size = get_block_ssize();
708
+ if (offset >= 0 && offset < block_size)
709
+ return this->m_cur[difference_type(n)];
710
+ else {
711
+ const difference_type node_offset = offset > 0
712
+ ? (offset / block_size)
713
+ : (-difference_type((-offset - 1) / block_size) - 1);
714
+ return (this->m_node[node_offset]) [offset - node_offset * block_size];
715
+ }
716
+ }
717
+
718
+ //Comparisons
719
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
720
+ friend bool operator==(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
721
+ { return l.m_cur == r.m_cur; }
722
+
723
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
724
+ friend bool operator!=(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
725
+ { return l.m_cur != r.m_cur; }
726
+
727
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
728
+ friend bool operator<(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
729
+ { return (l.m_node == r.m_node) ? (l.m_cur < r.m_cur) : (l.m_node < r.m_node); }
730
+
731
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
732
+ friend bool operator>(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
733
+ { return r < l; }
734
+
735
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
736
+ friend bool operator<=(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
737
+ { return !(r < l); }
738
+
739
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
740
+ friend bool operator>=(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
741
+ { return !(l < r); }
742
+
743
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
744
+ friend deque_iterator operator+(difference_type n, deque_iterator x) BOOST_NOEXCEPT_OR_NOTHROW
745
+ { return x += n; }
746
+
747
+ inline void priv_set_node(index_pointer new_node, size_type ) BOOST_NOEXCEPT_OR_NOTHROW
748
+ { return this->priv_set_node(new_node, difference_type()); }
749
+
750
+ inline void priv_set_node(index_pointer new_node, difference_type) BOOST_NOEXCEPT_OR_NOTHROW
751
+ {
752
+ this->m_node = new_node;
753
+ }
754
+ };
755
+
756
+ #else
757
+
758
+ #error "Invalid BOOST_CONTAINER_DEQUE_LIGHTER_ITERATOR_LEVEL"
759
+
760
+ #endif
308
761
  } //namespace dtl {
309
762
 
310
763
  template<class Options>
@@ -346,45 +799,54 @@ class deque_base
346
799
  typedef Allocator allocator_type;
347
800
  typedef allocator_type stored_allocator_type;
348
801
  typedef val_alloc_size size_type;
802
+ typedef val_alloc_diff difference_type;
349
803
 
350
804
  private:
351
805
  typedef typename get_deque_opt<Options>::type options_type;
352
806
 
353
807
  protected:
808
+ #if BOOST_CONTAINER_DEQUE_LIGHTER_ITERATOR_LEVEL == 0
354
809
  typedef dtl::deque_iterator<val_alloc_ptr, false> iterator;
355
- typedef dtl::deque_iterator<val_alloc_ptr, true > const_iterator;
810
+ typedef dtl::deque_iterator<val_alloc_ptr, true> const_iterator;
811
+ #else
812
+ typedef dtl::deque_iterator<val_alloc_ptr, false, options_type::block_bytes, options_type::block_size> iterator;
813
+ typedef dtl::deque_iterator<val_alloc_ptr, true, options_type::block_bytes, options_type::block_size> const_iterator;
814
+ #endif
815
+
816
+ BOOST_CONSTEXPR inline static val_alloc_diff get_block_ssize() BOOST_NOEXCEPT_OR_NOTHROW
817
+ { return val_alloc_diff((get_block_size())); }
356
818
 
357
- BOOST_CONSTEXPR BOOST_CONTAINER_FORCEINLINE static size_type get_block_size() BOOST_NOEXCEPT_OR_NOTHROW
819
+ BOOST_CONSTEXPR inline static size_type get_block_size() BOOST_NOEXCEPT_OR_NOTHROW
358
820
  { return deque_block_size<val_alloc_val, options_type::block_bytes, options_type::block_size>::value; }
359
821
 
360
822
  typedef deque_value_traits<val_alloc_val> traits_t;
361
823
  typedef ptr_alloc_t map_allocator_type;
362
824
 
363
- BOOST_CONTAINER_FORCEINLINE val_alloc_ptr priv_allocate_node()
825
+ inline val_alloc_ptr priv_allocate_node()
364
826
  { return this->alloc().allocate(get_block_size()); }
365
827
 
366
- BOOST_CONTAINER_FORCEINLINE void priv_deallocate_node(val_alloc_ptr p) BOOST_NOEXCEPT_OR_NOTHROW
828
+ inline void priv_deallocate_node(val_alloc_ptr p) BOOST_NOEXCEPT_OR_NOTHROW
367
829
  { this->alloc().deallocate(p, get_block_size()); }
368
830
 
369
- BOOST_CONTAINER_FORCEINLINE ptr_alloc_ptr priv_allocate_map(size_type n)
831
+ inline ptr_alloc_ptr priv_allocate_map(size_type n)
370
832
  { return this->ptr_alloc().allocate(n); }
371
833
 
372
- BOOST_CONTAINER_FORCEINLINE void priv_deallocate_map(ptr_alloc_ptr p, size_type n) BOOST_NOEXCEPT_OR_NOTHROW
834
+ inline void priv_deallocate_map(ptr_alloc_ptr p, size_type n) BOOST_NOEXCEPT_OR_NOTHROW
373
835
  { this->ptr_alloc().deallocate(p, n); }
374
836
 
375
- BOOST_CONTAINER_FORCEINLINE deque_base(size_type num_elements, const allocator_type& a)
837
+ inline deque_base(size_type num_elements, const allocator_type& a)
376
838
  : members_(a)
377
839
  { this->priv_initialize_map(num_elements); }
378
840
 
379
- BOOST_CONTAINER_FORCEINLINE explicit deque_base(const allocator_type& a)
841
+ inline explicit deque_base(const allocator_type& a)
380
842
  : members_(a)
381
843
  {}
382
844
 
383
- BOOST_CONTAINER_FORCEINLINE deque_base()
845
+ inline deque_base()
384
846
  : members_()
385
847
  {}
386
848
 
387
- BOOST_CONTAINER_FORCEINLINE explicit deque_base(BOOST_RV_REF(deque_base) x)
849
+ inline explicit deque_base(BOOST_RV_REF(deque_base) x)
388
850
  : members_( boost::move(x.ptr_alloc())
389
851
  , boost::move(x.alloc()) )
390
852
  {}
@@ -418,40 +880,39 @@ class deque_base
418
880
  this->members_.m_map_size = dtl::max_value((size_type) InitialMapSize, num_nodes + 2);
419
881
  this->members_.m_map = this->priv_allocate_map(this->members_.m_map_size);
420
882
 
421
- ptr_alloc_ptr nstart = this->members_.m_map + (this->members_.m_map_size - num_nodes) / 2;
422
- ptr_alloc_ptr nfinish = nstart + num_nodes;
883
+ ptr_alloc_ptr nstart = this->members_.m_map + difference_type(this->members_.m_map_size - num_nodes) / 2;
884
+ ptr_alloc_ptr nfinish = nstart + difference_type(num_nodes);
423
885
 
424
- BOOST_TRY {
886
+ BOOST_CONTAINER_TRY {
425
887
  this->priv_create_nodes(nstart, nfinish);
426
888
  }
427
- BOOST_CATCH(...){
889
+ BOOST_CONTAINER_CATCH(...){
428
890
  this->priv_deallocate_map(this->members_.m_map, this->members_.m_map_size);
429
891
  this->members_.m_map = 0;
430
892
  this->members_.m_map_size = 0;
431
- BOOST_RETHROW
893
+ BOOST_CONTAINER_RETHROW
432
894
  }
433
- BOOST_CATCH_END
895
+ BOOST_CONTAINER_CATCH_END
434
896
 
435
897
  this->members_.m_start.priv_set_node(nstart, get_block_size());
436
898
  this->members_.m_finish.priv_set_node(nfinish - 1, get_block_size());
437
- this->members_.m_start.m_cur = this->members_.m_start.m_first;
438
- this->members_.m_finish.m_cur = this->members_.m_finish.m_first +
439
- num_elements % get_block_size();
899
+ this->members_.m_start.m_cur = this->members_.m_start.get_first();
900
+ this->members_.m_finish.m_cur = this->members_.m_finish.get_first() + difference_type(num_elements % get_block_size());
440
901
  // }
441
902
  }
442
903
 
443
904
  void priv_create_nodes(ptr_alloc_ptr nstart, ptr_alloc_ptr nfinish)
444
905
  {
445
906
  ptr_alloc_ptr cur = nstart;
446
- BOOST_TRY {
907
+ BOOST_CONTAINER_TRY {
447
908
  for (; cur < nfinish; ++cur)
448
909
  *cur = this->priv_allocate_node();
449
910
  }
450
- BOOST_CATCH(...){
911
+ BOOST_CONTAINER_CATCH(...){
451
912
  this->priv_destroy_nodes(nstart, cur);
452
- BOOST_RETHROW
913
+ BOOST_CONTAINER_RETHROW
453
914
  }
454
- BOOST_CATCH_END
915
+ BOOST_CONTAINER_CATCH_END
455
916
  }
456
917
 
457
918
  void priv_destroy_nodes(ptr_alloc_ptr nstart, ptr_alloc_ptr nfinish) BOOST_NOEXCEPT_OR_NOTHROW
@@ -505,16 +966,16 @@ class deque_base
505
966
  iterator m_finish;
506
967
  } members_;
507
968
 
508
- BOOST_CONTAINER_FORCEINLINE ptr_alloc_t &ptr_alloc() BOOST_NOEXCEPT_OR_NOTHROW
969
+ inline ptr_alloc_t &ptr_alloc() BOOST_NOEXCEPT_OR_NOTHROW
509
970
  { return members_; }
510
971
 
511
- BOOST_CONTAINER_FORCEINLINE const ptr_alloc_t &ptr_alloc() const BOOST_NOEXCEPT_OR_NOTHROW
972
+ inline const ptr_alloc_t &ptr_alloc() const BOOST_NOEXCEPT_OR_NOTHROW
512
973
  { return members_; }
513
974
 
514
- BOOST_CONTAINER_FORCEINLINE allocator_type &alloc() BOOST_NOEXCEPT_OR_NOTHROW
975
+ inline allocator_type &alloc() BOOST_NOEXCEPT_OR_NOTHROW
515
976
  { return members_; }
516
977
 
517
- BOOST_CONTAINER_FORCEINLINE const allocator_type &alloc() const BOOST_NOEXCEPT_OR_NOTHROW
978
+ inline const allocator_type &alloc() const BOOST_NOEXCEPT_OR_NOTHROW
518
979
  { return members_; }
519
980
  };
520
981
  #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
@@ -538,6 +999,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
538
999
  typedef deque_base<typename real_allocator<T, Allocator>::type, Options> Base;
539
1000
  #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
540
1001
  typedef typename real_allocator<T, Allocator>::type ValAllocator;
1002
+ typedef constant_iterator<T> c_it;
541
1003
 
542
1004
  public:
543
1005
 
@@ -564,16 +1026,23 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
564
1026
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
565
1027
 
566
1028
  private: // Internal typedefs
1029
+
1030
+ //`allocator_type::value_type` must match container's `value type`. If this
1031
+ //assertion fails, please review your allocator definition.
1032
+ BOOST_CONTAINER_STATIC_ASSERT((dtl::is_same<value_type, typename allocator_traits<ValAllocator>::value_type>::value));
1033
+
567
1034
  BOOST_COPYABLE_AND_MOVABLE(deque)
568
1035
  typedef typename Base::ptr_alloc_ptr index_pointer;
569
1036
  typedef allocator_traits<ValAllocator> allocator_traits_type;
570
1037
 
571
1038
  #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
572
1039
 
1040
+ using Base::get_block_ssize;
1041
+
573
1042
  public:
574
1043
 
575
- BOOST_CONSTEXPR BOOST_CONTAINER_FORCEINLINE static size_type get_block_size() BOOST_NOEXCEPT_OR_NOTHROW
576
- { return Base::get_block_size(); }
1044
+ using Base::get_block_size;
1045
+
577
1046
 
578
1047
  //////////////////////////////////////////////
579
1048
  //
@@ -586,7 +1055,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
586
1055
  //! <b>Throws</b>: If allocator_type's default constructor throws.
587
1056
  //!
588
1057
  //! <b>Complexity</b>: Constant.
589
- BOOST_CONTAINER_FORCEINLINE deque()
1058
+ inline deque()
590
1059
  BOOST_NOEXCEPT_IF(dtl::is_nothrow_default_constructible<ValAllocator>::value)
591
1060
  : Base()
592
1061
  {}
@@ -596,7 +1065,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
596
1065
  //! <b>Throws</b>: Nothing
597
1066
  //!
598
1067
  //! <b>Complexity</b>: Constant.
599
- BOOST_CONTAINER_FORCEINLINE explicit deque(const allocator_type& a) BOOST_NOEXCEPT_OR_NOTHROW
1068
+ inline explicit deque(const allocator_type& a) BOOST_NOEXCEPT_OR_NOTHROW
600
1069
  : Base(a)
601
1070
  {}
602
1071
 
@@ -607,10 +1076,10 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
607
1076
  //! throws or T's value initialization throws.
608
1077
  //!
609
1078
  //! <b>Complexity</b>: Linear to n.
610
- BOOST_CONTAINER_FORCEINLINE explicit deque(size_type n)
1079
+ inline explicit deque(size_type n)
611
1080
  : Base(n, allocator_type())
612
1081
  {
613
- dtl::insert_value_initialized_n_proxy<ValAllocator, iterator> proxy;
1082
+ dtl::insert_value_initialized_n_proxy<ValAllocator> proxy;
614
1083
  proxy.uninitialized_copy_n_and_update(this->alloc(), this->begin(), n);
615
1084
  //deque_base will deallocate in case of exception...
616
1085
  }
@@ -624,10 +1093,10 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
624
1093
  //! <b>Complexity</b>: Linear to n.
625
1094
  //!
626
1095
  //! <b>Note</b>: Non-standard extension
627
- BOOST_CONTAINER_FORCEINLINE deque(size_type n, default_init_t)
1096
+ inline deque(size_type n, default_init_t)
628
1097
  : Base(n, allocator_type())
629
1098
  {
630
- dtl::insert_default_initialized_n_proxy<ValAllocator, iterator> proxy;
1099
+ dtl::insert_default_initialized_n_proxy<ValAllocator> proxy;
631
1100
  proxy.uninitialized_copy_n_and_update(this->alloc(), this->begin(), n);
632
1101
  //deque_base will deallocate in case of exception...
633
1102
  }
@@ -639,10 +1108,10 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
639
1108
  //! throws or T's value initialization throws.
640
1109
  //!
641
1110
  //! <b>Complexity</b>: Linear to n.
642
- BOOST_CONTAINER_FORCEINLINE explicit deque(size_type n, const allocator_type &a)
1111
+ inline explicit deque(size_type n, const allocator_type &a)
643
1112
  : Base(n, a)
644
1113
  {
645
- dtl::insert_value_initialized_n_proxy<ValAllocator, iterator> proxy;
1114
+ dtl::insert_value_initialized_n_proxy<ValAllocator> proxy;
646
1115
  proxy.uninitialized_copy_n_and_update(this->alloc(), this->begin(), n);
647
1116
  //deque_base will deallocate in case of exception...
648
1117
  }
@@ -656,10 +1125,10 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
656
1125
  //! <b>Complexity</b>: Linear to n.
657
1126
  //!
658
1127
  //! <b>Note</b>: Non-standard extension
659
- BOOST_CONTAINER_FORCEINLINE deque(size_type n, default_init_t, const allocator_type &a)
1128
+ inline deque(size_type n, default_init_t, const allocator_type &a)
660
1129
  : Base(n, a)
661
1130
  {
662
- dtl::insert_default_initialized_n_proxy<ValAllocator, iterator> proxy;
1131
+ dtl::insert_default_initialized_n_proxy<ValAllocator> proxy;
663
1132
  proxy.uninitialized_copy_n_and_update(this->alloc(), this->begin(), n);
664
1133
  //deque_base will deallocate in case of exception...
665
1134
  }
@@ -671,7 +1140,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
671
1140
  //! throws or T's copy constructor throws.
672
1141
  //!
673
1142
  //! <b>Complexity</b>: Linear to n.
674
- BOOST_CONTAINER_FORCEINLINE deque(size_type n, const value_type& value)
1143
+ inline deque(size_type n, const value_type& value)
675
1144
  : Base(n, allocator_type())
676
1145
  { this->priv_fill_initialize(value); }
677
1146
 
@@ -682,7 +1151,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
682
1151
  //! throws or T's copy constructor throws.
683
1152
  //!
684
1153
  //! <b>Complexity</b>: Linear to n.
685
- BOOST_CONTAINER_FORCEINLINE deque(size_type n, const value_type& value, const allocator_type& a)
1154
+ inline deque(size_type n, const value_type& value, const allocator_type& a)
686
1155
  : Base(n, a)
687
1156
  { this->priv_fill_initialize(value); }
688
1157
 
@@ -694,7 +1163,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
694
1163
  //!
695
1164
  //! <b>Complexity</b>: Linear to the range [first, last).
696
1165
  template <class InIt>
697
- BOOST_CONTAINER_FORCEINLINE deque(InIt first, InIt last
1166
+ inline deque(InIt first, InIt last
698
1167
  #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
699
1168
  , typename dtl::disable_if_convertible
700
1169
  <InIt, size_type>::type * = 0
@@ -713,7 +1182,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
713
1182
  //!
714
1183
  //! <b>Complexity</b>: Linear to the range [first, last).
715
1184
  template <class InIt>
716
- BOOST_CONTAINER_FORCEINLINE deque(InIt first, InIt last, const allocator_type& a
1185
+ inline deque(InIt first, InIt last, const allocator_type& a
717
1186
  #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
718
1187
  , typename dtl::disable_if_convertible
719
1188
  <InIt, size_type>::type * = 0
@@ -732,7 +1201,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
732
1201
  //! throws or T's constructor taking a dereferenced std::initializer_list iterator throws.
733
1202
  //!
734
1203
  //! <b>Complexity</b>: Linear to the range [il.begin(), il.end()).
735
- BOOST_CONTAINER_FORCEINLINE deque(std::initializer_list<value_type> il, const allocator_type& a = allocator_type())
1204
+ inline deque(std::initializer_list<value_type> il, const allocator_type& a = allocator_type())
736
1205
  : Base(a)
737
1206
  {
738
1207
  this->priv_range_initialize(il.begin(), il.end());
@@ -744,7 +1213,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
744
1213
  //! <b>Postcondition</b>: x == *this.
745
1214
  //!
746
1215
  //! <b>Complexity</b>: Linear to the elements x contains.
747
- BOOST_CONTAINER_FORCEINLINE deque(const deque& x)
1216
+ inline deque(const deque& x)
748
1217
  : Base(allocator_traits_type::select_on_container_copy_construction(x.alloc()))
749
1218
  {
750
1219
  if(x.size()){
@@ -759,7 +1228,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
759
1228
  //! <b>Throws</b>: If allocator_type's copy constructor throws.
760
1229
  //!
761
1230
  //! <b>Complexity</b>: Constant.
762
- BOOST_CONTAINER_FORCEINLINE deque(BOOST_RV_REF(deque) x) BOOST_NOEXCEPT_OR_NOTHROW
1231
+ inline deque(BOOST_RV_REF(deque) x) BOOST_NOEXCEPT_OR_NOTHROW
763
1232
  : Base(BOOST_MOVE_BASE(Base, x))
764
1233
  { this->swap_members(x); }
765
1234
 
@@ -810,7 +1279,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
810
1279
  //! <b>Throws</b>: Nothing.
811
1280
  //!
812
1281
  //! <b>Complexity</b>: Linear to the number of elements.
813
- BOOST_CONTAINER_FORCEINLINE ~deque() BOOST_NOEXCEPT_OR_NOTHROW
1282
+ inline ~deque() BOOST_NOEXCEPT_OR_NOTHROW
814
1283
  {
815
1284
  this->priv_destroy_range(this->members_.m_start, this->members_.m_finish);
816
1285
  }
@@ -854,28 +1323,13 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
854
1323
  || allocator_traits_type::is_always_equal::value)
855
1324
  {
856
1325
  if (BOOST_LIKELY(this != &x)) {
857
- allocator_type &this_alloc = this->alloc();
858
- allocator_type &x_alloc = x.alloc();
859
- const bool propagate_alloc = allocator_traits_type::
860
- propagate_on_container_move_assignment::value;
861
- dtl::bool_<propagate_alloc> flag;
862
- const bool allocators_equal = this_alloc == x_alloc; (void)allocators_equal;
863
- //Resources can be transferred if both allocators are
864
- //going to be equal after this function (either propagated or already equal)
865
- if(propagate_alloc || allocators_equal){
866
- //Destroy objects but retain memory in case x reuses it in the future
867
- this->clear();
868
- //Move allocator if needed
869
- dtl::move_alloc(this_alloc, x_alloc, flag);
870
- dtl::move_alloc(this->ptr_alloc(), x.ptr_alloc(), flag);
871
- //Nothrow swap
872
- this->swap_members(x);
873
- }
874
- //Else do a one by one move
875
- else{
876
- this->assign( boost::make_move_iterator(x.begin())
877
- , boost::make_move_iterator(x.end()));
878
- }
1326
+ //We know resources can be transferred at comiple time if both allocators are
1327
+ //always equal or the allocator is going to be propagated
1328
+ const bool can_steal_resources_alloc
1329
+ = allocator_traits_type::propagate_on_container_move_assignment::value
1330
+ || allocator_traits_type::is_always_equal::value;
1331
+ dtl::bool_<can_steal_resources_alloc> flag;
1332
+ this->priv_move_assign(boost::move(x), flag);
879
1333
  }
880
1334
  return *this;
881
1335
  }
@@ -889,7 +1343,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
889
1343
  //! <b>Throws</b>: If memory allocation throws or T's copy constructor throws.
890
1344
  //!
891
1345
  //! <b>Complexity</b>: Linear to the number of elements in il.
892
- BOOST_CONTAINER_FORCEINLINE deque& operator=(std::initializer_list<value_type> il)
1346
+ inline deque& operator=(std::initializer_list<value_type> il)
893
1347
  {
894
1348
  this->assign(il.begin(), il.end());
895
1349
  return *this;
@@ -901,9 +1355,8 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
901
1355
  //! <b>Throws</b>: If memory allocation throws or T's copy constructor throws.
902
1356
  //!
903
1357
  //! <b>Complexity</b>: Linear to n.
904
- BOOST_CONTAINER_FORCEINLINE void assign(size_type n, const T& val)
1358
+ inline void assign(size_type n, const T& val)
905
1359
  {
906
- typedef constant_iterator<value_type, difference_type> c_it;
907
1360
  this->assign(c_it(val, n), c_it());
908
1361
  }
909
1362
 
@@ -946,10 +1399,10 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
946
1399
  >::type * = 0
947
1400
  )
948
1401
  {
949
- const size_type len = boost::container::iterator_distance(first, last);
1402
+ const size_type len = boost::container::iterator_udistance(first, last);
950
1403
  if (len > size()) {
951
1404
  FwdIt mid = first;
952
- boost::container::iterator_advance(mid, this->size());
1405
+ boost::container::iterator_uadvance(mid, this->size());
953
1406
  boost::container::copy(first, mid, begin());
954
1407
  this->insert(this->cend(), mid, last);
955
1408
  }
@@ -966,7 +1419,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
966
1419
  //! T's constructor from dereferencing std::initializer_list iterator throws.
967
1420
  //!
968
1421
  //! <b>Complexity</b>: Linear to il.size().
969
- BOOST_CONTAINER_FORCEINLINE void assign(std::initializer_list<value_type> il)
1422
+ inline void assign(std::initializer_list<value_type> il)
970
1423
  { this->assign(il.begin(), il.end()); }
971
1424
  #endif
972
1425
 
@@ -975,7 +1428,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
975
1428
  //! <b>Throws</b>: If allocator's copy constructor throws.
976
1429
  //!
977
1430
  //! <b>Complexity</b>: Constant.
978
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1431
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
979
1432
  allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
980
1433
  { return Base::alloc(); }
981
1434
 
@@ -986,7 +1439,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
986
1439
  //! <b>Complexity</b>: Constant.
987
1440
  //!
988
1441
  //! <b>Note</b>: Non-standard extension.
989
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1442
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
990
1443
  const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
991
1444
  { return Base::alloc(); }
992
1445
 
@@ -1003,7 +1456,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1003
1456
  //! <b>Complexity</b>: Constant.
1004
1457
  //!
1005
1458
  //! <b>Note</b>: Non-standard extension.
1006
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1459
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1007
1460
  stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW
1008
1461
  { return Base::alloc(); }
1009
1462
 
@@ -1012,7 +1465,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1012
1465
  //! <b>Throws</b>: Nothing.
1013
1466
  //!
1014
1467
  //! <b>Complexity</b>: Constant.
1015
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1468
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1016
1469
  iterator begin() BOOST_NOEXCEPT_OR_NOTHROW
1017
1470
  { return this->members_.m_start; }
1018
1471
 
@@ -1021,7 +1474,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1021
1474
  //! <b>Throws</b>: Nothing.
1022
1475
  //!
1023
1476
  //! <b>Complexity</b>: Constant.
1024
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1477
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1025
1478
  const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW
1026
1479
  { return this->members_.m_start; }
1027
1480
 
@@ -1030,7 +1483,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1030
1483
  //! <b>Throws</b>: Nothing.
1031
1484
  //!
1032
1485
  //! <b>Complexity</b>: Constant.
1033
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1486
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1034
1487
  iterator end() BOOST_NOEXCEPT_OR_NOTHROW
1035
1488
  { return this->members_.m_finish; }
1036
1489
 
@@ -1039,7 +1492,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1039
1492
  //! <b>Throws</b>: Nothing.
1040
1493
  //!
1041
1494
  //! <b>Complexity</b>: Constant.
1042
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1495
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1043
1496
  const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW
1044
1497
  { return this->members_.m_finish; }
1045
1498
 
@@ -1049,7 +1502,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1049
1502
  //! <b>Throws</b>: Nothing.
1050
1503
  //!
1051
1504
  //! <b>Complexity</b>: Constant.
1052
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1505
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1053
1506
  reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW
1054
1507
  { return reverse_iterator(this->members_.m_finish); }
1055
1508
 
@@ -1059,7 +1512,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1059
1512
  //! <b>Throws</b>: Nothing.
1060
1513
  //!
1061
1514
  //! <b>Complexity</b>: Constant.
1062
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1515
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1063
1516
  const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW
1064
1517
  { return const_reverse_iterator(this->members_.m_finish); }
1065
1518
 
@@ -1069,7 +1522,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1069
1522
  //! <b>Throws</b>: Nothing.
1070
1523
  //!
1071
1524
  //! <b>Complexity</b>: Constant.
1072
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1525
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1073
1526
  reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW
1074
1527
  { return reverse_iterator(this->members_.m_start); }
1075
1528
 
@@ -1079,7 +1532,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1079
1532
  //! <b>Throws</b>: Nothing.
1080
1533
  //!
1081
1534
  //! <b>Complexity</b>: Constant.
1082
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1535
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1083
1536
  const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW
1084
1537
  { return const_reverse_iterator(this->members_.m_start); }
1085
1538
 
@@ -1088,7 +1541,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1088
1541
  //! <b>Throws</b>: Nothing.
1089
1542
  //!
1090
1543
  //! <b>Complexity</b>: Constant.
1091
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1544
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1092
1545
  const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW
1093
1546
  { return this->members_.m_start; }
1094
1547
 
@@ -1097,7 +1550,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1097
1550
  //! <b>Throws</b>: Nothing.
1098
1551
  //!
1099
1552
  //! <b>Complexity</b>: Constant.
1100
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1553
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1101
1554
  const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW
1102
1555
  { return this->members_.m_finish; }
1103
1556
 
@@ -1107,7 +1560,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1107
1560
  //! <b>Throws</b>: Nothing.
1108
1561
  //!
1109
1562
  //! <b>Complexity</b>: Constant.
1110
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1563
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1111
1564
  const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW
1112
1565
  { return const_reverse_iterator(this->members_.m_finish); }
1113
1566
 
@@ -1117,7 +1570,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1117
1570
  //! <b>Throws</b>: Nothing.
1118
1571
  //!
1119
1572
  //! <b>Complexity</b>: Constant.
1120
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1573
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1121
1574
  const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW
1122
1575
  { return const_reverse_iterator(this->members_.m_start); }
1123
1576
 
@@ -1132,7 +1585,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1132
1585
  //! <b>Throws</b>: Nothing.
1133
1586
  //!
1134
1587
  //! <b>Complexity</b>: Constant.
1135
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1588
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1136
1589
  bool empty() const BOOST_NOEXCEPT_OR_NOTHROW
1137
1590
  { return this->members_.m_finish == this->members_.m_start; }
1138
1591
 
@@ -1141,16 +1594,16 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1141
1594
  //! <b>Throws</b>: Nothing.
1142
1595
  //!
1143
1596
  //! <b>Complexity</b>: Constant.
1144
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1597
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1145
1598
  size_type size() const BOOST_NOEXCEPT_OR_NOTHROW
1146
- { return this->members_.m_finish - this->members_.m_start; }
1599
+ { return size_type(this->members_.m_finish - this->members_.m_start); }
1147
1600
 
1148
1601
  //! <b>Effects</b>: Returns the largest possible size of the deque.
1149
1602
  //!
1150
1603
  //! <b>Throws</b>: Nothing.
1151
1604
  //!
1152
1605
  //! <b>Complexity</b>: Constant.
1153
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1606
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1154
1607
  size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
1155
1608
  { return allocator_traits_type::max_size(this->alloc()); }
1156
1609
 
@@ -1167,7 +1620,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1167
1620
  this->priv_erase_last_n(len - new_size);
1168
1621
  else{
1169
1622
  const size_type n = new_size - this->size();
1170
- dtl::insert_value_initialized_n_proxy<ValAllocator, iterator> proxy;
1623
+ dtl::insert_value_initialized_n_proxy<ValAllocator> proxy;
1171
1624
  priv_insert_back_aux_impl(n, proxy);
1172
1625
  }
1173
1626
  }
@@ -1187,7 +1640,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1187
1640
  this->priv_erase_last_n(len - new_size);
1188
1641
  else{
1189
1642
  const size_type n = new_size - this->size();
1190
- dtl::insert_default_initialized_n_proxy<ValAllocator, iterator> proxy;
1643
+ dtl::insert_default_initialized_n_proxy<ValAllocator> proxy;
1191
1644
  priv_insert_back_aux_impl(n, proxy);
1192
1645
  }
1193
1646
  }
@@ -1202,7 +1655,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1202
1655
  {
1203
1656
  const size_type len = size();
1204
1657
  if (new_size < len)
1205
- this->erase(this->members_.m_start + new_size, this->members_.m_finish);
1658
+ this->erase(this->members_.m_start + difference_type(new_size), this->members_.m_finish);
1206
1659
  else
1207
1660
  this->insert(this->members_.m_finish, new_size - len, x);
1208
1661
  }
@@ -1238,7 +1691,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1238
1691
  //! <b>Throws</b>: Nothing.
1239
1692
  //!
1240
1693
  //! <b>Complexity</b>: Constant.
1241
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1694
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1242
1695
  reference front() BOOST_NOEXCEPT_OR_NOTHROW
1243
1696
  {
1244
1697
  BOOST_ASSERT(!this->empty());
@@ -1253,7 +1706,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1253
1706
  //! <b>Throws</b>: Nothing.
1254
1707
  //!
1255
1708
  //! <b>Complexity</b>: Constant.
1256
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1709
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1257
1710
  const_reference front() const BOOST_NOEXCEPT_OR_NOTHROW
1258
1711
  {
1259
1712
  BOOST_ASSERT(!this->empty());
@@ -1268,7 +1721,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1268
1721
  //! <b>Throws</b>: Nothing.
1269
1722
  //!
1270
1723
  //! <b>Complexity</b>: Constant.
1271
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1724
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1272
1725
  reference back() BOOST_NOEXCEPT_OR_NOTHROW
1273
1726
  {
1274
1727
  BOOST_ASSERT(!this->empty());
@@ -1283,7 +1736,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1283
1736
  //! <b>Throws</b>: Nothing.
1284
1737
  //!
1285
1738
  //! <b>Complexity</b>: Constant.
1286
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1739
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1287
1740
  const_reference back() const BOOST_NOEXCEPT_OR_NOTHROW
1288
1741
  {
1289
1742
  BOOST_ASSERT(!this->empty());
@@ -1298,7 +1751,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1298
1751
  //! <b>Throws</b>: Nothing.
1299
1752
  //!
1300
1753
  //! <b>Complexity</b>: Constant.
1301
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1754
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1302
1755
  reference operator[](size_type n) BOOST_NOEXCEPT_OR_NOTHROW
1303
1756
  {
1304
1757
  BOOST_ASSERT(this->size() > n);
@@ -1313,7 +1766,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1313
1766
  //! <b>Throws</b>: Nothing.
1314
1767
  //!
1315
1768
  //! <b>Complexity</b>: Constant.
1316
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1769
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1317
1770
  const_reference operator[](size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
1318
1771
  {
1319
1772
  BOOST_ASSERT(this->size() > n);
@@ -1331,11 +1784,11 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1331
1784
  //! <b>Complexity</b>: Constant.
1332
1785
  //!
1333
1786
  //! <b>Note</b>: Non-standard extension
1334
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1787
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1335
1788
  iterator nth(size_type n) BOOST_NOEXCEPT_OR_NOTHROW
1336
1789
  {
1337
1790
  BOOST_ASSERT(this->size() >= n);
1338
- return iterator(this->begin()+n);
1791
+ return iterator(this->begin()+difference_type(n));
1339
1792
  }
1340
1793
 
1341
1794
  //! <b>Requires</b>: size() >= n.
@@ -1349,11 +1802,11 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1349
1802
  //! <b>Complexity</b>: Constant.
1350
1803
  //!
1351
1804
  //! <b>Note</b>: Non-standard extension
1352
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1805
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1353
1806
  const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
1354
1807
  {
1355
1808
  BOOST_ASSERT(this->size() >= n);
1356
- return const_iterator(this->cbegin()+n);
1809
+ return const_iterator(this->cbegin()+difference_type(n));
1357
1810
  }
1358
1811
 
1359
1812
  //! <b>Requires</b>: begin() <= p <= end().
@@ -1366,7 +1819,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1366
1819
  //! <b>Complexity</b>: Constant.
1367
1820
  //!
1368
1821
  //! <b>Note</b>: Non-standard extension
1369
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1822
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1370
1823
  size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW
1371
1824
  {
1372
1825
  //Range checked priv_index_of
@@ -1383,7 +1836,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1383
1836
  //! <b>Complexity</b>: Constant.
1384
1837
  //!
1385
1838
  //! <b>Note</b>: Non-standard extension
1386
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1839
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1387
1840
  size_type index_of(const_iterator p) const BOOST_NOEXCEPT_OR_NOTHROW
1388
1841
  {
1389
1842
  //Range checked priv_index_of
@@ -1398,7 +1851,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1398
1851
  //! <b>Throws</b>: range_error if n >= size()
1399
1852
  //!
1400
1853
  //! <b>Complexity</b>: Constant.
1401
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1854
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1402
1855
  reference at(size_type n)
1403
1856
  {
1404
1857
  this->priv_throw_if_out_of_range(n);
@@ -1413,7 +1866,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1413
1866
  //! <b>Throws</b>: range_error if n >= size()
1414
1867
  //!
1415
1868
  //! <b>Complexity</b>: Constant.
1416
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
1869
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1417
1870
  const_reference at(size_type n) const
1418
1871
  {
1419
1872
  this->priv_throw_if_out_of_range(n);
@@ -1449,7 +1902,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1449
1902
  return r;
1450
1903
  }
1451
1904
  else{
1452
- typedef dtl::insert_nonmovable_emplace_proxy<ValAllocator, iterator, Args...> type;
1905
+ typedef dtl::insert_nonmovable_emplace_proxy<ValAllocator, Args...> type;
1453
1906
  return *this->priv_insert_front_aux_impl(1, type(boost::forward<Args>(args)...));
1454
1907
  }
1455
1908
  }
@@ -1475,7 +1928,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1475
1928
  return r;
1476
1929
  }
1477
1930
  else{
1478
- typedef dtl::insert_nonmovable_emplace_proxy<ValAllocator, iterator, Args...> type;
1931
+ typedef dtl::insert_nonmovable_emplace_proxy<ValAllocator, Args...> type;
1479
1932
  return *this->priv_insert_back_aux_impl(1, type(boost::forward<Args>(args)...));
1480
1933
  }
1481
1934
  }
@@ -1502,7 +1955,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1502
1955
  return (this->end()-1);
1503
1956
  }
1504
1957
  else{
1505
- typedef dtl::insert_emplace_proxy<ValAllocator, iterator, Args...> type;
1958
+ typedef dtl::insert_emplace_proxy<ValAllocator, Args...> type;
1506
1959
  return this->priv_insert_aux_impl(p, 1, type(boost::forward<Args>(args)...));
1507
1960
  }
1508
1961
  }
@@ -1522,7 +1975,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1522
1975
  }\
1523
1976
  else{\
1524
1977
  typedef dtl::insert_nonmovable_emplace_proxy##N\
1525
- <ValAllocator, iterator BOOST_MOVE_I##N BOOST_MOVE_TARG##N> type;\
1978
+ <ValAllocator BOOST_MOVE_I##N BOOST_MOVE_TARG##N> type;\
1526
1979
  return *priv_insert_front_aux_impl(1, type(BOOST_MOVE_FWD##N));\
1527
1980
  }\
1528
1981
  }\
@@ -1539,7 +1992,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1539
1992
  }\
1540
1993
  else{\
1541
1994
  typedef dtl::insert_nonmovable_emplace_proxy##N\
1542
- <ValAllocator, iterator BOOST_MOVE_I##N BOOST_MOVE_TARG##N> type;\
1995
+ <ValAllocator BOOST_MOVE_I##N BOOST_MOVE_TARG##N> type;\
1543
1996
  return *priv_insert_back_aux_impl(1, type(BOOST_MOVE_FWD##N));\
1544
1997
  }\
1545
1998
  }\
@@ -1558,7 +2011,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1558
2011
  }\
1559
2012
  else{\
1560
2013
  typedef dtl::insert_emplace_proxy_arg##N\
1561
- <ValAllocator, iterator BOOST_MOVE_I##N BOOST_MOVE_TARG##N> type;\
2014
+ <ValAllocator BOOST_MOVE_I##N BOOST_MOVE_TARG##N> type;\
1562
2015
  return this->priv_insert_aux_impl(p, 1, type(BOOST_MOVE_FWD##N));\
1563
2016
  }\
1564
2017
  }
@@ -1646,10 +2099,9 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1646
2099
  //! <b>Throws</b>: If memory allocation throws or T's copy constructor throws.
1647
2100
  //!
1648
2101
  //! <b>Complexity</b>: Linear to n.
1649
- BOOST_CONTAINER_FORCEINLINE iterator insert(const_iterator pos, size_type n, const value_type& x)
2102
+ inline iterator insert(const_iterator pos, size_type n, const value_type& x)
1650
2103
  {
1651
2104
  //Range check of p is done by insert()
1652
- typedef constant_iterator<value_type, difference_type> c_it;
1653
2105
  return this->insert(pos, c_it(x, n), c_it());
1654
2106
  }
1655
2107
 
@@ -1681,7 +2133,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1681
2133
  it = this->emplace(it, *first);
1682
2134
  ++it;
1683
2135
  }
1684
- it -= n;
2136
+ it -= difference_type(n);
1685
2137
  return it;
1686
2138
  }
1687
2139
 
@@ -1696,7 +2148,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1696
2148
  //! dereferenced std::initializer_list throws or T's copy constructor throws.
1697
2149
  //!
1698
2150
  //! <b>Complexity</b>: Linear to distance [il.begin(), il.end()).
1699
- BOOST_CONTAINER_FORCEINLINE iterator insert(const_iterator pos, std::initializer_list<value_type> il)
2151
+ inline iterator insert(const_iterator pos, std::initializer_list<value_type> il)
1700
2152
  {
1701
2153
  //Range check os pos is done in insert()
1702
2154
  return insert(pos, il.begin(), il.end());
@@ -1705,7 +2157,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1705
2157
 
1706
2158
  #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1707
2159
  template <class FwdIt>
1708
- BOOST_CONTAINER_FORCEINLINE iterator insert(const_iterator p, FwdIt first, FwdIt last
2160
+ inline iterator insert(const_iterator p, FwdIt first, FwdIt last
1709
2161
  #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1710
2162
  , typename dtl::disable_if_or
1711
2163
  < void
@@ -1716,8 +2168,8 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1716
2168
  )
1717
2169
  {
1718
2170
  BOOST_ASSERT(this->priv_in_range_or_end(p));
1719
- dtl::insert_range_proxy<ValAllocator, FwdIt, iterator> proxy(first);
1720
- return priv_insert_aux_impl(p, boost::container::iterator_distance(first, last), proxy);
2171
+ dtl::insert_range_proxy<ValAllocator, FwdIt> proxy(first);
2172
+ return priv_insert_aux_impl(p, boost::container::iterator_udistance(first, last), proxy);
1721
2173
  }
1722
2174
  #endif
1723
2175
 
@@ -1729,7 +2181,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1729
2181
  void pop_front() BOOST_NOEXCEPT_OR_NOTHROW
1730
2182
  {
1731
2183
  BOOST_ASSERT(!this->empty());
1732
- if (this->members_.m_start.m_cur != this->members_.m_start.m_last - 1) {
2184
+ if (this->members_.m_start.m_cur != this->members_.m_start.get_last() - 1) {
1733
2185
  allocator_traits_type::destroy
1734
2186
  ( this->alloc()
1735
2187
  , boost::movelib::to_raw_pointer(this->members_.m_start.m_cur)
@@ -1748,7 +2200,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1748
2200
  void pop_back() BOOST_NOEXCEPT_OR_NOTHROW
1749
2201
  {
1750
2202
  BOOST_ASSERT(!this->empty());
1751
- if (this->members_.m_finish.m_cur != this->members_.m_finish.m_first) {
2203
+ if (this->members_.m_finish.m_cur != this->members_.m_finish.get_first()) {
1752
2204
  --this->members_.m_finish.m_cur;
1753
2205
  allocator_traits_type::destroy
1754
2206
  ( this->alloc()
@@ -1772,7 +2224,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1772
2224
  BOOST_ASSERT(this->priv_in_range(pos));
1773
2225
  iterator next = pos.unconst();
1774
2226
  ++next;
1775
- size_type index = pos - this->members_.m_start;
2227
+ size_type index = size_type(pos - this->members_.m_start);
1776
2228
  if (index < (this->size()/2)) {
1777
2229
  boost::container::move_backward(this->begin(), pos.unconst(), next);
1778
2230
  pop_front();
@@ -1781,7 +2233,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1781
2233
  boost::container::move(next, this->end(), pos.unconst());
1782
2234
  pop_back();
1783
2235
  }
1784
- return this->members_.m_start + index;
2236
+ return this->members_.m_start + difference_type(index);
1785
2237
  }
1786
2238
 
1787
2239
  //! <b>Effects</b>: Erases the elements pointed by [first, last).
@@ -1805,19 +2257,19 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1805
2257
  const size_type elems_before = static_cast<size_type>(first - this->members_.m_start);
1806
2258
  if (elems_before < (this->size() - n) - elems_before) {
1807
2259
  boost::container::move_backward(begin(), first.unconst(), last.unconst());
1808
- iterator new_start = this->members_.m_start + n;
2260
+ iterator new_start = this->members_.m_start + difference_type(n);
1809
2261
  this->priv_destroy_range(this->members_.m_start, new_start);
1810
2262
  this->priv_destroy_nodes(this->members_.m_start.m_node, new_start.m_node);
1811
2263
  this->members_.m_start = new_start;
1812
2264
  }
1813
2265
  else {
1814
2266
  boost::container::move(last.unconst(), end(), first.unconst());
1815
- iterator new_finish = this->members_.m_finish - n;
2267
+ iterator new_finish = this->members_.m_finish - difference_type(n);
1816
2268
  this->priv_destroy_range(new_finish, this->members_.m_finish);
1817
2269
  this->priv_destroy_nodes(new_finish.m_node + 1, this->members_.m_finish.m_node + 1);
1818
2270
  this->members_.m_finish = new_finish;
1819
2271
  }
1820
- return this->members_.m_start + elems_before;
2272
+ return this->members_.m_start + difference_type(elems_before);
1821
2273
  }
1822
2274
  }
1823
2275
 
@@ -1826,7 +2278,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1826
2278
  //! <b>Throws</b>: Nothing.
1827
2279
  //!
1828
2280
  //! <b>Complexity</b>: Constant.
1829
- BOOST_CONTAINER_FORCEINLINE void swap(deque &x)
2281
+ inline void swap(deque &x)
1830
2282
  BOOST_NOEXCEPT_IF(allocator_traits_type::propagate_on_container_swap::value
1831
2283
  || allocator_traits_type::is_always_equal::value)
1832
2284
  {
@@ -1848,14 +2300,14 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1848
2300
  for (index_pointer node = this->members_.m_start.m_node + 1;
1849
2301
  node < this->members_.m_finish.m_node;
1850
2302
  ++node) {
1851
- this->priv_destroy_range(*node, *node + get_block_size());
2303
+ this->priv_destroy_range(*node, *node + get_block_ssize());
1852
2304
  this->priv_deallocate_node(*node);
1853
2305
  }
1854
2306
 
1855
2307
  if (this->members_.m_start.m_node != this->members_.m_finish.m_node) {
1856
- this->priv_destroy_range(this->members_.m_start.m_cur, this->members_.m_start.m_last);
1857
- this->priv_destroy_range(this->members_.m_finish.m_first, this->members_.m_finish.m_cur);
1858
- this->priv_deallocate_node(this->members_.m_finish.m_first);
2308
+ this->priv_destroy_range(this->members_.m_start.m_cur, this->members_.m_start.get_last());
2309
+ this->priv_destroy_range(this->members_.m_finish.get_first(), this->members_.m_finish.m_cur);
2310
+ this->priv_deallocate_node(this->members_.m_finish.get_first());
1859
2311
  }
1860
2312
  else
1861
2313
  this->priv_destroy_range(this->members_.m_start.m_cur, this->members_.m_finish.m_cur);
@@ -1867,56 +2319,80 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1867
2319
  //! <b>Effects</b>: Returns true if x and y are equal
1868
2320
  //!
1869
2321
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1870
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2322
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1871
2323
  friend bool operator==(const deque& x, const deque& y)
1872
2324
  { return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); }
1873
2325
 
1874
2326
  //! <b>Effects</b>: Returns true if x and y are unequal
1875
2327
  //!
1876
2328
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1877
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2329
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1878
2330
  friend bool operator!=(const deque& x, const deque& y)
1879
2331
  { return !(x == y); }
1880
2332
 
1881
2333
  //! <b>Effects</b>: Returns true if x is less than y
1882
2334
  //!
1883
2335
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1884
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2336
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1885
2337
  friend bool operator<(const deque& x, const deque& y)
1886
2338
  { return ::boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); }
1887
2339
 
1888
2340
  //! <b>Effects</b>: Returns true if x is greater than y
1889
2341
  //!
1890
2342
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1891
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2343
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1892
2344
  friend bool operator>(const deque& x, const deque& y)
1893
2345
  { return y < x; }
1894
2346
 
1895
2347
  //! <b>Effects</b>: Returns true if x is equal or less than y
1896
2348
  //!
1897
2349
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1898
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2350
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1899
2351
  friend bool operator<=(const deque& x, const deque& y)
1900
2352
  { return !(y < x); }
1901
2353
 
1902
2354
  //! <b>Effects</b>: Returns true if x is equal or greater than y
1903
2355
  //!
1904
2356
  //! <b>Complexity</b>: Linear to the number of elements in the container.
1905
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
2357
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1906
2358
  friend bool operator>=(const deque& x, const deque& y)
1907
2359
  { return !(x < y); }
1908
2360
 
1909
2361
  //! <b>Effects</b>: x.swap(y)
1910
2362
  //!
1911
2363
  //! <b>Complexity</b>: Constant.
1912
- BOOST_CONTAINER_FORCEINLINE friend void swap(deque& x, deque& y)
2364
+ inline friend void swap(deque& x, deque& y)
1913
2365
  BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT(x.swap(y)))
1914
2366
  { x.swap(y); }
1915
2367
 
1916
2368
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
1917
2369
  private:
1918
2370
 
1919
- BOOST_CONTAINER_FORCEINLINE size_type priv_index_of(const_iterator p) const
2371
+ void priv_move_assign(BOOST_RV_REF(deque) x, dtl::bool_<true> /*steal_resources*/)
2372
+ {
2373
+ //Destroy objects but retain memory in case x reuses it in the future
2374
+ this->clear();
2375
+ //Move allocator if needed
2376
+ dtl::bool_<allocator_traits_type::propagate_on_container_move_assignment::value> flag;
2377
+ dtl::move_alloc(this->alloc(), x.alloc(), flag);
2378
+ dtl::move_alloc(this->ptr_alloc(), x.ptr_alloc(), flag);
2379
+ //Nothrow swap
2380
+ this->swap_members(x);
2381
+ }
2382
+
2383
+ void priv_move_assign(BOOST_RV_REF(deque) x, dtl::bool_<false> /*steal_resources*/)
2384
+ {
2385
+ //We can't guarantee a compile-time equal allocator or propagation so fallback to runtime
2386
+ //Resources can be transferred if both allocators are equal
2387
+ if (this->alloc() == x.alloc()) {
2388
+ this->priv_move_assign(boost::move(x), dtl::true_());
2389
+ }
2390
+ else {
2391
+ this->assign(boost::make_move_iterator(x.begin()), boost::make_move_iterator(x.end()));
2392
+ }
2393
+ }
2394
+
2395
+ inline size_type priv_index_of(const_iterator p) const
1920
2396
  {
1921
2397
  BOOST_ASSERT(this->cbegin() <= p);
1922
2398
  BOOST_ASSERT(p <= this->cend());
@@ -1929,7 +2405,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1929
2405
  this->clear();
1930
2406
  }
1931
2407
  else {
1932
- iterator new_finish = this->members_.m_finish - n;
2408
+ iterator new_finish = this->members_.m_finish - difference_type(n);
1933
2409
  this->priv_destroy_range(new_finish, this->members_.m_finish);
1934
2410
  this->priv_destroy_nodes(new_finish.m_node + 1, this->members_.m_finish.m_node + 1);
1935
2411
  this->members_.m_finish = new_finish;
@@ -1942,12 +2418,12 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
1942
2418
  throw_out_of_range("deque::at out of range");
1943
2419
  }
1944
2420
 
1945
- BOOST_CONTAINER_FORCEINLINE bool priv_in_range(const_iterator pos) const
2421
+ inline bool priv_in_range(const_iterator pos) const
1946
2422
  {
1947
2423
  return (this->begin() <= pos) && (pos < this->end());
1948
2424
  }
1949
2425
 
1950
- BOOST_CONTAINER_FORCEINLINE bool priv_in_range_or_end(const_iterator pos) const
2426
+ inline bool priv_in_range_or_end(const_iterator pos) const
1951
2427
  {
1952
2428
  return (this->begin() <= pos) && (pos <= this->end());
1953
2429
  }
@@ -2001,37 +2477,38 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
2001
2477
  }
2002
2478
  }
2003
2479
 
2004
- BOOST_CONTAINER_FORCEINLINE bool priv_push_back_simple_available() const
2480
+ inline bool priv_push_back_simple_available() const
2005
2481
  {
2006
2482
  return this->members_.m_map &&
2007
- (this->members_.m_finish.m_cur != (this->members_.m_finish.m_last - 1));
2483
+ (this->members_.m_finish.m_cur != (this->members_.m_finish.get_last() - 1));
2008
2484
  }
2009
2485
 
2010
- BOOST_CONTAINER_FORCEINLINE T *priv_push_back_simple_pos() const
2486
+ inline T *priv_push_back_simple_pos() const
2011
2487
  {
2012
2488
  return boost::movelib::to_raw_pointer(this->members_.m_finish.m_cur);
2013
2489
  }
2014
2490
 
2015
- BOOST_CONTAINER_FORCEINLINE void priv_push_back_simple_commit()
2491
+ inline void priv_push_back_simple_commit()
2016
2492
  {
2017
2493
  ++this->members_.m_finish.m_cur;
2018
2494
  }
2019
2495
 
2020
- BOOST_CONTAINER_FORCEINLINE bool priv_push_front_simple_available() const
2496
+ inline bool priv_push_front_simple_available() const
2021
2497
  {
2022
2498
  return this->members_.m_map &&
2023
- (this->members_.m_start.m_cur != this->members_.m_start.m_first);
2499
+ (this->members_.m_start.m_cur != this->members_.m_start.get_first());
2024
2500
  }
2025
2501
 
2026
- BOOST_CONTAINER_FORCEINLINE T *priv_push_front_simple_pos() const
2502
+ inline T *priv_push_front_simple_pos() const
2027
2503
  { return boost::movelib::to_raw_pointer(this->members_.m_start.m_cur) - 1; }
2028
2504
 
2029
- BOOST_CONTAINER_FORCEINLINE void priv_push_front_simple_commit()
2505
+ inline void priv_push_front_simple_commit()
2030
2506
  { --this->members_.m_start.m_cur; }
2031
2507
 
2032
2508
  void priv_destroy_range(iterator p, iterator p2)
2033
2509
  {
2034
- if(!Base::traits_t::trivial_dctr){
2510
+ (void)p; (void)p2;
2511
+ BOOST_IF_CONSTEXPR(!Base::traits_t::trivial_dctr){
2035
2512
  for(;p != p2; ++p){
2036
2513
  allocator_traits_type::destroy(this->alloc(), boost::movelib::iterator_to_raw_pointer(p));
2037
2514
  }
@@ -2040,7 +2517,8 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
2040
2517
 
2041
2518
  void priv_destroy_range(pointer p, pointer p2)
2042
2519
  {
2043
- if(!Base::traits_t::trivial_dctr){
2520
+ (void)p; (void)p2;
2521
+ BOOST_IF_CONSTEXPR(!Base::traits_t::trivial_dctr){
2044
2522
  for(;p != p2; ++p){
2045
2523
  allocator_traits_type::destroy(this->alloc(), boost::movelib::iterator_to_raw_pointer(p));
2046
2524
  }
@@ -2048,82 +2526,115 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
2048
2526
  }
2049
2527
 
2050
2528
  template<class InsertProxy>
2051
- iterator priv_insert_aux_impl(const_iterator p, size_type n, InsertProxy proxy)
2529
+ iterator priv_insert_middle_aux_impl(const_iterator p, const size_type elemsbefore, const size_type length, const size_type n, InsertProxy proxy)
2052
2530
  {
2053
- iterator pos(p.unconst());
2054
- const size_type pos_n = p - this->cbegin();
2055
- if(!this->members_.m_map){
2531
+ if (!this->members_.m_map) {
2056
2532
  this->priv_initialize_map(0);
2057
- pos = this->begin();
2533
+ p = this->cbegin();
2058
2534
  }
2059
2535
 
2060
- const size_type elemsbefore = static_cast<size_type>(pos - this->members_.m_start);
2061
- const size_type length = this->size();
2536
+ iterator pos(p.unconst());
2537
+ const size_type pos_n = size_type(p - this->cbegin());
2538
+
2062
2539
  if (elemsbefore < length / 2) {
2063
2540
  const iterator new_start = this->priv_reserve_elements_at_front(n);
2064
2541
  const iterator old_start = this->members_.m_start;
2065
- if(!elemsbefore){
2066
- proxy.uninitialized_copy_n_and_update(this->alloc(), new_start, n);
2067
- this->members_.m_start = new_start;
2068
- }
2069
- else{
2070
- pos = this->members_.m_start + elemsbefore;
2071
- if (elemsbefore >= n) {
2072
- const iterator start_n = this->members_.m_start + n;
2542
+ pos = this->members_.m_start + difference_type(elemsbefore);
2543
+ if (elemsbefore >= n) {
2544
+ const iterator start_n = this->members_.m_start + difference_type(n);
2545
+ BOOST_CONTAINER_TRY {
2073
2546
  ::boost::container::uninitialized_move_alloc
2074
2547
  (this->alloc(), this->members_.m_start, start_n, new_start);
2075
- this->members_.m_start = new_start;
2076
- boost::container::move(start_n, pos, old_start);
2077
- proxy.copy_n_and_update(this->alloc(), pos - n, n);
2078
2548
  }
2079
- else {
2080
- const size_type mid_count = n - elemsbefore;
2081
- const iterator mid_start = old_start - mid_count;
2549
+ BOOST_CONTAINER_CATCH(...) {
2550
+ this->priv_destroy_nodes(new_start.m_node, this->members_.m_start.m_node);
2551
+ BOOST_CONTAINER_RETHROW
2552
+ }
2553
+ BOOST_CONTAINER_CATCH_END
2554
+ this->members_.m_start = new_start;
2555
+ boost::container::move(start_n, pos, old_start);
2556
+ proxy.copy_n_and_update(this->alloc(), pos - difference_type(n), n);
2557
+ }
2558
+ else {
2559
+ const size_type mid_count = n - elemsbefore;
2560
+ const iterator mid_start = old_start - difference_type(mid_count);
2561
+ BOOST_CONTAINER_TRY {
2082
2562
  proxy.uninitialized_copy_n_and_update(this->alloc(), mid_start, mid_count);
2083
2563
  this->members_.m_start = mid_start;
2084
- ::boost::container::uninitialized_move_alloc
2085
- (this->alloc(), old_start, pos, new_start);
2086
- this->members_.m_start = new_start;
2087
- proxy.copy_n_and_update(this->alloc(), old_start, elemsbefore);
2564
+ ::boost::container::uninitialized_move_alloc(this->alloc(), old_start, pos, new_start);
2565
+ }
2566
+ BOOST_CONTAINER_CATCH(...) {
2567
+ this->priv_destroy_nodes(new_start.m_node, this->members_.m_start.m_node);
2568
+ BOOST_CONTAINER_RETHROW
2088
2569
  }
2570
+ BOOST_CONTAINER_CATCH_END
2571
+ this->members_.m_start = new_start;
2572
+ proxy.copy_n_and_update(this->alloc(), old_start, elemsbefore);
2089
2573
  }
2090
2574
  }
2091
2575
  else {
2092
2576
  const iterator new_finish = this->priv_reserve_elements_at_back(n);
2093
2577
  const iterator old_finish = this->members_.m_finish;
2094
2578
  const size_type elemsafter = length - elemsbefore;
2095
- if(!elemsafter){
2096
- proxy.uninitialized_copy_n_and_update(this->alloc(), old_finish, n);
2579
+
2580
+ pos = old_finish - difference_type(elemsafter);
2581
+ if (elemsafter >= n) {
2582
+ iterator finish_n = old_finish - difference_type(n);
2583
+ BOOST_CONTAINER_TRY {
2584
+ ::boost::container::uninitialized_move_alloc(this->alloc(), finish_n, old_finish, old_finish);
2585
+ }
2586
+ BOOST_CONTAINER_CATCH(...) {
2587
+ this->priv_destroy_nodes(this->members_.m_finish.m_node + 1, new_finish.m_node + 1);
2588
+ BOOST_CONTAINER_RETHROW
2589
+ }
2590
+ BOOST_CONTAINER_CATCH_END
2591
+
2097
2592
  this->members_.m_finish = new_finish;
2593
+ boost::container::move_backward(pos, finish_n, old_finish);
2594
+ proxy.copy_n_and_update(this->alloc(), pos, n);
2098
2595
  }
2099
- else{
2100
- pos = old_finish - elemsafter;
2101
- if (elemsafter >= n) {
2102
- iterator finish_n = old_finish - difference_type(n);
2103
- ::boost::container::uninitialized_move_alloc
2104
- (this->alloc(), finish_n, old_finish, old_finish);
2105
- this->members_.m_finish = new_finish;
2106
- boost::container::move_backward(pos, finish_n, old_finish);
2107
- proxy.copy_n_and_update(this->alloc(), pos, n);
2108
- }
2109
- else {
2110
- const size_type raw_gap = n - elemsafter;
2596
+ else {
2597
+ const size_type raw_gap = n - elemsafter;
2598
+ BOOST_CONTAINER_TRY{
2111
2599
  ::boost::container::uninitialized_move_alloc
2112
- (this->alloc(), pos, old_finish, old_finish + raw_gap);
2113
- BOOST_TRY{
2600
+ (this->alloc(), pos, old_finish, old_finish + difference_type(raw_gap));
2601
+ BOOST_CONTAINER_TRY{
2114
2602
  proxy.copy_n_and_update(this->alloc(), pos, elemsafter);
2115
2603
  proxy.uninitialized_copy_n_and_update(this->alloc(), old_finish, raw_gap);
2116
2604
  }
2117
- BOOST_CATCH(...){
2118
- this->priv_destroy_range(old_finish, old_finish + elemsafter);
2119
- BOOST_RETHROW
2605
+ BOOST_CONTAINER_CATCH(...) {
2606
+ this->priv_destroy_range(old_finish, old_finish + difference_type(elemsafter));
2607
+ BOOST_CONTAINER_RETHROW
2120
2608
  }
2121
- BOOST_CATCH_END
2122
- this->members_.m_finish = new_finish;
2609
+ BOOST_CONTAINER_CATCH_END
2123
2610
  }
2611
+ BOOST_CONTAINER_CATCH(...) {
2612
+ this->priv_destroy_nodes(this->members_.m_finish.m_node + 1, new_finish.m_node + 1);
2613
+ BOOST_CONTAINER_RETHROW
2614
+ }
2615
+ BOOST_CONTAINER_CATCH_END
2616
+ this->members_.m_finish = new_finish;
2124
2617
  }
2125
2618
  }
2126
- return this->begin() + pos_n;
2619
+ return this->begin() + difference_type(pos_n);
2620
+ }
2621
+
2622
+ template<class InsertProxy>
2623
+ iterator priv_insert_aux_impl(const_iterator p, size_type n, InsertProxy proxy)
2624
+ {
2625
+ iterator pos(p.unconst());
2626
+ const size_type elemsbefore = static_cast<size_type>(pos - this->members_.m_start);
2627
+ const size_type length = this->size();
2628
+
2629
+ if (!elemsbefore) {
2630
+ return this->priv_insert_front_aux_impl(n, proxy);
2631
+ }
2632
+ else if (elemsbefore == length) {
2633
+ return this->priv_insert_back_aux_impl(n, proxy);
2634
+ }
2635
+ else {
2636
+ return this->priv_insert_middle_aux_impl(p, elemsbefore, length, n, proxy);
2637
+ }
2127
2638
  }
2128
2639
 
2129
2640
  template <class InsertProxy>
@@ -2134,10 +2645,16 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
2134
2645
  }
2135
2646
 
2136
2647
  iterator new_finish = this->priv_reserve_elements_at_back(n);
2137
- iterator old_finish = this->members_.m_finish;
2138
- proxy.uninitialized_copy_n_and_update(this->alloc(), old_finish, n);
2648
+ BOOST_CONTAINER_TRY{
2649
+ proxy.uninitialized_copy_n_and_update(this->alloc(), this->members_.m_finish, n);
2650
+ }
2651
+ BOOST_CONTAINER_CATCH(...) {
2652
+ this->priv_destroy_nodes(this->members_.m_finish.m_node + 1, new_finish.m_node + 1);
2653
+ BOOST_CONTAINER_RETHROW
2654
+ }
2655
+ BOOST_CONTAINER_CATCH_END
2139
2656
  this->members_.m_finish = new_finish;
2140
- return iterator(this->members_.m_finish - n);
2657
+ return iterator(this->members_.m_finish - difference_type(n));
2141
2658
  }
2142
2659
 
2143
2660
  template <class InsertProxy>
@@ -2148,14 +2665,21 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
2148
2665
  }
2149
2666
 
2150
2667
  iterator new_start = this->priv_reserve_elements_at_front(n);
2151
- proxy.uninitialized_copy_n_and_update(this->alloc(), new_start, n);
2668
+ BOOST_CONTAINER_TRY{
2669
+ proxy.uninitialized_copy_n_and_update(this->alloc(), new_start, n);
2670
+ }
2671
+ BOOST_CONTAINER_CATCH(...) {
2672
+ this->priv_destroy_nodes(new_start.m_node, this->members_.m_start.m_node);
2673
+ BOOST_CONTAINER_RETHROW
2674
+ }
2675
+ BOOST_CONTAINER_CATCH_END
2676
+
2152
2677
  this->members_.m_start = new_start;
2153
2678
  return new_start;
2154
2679
  }
2155
2680
 
2156
- BOOST_CONTAINER_FORCEINLINE iterator priv_fill_insert(const_iterator pos, size_type n, const value_type& x)
2681
+ inline iterator priv_fill_insert(const_iterator pos, size_type n, const value_type& x)
2157
2682
  {
2158
- typedef constant_iterator<value_type, difference_type> c_it;
2159
2683
  return this->insert(pos, c_it(x, n), c_it());
2160
2684
  }
2161
2685
 
@@ -2164,75 +2688,75 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
2164
2688
  void priv_fill_initialize(const value_type& value)
2165
2689
  {
2166
2690
  index_pointer cur = this->members_.m_start.m_node;
2167
- BOOST_TRY {
2691
+ BOOST_CONTAINER_TRY {
2168
2692
  for ( ; cur < this->members_.m_finish.m_node; ++cur){
2169
2693
  boost::container::uninitialized_fill_alloc
2170
- (this->alloc(), *cur, *cur + get_block_size(), value);
2694
+ (this->alloc(), *cur, *cur + get_block_ssize(), value);
2171
2695
  }
2172
2696
  boost::container::uninitialized_fill_alloc
2173
- (this->alloc(), this->members_.m_finish.m_first, this->members_.m_finish.m_cur, value);
2697
+ (this->alloc(), this->members_.m_finish.get_first(), this->members_.m_finish.m_cur, value);
2174
2698
  }
2175
- BOOST_CATCH(...){
2699
+ BOOST_CONTAINER_CATCH(...){
2176
2700
  this->priv_destroy_range(this->members_.m_start, iterator(*cur, cur, get_block_size()));
2177
- BOOST_RETHROW
2701
+ BOOST_CONTAINER_RETHROW
2178
2702
  }
2179
- BOOST_CATCH_END
2703
+ BOOST_CONTAINER_CATCH_END
2180
2704
  }
2181
2705
 
2182
2706
  template <class InIt>
2183
2707
  void priv_range_initialize(InIt first, InIt last, typename iterator_enable_if_tag<InIt, std::input_iterator_tag>::type* =0)
2184
2708
  {
2185
2709
  this->priv_initialize_map(0);
2186
- BOOST_TRY {
2710
+ BOOST_CONTAINER_TRY {
2187
2711
  for ( ; first != last; ++first)
2188
2712
  this->emplace_back(*first);
2189
2713
  }
2190
- BOOST_CATCH(...){
2714
+ BOOST_CONTAINER_CATCH(...){
2191
2715
  this->clear();
2192
- BOOST_RETHROW
2716
+ BOOST_CONTAINER_RETHROW
2193
2717
  }
2194
- BOOST_CATCH_END
2718
+ BOOST_CONTAINER_CATCH_END
2195
2719
  }
2196
2720
 
2197
2721
  template <class FwdIt>
2198
2722
  void priv_range_initialize(FwdIt first, FwdIt last, typename iterator_disable_if_tag<FwdIt, std::input_iterator_tag>::type* =0)
2199
2723
  {
2200
2724
  size_type n = 0;
2201
- n = boost::container::iterator_distance(first, last);
2725
+ n = boost::container::iterator_udistance(first, last);
2202
2726
  this->priv_initialize_map(n);
2203
2727
 
2204
2728
  index_pointer cur_node = this->members_.m_start.m_node;
2205
- BOOST_TRY {
2729
+ BOOST_CONTAINER_TRY {
2206
2730
  for (; cur_node < this->members_.m_finish.m_node; ++cur_node) {
2207
2731
  FwdIt mid = first;
2208
- boost::container::iterator_advance(mid, get_block_size());
2732
+ boost::container::iterator_uadvance(mid, get_block_size());
2209
2733
  ::boost::container::uninitialized_copy_alloc(this->alloc(), first, mid, *cur_node);
2210
2734
  first = mid;
2211
2735
  }
2212
- ::boost::container::uninitialized_copy_alloc(this->alloc(), first, last, this->members_.m_finish.m_first);
2736
+ ::boost::container::uninitialized_copy_alloc(this->alloc(), first, last, this->members_.m_finish.get_first());
2213
2737
  }
2214
- BOOST_CATCH(...){
2738
+ BOOST_CONTAINER_CATCH(...){
2215
2739
  this->priv_destroy_range(this->members_.m_start, iterator(*cur_node, cur_node, get_block_size()));
2216
- BOOST_RETHROW
2740
+ BOOST_CONTAINER_RETHROW
2217
2741
  }
2218
- BOOST_CATCH_END
2742
+ BOOST_CONTAINER_CATCH_END
2219
2743
  }
2220
2744
 
2221
- // Called only if this->members_.m_finish.m_cur == this->members_.m_finish.m_first.
2745
+ // Called only if this->members_.m_finish.m_cur == this->members_.m_finish.get_first().
2222
2746
  void priv_pop_back_aux() BOOST_NOEXCEPT_OR_NOTHROW
2223
2747
  {
2224
- this->priv_deallocate_node(this->members_.m_finish.m_first);
2748
+ this->priv_deallocate_node(this->members_.m_finish.get_first());
2225
2749
  this->members_.m_finish.priv_set_node(this->members_.m_finish.m_node - 1, get_block_size());
2226
- this->members_.m_finish.m_cur = this->members_.m_finish.m_last - 1;
2750
+ this->members_.m_finish.m_cur = this->members_.m_finish.get_last() - 1;
2227
2751
  allocator_traits_type::destroy
2228
2752
  ( this->alloc()
2229
2753
  , boost::movelib::to_raw_pointer(this->members_.m_finish.m_cur)
2230
2754
  );
2231
2755
  }
2232
2756
 
2233
- // Called only if this->members_.m_start.m_cur == this->members_.m_start.m_last - 1. Note that
2757
+ // Called only if this->members_.m_start.m_cur == this->members_.m_start.get_last() - 1. Note that
2234
2758
  // if the deque has at least one element (a precondition for this member
2235
- // function), and if this->members_.m_start.m_cur == this->members_.m_start.m_last, then the deque
2759
+ // function), and if this->members_.m_start.m_cur == this->members_.m_start.get_last(), then the deque
2236
2760
  // must have at least two nodes.
2237
2761
  void priv_pop_front_aux() BOOST_NOEXCEPT_OR_NOTHROW
2238
2762
  {
@@ -2240,84 +2764,83 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
2240
2764
  ( this->alloc()
2241
2765
  , boost::movelib::to_raw_pointer(this->members_.m_start.m_cur)
2242
2766
  );
2243
- this->priv_deallocate_node(this->members_.m_start.m_first);
2767
+ this->priv_deallocate_node(this->members_.m_start.get_first());
2244
2768
  this->members_.m_start.priv_set_node(this->members_.m_start.m_node + 1, get_block_size());
2245
- this->members_.m_start.m_cur = this->members_.m_start.m_first;
2769
+ this->members_.m_start.m_cur = this->members_.m_start.get_first();
2246
2770
  }
2247
2771
 
2248
2772
  iterator priv_reserve_elements_at_front(size_type n)
2249
2773
  {
2250
- size_type vacancies = this->members_.m_start.m_cur - this->members_.m_start.m_first;
2774
+ size_type vacancies = size_type(this->members_.m_start.m_cur - this->members_.m_start.get_first());
2251
2775
  if (n > vacancies){
2252
2776
  size_type new_elems = n-vacancies;
2253
- size_type new_nodes = (new_elems + get_block_size() - 1) /
2254
- get_block_size();
2777
+ size_type new_nodes = (new_elems + get_block_size() - 1u) / get_block_size();
2255
2778
  size_type s = (size_type)(this->members_.m_start.m_node - this->members_.m_map);
2256
2779
  if (new_nodes > s){
2257
2780
  this->priv_reallocate_map(new_nodes, true);
2258
2781
  }
2259
2782
  size_type i = 1;
2260
- BOOST_TRY {
2783
+ BOOST_CONTAINER_TRY {
2261
2784
  for (; i <= new_nodes; ++i)
2262
- *(this->members_.m_start.m_node - i) = this->priv_allocate_node();
2785
+ *(this->members_.m_start.m_node - difference_type(i)) = this->priv_allocate_node();
2263
2786
  }
2264
- BOOST_CATCH(...) {
2787
+ BOOST_CONTAINER_CATCH(...) {
2265
2788
  for (size_type j = 1; j < i; ++j)
2266
- this->priv_deallocate_node(*(this->members_.m_start.m_node - j));
2267
- BOOST_RETHROW
2789
+ this->priv_deallocate_node(*(this->members_.m_start.m_node - difference_type(j)));
2790
+ BOOST_CONTAINER_RETHROW
2268
2791
  }
2269
- BOOST_CATCH_END
2792
+ BOOST_CONTAINER_CATCH_END
2270
2793
  }
2271
2794
  return this->members_.m_start - difference_type(n);
2272
2795
  }
2273
2796
 
2274
2797
  iterator priv_reserve_elements_at_back(size_type n)
2275
2798
  {
2276
- size_type vacancies = (this->members_.m_finish.m_last - this->members_.m_finish.m_cur) - 1;
2799
+ size_type vacancies = size_type(this->members_.m_finish.get_last() - this->members_.m_finish.m_cur - 1);
2277
2800
  if (n > vacancies){
2278
- size_type new_elems = n - vacancies;
2279
- size_type new_nodes = (new_elems + get_block_size() - 1)/get_block_size();
2280
- size_type s = (size_type)(this->members_.m_map_size - (this->members_.m_finish.m_node - this->members_.m_map));
2801
+ size_type new_elems = size_type(n - vacancies);
2802
+ size_type new_nodes = size_type(new_elems + get_block_size() - 1u)/get_block_size();
2803
+ size_type s = (size_type)(this->members_.m_map_size - size_type(this->members_.m_finish.m_node - this->members_.m_map));
2281
2804
  if (new_nodes + 1 > s){
2282
2805
  this->priv_reallocate_map(new_nodes, false);
2283
2806
  }
2284
2807
  size_type i = 1;
2285
- BOOST_TRY {
2808
+ BOOST_CONTAINER_TRY {
2286
2809
  for (; i <= new_nodes; ++i)
2287
- *(this->members_.m_finish.m_node + i) = this->priv_allocate_node();
2810
+ *(this->members_.m_finish.m_node + difference_type(i)) = this->priv_allocate_node();
2288
2811
  }
2289
- BOOST_CATCH(...) {
2812
+ BOOST_CONTAINER_CATCH(...) {
2290
2813
  for (size_type j = 1; j < i; ++j)
2291
- this->priv_deallocate_node(*(this->members_.m_finish.m_node + j));
2292
- BOOST_RETHROW
2814
+ this->priv_deallocate_node(*(this->members_.m_finish.m_node + difference_type(j)));
2815
+ BOOST_CONTAINER_RETHROW
2293
2816
  }
2294
- BOOST_CATCH_END
2817
+ BOOST_CONTAINER_CATCH_END
2295
2818
  }
2296
2819
  return this->members_.m_finish + difference_type(n);
2297
2820
  }
2298
2821
 
2299
2822
  void priv_reallocate_map(size_type nodes_to_add, bool add_at_front)
2300
2823
  {
2301
- size_type old_num_nodes = this->members_.m_finish.m_node - this->members_.m_start.m_node + 1;
2824
+ size_type old_num_nodes = size_type(this->members_.m_finish.m_node - this->members_.m_start.m_node + 1);
2302
2825
  size_type new_num_nodes = old_num_nodes + nodes_to_add;
2303
2826
 
2304
2827
  index_pointer new_nstart;
2305
2828
  if (this->members_.m_map_size > 2 * new_num_nodes) {
2306
- new_nstart = this->members_.m_map + (this->members_.m_map_size - new_num_nodes) / 2
2307
- + (add_at_front ? nodes_to_add : 0);
2829
+ new_nstart = this->members_.m_map + difference_type(this->members_.m_map_size - new_num_nodes) / 2
2830
+ + difference_type(add_at_front ? nodes_to_add : 0u);
2308
2831
  if (new_nstart < this->members_.m_start.m_node)
2309
2832
  boost::container::move(this->members_.m_start.m_node, this->members_.m_finish.m_node + 1, new_nstart);
2310
2833
  else
2311
2834
  boost::container::move_backward
2312
- (this->members_.m_start.m_node, this->members_.m_finish.m_node + 1, new_nstart + old_num_nodes);
2835
+ (this->members_.m_start.m_node, this->members_.m_finish.m_node + 1, new_nstart + difference_type(old_num_nodes));
2313
2836
  }
2314
2837
  else {
2315
2838
  size_type new_map_size =
2316
2839
  this->members_.m_map_size + dtl::max_value(this->members_.m_map_size, nodes_to_add) + 2;
2317
2840
 
2318
2841
  index_pointer new_map = this->priv_allocate_map(new_map_size);
2319
- new_nstart = new_map + (new_map_size - new_num_nodes) / 2
2320
- + (add_at_front ? nodes_to_add : 0);
2842
+ new_nstart = new_map + difference_type(new_map_size - new_num_nodes) / 2
2843
+ + difference_type(add_at_front ? nodes_to_add : 0u);
2321
2844
  boost::container::move(this->members_.m_start.m_node, this->members_.m_finish.m_node + 1, new_nstart);
2322
2845
  this->priv_deallocate_map(this->members_.m_map, this->members_.m_map_size);
2323
2846
 
@@ -2326,7 +2849,7 @@ class deque : protected deque_base<typename real_allocator<T, Allocator>::type,
2326
2849
  }
2327
2850
 
2328
2851
  this->members_.m_start.priv_set_node(new_nstart, get_block_size());
2329
- this->members_.m_finish.priv_set_node(new_nstart + old_num_nodes - 1, get_block_size());
2852
+ this->members_.m_finish.priv_set_node(new_nstart + difference_type(old_num_nodes - 1u), get_block_size());
2330
2853
  }
2331
2854
  #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
2332
2855
  };
@@ -2338,7 +2861,8 @@ template <typename InputIterator, typename Allocator>
2338
2861
  deque(InputIterator, InputIterator, Allocator const&) -> deque<typename iterator_traits<InputIterator>::value_type, Allocator>;
2339
2862
  #endif
2340
2863
 
2341
- }}
2864
+ } //namespace container
2865
+ } //namespace boost
2342
2866
 
2343
2867
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
2344
2868
 
@@ -2351,7 +2875,7 @@ struct has_trivial_destructor_after_move<boost::container::deque<T, Allocator, O
2351
2875
  {
2352
2876
  typedef typename boost::container::deque<T, Allocator, Options>::allocator_type allocator_type;
2353
2877
  typedef typename ::boost::container::allocator_traits<allocator_type>::pointer pointer;
2354
- static const bool value = ::boost::has_trivial_destructor_after_move<allocator_type>::value &&
2878
+ BOOST_STATIC_CONSTEXPR bool value = ::boost::has_trivial_destructor_after_move<allocator_type>::value &&
2355
2879
  ::boost::has_trivial_destructor_after_move<pointer>::value;
2356
2880
  };
2357
2881