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.
- checksums.yaml +5 -5
- data/CHANGELOG +380 -85
- data/CONTRIBUTING.md +2 -2
- data/CONTRIBUTORS +8 -0
- data/LICENSE +1 -1
- data/README.md +3 -3
- data/Rakefile +15 -4
- data/bin/passenger +2 -2
- data/bin/passenger-config +2 -2
- data/bin/passenger-install-apache2-module +7 -2
- data/bin/passenger-install-nginx-module +24 -8
- data/bin/passenger-memory-stats +2 -2
- data/bin/passenger-status +2 -2
- data/build/agent.rb +2 -4
- data/build/apache2.rb +3 -3
- data/build/basics.rb +14 -6
- data/build/common_library.rb +3 -8
- data/build/cxx_tests.rb +20 -9
- data/build/integration_tests.rb +10 -9
- data/build/misc.rb +2 -4
- data/build/nginx.rb +2 -2
- data/build/node_tests.rb +2 -2
- data/build/oxt_tests.rb +2 -2
- data/build/packaging.rb +2 -2
- data/build/ruby_extension.rb +2 -2
- data/build/ruby_tests.rb +3 -3
- data/build/schema_printer.rb +2 -4
- data/build/support/cplusplus.rb +2 -2
- data/build/support/cxx_dependency_map.rb +249 -311
- data/build/support/general.rb +2 -2
- data/build/support/vendor/cxx_hinted_parser/LICENSE.md +1 -1
- data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser/parser.rb +2 -2
- data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser.rb +2 -2
- data/build/support/vendor/cxxcodebuilder/LICENSE.md +1 -1
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +2 -2
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/initializer_builder.rb +2 -2
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder.rb +2 -2
- data/build/test_basics.rb +27 -13
- data/dev/copy_boost_headers +96 -77
- data/dev/index_cxx_dependencies.rb +1 -1
- data/dev/nginx_version_sha256 +72 -0
- data/doc/AiInstructions.md +112 -0
- data/doc/CxxMockingStrategy.md +42 -0
- data/doc/CxxTestingGuide.md +110 -0
- data/doc/DesignAspects/LimitedGemDependencies.md +47 -0
- data/doc/DesignAspects/NoGemActivationDuringRubyLoaderInitialization.md +27 -0
- data/doc/TempFileHandling.md +15 -0
- data/package.json +15 -15
- data/passenger.gemspec +8 -2
- data/resources/templates/apache2/deployment_example.txt.erb +1 -1
- data/resources/templates/nginx/deployment_example.txt.erb +1 -1
- data/resources/templates/standalone/http.erb +1 -0
- data/resources/templates/standalone/server.erb +2 -0
- data/src/agent/AgentMain.cpp +4 -10
- data/src/agent/Core/ApiServer.h +3 -4
- data/src/agent/Core/ApplicationPool/AbstractSession.h +12 -3
- data/src/agent/Core/ApplicationPool/BasicGroupInfo.h +2 -2
- data/src/agent/Core/ApplicationPool/BasicProcessInfo.h +2 -2
- data/src/agent/Core/ApplicationPool/Common.h +2 -2
- data/src/agent/Core/ApplicationPool/Context.h +7 -4
- data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +10 -2
- data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +12 -4
- data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +10 -2
- data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +11 -2
- data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +11 -2
- data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +85 -5
- data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +66 -21
- data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +10 -2
- data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +11 -3
- data/src/agent/Core/ApplicationPool/Group/Verification.cpp +10 -2
- data/src/agent/Core/ApplicationPool/Group.h +18 -8
- data/src/agent/Core/ApplicationPool/Implementation.cpp +2 -5
- data/src/agent/Core/ApplicationPool/Options.h +3 -4
- data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +7 -2
- data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +7 -2
- data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +7 -2
- data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +7 -2
- data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +7 -2
- data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +7 -2
- data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +7 -2
- data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +17 -3
- data/src/agent/Core/ApplicationPool/Pool.h +2 -4
- data/src/agent/Core/ApplicationPool/Process.cpp +2 -2
- data/src/agent/Core/ApplicationPool/Process.h +24 -8
- data/src/agent/Core/ApplicationPool/Session.h +22 -22
- data/src/agent/Core/ApplicationPool/Socket.h +17 -7
- data/src/agent/Core/ApplicationPool/TestSession.h +76 -17
- data/src/agent/Core/Config.h +17 -40
- data/src/agent/Core/ConfigChange.cpp +3 -43
- data/src/agent/Core/ConfigChange.h +2 -2
- data/src/agent/Core/Controller/AppResponse.h +2 -3
- data/src/agent/Core/Controller/BufferBody.cpp +2 -2
- data/src/agent/Core/Controller/CheckoutSession.cpp +125 -16
- data/src/agent/Core/Controller/Client.h +2 -3
- data/src/agent/Core/Controller/Config.cpp +2 -2
- data/src/agent/Core/Controller/Config.h +14 -5
- data/src/agent/Core/Controller/ForwardResponse.cpp +2 -2
- data/src/agent/Core/Controller/Hooks.cpp +15 -2
- data/src/agent/Core/Controller/Implementation.cpp +2 -2
- data/src/agent/Core/Controller/InitRequest.cpp +4 -3
- data/src/agent/Core/Controller/InitializationAndShutdown.cpp +2 -2
- data/src/agent/Core/Controller/InternalUtils.cpp +14 -2
- data/src/agent/Core/Controller/Miscellaneous.cpp +2 -2
- data/src/agent/Core/Controller/Request.h +5 -4
- data/src/agent/Core/Controller/SendRequest.cpp +4 -4
- data/src/agent/Core/Controller/StateInspection.cpp +2 -2
- data/src/agent/Core/Controller/TurboCaching.h +2 -2
- data/src/agent/Core/Controller.h +15 -15
- data/src/agent/Core/CoreMain.cpp +14 -75
- data/src/agent/Core/OptionParser.h +11 -9
- data/src/agent/Core/ResponseCache.h +5 -4
- data/src/agent/Core/SecurityUpdateChecker.h +7 -8
- data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +2 -2
- data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h.cxxcodebuilder +2 -2
- data/src/agent/Core/SpawningKit/Config.h +2 -2
- data/src/agent/Core/SpawningKit/Context.h +2 -2
- data/src/agent/Core/SpawningKit/DirectSpawner.h +2 -2
- data/src/agent/Core/SpawningKit/DummySpawner.h +2 -2
- data/src/agent/Core/SpawningKit/ErrorRenderer.h +7 -2
- data/src/agent/Core/SpawningKit/Exceptions.h +2 -2
- data/src/agent/Core/SpawningKit/Factory.h +2 -2
- data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +2 -2
- data/src/agent/Core/SpawningKit/Handshake/Perform.h +6 -6
- data/src/agent/Core/SpawningKit/Handshake/Prepare.h +3 -55
- data/src/agent/Core/SpawningKit/Handshake/Session.h +5 -2
- data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +7 -4
- data/src/agent/Core/SpawningKit/Journey.h +2 -2
- data/src/agent/Core/SpawningKit/PipeWatcher.h +20 -5
- data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h +2 -2
- data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h.cxxcodebuilder +2 -2
- data/src/agent/Core/SpawningKit/Result.h +2 -2
- data/src/agent/Core/SpawningKit/SmartSpawner.h +8 -4
- data/src/agent/Core/SpawningKit/Spawner.h +6 -2
- data/src/agent/Core/SpawningKit/UserSwitchingRules.h +4 -4
- data/src/agent/Core/TelemetryCollector.h +2 -2
- data/src/agent/ExecHelper/ExecHelperMain.cpp +12 -14
- data/src/agent/FileReadHelper/FileReadHelperMain.cpp +9 -12
- data/src/{cxx_supportlib/FileTools/LargeFiles.h → agent/MainFunctions.h} +12 -17
- data/src/agent/Shared/ApiAccountUtils.h +2 -2
- data/src/agent/Shared/ApiServerUtils.h +5 -4
- data/src/agent/Shared/ApplicationPoolApiKey.h +2 -2
- data/src/agent/Shared/Fundamentals/AbortHandler.cpp +90 -11
- data/src/agent/Shared/Fundamentals/AbortHandler.h +4 -2
- data/src/agent/Shared/Fundamentals/Initialization.cpp +12 -6
- data/src/agent/Shared/Fundamentals/Initialization.h +5 -5
- data/src/agent/Shared/Fundamentals/Utils.cpp +2 -2
- data/src/agent/Shared/Fundamentals/Utils.h +2 -2
- data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +33 -13
- data/src/agent/SystemMetrics/SystemMetricsMain.cpp +3 -2
- data/src/agent/TempDirToucher/TempDirToucherMain.cpp +8 -6
- data/src/agent/Watchdog/AgentWatcher.cpp +2 -2
- data/src/agent/Watchdog/ApiServer.h +3 -3
- data/src/agent/Watchdog/Config.h +6 -23
- data/src/agent/Watchdog/CoreWatcher.cpp +2 -2
- data/src/agent/Watchdog/InstanceDirToucher.cpp +2 -2
- data/src/agent/Watchdog/WatchdogMain.cpp +15 -23
- data/src/apache2_module/Bucket.cpp +2 -2
- data/src/apache2_module/Bucket.h +2 -2
- data/src/apache2_module/CBindings.cpp +2 -2
- data/src/apache2_module/Config.cpp +2 -2
- data/src/apache2_module/Config.h +2 -2
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +12 -22
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp.cxxcodebuilder +2 -2
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +7 -2
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp.cxxcodebuilder +2 -2
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +32 -62
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp.cxxcodebuilder +2 -2
- data/src/apache2_module/ConfigGeneral/Common.h +2 -2
- data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +7 -5
- data/src/apache2_module/ConfigGeneral/SetterFuncs.h +2 -2
- data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +7 -2
- data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp.cxxcodebuilder +2 -2
- data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +5 -2
- data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp.cxxcodebuilder +2 -2
- data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +15 -2
- data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +2 -2
- data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +9 -2
- data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp.cxxcodebuilder +2 -2
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +18 -2
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +5 -2
- data/src/apache2_module/DirectoryMapper.h +2 -2
- data/src/apache2_module/Hooks.cpp +29 -7
- data/src/apache2_module/Hooks.h +2 -2
- data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +11 -46
- data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +2 -2
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +15 -55
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +4 -3
- data/src/apache2_module/Utils.h +2 -2
- data/src/apache2_module/mod_passenger.c +2 -2
- data/src/cxx_supportlib/Algorithms/Hasher.cpp +3 -3
- data/src/cxx_supportlib/Algorithms/Hasher.h +6 -9
- data/src/cxx_supportlib/Algorithms/MovingAverage.h +3 -168
- data/src/cxx_supportlib/AppLocalConfigFileUtils.h +2 -2
- data/src/cxx_supportlib/AppTypeDetector/CBindings.cpp +2 -2
- data/src/cxx_supportlib/AppTypeDetector/CBindings.h +2 -2
- data/src/cxx_supportlib/AppTypeDetector/Detector.h +2 -2
- data/src/cxx_supportlib/BackgroundEventLoop.cpp +6 -2
- data/src/cxx_supportlib/BackgroundEventLoop.h +2 -2
- data/src/cxx_supportlib/ConfigKit/AsyncUtils.h +2 -2
- data/src/cxx_supportlib/ConfigKit/Common.h +3 -3
- data/src/cxx_supportlib/ConfigKit/ConfigKit.h +2 -2
- data/src/cxx_supportlib/ConfigKit/DummyTranslator.h +2 -2
- data/src/cxx_supportlib/ConfigKit/PrefixTranslator.h +2 -2
- data/src/cxx_supportlib/ConfigKit/Schema.h +2 -2
- data/src/cxx_supportlib/ConfigKit/SchemaUtils.h +2 -2
- data/src/cxx_supportlib/ConfigKit/Store.h +2 -2
- data/src/cxx_supportlib/ConfigKit/SubComponentUtils.h +2 -2
- data/src/cxx_supportlib/ConfigKit/TableTranslator.h +2 -2
- data/src/cxx_supportlib/ConfigKit/Translator.h +2 -2
- data/src/cxx_supportlib/ConfigKit/Utils.h +2 -2
- data/src/cxx_supportlib/Constants.h +4 -3
- data/src/cxx_supportlib/Constants.h.cxxcodebuilder +2 -2
- data/src/cxx_supportlib/DataStructures/HashedStaticString.h +2 -2
- data/src/cxx_supportlib/DataStructures/LString.cpp +2 -2
- data/src/cxx_supportlib/DataStructures/LString.h +6 -2
- data/src/cxx_supportlib/DataStructures/StringKeyTable.h +3 -3
- data/src/cxx_supportlib/DataStructures/StringMap.h +4 -6
- data/src/cxx_supportlib/Exceptions.cpp +2 -2
- data/src/cxx_supportlib/Exceptions.h +2 -2
- data/src/cxx_supportlib/FileDescriptor.h +2 -2
- data/src/cxx_supportlib/FileTools/FileManip.cpp +2 -2
- data/src/cxx_supportlib/FileTools/FileManip.h +4 -2
- data/src/cxx_supportlib/FileTools/PathManip.cpp +13 -4
- data/src/cxx_supportlib/FileTools/PathManip.h +2 -2
- data/src/cxx_supportlib/FileTools/PathManipCBindings.cpp +2 -2
- data/src/cxx_supportlib/FileTools/PathManipCBindings.h +2 -2
- data/src/cxx_supportlib/FileTools/PathSecurityCheck.cpp +2 -2
- data/src/cxx_supportlib/FileTools/PathSecurityCheck.h +2 -2
- data/src/cxx_supportlib/Hooks.h +2 -3
- data/src/cxx_supportlib/IOTools/BufferedIO.h +2 -2
- data/src/cxx_supportlib/IOTools/IOUtils.cpp +53 -68
- data/src/cxx_supportlib/IOTools/IOUtils.h +67 -75
- data/src/cxx_supportlib/IOTools/MessageIO.h +2 -2
- data/src/cxx_supportlib/IOTools/MessageSerialization.h +2 -2
- data/src/cxx_supportlib/InstanceDirectory.h +2 -2
- data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +5 -5
- data/src/cxx_supportlib/JsonTools/Autocast.h +2 -2
- data/src/cxx_supportlib/JsonTools/CBindings.cpp +2 -4
- data/src/cxx_supportlib/JsonTools/CBindings.h +2 -2
- data/src/cxx_supportlib/JsonTools/JsonUtils.h +6 -6
- data/src/cxx_supportlib/LoggingKit/Assert.h +2 -2
- data/src/cxx_supportlib/LoggingKit/Config.h +2 -2
- data/src/cxx_supportlib/LoggingKit/Context.h +18 -23
- data/src/cxx_supportlib/LoggingKit/Forward.h +2 -4
- data/src/cxx_supportlib/LoggingKit/Implementation.cpp +38 -74
- data/src/cxx_supportlib/LoggingKit/Logging.h +2 -2
- data/src/cxx_supportlib/LoggingKit/LoggingKit.h +2 -2
- data/src/cxx_supportlib/LveLoggingDecorator.h +2 -2
- data/src/cxx_supportlib/MemoryKit/mbuf.cpp +14 -6
- data/src/cxx_supportlib/MemoryKit/mbuf.h +3 -3
- data/src/cxx_supportlib/MemoryKit/palloc.cpp +1 -1
- data/src/cxx_supportlib/MemoryKit/palloc.h +1 -1
- data/src/cxx_supportlib/ProcessManagement/Ruby.cpp +2 -2
- data/src/cxx_supportlib/ProcessManagement/Ruby.h +2 -2
- data/src/cxx_supportlib/ProcessManagement/Spawn.cpp +2 -2
- data/src/cxx_supportlib/ProcessManagement/Spawn.h +2 -2
- data/src/cxx_supportlib/ProcessManagement/Utils.cpp +3 -3
- data/src/cxx_supportlib/ProcessManagement/Utils.h +2 -2
- data/src/cxx_supportlib/RandomGenerator.h +2 -2
- data/src/cxx_supportlib/ResourceLocator.h +3 -3
- data/src/cxx_supportlib/SafeLibev.h +5 -5
- data/src/cxx_supportlib/SecurityKit/Crypto.cpp +5 -96
- data/src/cxx_supportlib/SecurityKit/Crypto.h +2 -10
- data/src/cxx_supportlib/SecurityKit/MemZeroGuard.h +2 -2
- data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +4 -2
- data/src/cxx_supportlib/ServerKit/Channel.h +2 -2
- data/src/cxx_supportlib/ServerKit/Client.h +2 -2
- data/src/cxx_supportlib/ServerKit/ClientRef.h +2 -2
- data/src/cxx_supportlib/ServerKit/Config.h +2 -2
- data/src/cxx_supportlib/ServerKit/Context.h +8 -2
- data/src/cxx_supportlib/ServerKit/CookieUtils.h +2 -2
- data/src/cxx_supportlib/ServerKit/Errors.h +5 -4
- data/src/cxx_supportlib/ServerKit/FdSinkChannel.h +2 -2
- data/src/cxx_supportlib/ServerKit/FdSourceChannel.h +2 -2
- data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +2 -2
- data/src/cxx_supportlib/ServerKit/FileBufferedFdSinkChannel.h +2 -2
- data/src/cxx_supportlib/ServerKit/HeaderTable.h +2 -2
- data/src/cxx_supportlib/ServerKit/Hooks.h +4 -4
- data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +2 -2
- data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParserState.h +2 -2
- data/src/cxx_supportlib/ServerKit/HttpClient.h +2 -2
- data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +105 -71
- data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +6 -3
- data/src/cxx_supportlib/ServerKit/HttpRequest.h +4 -4
- data/src/cxx_supportlib/ServerKit/HttpRequestRef.h +2 -2
- data/src/cxx_supportlib/ServerKit/HttpServer.h +20 -14
- data/src/cxx_supportlib/ServerKit/Implementation.cpp +2 -2
- data/src/cxx_supportlib/ServerKit/Server.h +2 -8
- data/src/cxx_supportlib/ServerKit/llerrors.h +84 -0
- data/src/cxx_supportlib/ServerKit/llhttp.c +10168 -0
- data/src/cxx_supportlib/ServerKit/llhttp.h +903 -0
- data/src/cxx_supportlib/ServerKit/llhttp_api.c +510 -0
- data/src/cxx_supportlib/ServerKit/llhttp_http.c +170 -0
- data/src/cxx_supportlib/ServerKit/llversion.h +12 -0
- data/src/cxx_supportlib/ServerKit/url_parser.c +574 -0
- data/src/cxx_supportlib/ServerKit/url_parser.h +74 -0
- data/src/cxx_supportlib/StaticString.h +5 -3
- data/src/cxx_supportlib/StrIntTools/DateParsing.h +3 -3
- data/src/cxx_supportlib/StrIntTools/StrIntUtils.cpp +14 -5
- data/src/cxx_supportlib/StrIntTools/StrIntUtils.h +9 -4
- data/src/cxx_supportlib/StrIntTools/StrIntUtilsNoStrictAliasing.cpp +2 -2
- data/src/cxx_supportlib/StrIntTools/StringScanning.h +2 -2
- data/src/cxx_supportlib/StrIntTools/Template.h +2 -2
- data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +2 -2
- data/src/cxx_supportlib/SystemTools/ProcessMetricsCollector.h +2 -2
- data/src/cxx_supportlib/SystemTools/SystemMetricsCollector.h +4 -6
- data/src/cxx_supportlib/SystemTools/SystemTime.cpp +2 -2
- data/src/cxx_supportlib/SystemTools/SystemTime.h +2 -2
- data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +16 -16
- data/src/cxx_supportlib/SystemTools/UserDatabase.h +8 -12
- data/src/cxx_supportlib/Utils/AnsiColorConstants.h +13 -11
- data/src/cxx_supportlib/Utils/AsyncSignalSafeUtils.h +4 -2
- data/src/cxx_supportlib/Utils/BlockingQueue.h +2 -2
- data/src/cxx_supportlib/Utils/CachedFileStat.cpp +2 -2
- data/src/cxx_supportlib/Utils/CachedFileStat.h +2 -2
- data/src/cxx_supportlib/Utils/CachedFileStat.hpp +2 -2
- data/src/cxx_supportlib/Utils/ClassUtils.h +2 -2
- data/src/cxx_supportlib/Utils/Curl.h +2 -2
- data/src/cxx_supportlib/Utils/FastStringStream.h +9 -9
- data/src/cxx_supportlib/Utils/FileChangeChecker.h +2 -2
- data/src/cxx_supportlib/Utils/HttpConstants.h +2 -2
- data/src/cxx_supportlib/Utils/IniFile.h +26 -27
- data/src/cxx_supportlib/Utils/MessagePassing.h +2 -2
- data/src/cxx_supportlib/Utils/OptionParsing.h +2 -2
- data/src/cxx_supportlib/Utils/ReleaseableScopedPointer.h +2 -2
- data/src/cxx_supportlib/Utils/ScopeGuard.h +2 -2
- data/src/cxx_supportlib/Utils/SpeedMeter.h +2 -5
- data/src/cxx_supportlib/Utils/Timer.h +2 -2
- data/src/cxx_supportlib/Utils/VariantMap.h +2 -2
- data/src/cxx_supportlib/Utils.cpp +3 -3
- data/src/cxx_supportlib/Utils.h +2 -32
- data/src/cxx_supportlib/WatchdogLauncher.cpp +2 -2
- data/src/cxx_supportlib/WatchdogLauncher.h +3 -5
- data/src/cxx_supportlib/WrapperRegistry/CBindings.cpp +2 -2
- data/src/cxx_supportlib/WrapperRegistry/CBindings.h +2 -2
- data/src/cxx_supportlib/WrapperRegistry/Entry.h +2 -2
- data/src/cxx_supportlib/WrapperRegistry/Registry.h +2 -2
- data/src/cxx_supportlib/oxt/backtrace.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/backtrace_disabled.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/backtrace_enabled.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/context.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/spin_lock_darwin.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/spin_lock_gcc_x86.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/spin_lock_portable.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/spin_lock_pthreads.hpp +1 -1
- data/src/cxx_supportlib/oxt/detail/tracable_exception_disabled.hpp +5 -1
- data/src/cxx_supportlib/oxt/detail/tracable_exception_enabled.hpp +2 -1
- data/src/cxx_supportlib/oxt/dynamic_thread_group.hpp +1 -1
- data/src/cxx_supportlib/oxt/implementation.cpp +53 -4
- data/src/cxx_supportlib/oxt/initialize.hpp +1 -1
- data/src/cxx_supportlib/oxt/macros.hpp +1 -1
- data/src/cxx_supportlib/oxt/spin_lock.hpp +1 -1
- data/src/cxx_supportlib/oxt/system_calls.cpp +13 -5
- data/src/cxx_supportlib/oxt/system_calls.hpp +4 -5
- data/src/cxx_supportlib/oxt/thread.hpp +2 -2
- data/src/cxx_supportlib/oxt/tracable_exception.hpp +1 -1
- data/src/cxx_supportlib/vendor-copy/adhoc_lve.h +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_iterator.hpp +11 -3
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/find_iterator.hpp +27 -1
- data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_sunos.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +124 -26
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +10 -18
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_impl.hpp +183 -64
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +170 -68
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +83 -12
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +40 -11
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_aarch32.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_aarch64.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_arm.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/classify.hpp +19 -10
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +19 -54
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_ppc.hpp +105 -100
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +107 -40
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_x86.hpp +32 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +12 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +7 -8
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +26 -27
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +73 -72
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/float_sizes.hpp +122 -35
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +50 -12
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_arm_asm_common.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_ppc_asm_common.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +15 -6
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/alignment_of.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/has_unique_object_representations.hpp +143 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_enum.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_nothrow_default_constructible.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/remove_cv.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_darwin_ulock.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +64 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_darwin_ulock.hpp +158 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +10 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/bind/apply.hpp +2 -60
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +257 -1789
- data/src/cxx_supportlib/vendor-modified/boost/bind/{bind_cc.hpp → detail/bind_cc.hpp} +20 -20
- data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf2_cc.hpp +210 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf_cc.hpp +405 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/detail/integer_sequence.hpp +111 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/detail/result_traits.hpp +13 -2
- data/src/cxx_supportlib/vendor-modified/boost/bind/detail/tuple_for_each.hpp +64 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +140 -290
- data/src/cxx_supportlib/vendor-modified/boost/bind/placeholders.hpp +3 -16
- data/src/cxx_supportlib/vendor-modified/boost/bind/protect.hpp +0 -279
- data/src/cxx_supportlib/vendor-modified/boost/bind/std_placeholders.hpp +0 -6
- data/src/cxx_supportlib/vendor-modified/boost/chrono/config.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/is_evenly_divisible_by.hpp +1 -7
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/requires_cxx11.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/scan_keyword.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +10 -6
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_get.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_put.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_style.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/timezone.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/ios_base_state_ptr.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io_v1/chrono_io.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/chrono/system_clocks.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/time_point.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +7 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx23.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +20 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +89 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +16 -5
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +23 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +19 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +139 -34
- data/src/cxx_supportlib/vendor-modified/boost/config/header_deprecated.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/wasm.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +45 -18
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +11 -45
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +42 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/workaround.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +26 -21
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +30 -26
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +178 -39
- data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +827 -303
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +57 -57
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/addressof.hpp +2 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +155 -179
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocation_type.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +14 -15
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_list.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_slist.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +24 -21
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_end.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +52 -16
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_or_allocator_rebind.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +23 -13
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +891 -182
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +121 -66
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +42 -42
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +310 -231
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/function_detector.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +16 -12
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_pair.hpp +91 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +213 -195
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +10 -11
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +98 -12
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +48 -12
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +8 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +268 -120
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +49 -122
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/placement_new.hpp +1 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_resource.hpp +7 -11
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/transform_iterator.hpp +28 -28
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +265 -354
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +93 -11
- data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +1364 -1296
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +367 -260
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +112 -93
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +80 -125
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +136 -119
- data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +19 -14
- data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +27 -21
- data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +35 -22
- data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +158 -45
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/synchronized_pool_resource.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/unsynchronized_pool_resource.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +81 -83
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +93 -90
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +82 -127
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +229 -245
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +198 -175
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +131 -87
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +373 -374
- data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +6 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +618 -631
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_integral.hpp +146 -0
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_mix.hpp +113 -0
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_range.hpp +408 -0
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_tuple_like.hpp +62 -0
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/mulx.hpp +79 -0
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +395 -581
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +25 -24
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_contiguous_range.hpp +98 -0
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_described_class.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_range.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_tuple_like.hpp +36 -0
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_unordered_range.hpp +38 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/alignof.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/alloc_construct.hpp +7 -81
- data/src/cxx_supportlib/vendor-modified/boost/core/allocator_access.hpp +448 -215
- data/src/cxx_supportlib/vendor-modified/boost/core/allocator_traits.hpp +112 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +418 -45
- data/src/cxx_supportlib/vendor-modified/boost/core/checked_delete.hpp +29 -3
- data/src/cxx_supportlib/vendor-modified/boost/core/cmath.hpp +100 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/data.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/default_allocator.hpp +19 -9
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/is_same.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/lwt_unattended.hpp +66 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/minstd_rand.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_pause.hpp +71 -0
- data/src/cxx_supportlib/vendor-modified/boost/{smart_ptr → core}/detail/sp_thread_sleep.hpp +39 -21
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_yield.hpp +100 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/splitmix64.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +1272 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +78 -21
- data/src/cxx_supportlib/vendor-modified/boost/core/fclose_deleter.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/functor.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/identity.hpp +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/invoke_swap.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/is_same.hpp +10 -15
- data/src/cxx_supportlib/vendor-modified/boost/core/launder.hpp +69 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +41 -37
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +8 -54
- data/src/cxx_supportlib/vendor-modified/boost/core/make_span.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/max_align.hpp +82 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/memory_resource.hpp +108 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/noinit_adaptor.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/noncopyable.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/null_deleter.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/pointer_in_range.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/pointer_traits.hpp +111 -60
- data/src/cxx_supportlib/vendor-modified/boost/core/quick_exit.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +23 -16
- data/src/cxx_supportlib/vendor-modified/boost/core/serialization.hpp +131 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/size.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/snprintf.hpp +173 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +401 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +10 -40
- data/src/cxx_supportlib/vendor-modified/boost/core/type_name.hpp +1186 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/verbose_terminate_handler.hpp +88 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/yield_primitives.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters_limited.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +12 -13
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/parsers.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.ipp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/iso_format.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_date_time.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/conversion.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_io.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters_limited.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_parser.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_parsing.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/describe/bases.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/describe/detail/cx_streq.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/describe/detail/void_t.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/describe/members.hpp +161 -0
- data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +3 -7
- data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +24 -126
- data/src/cxx_supportlib/vendor-modified/boost/detail/workaround.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/exception/current_exception_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/clone_current_exception.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +58 -30
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/is_output_streamable.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/object_hex_dump.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/requires_cxx11.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +85 -3
- data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/exception/to_string.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/exception/to_string_stub.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/function/function0.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function1.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function10.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function2.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function3.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function4.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function5.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function6.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function7.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function8.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function9.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +71 -223
- data/src/cxx_supportlib/vendor-modified/boost/function/function_fwd.hpp +36 -41
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +428 -452
- data/src/cxx_supportlib/vendor-modified/boost/function/function_typeof.hpp +1 -31
- data/src/cxx_supportlib/vendor-modified/boost/function.hpp +5 -61
- data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +6 -10
- data/src/cxx_supportlib/vendor-modified/boost/integer/extended_euclidean.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/integer/integer_log2.hpp +85 -80
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +32 -25
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +16 -13
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +45 -45
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +32 -25
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +104 -97
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +87 -90
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +29 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +77 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algorithm.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/array_initializer.hpp +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +38 -39
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +84 -15
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +24 -24
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/empty_node_checker.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/equal_to_value.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/exception_disposer.hpp +1 -32
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/function_detector.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +14 -15
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash.hpp +277 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +11 -49
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_integral.hpp +119 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_mix.hpp +130 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +195 -115
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +22 -26
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iiterator.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +121 -75
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +20 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/math.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +7 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_to_value.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +7 -17
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +18 -18
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/reverse_iterator.hpp +3 -140
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/size_holder.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +26 -19
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/transform_iterator.hpp +22 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +21 -21
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +28 -28
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/value_functors.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +70 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +1722 -995
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/intrusive_fwd.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +84 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +68 -63
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/options.hpp +17 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pack_options.hpp +15 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +12 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +11 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +16 -13
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +38 -38
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +32 -25
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +32 -25
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +18 -15
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +22 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +80 -79
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +32 -25
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +16 -13
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +38 -36
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +22 -19
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +25 -21
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +44 -37
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +64 -54
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/io/ios_state.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_def.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_undef.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/enable_if.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +10 -11
- data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +148 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +106 -25
- data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +8 -4
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +7 -13
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +113 -131
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +618 -646
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +83 -74
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +26 -33
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +22 -29
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +23 -18
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +7 -9
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +22 -161
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +9 -12
- data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/chrono.cpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/process_cpu_clocks.cpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/thread_clock.cpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/random/src/random_device.cpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/posix_api.cpp +10 -18
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +13 -14
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +24 -14
- data/src/cxx_supportlib/vendor-modified/boost/limits.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +7 -5
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +48 -33
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +92 -75
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +216 -185
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +11 -10
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/heap_sort.hpp +22 -11
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/insertion_sort.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +125 -165
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge_sort.hpp +24 -15
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/pdqsort.hpp +16 -5
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/search.hpp +79 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/set_difference.hpp +8 -2
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +8 -5
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/predicate.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +22 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/default_delete.hpp +5 -6
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/addressof.hpp +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/force_ptr.hpp +36 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +108 -9
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +9 -52
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils_core.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +24 -24
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +70 -26
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/placement_new.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/reverse_iterator.hpp +40 -33
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_begin.hpp +7 -3
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_end.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/to_raw_pointer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +90 -30
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +90 -3
- data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +22 -22
- data/src/cxx_supportlib/vendor-modified/boost/move/make_unique.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +65 -66
- data/src/cxx_supportlib/vendor-modified/boost/move/utility.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/move/utility_core.hpp +38 -33
- data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +1386 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/bind.hpp +120 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/config.hpp +149 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_append.hpp +321 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_copy_if.hpp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_count.hpp +147 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_defer.hpp +119 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_fold.hpp +166 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_front.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_is_list.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_is_value_list.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_list.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_list_v.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +87 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_min_element.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_plus.hpp +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_remove_if.hpp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_rename.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_value.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_void.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_with_index.hpp +385 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/function.hpp +222 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/integer_sequence.hpp +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/integral.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/list.hpp +481 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/set.hpp +188 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/utility.hpp +169 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/mpl/and.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/integral_wrapper.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/template_arity.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/yes_no.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/bitand.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/bitor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/or.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/next_prior.hpp +3 -44
- data/src/cxx_supportlib/vendor-modified/boost/nondet_random.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/none.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +15 -1
- data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/int_float_mixture.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/sign_mixture.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/udt_builtin_mixture.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +4 -49
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_aligned_storage.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +16 -7
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_hash.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +49 -48
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +31 -260
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_utility.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +169 -599
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional_io.hpp +4 -7
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_keyword_arg_ref.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/unmatched_argument.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/overloads.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tag.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/unwrap_cv_reference.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/void.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/binding.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/parameter/match.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/template_keyword.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/parameter/value_type.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/pointer_cast.hpp +12 -24
- data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +22 -9
- data/src/cxx_supportlib/vendor-modified/boost/pool/simple_segregated_storage.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/loongarch.h +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sparc.h +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/language/stdc.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/language/stdcpp.h +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/msvc.h +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/vms.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/has_opt.hpp +8 -2
- data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/random/inversive_congruential.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +203 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/subtract_with_carry.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real_distribution.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/random.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +4 -82
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/gcd_lcm.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_evenly_divisible_by.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_ratio.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/include.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio.hpp +5 -249
- data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_fwd.hpp +30 -56
- data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_io.hpp +0 -533
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/icu.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/pattern_except.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_creator.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +23 -13
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/icu.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/pattern_except.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_common.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_non_recursive.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_workaround.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +235 -104
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +37 -43
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +1 -23
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/deprecated_macros.hpp +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +14 -18
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_sp_deleter.hpp +7 -15
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +40 -91
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_convertible.hpp +0 -16
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +13 -14
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +16 -17
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +17 -56
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_noexcept.hpp +5 -14
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_type_traits.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp +11 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_std_atomic.hpp +5 -6
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +4 -6
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +7 -9
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +32 -119
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ref_counter.hpp +17 -18
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +10 -8
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +28 -564
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_unique.hpp +64 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +17 -20
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +20 -21
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +34 -66
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +79 -370
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +31 -88
- data/src/cxx_supportlib/vendor-modified/boost/static_assert.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/append_int.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +26 -8
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/enable_if.hpp +3 -12
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +38 -50
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +76 -49
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +261 -159
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +145 -58
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category_message.hpp +17 -5
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/interop_category.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_same.hpp +3 -13
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/mutex.hpp +128 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/snprintf.hpp +1 -43
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category.hpp +20 -77
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category_impl.hpp +97 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +8 -20
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_message.hpp +71 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/errc.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +30 -59
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/deque.hpp +1 -24
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/functional.hpp +1 -14
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/list.hpp +1 -14
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_arg.hpp +2 -12
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_traits.hpp +0 -11
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/config.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/default_delete.hpp +0 -16
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/pointer_traits.hpp +0 -11
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/scoped_allocator.hpp +0 -11
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/shared_ptr.hpp +0 -19
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/unique_ptr.hpp +4 -6
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/queue.hpp +2 -26
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/tuple.hpp +1 -18
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/vector.hpp +1 -14
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/invoke.hpp +11 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_to_unsigned.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_trim.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/externally_locked.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_any.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/scoped_thread.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/synchronized_value.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/thread_guard.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +104 -6
- data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +25 -24
- data/src/cxx_supportlib/vendor-modified/boost/tuple/tuple.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_helper.hpp +27 -27
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +27 -27
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_swappable_cxx_11.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +22 -8
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_floating_point.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_function.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_integral.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_function_pointer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_swappable.hpp +4 -24
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_swappable.hpp +92 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/decltype.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/typeof/incr_registration_group.hpp +1 -10
- data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +5 -6
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/bitset.hpp +2 -4
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/complex.hpp +2 -4
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/deque.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/fstream.hpp +2 -15
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/functional.hpp +4 -51
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iostream.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/istream.hpp +2 -9
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iterator.hpp +2 -46
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/list.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/locale.hpp +2 -29
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/map.hpp +2 -9
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/memory.hpp +4 -9
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/ostream.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/queue.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/set.hpp +2 -9
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/sstream.hpp +2 -19
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/stack.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/streambuf.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/string.hpp +2 -12
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/utility.hpp +2 -4
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/valarray.hpp +2 -10
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/vector.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof.hpp +8 -202
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +1055 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map_fwd.hpp +66 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +917 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set_fwd.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_map.hpp +1202 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_map_fwd.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_set.hpp +1065 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_set_fwd.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/allocator_constructed.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/archive_constructed.hpp +71 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/bad_archive_exception.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/concurrent_static_asserts.hpp +127 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +900 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +1993 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +2404 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/cumulative_stats.hpp +177 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/element_type.hpp +64 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_map_types.hpp +94 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_set_types.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/ignore_wshadow.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_handle.hpp +319 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_map_handle.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_map_types.hpp +150 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_set_handle.hpp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_set_types.hpp +101 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/reentrancy_check.hpp +138 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/restore_wshadow.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/rw_spinlock.hpp +179 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +661 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/tuple_rotate_right.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/types_constructibility.hpp +172 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +1463 -3502
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +10 -31
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/mulx.hpp +129 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/narrow_cast.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/opt_storage.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/prime_fmod.hpp +214 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialization_version.hpp +74 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_container.hpp +204 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_fca_container.hpp +156 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_tracked_address.hpp +104 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/set.hpp +8 -30
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/static_assert.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/throw_exception.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +237 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/xmx.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +821 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +631 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +760 -994
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +35 -13
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +895 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map_fwd.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +707 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set_fwd.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_printers.hpp +414 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +539 -664
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +35 -15
- data/src/cxx_supportlib/vendor-modified/boost/utility/base_from_member.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/utility/binary.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +1 -43
- data/src/cxx_supportlib/vendor-modified/boost/utility/in_place_factory.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +13 -2
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +24 -3
- data/src/cxx_supportlib/vendor-modified/boost/utility/swap.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/utility/typed_in_place_factory.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/utility/value_init.hpp +12 -8
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +2 -9
- data/src/cxx_supportlib/vendor-modified/modp_b64_strict_aliasing.cpp +3 -3
- data/src/helper-scripts/backtrace-sanitizer.rb +2 -2
- data/src/helper-scripts/crash-watch.rb +1 -1
- data/src/helper-scripts/download_binaries/extconf.rb +2 -2
- data/src/helper-scripts/meteor-loader.rb +9 -4
- data/src/helper-scripts/node-loader.js +2 -2
- data/src/helper-scripts/prespawn +2 -2
- data/src/helper-scripts/rack-loader.rb +2 -2
- data/src/helper-scripts/rack-preloader.rb +2 -2
- data/src/helper-scripts/wsgi-loader.py +36 -19
- data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +26 -34
- data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c.cxxcodebuilder +2 -2
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +14 -2
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c.cxxcodebuilder +2 -2
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +38 -50
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c.cxxcodebuilder +2 -2
- data/src/nginx_module/ConfigGeneral/ManifestGeneration.c +2 -2
- data/src/nginx_module/Configuration.c +8 -3
- data/src/nginx_module/Configuration.h +1 -1
- data/src/nginx_module/ContentHandler.c +1 -1
- data/src/nginx_module/ContentHandler.h +1 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +13 -2
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +2 -2
- data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +38 -2
- data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c.cxxcodebuilder +2 -2
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +29 -2
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +2 -2
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +8 -2
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c.cxxcodebuilder +2 -2
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +10 -2
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h.cxxcodebuilder +2 -2
- data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +7 -26
- data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +2 -2
- data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +13 -50
- data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +2 -2
- data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +6 -18
- data/src/nginx_module/MainConfig/AutoGeneratedStruct.h.cxxcodebuilder +2 -2
- data/src/nginx_module/StaticContentHandler.c +1 -1
- data/src/nginx_module/StaticContentHandler.h +1 -1
- data/src/nginx_module/ngx_http_passenger_module.c +2 -6
- data/src/nginx_module/ngx_http_passenger_module.h +1 -1
- data/src/nodejs_supportlib/phusion_passenger/line_reader.js +2 -2
- data/src/ruby_native_extension/extconf.rb +3 -3
- data/src/ruby_native_extension/passenger_native_support.c +22 -5
- data/src/ruby_supportlib/phusion_passenger/abstract_installer.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/admin_tools.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +22 -26
- data/src/ruby_supportlib/phusion_passenger/apache2/config_utils.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/common_library.rb +18 -10
- data/src/ruby_supportlib/phusion_passenger/config/about_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/api_call_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/build_native_support_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/compile_agent_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +8 -4
- data/src/ruby_supportlib/phusion_passenger/config/detach_process_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +12 -2
- data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/list_instances_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/main.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +15 -7
- data/src/ruby_supportlib/phusion_passenger/config/reopen_logs_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/system_metrics_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/system_properties_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/utils.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/config/validate_install_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/constants.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/debug_logging.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +15 -5
- data/src/ruby_supportlib/phusion_passenger/message_channel.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/message_client.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/native_support.rb +12 -7
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +21 -30
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +11 -12
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache_detector.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +3 -3
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +56 -14
- data/src/ruby_supportlib/phusion_passenger/platform_info/crypto.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/curl.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +9 -31
- data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/gems.rb +10 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/libs.rb +6 -6
- data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/networking.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +7 -37
- data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +13 -14
- data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +4 -4
- data/src/ruby_supportlib/phusion_passenger/platform_info/zlib.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/plugin.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +14 -8
- data/src/ruby_supportlib/phusion_passenger/public_api.rb +5 -2
- data/src/ruby_supportlib/phusion_passenger/rack/handler.rb +73 -0
- data/src/ruby_supportlib/phusion_passenger/rack/out_of_band_gc.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +14 -3
- data/src/ruby_supportlib/phusion_passenger/rack_handler.rb +32 -58
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/request_handler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/ruby_core_enhancements.rb +7 -2
- data/src/ruby_supportlib/phusion_passenger/ruby_core_io_enhancements.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/simple_benchmarking.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/standalone/command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +27 -23
- data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/standalone/control_utils.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/standalone/main.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +6 -3
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +3 -3
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +2 -6
- data/src/ruby_supportlib/phusion_passenger/standalone/status_command.rb +3 -4
- data/src/ruby_supportlib/phusion_passenger/standalone/stop_command.rb +9 -3
- data/src/ruby_supportlib/phusion_passenger/standalone/version_command.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/ansi_colors.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/download.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/file_system_watcher.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/hosts_file_parser.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/json.rb +7 -198
- data/src/ruby_supportlib/phusion_passenger/utils/lock.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/native_support_utils.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/progress_bar.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/strscan.rb +67 -0
- data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/utils.rb +8 -17
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/base.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +5 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +6 -2
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/version.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/lock_file.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/spawn.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/version.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger.rb +11 -11
- data/src/schema_printer/SchemaPrinterMain.cpp +2 -6
- data/src/schema_printer/SchemaPrinterMain.cpp.cxxcodebuilder +2 -2
- metadata +211 -741
- data/dev/webpacketpp.patch +0 -39
- data/src/agent/Core/AdminPanelConnector.h +0 -681
- data/src/cxx_supportlib/DataStructures/HashMap.h +0 -60
- data/src/cxx_supportlib/FileTools/LargeFiles.cpp +0 -41
- data/src/cxx_supportlib/ServerKit/http_parser.cpp +0 -2265
- data/src/cxx_supportlib/ServerKit/http_parser.h +0 -330
- data/src/cxx_supportlib/WebSocketCommandReverseServer.h +0 -975
- data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +0 -19
- data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of.hpp +0 -54
- data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of_forward.hpp +0 -20
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +0 -21
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc.hpp +0 -52
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of.hpp +0 -31
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of_cxx11.hpp +0 -23
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/element_type.hpp +0 -91
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/integral_constant.hpp +0 -53
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/min_size.hpp +0 -26
- data/src/cxx_supportlib/vendor-modified/boost/array.hpp +0 -456
- data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +0 -302
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +0 -179
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +0 -179
- data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +0 -224
- data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +0 -37
- data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +0 -1267
- data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +0 -135
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +0 -1305
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +0 -705
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +0 -292
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +0 -1296
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +0 -800
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +0 -909
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +0 -578
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +0 -1917
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +0 -2600
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +0 -409
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +0 -689
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +0 -1122
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +0 -454
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +0 -38
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +0 -823
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +0 -723
- data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +0 -756
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +0 -2500
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +0 -255
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +0 -27
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +0 -281
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +0 -27
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +0 -247
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +0 -27
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +0 -523
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +0 -361
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +0 -237
- data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +0 -176
- data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +0 -501
- data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +0 -220
- data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +0 -138
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +0 -1138
- data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +0 -330
- data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +0 -132
- data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +0 -114
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +0 -34
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +0 -32
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +0 -66
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +0 -165
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +0 -71
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +0 -1073
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/blocking_executor_op.hpp +0 -109
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +0 -68
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +0 -652
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +0 -128
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bulk_executor_op.hpp +0 -90
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +0 -127
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +0 -68
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +0 -192
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +0 -90
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +0 -94
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +0 -122
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +0 -151
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +0 -1938
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +0 -416
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +0 -33
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +0 -62
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +0 -34
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +0 -337
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +0 -38
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +0 -141
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +0 -150
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +0 -150
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +0 -224
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +0 -278
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +0 -50
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +0 -85
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_function.hpp +0 -206
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +0 -86
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +0 -41
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +0 -82
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +0 -46
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +0 -33
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +0 -93
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +0 -70
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +0 -67
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +0 -101
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +0 -54
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +0 -290
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +0 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +0 -80
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +0 -268
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +0 -561
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +0 -527
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +0 -333
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +0 -120
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +0 -610
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +0 -101
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +0 -462
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +0 -111
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +0 -819
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +0 -173
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +0 -398
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +0 -115
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +0 -601
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +0 -76
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +0 -131
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +0 -65
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +0 -48
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +0 -86
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +0 -48
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +0 -225
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_serial_port_service.ipp +0 -151
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +0 -302
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +0 -160
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/scheduler.ipp +0 -661
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +0 -126
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +0 -359
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +0 -96
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +0 -199
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +0 -670
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +0 -3966
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +0 -187
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +0 -356
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +0 -160
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +0 -89
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +0 -204
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/thread_context.ipp +0 -37
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +0 -47
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +0 -99
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +0 -103
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +0 -86
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_object_impl.hpp +0 -174
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +0 -314
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +0 -128
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +0 -72
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +0 -254
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/limits.hpp +0 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +0 -61
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +0 -64
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +0 -135
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +0 -50
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/non_const_lvalue.hpp +0 -56
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +0 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +0 -108
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +0 -49
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +0 -61
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +0 -66
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +0 -70
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +0 -71
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +0 -521
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +0 -62
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +0 -70
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +0 -173
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +0 -216
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +0 -164
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +0 -91
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +0 -149
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +0 -177
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +0 -120
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_global.hpp +0 -82
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +0 -78
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +0 -87
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +0 -66
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +0 -111
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +0 -81
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +0 -218
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +0 -511
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +0 -100
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_serial_port_service.hpp +0 -239
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +0 -244
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +0 -125
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +0 -161
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +0 -166
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +0 -147
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +0 -164
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +0 -158
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +0 -607
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +0 -654
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +0 -100
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +0 -32
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_fwd.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +0 -73
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +0 -214
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +0 -107
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +0 -44
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +0 -142
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +0 -47
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +0 -152
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +0 -147
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +0 -160
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler.hpp +0 -231
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_operation.hpp +0 -80
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_thread_info.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +0 -103
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +0 -89
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +0 -48
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +0 -250
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +0 -166
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +0 -46
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +0 -92
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +0 -49
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +0 -51
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +0 -231
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +0 -100
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +0 -385
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +0 -318
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +0 -93
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +0 -419
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +0 -64
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/source_location.hpp +0 -47
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +0 -54
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +0 -190
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +0 -64
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_global.hpp +0 -72
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +0 -75
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +0 -83
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +0 -73
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +0 -175
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +0 -146
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +0 -49
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +0 -62
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +0 -53
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +0 -101
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +0 -258
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +0 -55
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +0 -53
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +0 -391
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +0 -70
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +0 -105
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +0 -68
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +0 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +0 -71
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +0 -158
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +0 -294
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +0 -92
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +0 -51
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +0 -130
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +0 -153
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +0 -329
- data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +0 -123
- data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +0 -361
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +0 -339
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +0 -2348
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bad_executor.hpp +0 -49
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +0 -1553
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +0 -1214
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +0 -401
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_guarantee.hpp +0 -1217
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +0 -493
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +0 -235
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +0 -223
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_invocable.hpp +0 -154
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_operation.hpp +0 -107
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_receiver.hpp +0 -130
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/bulk_sender.hpp +0 -263
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/submit_receiver.hpp +0 -235
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/void_receiver.hpp +0 -92
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +0 -289
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +0 -254
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/bad_executor.ipp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/receiver_invocation_error.ipp +0 -38
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/invocable_archetype.hpp +0 -73
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +0 -1118
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +0 -228
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/operation_state.hpp +0 -96
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +0 -869
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/prefer_only.hpp +0 -333
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver.hpp +0 -282
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver_invocation_error.hpp +0 -50
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +0 -867
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +0 -291
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/scheduler.hpp +0 -88
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/sender.hpp +0 -313
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +0 -254
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +0 -254
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +0 -487
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +0 -251
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +0 -454
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution.hpp +0 -48
- data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +0 -414
- data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +0 -349
- data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +0 -304
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +0 -73
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_single.hpp +0 -137
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +0 -133
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +0 -538
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +0 -157
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +0 -1057
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +0 -607
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/completion_handler_erasure.hpp +0 -160
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +0 -120
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_traits.hpp +0 -185
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +0 -181
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/append.hpp +0 -219
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +0 -231
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_tuple.hpp +0 -248
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/deferred.hpp +0 -106
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +0 -434
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/prepend.hpp +0 -219
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +0 -100
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +0 -217
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +0 -73
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +0 -608
- data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +0 -284
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +0 -195
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +0 -125
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +0 -135
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +0 -112
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +0 -123
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +0 -124
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +0 -129
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +0 -106
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +0 -56
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +0 -113
- data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +0 -46
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +0 -762
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +0 -500
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +0 -480
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +0 -348
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +0 -689
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +0 -906
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +0 -258
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +0 -132
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +0 -253
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +0 -130
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.hpp +0 -111
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +0 -84
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +0 -302
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +0 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +0 -64
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +0 -446
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +0 -177
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/multiple_exceptions.ipp +0 -51
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +0 -258
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +0 -1201
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +0 -735
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +0 -3317
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +0 -611
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +0 -61
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +0 -556
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +0 -519
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +0 -85
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +0 -36
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +0 -94
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +0 -187
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +0 -356
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +0 -143
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +0 -293
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +0 -1030
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +0 -1102
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +0 -646
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +0 -1552
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +0 -378
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +0 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +0 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +0 -292
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +0 -357
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +0 -164
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +0 -136
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +0 -384
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +0 -185
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +0 -131
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +0 -55
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +0 -293
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +0 -1078
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +0 -115
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +0 -194
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +0 -246
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +0 -313
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +0 -143
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +0 -201
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +0 -568
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +0 -44
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +0 -117
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +0 -241
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +0 -212
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +0 -352
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +0 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +0 -56
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.hpp +0 -56
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +0 -218
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +0 -55
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +0 -187
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +0 -193
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +0 -263
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +0 -237
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +0 -131
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +0 -45
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +0 -157
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +0 -113
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +0 -72
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +0 -71
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_applicable_property.hpp +0 -63
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +0 -48
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +0 -61
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +0 -61
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +0 -249
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +0 -103
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +0 -82
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +0 -141
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +0 -133
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +0 -92
- data/src/cxx_supportlib/vendor-modified/boost/asio/multiple_exceptions.hpp +0 -60
- data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +0 -128
- data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +0 -153
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +0 -710
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +0 -503
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +0 -39
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +0 -92
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +0 -39
- data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +0 -128
- data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +0 -738
- data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +0 -328
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +0 -1390
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +0 -740
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +0 -3033
- data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +0 -68
- data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +0 -575
- data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +0 -356
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +0 -38
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +0 -169
- data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +0 -561
- data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +0 -346
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +0 -763
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +0 -211
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +0 -121
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +0 -172
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +0 -365
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +0 -167
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +0 -427
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +0 -103
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +0 -34
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +0 -68
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +0 -74
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +0 -71
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +0 -208
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +0 -64
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +0 -78
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +0 -129
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/host_name_verification.hpp +0 -92
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +0 -1247
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +0 -104
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/host_name_verification.ipp +0 -75
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +0 -166
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +0 -29
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +0 -100
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +0 -974
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +0 -54
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +0 -65
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +0 -28
- data/src/cxx_supportlib/vendor-modified/boost/asio/static_thread_pool.hpp +0 -33
- data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +0 -44
- data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +0 -571
- data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +0 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +0 -92
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +0 -686
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +0 -44
- data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +0 -282
- data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +0 -1133
- data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +0 -88
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_free.hpp +0 -116
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_member.hpp +0 -116
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_free.hpp +0 -114
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_member.hpp +0 -114
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/equality_comparable.hpp +0 -106
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_free.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_member.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_free.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_member.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_free.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_member.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_static_constexpr_member.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_free.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_member.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_free.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_member.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_free.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_member.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_free.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_member.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_free.hpp +0 -114
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_member.hpp +0 -114
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_free.hpp +0 -236
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_member.hpp +0 -236
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_free.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_member.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_query.hpp +0 -110
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require.hpp +0 -125
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require_concept.hpp +0 -126
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_free.hpp +0 -114
- data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_member.hpp +0 -114
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +0 -24
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +0 -35
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +0 -20
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +0 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +0 -256
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +0 -27
- data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +0 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +0 -21
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +0 -168
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +0 -162
- data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +0 -73
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +0 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +0 -58
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +0 -437
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_overlapped_handle.hpp +0 -363
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +0 -512
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +0 -496
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_handle.hpp +0 -41
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +0 -147
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +0 -39
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +0 -39
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +0 -1348
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +0 -748
- data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +0 -23
- data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +0 -187
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_windows.hpp +0 -201
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_windows.hpp +0 -67
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_windows.hpp +0 -55
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_windows.hpp +0 -150
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf2_cc.hpp +0 -228
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf_cc.hpp +0 -441
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind_template.hpp +0 -345
- data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_cc.hpp +0 -103
- data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_template.hpp +0 -1047
- data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_vw.hpp +0 -130
- data/src/cxx_supportlib/vendor-modified/boost/bind/storage.hpp +0 -475
- data/src/cxx_supportlib/vendor-modified/boost/checked_delete.hpp +0 -17
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +0 -71
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/float_functions.hpp +0 -336
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_float.hpp +0 -271
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/limits.hpp +0 -62
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/extensions.hpp +0 -361
- data/src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp +0 -21
- data/src/cxx_supportlib/vendor-modified/boost/detail/container_fwd.hpp +0 -157
- data/src/cxx_supportlib/vendor-modified/boost/function/detail/function_iterate.hpp +0 -16
- data/src/cxx_supportlib/vendor-modified/boost/function/detail/gen_maybe_include.pl +0 -39
- data/src/cxx_supportlib/vendor-modified/boost/function/detail/maybe_include.hpp +0 -369
- data/src/cxx_supportlib/vendor-modified/boost/function/detail/prologue.hpp +0 -26
- data/src/cxx_supportlib/vendor-modified/boost/function/gen_function_N.pl +0 -26
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash_fwd.hpp +0 -6
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +0 -1058
- data/src/cxx_supportlib/vendor-modified/boost/pointer_to_other.hpp +0 -55
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/abs.hpp +0 -89
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/gcd.hpp +0 -124
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/lcm.hpp +0 -126
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/sign.hpp +0 -89
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/overflow_helpers.hpp +0 -367
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/ratio_io.hpp +0 -1342
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/abs.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/arithmetic.hpp +0 -22
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/comparison.hpp +0 -19
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/divides.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/equal_to.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/gcd.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater_equal.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/lcm.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less_equal.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/minus.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/negate.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/not_equal_to.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/numeric_cast.hpp +0 -31
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/plus.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_c_tag.hpp +0 -25
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_constant.hpp +0 -15
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/sign.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/times.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/indexed_bit_flag.hpp +0 -54
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/operator_bool.hpp +0 -64
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_forward.hpp +0 -52
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_nullptr_t.hpp +0 -45
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_obsolete.hpp +0 -32
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_thread_pause.hpp +0 -51
- data/src/cxx_supportlib/vendor-modified/boost/swap.hpp +0 -17
- data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +0 -278
- data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +0 -297
- data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +0 -265
- data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +0 -100
- data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -58
- data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +0 -34
- data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +0 -118
- data/src/cxx_supportlib/vendor-modified/boost/typeof/integral_template_param.hpp +0 -80
- data/src/cxx_supportlib/vendor-modified/boost/typeof/message.hpp +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +0 -121
- data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +0 -60
- data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +0 -38
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions.hpp +0 -50
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +0 -135
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_fundamental.hpp +0 -61
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +0 -32
- data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +0 -160
- data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +0 -149
- data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +0 -27
- data/src/cxx_supportlib/vendor-modified/boost/typeof/type_template_param.hpp +0 -37
- data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +0 -187
- data/src/cxx_supportlib/vendor-modified/boost/typeof/unsupported.hpp +0 -29
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +0 -166
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +0 -321
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +0 -471
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +0 -621
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +0 -171
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +0 -63
- data/src/cxx_supportlib/vendor-modified/websocketpp/COPYING +0 -145
- data/src/cxx_supportlib/vendor-modified/websocketpp/changelog.md +0 -444
- data/src/cxx_supportlib/vendor-modified/websocketpp/readme.md +0 -49
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/base64/base64.hpp +0 -178
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/client.hpp +0 -33
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/close.hpp +0 -353
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/asio.hpp +0 -141
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/asio_ssl.hpp +0 -39
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/chrono.hpp +0 -68
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/connection_hdl.hpp +0 -52
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/cpp11.hpp +0 -162
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/functional.hpp +0 -100
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/md5.hpp +0 -448
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/memory.hpp +0 -88
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/network.hpp +0 -106
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/platforms.hpp +0 -46
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/random.hpp +0 -82
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/regex.hpp +0 -59
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/stdint.hpp +0 -73
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/system_error.hpp +0 -84
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/thread.hpp +0 -88
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/time.hpp +0 -56
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/type_traits.hpp +0 -65
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/concurrency/basic.hpp +0 -46
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/concurrency/none.hpp +0 -80
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio.hpp +0 -77
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio_client.hpp +0 -77
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio_no_tls.hpp +0 -73
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio_no_tls_client.hpp +0 -73
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/boost_config.hpp +0 -72
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/core.hpp +0 -297
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/core_client.hpp +0 -294
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/debug.hpp +0 -286
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/debug_asio.hpp +0 -77
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/debug_asio_no_tls.hpp +0 -73
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/minimal_client.hpp +0 -72
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/minimal_server.hpp +0 -312
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/connection.hpp +0 -1642
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/connection_base.hpp +0 -38
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/endpoint.hpp +0 -700
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/endpoint_base.hpp +0 -38
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/error.hpp +0 -277
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/extensions/extension.hpp +0 -102
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/extensions/permessage_deflate/disabled.hpp +0 -129
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/extensions/permessage_deflate/enabled.hpp +0 -817
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/frame.hpp +0 -864
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/constants.hpp +0 -308
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/impl/parser.hpp +0 -200
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/impl/request.hpp +0 -191
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/impl/response.hpp +0 -266
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/parser.hpp +0 -629
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/request.hpp +0 -124
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/response.hpp +0 -188
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/impl/connection_impl.hpp +0 -2375
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/impl/endpoint_impl.hpp +0 -269
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/impl/utilities_impl.hpp +0 -87
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/basic.hpp +0 -199
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/levels.hpp +0 -203
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/stub.hpp +0 -119
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/syslog.hpp +0 -146
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/message_buffer/alloc.hpp +0 -105
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/message_buffer/message.hpp +0 -340
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/message_buffer/pool.hpp +0 -229
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/base.hpp +0 -299
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi00.hpp +0 -462
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi07.hpp +0 -78
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi08.hpp +0 -83
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi13.hpp +0 -1078
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/processor.hpp +0 -407
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/random/none.hpp +0 -60
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/random/random_device.hpp +0 -80
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/roles/client_endpoint.hpp +0 -173
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/roles/server_endpoint.hpp +0 -195
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/server.hpp +0 -33
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/sha1/sha1.hpp +0 -189
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/base.hpp +0 -232
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/connection.hpp +0 -1197
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/endpoint.hpp +0 -1182
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/security/base.hpp +0 -159
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/security/none.hpp +0 -372
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/security/tls.hpp +0 -474
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/base/connection.hpp +0 -238
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/base/endpoint.hpp +0 -77
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/debug/base.hpp +0 -104
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/debug/connection.hpp +0 -412
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/debug/endpoint.hpp +0 -140
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/iostream/base.hpp +0 -133
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/iostream/connection.hpp +0 -714
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/iostream/endpoint.hpp +0 -222
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/stub/base.hpp +0 -95
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/stub/connection.hpp +0 -286
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/stub/endpoint.hpp +0 -140
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/uri.hpp +0 -356
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/utf8_validator.hpp +0 -154
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/utilities.hpp +0 -180
- data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/version.hpp +0 -61
|
@@ -15,11 +15,9 @@
|
|
|
15
15
|
#include <boost/container/detail/config_begin.hpp>
|
|
16
16
|
#include <boost/container/detail/workaround.hpp>
|
|
17
17
|
|
|
18
|
-
//#include <algorithm>
|
|
19
18
|
#include <cstring> // memcpy
|
|
20
19
|
|
|
21
20
|
#include <boost/assert.hpp>
|
|
22
|
-
#include <boost/aligned_storage.hpp>
|
|
23
21
|
|
|
24
22
|
#include <boost/container/detail/copy_move_algo.hpp>
|
|
25
23
|
#include <boost/container/new_allocator.hpp> //new_allocator
|
|
@@ -35,6 +33,7 @@
|
|
|
35
33
|
#include <boost/container/detail/min_max.hpp>
|
|
36
34
|
#include <boost/container/detail/next_capacity.hpp>
|
|
37
35
|
#include <boost/container/detail/alloc_helpers.hpp>
|
|
36
|
+
#include <boost/container/detail/advanced_insert_int.hpp>
|
|
38
37
|
|
|
39
38
|
// move
|
|
40
39
|
#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
|
@@ -48,11 +47,9 @@
|
|
|
48
47
|
#include <boost/move/detail/to_raw_pointer.hpp>
|
|
49
48
|
#include <boost/move/algo/detail/merge.hpp>
|
|
50
49
|
|
|
51
|
-
#include <boost/type_traits/is_nothrow_move_constructible.hpp>
|
|
52
|
-
|
|
53
50
|
//std
|
|
54
51
|
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
55
|
-
#include <initializer_list>
|
|
52
|
+
#include <initializer_list> //for std::initializer_list
|
|
56
53
|
#endif
|
|
57
54
|
|
|
58
55
|
namespace boost {
|
|
@@ -65,33 +62,36 @@ struct growth_factor_60;
|
|
|
65
62
|
template<class Options, class AllocatorSizeType>
|
|
66
63
|
struct get_devector_opt
|
|
67
64
|
{
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
typedef devector_opt< typename default_if_void<typename Options::growth_factor_type, growth_factor_60>::type
|
|
66
|
+
, typename default_if_void<typename Options::stored_size_type, AllocatorSizeType>::type
|
|
67
|
+
, default_if_zero<Options::free_fraction, relocate_on_90::value>::value
|
|
68
|
+
> type;
|
|
71
69
|
};
|
|
72
70
|
|
|
73
71
|
template<class AllocatorSizeType>
|
|
74
72
|
struct get_devector_opt<void, AllocatorSizeType>
|
|
75
73
|
{
|
|
76
|
-
|
|
74
|
+
typedef devector_opt< growth_factor_60, AllocatorSizeType, relocate_on_90::value> type;
|
|
77
75
|
};
|
|
78
76
|
|
|
79
|
-
#endif
|
|
77
|
+
#endif //#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
80
78
|
|
|
81
79
|
struct reserve_only_tag_t {};
|
|
80
|
+
struct reserve_uninitialized_t {};
|
|
81
|
+
struct review_implementation_t {};
|
|
82
|
+
|
|
82
83
|
//struct unsafe_uninitialized_tag_t {};
|
|
83
84
|
|
|
84
85
|
/**
|
|
85
86
|
* A vector-like sequence container providing front and back operations
|
|
86
|
-
* (e.g: `push_front`/`pop_front`/`push_back`/`pop_back`) with amortized constant complexity
|
|
87
|
-
* and unsafe methods geared towards additional performance.
|
|
87
|
+
* (e.g: `push_front`/`pop_front`/`push_back`/`pop_back`) with amortized constant complexity.
|
|
88
88
|
*
|
|
89
89
|
* Models the [SequenceContainer], [ReversibleContainer], and [AllocatorAwareContainer] concepts.
|
|
90
90
|
*
|
|
91
91
|
* **Requires**:
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
92
|
+
* - `T` shall be [MoveInsertable] into the devector.
|
|
93
|
+
* - `T` shall be [Erasable] from any `devector<T, allocator_type, GP>`.
|
|
94
|
+
* - `GrowthFactor`, and `Allocator` must model the concepts with the same names or be void.
|
|
95
95
|
*
|
|
96
96
|
* **Definition**: `T` is `NothrowConstructible` if it's either nothrow move constructible or
|
|
97
97
|
* nothrow copy constructible.
|
|
@@ -107,13 +107,13 @@ struct reserve_only_tag_t {};
|
|
|
107
107
|
*
|
|
108
108
|
* In addition to the exceptions specified in the **Throws** clause, the following operations
|
|
109
109
|
* of `T` can throw when any of the specified concept is required:
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
110
|
+
* - [DefaultInsertable][]: Default constructor
|
|
111
|
+
* - [MoveInsertable][]: Move constructor
|
|
112
|
+
* - [CopyInsertable][]: Copy constructor
|
|
113
|
+
* - [DefaultConstructible][]: Default constructor
|
|
114
|
+
* - [EmplaceConstructible][]: Constructor selected by the given arguments
|
|
115
|
+
* - [MoveAssignable][]: Move assignment operator
|
|
116
|
+
* - [CopyAssignable][]: Copy assignment operator
|
|
117
117
|
*
|
|
118
118
|
* Furthermore, not `noexcept` methods throws whatever the allocator throws
|
|
119
119
|
* if memory allocation fails. Such methods also throw `length_error` if the capacity
|
|
@@ -122,9 +122,7 @@ struct reserve_only_tag_t {};
|
|
|
122
122
|
* **Remark**: If a method invalidates some iterators, it also invalidates references
|
|
123
123
|
* and pointers to the elements pointed by the invalidated iterators.
|
|
124
124
|
*
|
|
125
|
-
|
|
126
|
-
*
|
|
127
|
-
* @ref devector_growth_policy models the `GrowthFactor` concept.
|
|
125
|
+
*! \tparam Options A type produced from \c boost::container::devector_options.
|
|
128
126
|
*
|
|
129
127
|
* [SequenceContainer]: http://en.cppreference.com/w/cpp/concept/SequenceContainer
|
|
130
128
|
* [ReversibleContainer]: http://en.cppreference.com/w/cpp/concept/ReversibleContainer
|
|
@@ -144,42 +142,58 @@ class devector
|
|
|
144
142
|
{
|
|
145
143
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
146
144
|
typedef boost::container::allocator_traits
|
|
147
|
-
<typename real_allocator<T, A>::type>
|
|
148
|
-
typedef typename allocator_traits_type::size_type
|
|
149
|
-
typedef typename get_devector_opt<Options, alloc_size_type>::type
|
|
150
|
-
typedef typename options_type::growth_factor_type
|
|
151
|
-
typedef typename options_type::stored_size_type
|
|
145
|
+
<typename real_allocator<T, A>::type> allocator_traits_type;
|
|
146
|
+
typedef typename allocator_traits_type::size_type alloc_size_type;
|
|
147
|
+
typedef typename get_devector_opt<Options, alloc_size_type>::type options_type;
|
|
148
|
+
typedef typename options_type::growth_factor_type growth_factor_type;
|
|
149
|
+
typedef typename options_type::stored_size_type stored_size_type;
|
|
150
|
+
BOOST_STATIC_CONSTEXPR std::size_t devector_min_free_fraction =
|
|
151
|
+
options_type::free_fraction;
|
|
152
152
|
|
|
153
153
|
#endif // ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
154
154
|
|
|
155
155
|
public:
|
|
156
156
|
// Standard Interface Types:
|
|
157
|
-
typedef T
|
|
157
|
+
typedef T value_type;
|
|
158
158
|
typedef BOOST_CONTAINER_IMPDEF
|
|
159
|
-
(typename real_allocator<T BOOST_MOVE_I A>::type)
|
|
160
|
-
typedef allocator_type
|
|
161
|
-
typedef typename
|
|
162
|
-
typedef typename
|
|
163
|
-
typedef typename
|
|
164
|
-
typedef typename
|
|
165
|
-
typedef typename
|
|
166
|
-
typedef typename
|
|
167
|
-
typedef pointer
|
|
168
|
-
typedef const_pointer
|
|
159
|
+
(typename real_allocator<T BOOST_MOVE_I A>::type) allocator_type;
|
|
160
|
+
typedef allocator_type stored_allocator_type;
|
|
161
|
+
typedef typename allocator_traits<allocator_type>::pointer pointer;
|
|
162
|
+
typedef typename allocator_traits<allocator_type>::const_pointer const_pointer;
|
|
163
|
+
typedef typename allocator_traits<allocator_type>::reference reference;
|
|
164
|
+
typedef typename allocator_traits<allocator_type>::const_reference const_reference;
|
|
165
|
+
typedef typename allocator_traits<allocator_type>::size_type size_type;
|
|
166
|
+
typedef typename allocator_traits<allocator_type>::difference_type difference_type;
|
|
167
|
+
typedef pointer iterator;
|
|
168
|
+
typedef const_pointer const_iterator;
|
|
169
169
|
typedef BOOST_CONTAINER_IMPDEF
|
|
170
|
-
(boost::container::reverse_iterator<iterator>)
|
|
170
|
+
(boost::container::reverse_iterator<iterator>) reverse_iterator;
|
|
171
171
|
typedef BOOST_CONTAINER_IMPDEF
|
|
172
|
-
(boost::container::reverse_iterator<const_iterator>)
|
|
172
|
+
(boost::container::reverse_iterator<const_iterator>) const_reverse_iterator;
|
|
173
173
|
|
|
174
174
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
175
175
|
private:
|
|
176
|
+
|
|
177
|
+
//`allocator_type::value_type` must match container's `value type`. If this
|
|
178
|
+
//assertion fails, please review your allocator definition.
|
|
179
|
+
BOOST_CONTAINER_STATIC_ASSERT((dtl::is_same<value_type, typename allocator_traits<allocator_type>::value_type>::value));
|
|
180
|
+
|
|
176
181
|
BOOST_COPYABLE_AND_MOVABLE(devector)
|
|
177
182
|
|
|
178
183
|
// Guard to deallocate buffer on exception
|
|
179
184
|
typedef typename detail::allocation_guard<allocator_type> allocation_guard;
|
|
180
185
|
|
|
181
186
|
// Random access pseudo iterator always yielding to the same result
|
|
182
|
-
typedef constant_iterator<T
|
|
187
|
+
typedef constant_iterator<T> cvalue_iterator;
|
|
188
|
+
|
|
189
|
+
static size_type to_internal_capacity(size_type desired_capacity)
|
|
190
|
+
{
|
|
191
|
+
const size_type rounder = devector_min_free_fraction - 2u;
|
|
192
|
+
const size_type divisor = devector_min_free_fraction - 1u;
|
|
193
|
+
size_type const nc = ((desired_capacity + rounder) / divisor) * devector_min_free_fraction;
|
|
194
|
+
BOOST_ASSERT(desired_capacity <= (nc - nc / devector_min_free_fraction));
|
|
195
|
+
return nc;
|
|
196
|
+
}
|
|
183
197
|
|
|
184
198
|
#endif // ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
185
199
|
|
|
@@ -215,63 +229,71 @@ class devector
|
|
|
215
229
|
* **Effects**: Constructs an empty devector, using the specified allocator
|
|
216
230
|
* and reserves `n` slots as if `reserve(n)` was called.
|
|
217
231
|
*
|
|
218
|
-
* **Postcondition**: `empty() &&
|
|
219
|
-
* && back_free_capacity() >= n`.
|
|
232
|
+
* **Postcondition**: `empty() && capacity() >= n`.
|
|
220
233
|
*
|
|
221
234
|
* **Exceptions**: Strong exception guarantee.
|
|
222
235
|
*
|
|
223
236
|
* **Complexity**: Constant.
|
|
224
237
|
*/
|
|
225
238
|
devector(size_type n, reserve_only_tag_t, const allocator_type& allocator = allocator_type())
|
|
226
|
-
: m_(
|
|
239
|
+
: m_(reserve_only_tag_t(), allocator, to_internal_capacity(n))
|
|
227
240
|
{}
|
|
228
241
|
|
|
229
242
|
/**
|
|
230
243
|
* **Effects**: Constructs an empty devector, using the specified allocator
|
|
231
|
-
* and reserves `
|
|
244
|
+
* and reserves at least `front_free_cap + back_free_cap` slots as if `reserve_front(front_cap)` and
|
|
232
245
|
* `reserve_back(back_cap)` was called.
|
|
233
246
|
*
|
|
234
|
-
* **Postcondition**: `empty() && front_free_capacity()
|
|
235
|
-
* && back_free_capacity() >=
|
|
247
|
+
* **Postcondition**: `empty() && front_free_capacity() >= front_free_cap
|
|
248
|
+
* && back_free_capacity() >= back_free_cap`.
|
|
236
249
|
*
|
|
237
250
|
* **Exceptions**: Strong exception guarantee.
|
|
238
251
|
*
|
|
239
252
|
* **Complexity**: Constant.
|
|
240
253
|
*/
|
|
241
|
-
devector(size_type
|
|
242
|
-
: m_(
|
|
254
|
+
devector(size_type front_free_cap, size_type back_free_cap, reserve_only_tag_t, const allocator_type& allocator = allocator_type())
|
|
255
|
+
: m_(reserve_only_tag_t(), allocator, front_free_cap, back_free_cap)
|
|
243
256
|
{}
|
|
244
257
|
|
|
245
258
|
/**
|
|
246
259
|
* [DefaultInsertable]: http://en.cppreference.com/w/cpp/concept/DefaultInsertable
|
|
247
260
|
*
|
|
248
|
-
* **Effects**: Constructs a devector with `n`
|
|
261
|
+
* **Effects**: Constructs a devector with `n` value_initialized elements using the specified allocator.
|
|
249
262
|
*
|
|
250
263
|
* **Requires**: `T` shall be [DefaultInsertable] into `*this`.
|
|
251
264
|
*
|
|
252
|
-
* **Postcondition**: `size() == n
|
|
265
|
+
* **Postcondition**: `size() == n`.
|
|
253
266
|
*
|
|
254
267
|
* **Exceptions**: Strong exception guarantee.
|
|
255
268
|
*
|
|
256
269
|
* **Complexity**: Linear in `n`.
|
|
257
270
|
*/
|
|
258
271
|
explicit devector(size_type n, const allocator_type& allocator = allocator_type())
|
|
259
|
-
: m_(
|
|
272
|
+
: m_(reserve_uninitialized_t(), allocator, n)
|
|
260
273
|
{
|
|
261
|
-
// Cannot use construct_from_range/constant_iterator and copy_range,
|
|
262
|
-
// because we are not allowed to default construct T
|
|
263
274
|
allocation_guard buffer_guard(m_.buffer, m_.capacity, get_allocator_ref());
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
for (size_type i = 0; i < n; ++i)
|
|
267
|
-
{
|
|
268
|
-
this->alloc_construct(m_.buffer + i);
|
|
269
|
-
copy_guard.extend();
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
copy_guard.release();
|
|
275
|
+
boost::container::uninitialized_value_init_alloc_n(get_allocator_ref(), n, this->priv_raw_begin());
|
|
273
276
|
buffer_guard.release();
|
|
277
|
+
BOOST_ASSERT(invariants_ok());
|
|
278
|
+
}
|
|
274
279
|
|
|
280
|
+
/**
|
|
281
|
+
* **Effects**: Constructs a devector with `n` default-initialized elements using the specified allocator.
|
|
282
|
+
*
|
|
283
|
+
* **Requires**: `T` shall be [DefaultInsertable] into `*this`.
|
|
284
|
+
*
|
|
285
|
+
* **Postcondition**: `size() == n`.
|
|
286
|
+
*
|
|
287
|
+
* **Exceptions**: Strong exception guarantee.
|
|
288
|
+
*
|
|
289
|
+
* **Complexity**: Linear in `n`.
|
|
290
|
+
*/
|
|
291
|
+
explicit devector(size_type n, default_init_t, const allocator_type& allocator = allocator_type())
|
|
292
|
+
: m_(reserve_uninitialized_t(), allocator, n)
|
|
293
|
+
{
|
|
294
|
+
allocation_guard buffer_guard(m_.buffer, m_.capacity, get_allocator_ref());
|
|
295
|
+
boost::container::uninitialized_default_init_alloc_n(get_allocator_ref(), n, this->priv_raw_begin());
|
|
296
|
+
buffer_guard.release();
|
|
275
297
|
BOOST_ASSERT(invariants_ok());
|
|
276
298
|
}
|
|
277
299
|
|
|
@@ -282,14 +304,14 @@ class devector
|
|
|
282
304
|
*
|
|
283
305
|
* **Requires**: `T` shall be [CopyInsertable] into `*this`.
|
|
284
306
|
*
|
|
285
|
-
* **Postcondition**: `size() == n
|
|
307
|
+
* **Postcondition**: `size() == n`.
|
|
286
308
|
*
|
|
287
309
|
* **Exceptions**: Strong exception guarantee.
|
|
288
310
|
*
|
|
289
311
|
* **Complexity**: Linear in `n`.
|
|
290
312
|
*/
|
|
291
313
|
devector(size_type n, const T& value, const allocator_type& allocator = allocator_type())
|
|
292
|
-
: m_(
|
|
314
|
+
: m_(reserve_uninitialized_t(), allocator, n)
|
|
293
315
|
{
|
|
294
316
|
construct_from_range(cvalue_iterator(value, n), cvalue_iterator());
|
|
295
317
|
BOOST_ASSERT(invariants_ok());
|
|
@@ -321,18 +343,24 @@ class devector
|
|
|
321
343
|
devector(InputIterator first, InputIterator last, const allocator_type& allocator = allocator_type()
|
|
322
344
|
//Input iterators
|
|
323
345
|
BOOST_CONTAINER_DOCIGN(BOOST_MOVE_I typename dtl::disable_if_or
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
346
|
+
< void
|
|
347
|
+
BOOST_MOVE_I dtl::is_convertible<InputIterator BOOST_MOVE_I size_type>
|
|
348
|
+
BOOST_MOVE_I dtl::is_not_input_iterator<InputIterator>
|
|
349
|
+
>::type * = 0)
|
|
328
350
|
)
|
|
329
|
-
: m_(allocator
|
|
351
|
+
: m_(allocator)
|
|
330
352
|
{
|
|
331
|
-
|
|
332
|
-
|
|
353
|
+
BOOST_CONTAINER_TRY{
|
|
354
|
+
while (first != last) {
|
|
355
|
+
this->emplace_back(*first++);
|
|
356
|
+
}
|
|
357
|
+
BOOST_ASSERT(invariants_ok());
|
|
333
358
|
}
|
|
334
|
-
|
|
335
|
-
|
|
359
|
+
BOOST_CONTAINER_CATCH(...){
|
|
360
|
+
this->destroy_elements(m_.buffer + m_.front_idx, m_.buffer + m_.back_idx);
|
|
361
|
+
this->deallocate_buffer();
|
|
362
|
+
}
|
|
363
|
+
BOOST_CONTAINER_CATCH_END
|
|
336
364
|
}
|
|
337
365
|
|
|
338
366
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
@@ -341,20 +369,13 @@ class devector
|
|
|
341
369
|
devector(ForwardIterator first, ForwardIterator last, const allocator_type& allocator = allocator_type()
|
|
342
370
|
//Other iterators
|
|
343
371
|
BOOST_CONTAINER_DOCIGN(BOOST_MOVE_I typename dtl::disable_if_or
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
372
|
+
< void
|
|
373
|
+
BOOST_MOVE_I dtl::is_convertible<ForwardIterator BOOST_MOVE_I size_type>
|
|
374
|
+
BOOST_MOVE_I dtl::is_input_iterator<ForwardIterator>
|
|
375
|
+
>::type * = 0)
|
|
348
376
|
)
|
|
349
|
-
: m_(
|
|
377
|
+
: m_(reserve_uninitialized_t(), allocator, boost::container::iterator_udistance(first, last))
|
|
350
378
|
{
|
|
351
|
-
const size_type n = boost::container::iterator_distance(first, last);
|
|
352
|
-
m_.buffer = n ? allocate(n) : pointer();
|
|
353
|
-
m_.front_idx = 0u;
|
|
354
|
-
//this->allocate(n) will take care of overflows
|
|
355
|
-
m_.set_back_idx(n);
|
|
356
|
-
m_.set_capacity(n);
|
|
357
|
-
//construct_from_range releases memory on failure
|
|
358
379
|
this->construct_from_range(first, last);
|
|
359
380
|
BOOST_ASSERT(invariants_ok());
|
|
360
381
|
}
|
|
@@ -368,22 +389,15 @@ class devector
|
|
|
368
389
|
*
|
|
369
390
|
* **Requires**: `T` shall be [CopyInsertable] into `*this`.
|
|
370
391
|
*
|
|
371
|
-
* **Postcondition**: `this->size() == x.size()
|
|
392
|
+
* **Postcondition**: `this->size() == x.size()`.
|
|
372
393
|
*
|
|
373
394
|
* **Exceptions**: Strong exception guarantee.
|
|
374
395
|
*
|
|
375
396
|
* **Complexity**: Linear in the size of `x`.
|
|
376
397
|
*/
|
|
377
398
|
devector(const devector& x)
|
|
378
|
-
: m_( allocator_traits_type::select_on_container_copy_construction(x.get_allocator_ref())
|
|
379
|
-
, pointer(), 0u, 0u, 0u)
|
|
399
|
+
: m_(reserve_uninitialized_t(), allocator_traits_type::select_on_container_copy_construction(x.get_allocator_ref()), x.size())
|
|
380
400
|
{
|
|
381
|
-
const size_type n = x.size();
|
|
382
|
-
m_.buffer = n ? allocate(n) : pointer();
|
|
383
|
-
m_.front_idx = 0u;
|
|
384
|
-
//this->allocate(n) will take care of overflows
|
|
385
|
-
m_.set_back_idx(n);
|
|
386
|
-
m_.set_capacity(n);
|
|
387
401
|
this->construct_from_range(x.begin(), x.end());
|
|
388
402
|
BOOST_ASSERT(invariants_ok());
|
|
389
403
|
}
|
|
@@ -395,21 +409,15 @@ class devector
|
|
|
395
409
|
*
|
|
396
410
|
* **Requires**: `T` shall be [CopyInsertable] into `*this`.
|
|
397
411
|
*
|
|
398
|
-
* **Postcondition**:
|
|
412
|
+
* **Postcondition**: `*this == x`.
|
|
399
413
|
*
|
|
400
414
|
* **Exceptions**: Strong exception guarantee.
|
|
401
415
|
*
|
|
402
416
|
* **Complexity**: Linear in the size of `x`.
|
|
403
417
|
*/
|
|
404
418
|
devector(const devector& x, const allocator_type& allocator)
|
|
405
|
-
: m_(
|
|
419
|
+
: m_(reserve_uninitialized_t(), allocator, x.size())
|
|
406
420
|
{
|
|
407
|
-
const size_type n = x.size();
|
|
408
|
-
m_.buffer = n ? this->allocate(n) : pointer();
|
|
409
|
-
m_.front_idx = 0u;
|
|
410
|
-
//this->allocate(n) will take care of overflows
|
|
411
|
-
m_.set_back_idx(n);
|
|
412
|
-
m_.set_capacity(n);
|
|
413
421
|
this->construct_from_range(x.begin(), x.end());
|
|
414
422
|
BOOST_ASSERT(invariants_ok());
|
|
415
423
|
}
|
|
@@ -419,21 +427,17 @@ class devector
|
|
|
419
427
|
*
|
|
420
428
|
* **Throws**: Nothing.
|
|
421
429
|
*
|
|
422
|
-
* **Postcondition**:
|
|
430
|
+
* **Postcondition**: *this has the same value `rhs` had before the operation.
|
|
431
|
+
* `rhs` is left in an unspecified but valid state.
|
|
423
432
|
*
|
|
424
433
|
* **Exceptions**: Strong exception guarantee if not `noexcept`.
|
|
425
434
|
*
|
|
426
435
|
* **Complexity**: Constant.
|
|
427
436
|
*/
|
|
428
437
|
devector(BOOST_RV_REF(devector) rhs) BOOST_NOEXCEPT_OR_NOTHROW
|
|
429
|
-
: m_(::boost::move(rhs.
|
|
438
|
+
: m_(::boost::move(rhs.m_))
|
|
430
439
|
{
|
|
431
|
-
|
|
432
|
-
rhs.m_.capacity = 0u;
|
|
433
|
-
rhs.m_.buffer = pointer();
|
|
434
|
-
rhs.m_.front_idx = 0;
|
|
435
|
-
rhs.m_.back_idx = 0;
|
|
436
|
-
BOOST_ASSERT( invariants_ok());
|
|
440
|
+
BOOST_ASSERT( invariants_ok());
|
|
437
441
|
BOOST_ASSERT(rhs.invariants_ok());
|
|
438
442
|
}
|
|
439
443
|
|
|
@@ -442,14 +446,15 @@ class devector
|
|
|
442
446
|
*
|
|
443
447
|
* **Throws**: If allocation or T's move constructor throws.
|
|
444
448
|
*
|
|
445
|
-
* **Postcondition**:
|
|
449
|
+
* **Postcondition**: *this has the same value `rhs` had before the operation.
|
|
450
|
+
* `rhs` is left in an unspecified but valid state.
|
|
446
451
|
*
|
|
447
452
|
* **Exceptions**: Strong exception guarantee if not `noexcept`.
|
|
448
453
|
*
|
|
449
454
|
* **Complexity**: Linear if allocator != rhs.get_allocator(), otherwise constant.
|
|
450
455
|
*/
|
|
451
456
|
devector(BOOST_RV_REF(devector) rhs, const allocator_type& allocator)
|
|
452
|
-
: m_(allocator, rhs.m_.buffer, rhs.m_.front_idx, rhs.m_.back_idx, rhs.capacity
|
|
457
|
+
: m_(review_implementation_t(), allocator, rhs.m_.buffer, rhs.m_.front_idx, rhs.m_.back_idx, rhs.m_.capacity)
|
|
453
458
|
{
|
|
454
459
|
// TODO should move elems-by-elems if the two allocators differ
|
|
455
460
|
// buffer is already acquired, reset rhs
|
|
@@ -457,42 +462,35 @@ class devector
|
|
|
457
462
|
rhs.m_.buffer = pointer();
|
|
458
463
|
rhs.m_.front_idx = 0;
|
|
459
464
|
rhs.m_.back_idx = 0;
|
|
460
|
-
BOOST_ASSERT(
|
|
465
|
+
BOOST_ASSERT( invariants_ok());
|
|
461
466
|
BOOST_ASSERT(rhs.invariants_ok());
|
|
462
467
|
}
|
|
463
468
|
|
|
464
469
|
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
465
470
|
/**
|
|
466
|
-
* **Equivalent to**: `devector(il.begin(), il.end()
|
|
471
|
+
* **Equivalent to**: `devector(il.begin(), il.end(), allocator)`.
|
|
467
472
|
*/
|
|
468
473
|
devector(const std::initializer_list<T>& il, const allocator_type& allocator = allocator_type())
|
|
469
|
-
: m_(
|
|
474
|
+
: m_(reserve_uninitialized_t(), allocator, il.size())
|
|
470
475
|
{
|
|
471
|
-
const size_type n = il.size();
|
|
472
|
-
m_.buffer = n ? allocate(n) : pointer();
|
|
473
|
-
m_.front_idx = 0u;
|
|
474
|
-
//this->allocate(n) will take care of overflows
|
|
475
|
-
m_.set_back_idx(n);
|
|
476
|
-
m_.set_capacity(n);
|
|
477
|
-
//construct_from_range releases memory on failure
|
|
478
476
|
this->construct_from_range(il.begin(), il.end());
|
|
479
477
|
BOOST_ASSERT(invariants_ok());
|
|
480
478
|
}
|
|
481
479
|
#endif
|
|
482
480
|
|
|
483
|
-
|
|
481
|
+
/**
|
|
484
482
|
* **Effects**: Destroys the devector. All stored values are destroyed and
|
|
485
483
|
* used memory, if any, deallocated.
|
|
486
484
|
*
|
|
487
485
|
* **Complexity**: Linear in the size of `*this`.
|
|
488
486
|
*/
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
487
|
+
~devector() BOOST_NOEXCEPT
|
|
488
|
+
{
|
|
489
|
+
destroy_elements(m_.buffer + m_.front_idx, m_.buffer + m_.back_idx);
|
|
490
|
+
deallocate_buffer();
|
|
491
|
+
}
|
|
494
492
|
|
|
495
|
-
|
|
493
|
+
/**
|
|
496
494
|
* **Effects**: Copies elements of `x` to `*this`. Previously
|
|
497
495
|
* held elements get copy assigned to or destroyed.
|
|
498
496
|
*
|
|
@@ -514,12 +512,13 @@ class devector
|
|
|
514
512
|
* [propagate_on_container_copy_assignment]: http://en.cppreference.com/w/cpp/memory/allocator_traits
|
|
515
513
|
*/
|
|
516
514
|
|
|
517
|
-
|
|
515
|
+
inline devector& operator=(BOOST_COPY_ASSIGN_REF(devector) rhs)
|
|
518
516
|
{
|
|
519
517
|
const devector &x = rhs;
|
|
520
518
|
if (this == &x) { return *this; } // skip self
|
|
521
519
|
|
|
522
|
-
|
|
520
|
+
const bool do_propagate = allocator_traits_type::propagate_on_container_copy_assignment::value;
|
|
521
|
+
BOOST_IF_CONSTEXPR(do_propagate)
|
|
523
522
|
{
|
|
524
523
|
allocator_type &this_alloc = this->get_allocator_ref();
|
|
525
524
|
const allocator_type &other_alloc = x.get_allocator_ref();
|
|
@@ -531,18 +530,18 @@ class devector
|
|
|
531
530
|
m_.capacity = 0u;
|
|
532
531
|
m_.buffer = pointer();
|
|
533
532
|
}
|
|
534
|
-
|
|
535
|
-
this_alloc
|
|
533
|
+
dtl::bool_<do_propagate> flag;
|
|
534
|
+
dtl::assign_alloc(this_alloc, other_alloc, flag);
|
|
536
535
|
}
|
|
537
536
|
|
|
538
537
|
size_type n = x.size();
|
|
539
|
-
if (capacity
|
|
538
|
+
if (m_.capacity >= n)
|
|
540
539
|
{
|
|
541
|
-
|
|
540
|
+
this->overwrite_buffer(x.begin(), x.end());
|
|
542
541
|
}
|
|
543
542
|
else
|
|
544
543
|
{
|
|
545
|
-
|
|
544
|
+
this->allocate_and_copy_range(x.begin(), x.end());
|
|
546
545
|
}
|
|
547
546
|
|
|
548
547
|
BOOST_ASSERT(invariants_ok());
|
|
@@ -565,60 +564,23 @@ class devector
|
|
|
565
564
|
* **Exceptions**: Basic exception guarantee if not `noexcept`.
|
|
566
565
|
*
|
|
567
566
|
* **Complexity**: Constant if allocator_traits_type::
|
|
568
|
-
*
|
|
569
|
-
*
|
|
567
|
+
* propagate_on_container_move_assignment is true or
|
|
568
|
+
* this->get>allocator() == x.get_allocator(). Linear otherwise.
|
|
570
569
|
*/
|
|
571
570
|
devector& operator=(BOOST_RV_REF(devector) x)
|
|
572
571
|
BOOST_NOEXCEPT_IF(allocator_traits_type::propagate_on_container_move_assignment::value
|
|
573
|
-
|
|
574
|
-
{
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
{
|
|
584
|
-
this->get_allocator_ref() = boost::move(x.get_allocator_ref());
|
|
585
|
-
}
|
|
586
|
-
|
|
587
|
-
m_.capacity = x.m_.capacity;
|
|
588
|
-
m_.buffer = x.m_.buffer;
|
|
589
|
-
m_.front_idx = x.m_.front_idx;
|
|
590
|
-
m_.back_idx = x.m_.back_idx;
|
|
591
|
-
|
|
592
|
-
// leave x in valid state
|
|
593
|
-
x.m_.capacity = 0u;
|
|
594
|
-
x.m_.buffer = pointer();
|
|
595
|
-
x.m_.back_idx = x.m_.front_idx = 0;
|
|
572
|
+
|| allocator_traits_type::is_always_equal::value)
|
|
573
|
+
{
|
|
574
|
+
if (BOOST_LIKELY(this != &x)) {
|
|
575
|
+
//We know resources can be transferred at comiple time if both allocators are
|
|
576
|
+
//always equal or the allocator is going to be propagated
|
|
577
|
+
const bool can_steal_resources_alloc
|
|
578
|
+
= allocator_traits_type::propagate_on_container_move_assignment::value
|
|
579
|
+
|| allocator_traits_type::is_always_equal::value;
|
|
580
|
+
dtl::bool_<can_steal_resources_alloc> flag;
|
|
581
|
+
this->priv_move_assign(boost::move(x), flag);
|
|
596
582
|
}
|
|
597
|
-
else
|
|
598
|
-
{
|
|
599
|
-
// if the allocator shouldn't be copied and they do not compare equal
|
|
600
|
-
// we can't steal memory.
|
|
601
|
-
|
|
602
|
-
move_iterator<iterator> xbegin = boost::make_move_iterator(x.begin());
|
|
603
|
-
move_iterator<iterator> xend = boost::make_move_iterator(x.end());
|
|
604
|
-
|
|
605
|
-
if (copy_alloc)
|
|
606
|
-
{
|
|
607
|
-
get_allocator_ref() = boost::move(x.get_allocator_ref());
|
|
608
|
-
}
|
|
609
|
-
|
|
610
|
-
if (capacity() >= x.size())
|
|
611
|
-
{
|
|
612
|
-
overwrite_buffer(xbegin, xend);
|
|
613
|
-
}
|
|
614
|
-
else
|
|
615
|
-
{
|
|
616
|
-
allocate_and_copy_range(xbegin, xend);
|
|
617
|
-
}
|
|
618
|
-
}
|
|
619
|
-
|
|
620
583
|
BOOST_ASSERT(invariants_ok());
|
|
621
|
-
|
|
622
584
|
return *this;
|
|
623
585
|
}
|
|
624
586
|
|
|
@@ -642,9 +604,9 @@ class devector
|
|
|
642
604
|
* [CopyInsertable]: http://en.cppreference.com/w/cpp/concept/CopyInsertable
|
|
643
605
|
* [CopyAssignable]: http://en.cppreference.com/w/cpp/concept/CopyAssignable
|
|
644
606
|
*/
|
|
645
|
-
devector& operator=(std::initializer_list<T> il)
|
|
607
|
+
inline devector& operator=(std::initializer_list<T> il)
|
|
646
608
|
{
|
|
647
|
-
assign(il.begin(), il.end());
|
|
609
|
+
this->assign(il.begin(), il.end());
|
|
648
610
|
return *this;
|
|
649
611
|
}
|
|
650
612
|
#endif
|
|
@@ -678,10 +640,10 @@ class devector
|
|
|
678
640
|
void assign(InputIterator first, InputIterator last
|
|
679
641
|
//Input iterators
|
|
680
642
|
BOOST_CONTAINER_DOCIGN(BOOST_MOVE_I typename dtl::disable_if_or
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
643
|
+
< void
|
|
644
|
+
BOOST_MOVE_I dtl::is_convertible<InputIterator BOOST_MOVE_I size_type>
|
|
645
|
+
BOOST_MOVE_I dtl::is_not_input_iterator<InputIterator>
|
|
646
|
+
>::type * = 0)
|
|
685
647
|
)
|
|
686
648
|
{
|
|
687
649
|
first = overwrite_buffer_impl(first, last, dtl::false_());
|
|
@@ -697,15 +659,15 @@ class devector
|
|
|
697
659
|
void assign(ForwardIterator first, ForwardIterator last
|
|
698
660
|
//Other iterators
|
|
699
661
|
BOOST_CONTAINER_DOCIGN(BOOST_MOVE_I typename dtl::disable_if_or
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
662
|
+
< void
|
|
663
|
+
BOOST_MOVE_I dtl::is_convertible<ForwardIterator BOOST_MOVE_I size_type>
|
|
664
|
+
BOOST_MOVE_I dtl::is_input_iterator<ForwardIterator>
|
|
665
|
+
>::type * = 0)
|
|
704
666
|
)
|
|
705
667
|
{
|
|
706
|
-
const size_type n = boost::container::
|
|
668
|
+
const size_type n = boost::container::iterator_udistance(first, last);
|
|
707
669
|
|
|
708
|
-
if (capacity
|
|
670
|
+
if (m_.capacity >= n)
|
|
709
671
|
{
|
|
710
672
|
overwrite_buffer(first, last);
|
|
711
673
|
}
|
|
@@ -719,293 +681,290 @@ class devector
|
|
|
719
681
|
|
|
720
682
|
#endif // ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
721
683
|
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
684
|
+
/**
|
|
685
|
+
* **Effects**: Replaces elements of `*this` with `n` copies of `u`.
|
|
686
|
+
* Previously held elements get copy assigned to or destroyed.
|
|
687
|
+
*
|
|
688
|
+
* **Requires**: `T` shall be [CopyInsertable] into `*this` and
|
|
689
|
+
* [CopyAssignable].
|
|
690
|
+
*
|
|
691
|
+
* **Precondition**: `u` is not a reference into `*this`.
|
|
692
|
+
*
|
|
693
|
+
* **Postcondition**: `size() == n` and the elements of
|
|
694
|
+
* `*this` are copies of `u`.
|
|
695
|
+
*
|
|
696
|
+
* **Exceptions**: Strong exception guarantee if `T` is nothrow copy assignable
|
|
697
|
+
* from `u` and `NothrowConstructible`, Basic exception guarantee otherwise.
|
|
698
|
+
*
|
|
699
|
+
* **Complexity**: Linear in `n` and the size of `*this`.
|
|
700
|
+
*
|
|
701
|
+
* [CopyInsertable]: http://en.cppreference.com/w/cpp/concept/CopyInsertable
|
|
702
|
+
* [CopyAssignable]: http://en.cppreference.com/w/cpp/concept/CopyAssignable
|
|
703
|
+
*/
|
|
704
|
+
inline void assign(size_type n, const T& u)
|
|
705
|
+
{
|
|
706
|
+
cvalue_iterator first(u, n);
|
|
707
|
+
cvalue_iterator last;
|
|
708
|
+
this->assign(first, last);
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
712
|
+
/** **Equivalent to**: `assign(il.begin(), il.end())`. */
|
|
713
|
+
inline void assign(std::initializer_list<T> il)
|
|
714
|
+
{
|
|
715
|
+
this->assign(il.begin(), il.end());
|
|
716
|
+
}
|
|
717
|
+
#endif
|
|
746
718
|
|
|
747
|
-
|
|
748
|
-
|
|
719
|
+
/**
|
|
720
|
+
* **Returns**: A copy of the allocator associated with the container.
|
|
721
|
+
*
|
|
722
|
+
* **Complexity**: Constant.
|
|
723
|
+
*/
|
|
724
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
725
|
+
allocator_type get_allocator() const BOOST_NOEXCEPT
|
|
726
|
+
{
|
|
727
|
+
return static_cast<const allocator_type&>(m_);
|
|
728
|
+
}
|
|
749
729
|
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
void assign(std::initializer_list<T> il)
|
|
730
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
731
|
+
const allocator_type &get_stored_allocator() const BOOST_NOEXCEPT
|
|
753
732
|
{
|
|
754
|
-
|
|
733
|
+
return static_cast<const allocator_type&>(m_);
|
|
755
734
|
}
|
|
756
|
-
#endif
|
|
757
735
|
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
764
|
-
allocator_type get_allocator() const BOOST_NOEXCEPT
|
|
765
|
-
{
|
|
766
|
-
return static_cast<const allocator_type&>(m_);
|
|
767
|
-
}
|
|
768
|
-
|
|
769
|
-
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
770
|
-
const allocator_type &get_stored_allocator() const BOOST_NOEXCEPT
|
|
771
|
-
{
|
|
772
|
-
return static_cast<const allocator_type&>(m_);
|
|
773
|
-
}
|
|
774
|
-
|
|
775
|
-
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
776
|
-
allocator_type &get_stored_allocator() BOOST_NOEXCEPT
|
|
777
|
-
{
|
|
778
|
-
return static_cast<allocator_type&>(m_);
|
|
779
|
-
}
|
|
780
|
-
|
|
781
|
-
// iterators
|
|
782
|
-
|
|
783
|
-
/**
|
|
784
|
-
* **Returns**: A iterator pointing to the first element in the devector,
|
|
785
|
-
* or the past the end iterator if the devector is empty.
|
|
786
|
-
*
|
|
787
|
-
* **Complexity**: Constant.
|
|
788
|
-
*/
|
|
789
|
-
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
790
|
-
iterator begin() BOOST_NOEXCEPT
|
|
791
|
-
{
|
|
792
|
-
return m_.buffer + m_.front_idx;
|
|
793
|
-
}
|
|
736
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
737
|
+
allocator_type &get_stored_allocator() BOOST_NOEXCEPT
|
|
738
|
+
{
|
|
739
|
+
return static_cast<allocator_type&>(m_);
|
|
740
|
+
}
|
|
794
741
|
|
|
795
|
-
|
|
796
|
-
* **Returns**: A constant iterator pointing to the first element in the devector,
|
|
797
|
-
* or the past the end iterator if the devector is empty.
|
|
798
|
-
*
|
|
799
|
-
* **Complexity**: Constant.
|
|
800
|
-
*/
|
|
801
|
-
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
802
|
-
const_iterator begin() const BOOST_NOEXCEPT
|
|
803
|
-
{
|
|
804
|
-
return m_.buffer + m_.front_idx;
|
|
805
|
-
}
|
|
742
|
+
// iterators
|
|
806
743
|
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
744
|
+
/**
|
|
745
|
+
* **Returns**: A iterator pointing to the first element in the devector,
|
|
746
|
+
* or the past the end iterator if the devector is empty.
|
|
747
|
+
*
|
|
748
|
+
* **Complexity**: Constant.
|
|
749
|
+
*/
|
|
750
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
751
|
+
iterator begin() BOOST_NOEXCEPT
|
|
752
|
+
{
|
|
753
|
+
return m_.buffer + m_.front_idx;
|
|
754
|
+
}
|
|
817
755
|
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
756
|
+
/**
|
|
757
|
+
* **Returns**: A constant iterator pointing to the first element in the devector,
|
|
758
|
+
* or the past the end iterator if the devector is empty.
|
|
759
|
+
*
|
|
760
|
+
* **Complexity**: Constant.
|
|
761
|
+
*/
|
|
762
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
763
|
+
const_iterator begin() const BOOST_NOEXCEPT
|
|
764
|
+
{
|
|
765
|
+
return m_.buffer + m_.front_idx;
|
|
766
|
+
}
|
|
828
767
|
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
}
|
|
768
|
+
/**
|
|
769
|
+
* **Returns**: An iterator pointing past the last element of the container.
|
|
770
|
+
*
|
|
771
|
+
* **Complexity**: Constant.
|
|
772
|
+
*/
|
|
773
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
774
|
+
iterator end() BOOST_NOEXCEPT
|
|
775
|
+
{
|
|
776
|
+
return m_.buffer + m_.back_idx;
|
|
777
|
+
}
|
|
840
778
|
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
return const_reverse_iterator(m_.buffer + m_.back_idx);
|
|
852
|
-
}
|
|
779
|
+
/**
|
|
780
|
+
* **Returns**: A constant iterator pointing past the last element of the container.
|
|
781
|
+
*
|
|
782
|
+
* **Complexity**: Constant.
|
|
783
|
+
*/
|
|
784
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
785
|
+
const_iterator end() const BOOST_NOEXCEPT
|
|
786
|
+
{
|
|
787
|
+
return m_.buffer + m_.back_idx;
|
|
788
|
+
}
|
|
853
789
|
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
790
|
+
/**
|
|
791
|
+
* **Returns**: A reverse iterator pointing to the first element in the reversed devector,
|
|
792
|
+
* or the reverse past the end iterator if the devector is empty.
|
|
793
|
+
*
|
|
794
|
+
* **Complexity**: Constant.
|
|
795
|
+
*/
|
|
796
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
797
|
+
reverse_iterator rbegin() BOOST_NOEXCEPT
|
|
798
|
+
{
|
|
799
|
+
return reverse_iterator(m_.buffer + m_.back_idx);
|
|
800
|
+
}
|
|
865
801
|
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
802
|
+
/**
|
|
803
|
+
* **Returns**: A constant reverse iterator
|
|
804
|
+
* pointing to the first element in the reversed devector,
|
|
805
|
+
* or the reverse past the end iterator if the devector is empty.
|
|
806
|
+
*
|
|
807
|
+
* **Complexity**: Constant.
|
|
808
|
+
*/
|
|
809
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
810
|
+
const_reverse_iterator rbegin() const BOOST_NOEXCEPT
|
|
811
|
+
{
|
|
812
|
+
return const_reverse_iterator(m_.buffer + m_.back_idx);
|
|
813
|
+
}
|
|
877
814
|
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
815
|
+
/**
|
|
816
|
+
* **Returns**: A reverse iterator pointing past the last element in the
|
|
817
|
+
* reversed container, or to the beginning of the reversed container if it's empty.
|
|
818
|
+
*
|
|
819
|
+
* **Complexity**: Constant.
|
|
820
|
+
*/
|
|
821
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
822
|
+
reverse_iterator rend() BOOST_NOEXCEPT
|
|
823
|
+
{
|
|
824
|
+
return reverse_iterator(m_.buffer + m_.front_idx);
|
|
825
|
+
}
|
|
889
826
|
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
827
|
+
/**
|
|
828
|
+
* **Returns**: A constant reverse iterator pointing past the last element in the
|
|
829
|
+
* reversed container, or to the beginning of the reversed container if it's empty.
|
|
830
|
+
*
|
|
831
|
+
* **Complexity**: Constant.
|
|
832
|
+
*/
|
|
833
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
834
|
+
const_reverse_iterator rend() const BOOST_NOEXCEPT
|
|
835
|
+
{
|
|
836
|
+
return const_reverse_iterator(m_.buffer + m_.front_idx);
|
|
837
|
+
}
|
|
899
838
|
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
}
|
|
839
|
+
/**
|
|
840
|
+
* **Returns**: A constant iterator pointing to the first element in the devector,
|
|
841
|
+
* or the past the end iterator if the devector is empty.
|
|
842
|
+
*
|
|
843
|
+
* **Complexity**: Constant.
|
|
844
|
+
*/
|
|
845
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
846
|
+
const_iterator cbegin() const BOOST_NOEXCEPT
|
|
847
|
+
{
|
|
848
|
+
return m_.buffer + m_.front_idx;
|
|
849
|
+
}
|
|
912
850
|
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
return const_reverse_iterator(m_.buffer + m_.front_idx);
|
|
923
|
-
}
|
|
851
|
+
/**
|
|
852
|
+
* **Returns**: A constant iterator pointing past the last element of the container.
|
|
853
|
+
*
|
|
854
|
+
* **Complexity**: Constant.
|
|
855
|
+
*/
|
|
856
|
+
const_iterator cend() const BOOST_NOEXCEPT
|
|
857
|
+
{
|
|
858
|
+
return m_.buffer + m_.back_idx;
|
|
859
|
+
}
|
|
924
860
|
|
|
925
|
-
|
|
861
|
+
/**
|
|
862
|
+
* **Returns**: A constant reverse iterator
|
|
863
|
+
* pointing to the first element in the reversed devector,
|
|
864
|
+
* or the reverse past the end iterator if the devector is empty.
|
|
865
|
+
*
|
|
866
|
+
* **Complexity**: Constant.
|
|
867
|
+
*/
|
|
868
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
869
|
+
const_reverse_iterator crbegin() const BOOST_NOEXCEPT
|
|
870
|
+
{
|
|
871
|
+
return const_reverse_iterator(m_.buffer + m_.back_idx);
|
|
872
|
+
}
|
|
926
873
|
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
874
|
+
/**
|
|
875
|
+
* **Returns**: A constant reverse iterator pointing past the last element in the
|
|
876
|
+
* reversed container, or to the beginning of the reversed container if it's empty.
|
|
877
|
+
*
|
|
878
|
+
* **Complexity**: Constant.
|
|
879
|
+
*/
|
|
880
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
881
|
+
const_reverse_iterator crend() const BOOST_NOEXCEPT
|
|
882
|
+
{
|
|
883
|
+
return const_reverse_iterator(m_.buffer + m_.front_idx);
|
|
884
|
+
}
|
|
937
885
|
|
|
938
|
-
|
|
939
|
-
* **Returns**: The number of elements the devector contains.
|
|
940
|
-
*
|
|
941
|
-
* **Complexity**: Constant.
|
|
942
|
-
*/
|
|
943
|
-
BOOST_CONTAINER_ATTRIBUTE_NODISCARD BOOST_CONTAINER_FORCEINLINE
|
|
944
|
-
size_type size() const BOOST_NOEXCEPT
|
|
945
|
-
{
|
|
946
|
-
return m_.back_idx - m_.front_idx;
|
|
947
|
-
}
|
|
886
|
+
// capacity
|
|
948
887
|
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
return (alloc_max <= size_type_max) ? size_type(alloc_max) : size_type_max;
|
|
960
|
-
}
|
|
888
|
+
/**
|
|
889
|
+
* **Returns**: True, if `size() == 0`, false otherwise.
|
|
890
|
+
*
|
|
891
|
+
* **Complexity**: Constant.
|
|
892
|
+
*/
|
|
893
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
894
|
+
bool empty() const BOOST_NOEXCEPT
|
|
895
|
+
{
|
|
896
|
+
return m_.front_idx == m_.back_idx;
|
|
897
|
+
}
|
|
961
898
|
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
899
|
+
/**
|
|
900
|
+
* **Returns**: The number of elements the devector contains.
|
|
901
|
+
*
|
|
902
|
+
* **Complexity**: Constant.
|
|
903
|
+
*/
|
|
904
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
905
|
+
size_type size() const BOOST_NOEXCEPT
|
|
906
|
+
{
|
|
907
|
+
return size_type(m_.back_idx - m_.front_idx);
|
|
908
|
+
}
|
|
972
909
|
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
910
|
+
/**
|
|
911
|
+
* **Returns**: The maximum number of elements the devector could possibly hold.
|
|
912
|
+
*
|
|
913
|
+
* **Complexity**: Constant.
|
|
914
|
+
*/
|
|
915
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
916
|
+
size_type max_size() const BOOST_NOEXCEPT
|
|
917
|
+
{
|
|
918
|
+
size_type alloc_max = allocator_traits_type::max_size(get_allocator_ref());
|
|
919
|
+
size_type size_type_max = (size_type)-1;
|
|
920
|
+
return (alloc_max <= size_type_max) ? size_type(alloc_max) : size_type_max;
|
|
921
|
+
}
|
|
984
922
|
|
|
985
|
-
|
|
986
|
-
* **Returns**: The
|
|
987
|
-
*
|
|
988
|
-
*
|
|
923
|
+
/**
|
|
924
|
+
* **Returns**: The *minimum* number of elements that can be inserted into devector using
|
|
925
|
+
* position-based insertions without requiring a reallocation. Note that, unlike in
|
|
926
|
+
* typical sequence containers like `vector`, `capacity()`, `capacity()` can be smaller than `size()`.
|
|
927
|
+
* This can happen if a user inserts elements in a particular way (usually inserting at
|
|
928
|
+
* front up to front_free_capacity() and at back up to back_free_capacity()).
|
|
929
|
+
*
|
|
989
930
|
* **Complexity**: Constant.
|
|
990
931
|
*/
|
|
991
|
-
|
|
992
|
-
size_type
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
932
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
933
|
+
size_type capacity() const BOOST_NOEXCEPT
|
|
934
|
+
{
|
|
935
|
+
size_type const cap_reserve = m_.capacity/devector_min_free_fraction;
|
|
936
|
+
return m_.capacity > cap_reserve ? (m_.capacity - cap_reserve) : 0u;
|
|
937
|
+
}
|
|
996
938
|
|
|
997
|
-
|
|
998
|
-
|
|
939
|
+
/**
|
|
940
|
+
* **Returns**: The total number of elements that can be pushed to the front of the
|
|
941
|
+
* devector without requiring reallocation.
|
|
942
|
+
*
|
|
943
|
+
* **Complexity**: Constant.
|
|
944
|
+
*/
|
|
945
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
946
|
+
size_type front_free_capacity() const BOOST_NOEXCEPT
|
|
947
|
+
{
|
|
948
|
+
return m_.front_idx;
|
|
949
|
+
}
|
|
999
950
|
|
|
1000
|
-
|
|
1001
|
-
|
|
951
|
+
/**
|
|
952
|
+
* **Returns**: The total number of elements that can be pushed to the back of the
|
|
953
|
+
* devector without requiring reallocation.
|
|
954
|
+
*
|
|
955
|
+
* **Complexity**: Constant.
|
|
956
|
+
*/
|
|
957
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
958
|
+
size_type back_free_capacity() const BOOST_NOEXCEPT
|
|
959
|
+
{
|
|
960
|
+
return size_type(m_.capacity - m_.back_idx);
|
|
961
|
+
}
|
|
1002
962
|
|
|
1003
|
-
|
|
963
|
+
/**
|
|
1004
964
|
* **Effects**: If `sz` is greater than the size of `*this`,
|
|
1005
|
-
* additional value-initialized elements are inserted
|
|
1006
|
-
*
|
|
1007
|
-
*
|
|
1008
|
-
* elements are popped from the front.
|
|
965
|
+
* additional value-initialized elements are inserted. Invalidates iterators
|
|
966
|
+
* if reallocation is needed. If `sz` is smaller than than the size of `*this`,
|
|
967
|
+
* elements are erased from the extremes.
|
|
1009
968
|
*
|
|
1010
969
|
* **Requires**: T shall be [MoveInsertable] into *this and [DefaultConstructible].
|
|
1011
970
|
*
|
|
@@ -1018,20 +977,27 @@ class devector
|
|
|
1018
977
|
* [MoveInsertable]: http://en.cppreference.com/w/cpp/concept/MoveInsertable
|
|
1019
978
|
* [DefaultConstructible]: http://en.cppreference.com/w/cpp/concept/DefaultConstructible
|
|
1020
979
|
*/
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
}
|
|
980
|
+
inline void resize(size_type sz)
|
|
981
|
+
{
|
|
982
|
+
this->resize_back(sz);
|
|
983
|
+
}
|
|
1026
984
|
|
|
1027
|
-
|
|
985
|
+
/**
|
|
986
|
+
* **Effects**: Same as resize(sz) but creates default-initialized
|
|
987
|
+
* value-initialized.
|
|
988
|
+
*/
|
|
989
|
+
inline void resize(size_type sz, default_init_t)
|
|
990
|
+
{
|
|
991
|
+
this->resize_back(sz, default_init);
|
|
992
|
+
}
|
|
993
|
+
|
|
994
|
+
/**
|
|
1028
995
|
* [CopyInsertable]: http://en.cppreference.com/w/cpp/concept/CopyInsertable
|
|
1029
996
|
*
|
|
1030
997
|
* **Effects**: If `sz` is greater than the size of `*this`,
|
|
1031
|
-
* copies of `c` are inserted
|
|
1032
|
-
* Invalidates iterators if reallocation is needed.
|
|
998
|
+
* copies of `c` are inserted at extremes.
|
|
1033
999
|
* If `sz` is smaller than than the size of `*this`,
|
|
1034
|
-
* elements are popped from the
|
|
1000
|
+
* elements are popped from the extremes.
|
|
1035
1001
|
*
|
|
1036
1002
|
* **Postcondition**: `sz == size()`.
|
|
1037
1003
|
*
|
|
@@ -1041,230 +1007,348 @@ class devector
|
|
|
1041
1007
|
*
|
|
1042
1008
|
* **Complexity**: Linear in the size of `*this` and `sz`.
|
|
1043
1009
|
*/
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
}
|
|
1010
|
+
inline void resize(size_type sz, const T& c)
|
|
1011
|
+
{
|
|
1012
|
+
this->resize_back(sz, c);
|
|
1013
|
+
}
|
|
1049
1014
|
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1015
|
+
/**
|
|
1016
|
+
* **Effects**: If `sz` is greater than the size of `*this`,
|
|
1017
|
+
* additional value-initialized elements are inserted
|
|
1018
|
+
* to the front. Invalidates iterators if reallocation is needed.
|
|
1019
|
+
* If `sz` is smaller than than the size of `*this`,
|
|
1020
|
+
* elements are popped from the front.
|
|
1021
|
+
*
|
|
1022
|
+
* **Requires**: T shall be [MoveInsertable] into *this and [DefaultConstructible].
|
|
1023
|
+
*
|
|
1024
|
+
* **Postcondition**: `sz == size()`.
|
|
1025
|
+
*
|
|
1026
|
+
* **Exceptions**: Strong exception guarantee.
|
|
1027
|
+
*
|
|
1028
|
+
* **Complexity**: Linear in the size of `*this` and `sz`.
|
|
1029
|
+
*
|
|
1030
|
+
* [MoveInsertable]: http://en.cppreference.com/w/cpp/concept/MoveInsertable
|
|
1031
|
+
* [DefaultConstructible]: http://en.cppreference.com/w/cpp/concept/DefaultConstructible
|
|
1032
|
+
*/
|
|
1033
|
+
inline void resize_front(size_type sz)
|
|
1034
|
+
{
|
|
1035
|
+
resize_front_impl(sz);
|
|
1036
|
+
BOOST_ASSERT(invariants_ok());
|
|
1037
|
+
}
|
|
1073
1038
|
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
// unsafe uninitialized resize methods
|
|
1097
|
-
|
|
1098
|
-
/**
|
|
1099
|
-
* **Unsafe method**, use with care.
|
|
1100
|
-
*
|
|
1101
|
-
* **Effects**: Changes the size of the devector without properly
|
|
1102
|
-
* initializing the extra or destroying the superfluous elements.
|
|
1103
|
-
* If `n < size()`, elements are removed from the front without
|
|
1104
|
-
* getting destroyed; if `n > size()`, uninitialized elements are added
|
|
1105
|
-
* before the first element at the front.
|
|
1106
|
-
* Invalidates iterators if reallocation is needed.
|
|
1107
|
-
*
|
|
1108
|
-
* **Postcondition**: `size() == n`.
|
|
1109
|
-
*
|
|
1110
|
-
* **Exceptions**: Strong exception guarantee.
|
|
1111
|
-
*
|
|
1112
|
-
* **Complexity**: Linear in `size()` if `capacity() < n`, constant otherwise.
|
|
1113
|
-
*
|
|
1114
|
-
* **Remarks**: The devector does not keep track of initialization of the elements:
|
|
1115
|
-
* Elements without a trivial destructor must be manually destroyed before shrinking,
|
|
1116
|
-
* elements without a trivial constructor must be initialized after growing.
|
|
1117
|
-
*/
|
|
1118
|
-
/*
|
|
1119
|
-
void unsafe_uninitialized_resize_front(size_type n)
|
|
1120
|
-
{
|
|
1121
|
-
if (n > size())
|
|
1122
|
-
{
|
|
1123
|
-
unsafe_uninitialized_grow_front(n);
|
|
1124
|
-
}
|
|
1125
|
-
else
|
|
1126
|
-
{
|
|
1127
|
-
unsafe_uninitialized_shrink_front(n);
|
|
1128
|
-
}
|
|
1129
|
-
}
|
|
1130
|
-
*/
|
|
1131
|
-
/**
|
|
1132
|
-
* **Unsafe method**, use with care.
|
|
1133
|
-
*
|
|
1134
|
-
* **Effects**: Changes the size of the devector without properly
|
|
1135
|
-
* initializing the extra or destroying the superfluous elements.
|
|
1136
|
-
* If `n < size()`, elements are removed from the back without
|
|
1137
|
-
* getting destroyed; if `n > size()`, uninitialized elements are added
|
|
1138
|
-
* after the last element at the back.
|
|
1139
|
-
* Invalidates iterators if reallocation is needed.
|
|
1140
|
-
*
|
|
1141
|
-
* **Postcondition**: `size() == n`.
|
|
1142
|
-
*
|
|
1143
|
-
* **Exceptions**: Strong exception guarantee.
|
|
1144
|
-
*
|
|
1145
|
-
* **Complexity**: Linear in `size()` if `capacity() < n`, constant otherwise.
|
|
1146
|
-
*
|
|
1147
|
-
* **Remarks**: The devector does not keep track of initialization of the elements:
|
|
1148
|
-
* Elements without a trivial destructor must be manually destroyed before shrinking,
|
|
1149
|
-
* elements without a trivial constructor must be initialized after growing.
|
|
1150
|
-
*/
|
|
1151
|
-
/*
|
|
1152
|
-
void unsafe_uninitialized_resize_back(size_type n)
|
|
1153
|
-
{
|
|
1154
|
-
if (n > size())
|
|
1155
|
-
{
|
|
1156
|
-
unsafe_uninitialized_grow_back(n);
|
|
1157
|
-
}
|
|
1158
|
-
else
|
|
1159
|
-
{
|
|
1160
|
-
unsafe_uninitialized_shrink_back(n);
|
|
1161
|
-
}
|
|
1162
|
-
}
|
|
1163
|
-
*/
|
|
1164
|
-
// reserve promise:
|
|
1165
|
-
// after reserve_[front,back](n), n - size() push_[front,back] will not allocate
|
|
1039
|
+
/**
|
|
1040
|
+
* **Effects**: If `sz` is greater than the size of `*this`,
|
|
1041
|
+
* additional value-initialized elements are inserted
|
|
1042
|
+
* to the front. Invalidates iterators if reallocation is needed.
|
|
1043
|
+
* If `sz` is smaller than than the size of `*this`,
|
|
1044
|
+
* elements are popped from the front.
|
|
1045
|
+
*
|
|
1046
|
+
* **Requires**: T shall be [MoveInsertable] into *this and default_initializable.
|
|
1047
|
+
*
|
|
1048
|
+
* **Postcondition**: `sz == size()`.
|
|
1049
|
+
*
|
|
1050
|
+
* **Exceptions**: Strong exception guarantee.
|
|
1051
|
+
*
|
|
1052
|
+
* **Complexity**: Linear in the size of `*this` and `sz`.
|
|
1053
|
+
*
|
|
1054
|
+
* [MoveInsertable]: http://en.cppreference.com/w/cpp/concept/MoveInsertable
|
|
1055
|
+
*/
|
|
1056
|
+
inline void resize_front(size_type sz, default_init_t)
|
|
1057
|
+
{
|
|
1058
|
+
resize_front_impl(sz, default_init);
|
|
1059
|
+
BOOST_ASSERT(invariants_ok());
|
|
1060
|
+
}
|
|
1166
1061
|
|
|
1167
|
-
|
|
1168
|
-
|
|
1062
|
+
/**
|
|
1063
|
+
* [CopyInsertable]: http://en.cppreference.com/w/cpp/concept/CopyInsertable
|
|
1064
|
+
*
|
|
1065
|
+
* **Effects**: If `sz` is greater than the size of `*this`,
|
|
1066
|
+
* copies of `c` are inserted to the front.
|
|
1067
|
+
* Invalidates iterators if reallocation is needed.
|
|
1068
|
+
* If `sz` is smaller than than the size of `*this`,
|
|
1069
|
+
* elements are popped from the front.
|
|
1070
|
+
*
|
|
1071
|
+
* **Postcondition**: `sz == size()`.
|
|
1072
|
+
*
|
|
1073
|
+
* **Requires**: `T` shall be [CopyInsertable] into `*this`.
|
|
1074
|
+
*
|
|
1075
|
+
* **Exceptions**: Strong exception guarantee.
|
|
1076
|
+
*
|
|
1077
|
+
* **Complexity**: Linear in the size of `*this` and `sz`.
|
|
1078
|
+
*/
|
|
1079
|
+
inline void resize_front(size_type sz, const T& c)
|
|
1080
|
+
{
|
|
1081
|
+
resize_front_impl(sz, c);
|
|
1082
|
+
BOOST_ASSERT(invariants_ok());
|
|
1083
|
+
}
|
|
1169
1084
|
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1085
|
+
/**
|
|
1086
|
+
* **Effects**: If `sz` is greater than the size of `*this`,
|
|
1087
|
+
* additional value-initialized elements are inserted
|
|
1088
|
+
* to the back. Invalidates iterators if reallocation is needed.
|
|
1089
|
+
* If `sz` is smaller than than the size of `*this`,
|
|
1090
|
+
* elements are popped from the back.
|
|
1091
|
+
*
|
|
1092
|
+
* **Requires**: T shall be [MoveInsertable] into *this and [DefaultConstructible].
|
|
1093
|
+
*
|
|
1094
|
+
* **Postcondition**: `sz == size()`.
|
|
1095
|
+
*
|
|
1096
|
+
* **Exceptions**: Strong exception guarantee.
|
|
1097
|
+
*
|
|
1098
|
+
* **Complexity**: Linear in the size of `*this` and `sz`.
|
|
1099
|
+
*
|
|
1100
|
+
* [MoveInsertable]: http://en.cppreference.com/w/cpp/concept/MoveInsertable
|
|
1101
|
+
* [DefaultConstructible]: http://en.cppreference.com/w/cpp/concept/DefaultConstructible
|
|
1102
|
+
*/
|
|
1103
|
+
inline void resize_back(size_type sz)
|
|
1104
|
+
{
|
|
1105
|
+
resize_back_impl(sz);
|
|
1106
|
+
BOOST_ASSERT(invariants_ok());
|
|
1107
|
+
}
|
|
1189
1108
|
|
|
1190
|
-
|
|
1109
|
+
/**
|
|
1110
|
+
* **Effects**: If `sz` is greater than the size of `*this`,
|
|
1111
|
+
* additional value-initialized elements are inserted
|
|
1112
|
+
* to the back. Invalidates iterators if reallocation is needed.
|
|
1113
|
+
* If `sz` is smaller than than the size of `*this`,
|
|
1114
|
+
* elements are popped from the back.
|
|
1115
|
+
*
|
|
1116
|
+
* **Requires**: T shall be [MoveInsertable] into *this and default initializable.
|
|
1117
|
+
*
|
|
1118
|
+
* **Postcondition**: `sz == size()`.
|
|
1119
|
+
*
|
|
1120
|
+
* **Exceptions**: Strong exception guarantee.
|
|
1121
|
+
*
|
|
1122
|
+
* **Complexity**: Linear in the size of `*this` and `sz`.
|
|
1123
|
+
*
|
|
1124
|
+
* [MoveInsertable]: http://en.cppreference.com/w/cpp/concept/MoveInsertable
|
|
1125
|
+
*/
|
|
1126
|
+
inline void resize_back(size_type sz, default_init_t)
|
|
1127
|
+
{
|
|
1128
|
+
resize_back_impl(sz, default_init);
|
|
1129
|
+
BOOST_ASSERT(invariants_ok());
|
|
1130
|
+
}
|
|
1191
1131
|
|
|
1192
|
-
|
|
1193
|
-
|
|
1132
|
+
/**
|
|
1133
|
+
* [CopyInsertable]: http://en.cppreference.com/w/cpp/concept/CopyInsertable
|
|
1134
|
+
*
|
|
1135
|
+
* **Effects**: If `sz` is greater than the size of `*this`,
|
|
1136
|
+
* copies of `c` are inserted to the back.
|
|
1137
|
+
* If `sz` is smaller than than the size of `*this`,
|
|
1138
|
+
* elements are popped from the back.
|
|
1139
|
+
*
|
|
1140
|
+
* **Postcondition**: `sz == size()`.
|
|
1141
|
+
*
|
|
1142
|
+
* **Requires**: `T` shall be [CopyInsertable] into `*this`.
|
|
1143
|
+
*
|
|
1144
|
+
* **Exceptions**: Strong exception guarantee.
|
|
1145
|
+
*
|
|
1146
|
+
* **Complexity**: Linear in the size of `*this` and `sz`.
|
|
1147
|
+
*/
|
|
1148
|
+
inline void resize_back(size_type sz, const T& c)
|
|
1149
|
+
{
|
|
1150
|
+
resize_back_impl(sz, c);
|
|
1151
|
+
BOOST_ASSERT(invariants_ok());
|
|
1152
|
+
}
|
|
1194
1153
|
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1154
|
+
/**
|
|
1155
|
+
* [MoveInsertable]: http://en.cppreference.com/w/cpp/concept/MoveInsertable
|
|
1156
|
+
*
|
|
1157
|
+
* **Effects**: Ensures that at least `n` elements can be inserted
|
|
1158
|
+
* without requiring reallocation, where `n` is `new_capacity - size()`,
|
|
1159
|
+
* if `n` is positive. Otherwise, there are no effects.
|
|
1160
|
+
* Invalidates iterators if reallocation is needed.
|
|
1161
|
+
*
|
|
1162
|
+
* **Requires**: `T` shall be [MoveInsertable] into `*this`.
|
|
1163
|
+
*
|
|
1164
|
+
* **Complexity**: Linear in the size of *this.
|
|
1165
|
+
*
|
|
1166
|
+
* **Exceptions**: Strong exception guarantee.
|
|
1167
|
+
*
|
|
1168
|
+
* **Throws**: length_error if `new_capacity > max_size()`.
|
|
1169
|
+
*/
|
|
1170
|
+
inline void reserve(size_type new_capacity)
|
|
1171
|
+
{
|
|
1172
|
+
if (this->capacity() < new_capacity) {
|
|
1173
|
+
const size_type rounder = devector_min_free_fraction - 2u;
|
|
1174
|
+
const size_type divisor = devector_min_free_fraction - 1u;
|
|
1175
|
+
size_type const nc = ((new_capacity + rounder)/divisor)*devector_min_free_fraction;
|
|
1176
|
+
BOOST_ASSERT(new_capacity <= (nc - nc / devector_min_free_fraction));
|
|
1177
|
+
size_type const sz = this->size();
|
|
1178
|
+
reallocate_at(nc, (nc-sz)/2u);
|
|
1179
|
+
}
|
|
1180
|
+
BOOST_ASSERT(invariants_ok());
|
|
1181
|
+
}
|
|
1182
|
+
|
|
1183
|
+
/**
|
|
1184
|
+
* [MoveInsertable]: http://en.cppreference.com/w/cpp/concept/MoveInsertable
|
|
1185
|
+
*
|
|
1186
|
+
* **Effects**: Ensures that `n` elements can be pushed to the front
|
|
1187
|
+
* without requiring reallocation, where `n` is `new_capacity - size()`,
|
|
1188
|
+
* if `n` is positive. Otherwise, there are no effects.
|
|
1189
|
+
* Invalidates iterators if reallocation is needed.
|
|
1190
|
+
*
|
|
1191
|
+
* **Requires**: `T` shall be [MoveInsertable] into `*this`.
|
|
1192
|
+
*
|
|
1193
|
+
* **Complexity**: Linear in the size of *this.
|
|
1194
|
+
*
|
|
1195
|
+
* **Exceptions**: Strong exception guarantee.
|
|
1196
|
+
*
|
|
1197
|
+
* **Throws**: `length_error` if `new_capacity > max_size()`.
|
|
1198
|
+
*/
|
|
1199
|
+
inline void reserve_front(size_type new_capacity)
|
|
1200
|
+
{
|
|
1201
|
+
if (front_capacity() >= new_capacity) { return; }
|
|
1202
|
+
|
|
1203
|
+
reallocate_at(new_capacity + back_free_capacity(), new_capacity - size());
|
|
1214
1204
|
|
|
1215
|
-
|
|
1205
|
+
BOOST_ASSERT(invariants_ok());
|
|
1206
|
+
}
|
|
1216
1207
|
|
|
1217
|
-
|
|
1218
|
-
|
|
1208
|
+
/**
|
|
1209
|
+
* [MoveInsertable]: http://en.cppreference.com/w/cpp/concept/MoveInsertable
|
|
1210
|
+
*
|
|
1211
|
+
* **Effects**: Ensures that `n` elements can be pushed to the back
|
|
1212
|
+
* without requiring reallocation, where `n` is `new_capacity - size()`,
|
|
1213
|
+
* if `n` is positive. Otherwise, there are no effects.
|
|
1214
|
+
* Invalidates iterators if reallocation is needed.
|
|
1215
|
+
*
|
|
1216
|
+
* **Requires**: `T` shall be [MoveInsertable] into `*this`.
|
|
1217
|
+
*
|
|
1218
|
+
* **Complexity**: Linear in the size of *this.
|
|
1219
|
+
*
|
|
1220
|
+
* **Exceptions**: Strong exception guarantee.
|
|
1221
|
+
*
|
|
1222
|
+
* **Throws**: length_error if `new_capacity > max_size()`.
|
|
1223
|
+
*/
|
|
1224
|
+
inline void reserve_back(size_type new_capacity)
|
|
1225
|
+
{
|
|
1226
|
+
if (back_capacity() >= new_capacity) { return; }
|
|
1227
|
+
|
|
1228
|
+
reallocate_at(new_capacity + front_free_capacity(), m_.front_idx);
|
|
1219
1229
|
|
|
1230
|
+
BOOST_ASSERT(invariants_ok());
|
|
1231
|
+
}
|
|
1220
1232
|
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1233
|
+
|
|
1234
|
+
/**
|
|
1235
|
+
* [MoveInsertable]: http://en.cppreference.com/w/cpp/concept/MoveInsertable
|
|
1236
|
+
*
|
|
1237
|
+
* **Effects**: Reduces `capacity()` to `size()`. Invalidates iterators.
|
|
1238
|
+
*
|
|
1239
|
+
* **Requires**: `T` shall be [MoveInsertable] into `*this`.
|
|
1240
|
+
*
|
|
1241
|
+
* **Exceptions**: Strong exception guarantee.
|
|
1242
|
+
*
|
|
1243
|
+
* **Complexity**: Linear in the size of *this.
|
|
1244
|
+
*/
|
|
1245
|
+
inline void shrink_to_fit()
|
|
1246
|
+
{
|
|
1234
1247
|
if(this->front_capacity() || this->back_capacity())
|
|
1235
|
-
|
|
1236
|
-
|
|
1248
|
+
this->reallocate_at(size(), 0);
|
|
1249
|
+
}
|
|
1237
1250
|
|
|
1238
|
-
|
|
1251
|
+
// element access:
|
|
1239
1252
|
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1253
|
+
/**
|
|
1254
|
+
* **Returns**: A reference to the `n`th element in the devector.
|
|
1255
|
+
*
|
|
1256
|
+
* **Precondition**: `n < size()`.
|
|
1257
|
+
*
|
|
1258
|
+
* **Complexity**: Constant.
|
|
1259
|
+
*/
|
|
1260
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
1248
1261
|
reference operator[](size_type n) BOOST_NOEXCEPT
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1262
|
+
{
|
|
1263
|
+
BOOST_ASSERT(n < size());
|
|
1264
|
+
return m_.buffer[m_.front_idx + n];
|
|
1265
|
+
}
|
|
1253
1266
|
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1267
|
+
/**
|
|
1268
|
+
* **Returns**: A constant reference to the `n`th element in the devector.
|
|
1269
|
+
*
|
|
1270
|
+
* **Precondition**: `n < size()`.
|
|
1271
|
+
*
|
|
1272
|
+
* **Complexity**: Constant.
|
|
1273
|
+
*/
|
|
1274
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
1262
1275
|
const_reference operator[](size_type n) const BOOST_NOEXCEPT
|
|
1263
|
-
|
|
1264
|
-
|
|
1276
|
+
{
|
|
1277
|
+
BOOST_ASSERT(n < size());
|
|
1278
|
+
return m_.buffer[m_.front_idx + n];
|
|
1279
|
+
}
|
|
1265
1280
|
|
|
1266
|
-
|
|
1267
|
-
|
|
1281
|
+
//! <b>Requires</b>: size() >= n.
|
|
1282
|
+
//!
|
|
1283
|
+
//! <b>Effects</b>: Returns an iterator to the nth element
|
|
1284
|
+
//! from the beginning of the container. Returns end()
|
|
1285
|
+
//! if n == size().
|
|
1286
|
+
//!
|
|
1287
|
+
//! <b>Throws</b>: Nothing.
|
|
1288
|
+
//!
|
|
1289
|
+
//! <b>Complexity</b>: Constant.
|
|
1290
|
+
//!
|
|
1291
|
+
//! <b>Note</b>: Non-standard extension
|
|
1292
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
1293
|
+
iterator nth(size_type n) BOOST_NOEXCEPT_OR_NOTHROW
|
|
1294
|
+
{
|
|
1295
|
+
BOOST_ASSERT(n <= size());
|
|
1296
|
+
return iterator(m_.buffer + (m_.front_idx + n));
|
|
1297
|
+
}
|
|
1298
|
+
|
|
1299
|
+
//! <b>Requires</b>: size() >= n.
|
|
1300
|
+
//!
|
|
1301
|
+
//! <b>Effects</b>: Returns a const_iterator to the nth element
|
|
1302
|
+
//! from the beginning of the container. Returns end()
|
|
1303
|
+
//! if n == size().
|
|
1304
|
+
//!
|
|
1305
|
+
//! <b>Throws</b>: Nothing.
|
|
1306
|
+
//!
|
|
1307
|
+
//! <b>Complexity</b>: Constant.
|
|
1308
|
+
//!
|
|
1309
|
+
//! <b>Note</b>: Non-standard extension
|
|
1310
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
1311
|
+
const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1312
|
+
{
|
|
1313
|
+
BOOST_ASSERT(n <= size());
|
|
1314
|
+
return const_iterator(m_.buffer + (m_.front_idx + n));
|
|
1315
|
+
}
|
|
1316
|
+
|
|
1317
|
+
//! <b>Requires</b>: begin() <= p <= end().
|
|
1318
|
+
//!
|
|
1319
|
+
//! <b>Effects</b>: Returns the index of the element pointed by p
|
|
1320
|
+
//! and size() if p == end().
|
|
1321
|
+
//!
|
|
1322
|
+
//! <b>Throws</b>: Nothing.
|
|
1323
|
+
//!
|
|
1324
|
+
//! <b>Complexity</b>: Constant.
|
|
1325
|
+
//!
|
|
1326
|
+
//! <b>Note</b>: Non-standard extension
|
|
1327
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
1328
|
+
size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW
|
|
1329
|
+
{
|
|
1330
|
+
BOOST_ASSERT(p >= begin());
|
|
1331
|
+
BOOST_ASSERT(p <= end());
|
|
1332
|
+
return static_cast<size_type>(p - this->begin());
|
|
1333
|
+
}
|
|
1334
|
+
|
|
1335
|
+
//! <b>Requires</b>: begin() <= p <= end().
|
|
1336
|
+
//!
|
|
1337
|
+
//! <b>Effects</b>: Returns the index of the element pointed by p
|
|
1338
|
+
//! and size() if p == end().
|
|
1339
|
+
//!
|
|
1340
|
+
//! <b>Throws</b>: Nothing.
|
|
1341
|
+
//!
|
|
1342
|
+
//! <b>Complexity</b>: Constant.
|
|
1343
|
+
//!
|
|
1344
|
+
//! <b>Note</b>: Non-standard extension
|
|
1345
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
1346
|
+
size_type index_of(const_iterator p) const BOOST_NOEXCEPT_OR_NOTHROW
|
|
1347
|
+
{
|
|
1348
|
+
BOOST_ASSERT(p >= cbegin());
|
|
1349
|
+
BOOST_ASSERT(p <= cend());
|
|
1350
|
+
return static_cast<size_type>(p - this->cbegin());
|
|
1351
|
+
}
|
|
1268
1352
|
|
|
1269
1353
|
/**
|
|
1270
1354
|
* **Returns**: A reference to the `n`th element in the devector.
|
|
@@ -1273,11 +1357,11 @@ class devector
|
|
|
1273
1357
|
*
|
|
1274
1358
|
* **Complexity**: Constant.
|
|
1275
1359
|
*/
|
|
1276
|
-
BOOST_CONTAINER_ATTRIBUTE_NODISCARD
|
|
1360
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
1277
1361
|
reference at(size_type n)
|
|
1278
1362
|
{
|
|
1279
1363
|
if (size() <= n)
|
|
1280
|
-
|
|
1364
|
+
throw_out_of_range("devector::at out of range");
|
|
1281
1365
|
return (*this)[n];
|
|
1282
1366
|
}
|
|
1283
1367
|
|
|
@@ -1288,11 +1372,11 @@ class devector
|
|
|
1288
1372
|
*
|
|
1289
1373
|
* **Complexity**: Constant.
|
|
1290
1374
|
*/
|
|
1291
|
-
BOOST_CONTAINER_ATTRIBUTE_NODISCARD
|
|
1375
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
1292
1376
|
const_reference at(size_type n) const
|
|
1293
1377
|
{
|
|
1294
1378
|
if (size() <= n)
|
|
1295
|
-
|
|
1379
|
+
throw_out_of_range("devector::at out of range");
|
|
1296
1380
|
return (*this)[n];
|
|
1297
1381
|
}
|
|
1298
1382
|
|
|
@@ -1303,12 +1387,12 @@ class devector
|
|
|
1303
1387
|
*
|
|
1304
1388
|
* **Complexity**: Constant.
|
|
1305
1389
|
*/
|
|
1306
|
-
BOOST_CONTAINER_ATTRIBUTE_NODISCARD
|
|
1390
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
1307
1391
|
reference front() BOOST_NOEXCEPT
|
|
1308
1392
|
{
|
|
1309
1393
|
BOOST_ASSERT(!empty());
|
|
1310
1394
|
|
|
1311
|
-
return
|
|
1395
|
+
return m_.buffer[m_.front_idx];
|
|
1312
1396
|
}
|
|
1313
1397
|
|
|
1314
1398
|
/**
|
|
@@ -1318,12 +1402,12 @@ class devector
|
|
|
1318
1402
|
*
|
|
1319
1403
|
* **Complexity**: Constant.
|
|
1320
1404
|
*/
|
|
1321
|
-
BOOST_CONTAINER_ATTRIBUTE_NODISCARD
|
|
1405
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
1322
1406
|
const_reference front() const BOOST_NOEXCEPT
|
|
1323
1407
|
{
|
|
1324
1408
|
BOOST_ASSERT(!empty());
|
|
1325
1409
|
|
|
1326
|
-
return
|
|
1410
|
+
return m_.buffer[m_.front_idx];
|
|
1327
1411
|
}
|
|
1328
1412
|
|
|
1329
1413
|
/**
|
|
@@ -1333,12 +1417,12 @@ class devector
|
|
|
1333
1417
|
*
|
|
1334
1418
|
* **Complexity**: Constant.
|
|
1335
1419
|
*/
|
|
1336
|
-
BOOST_CONTAINER_ATTRIBUTE_NODISCARD
|
|
1420
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
1337
1421
|
reference back() BOOST_NOEXCEPT
|
|
1338
1422
|
{
|
|
1339
1423
|
BOOST_ASSERT(!empty());
|
|
1340
1424
|
|
|
1341
|
-
return
|
|
1425
|
+
return m_.buffer[m_.back_idx - 1u];
|
|
1342
1426
|
}
|
|
1343
1427
|
|
|
1344
1428
|
/**
|
|
@@ -1348,12 +1432,12 @@ class devector
|
|
|
1348
1432
|
*
|
|
1349
1433
|
* **Complexity**: Constant.
|
|
1350
1434
|
*/
|
|
1351
|
-
BOOST_CONTAINER_ATTRIBUTE_NODISCARD
|
|
1435
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
1352
1436
|
const_reference back() const BOOST_NOEXCEPT
|
|
1353
1437
|
{
|
|
1354
1438
|
BOOST_ASSERT(!empty());
|
|
1355
1439
|
|
|
1356
|
-
return
|
|
1440
|
+
return m_.buffer[m_.back_idx - 1u];
|
|
1357
1441
|
}
|
|
1358
1442
|
|
|
1359
1443
|
/**
|
|
@@ -1363,7 +1447,7 @@ class devector
|
|
|
1363
1447
|
*
|
|
1364
1448
|
* **Complexity**: Constant.
|
|
1365
1449
|
*/
|
|
1366
|
-
BOOST_CONTAINER_ATTRIBUTE_NODISCARD
|
|
1450
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
1367
1451
|
T* data() BOOST_NOEXCEPT
|
|
1368
1452
|
{
|
|
1369
1453
|
return boost::movelib::to_raw_pointer(m_.buffer) + m_.front_idx;
|
|
@@ -1376,7 +1460,7 @@ class devector
|
|
|
1376
1460
|
*
|
|
1377
1461
|
* **Complexity**: Constant.
|
|
1378
1462
|
*/
|
|
1379
|
-
BOOST_CONTAINER_ATTRIBUTE_NODISCARD
|
|
1463
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
1380
1464
|
const T* data() const BOOST_NOEXCEPT
|
|
1381
1465
|
{
|
|
1382
1466
|
return boost::movelib::to_raw_pointer(m_.buffer) + m_.front_idx;
|
|
@@ -1402,38 +1486,41 @@ class devector
|
|
|
1402
1486
|
*/
|
|
1403
1487
|
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
1404
1488
|
template <class... Args>
|
|
1405
|
-
|
|
1489
|
+
reference emplace_front(Args&&... args)
|
|
1406
1490
|
{
|
|
1407
|
-
if (front_free_capacity()) // fast path
|
|
1491
|
+
if (BOOST_LIKELY(front_free_capacity() != 0)) // fast path
|
|
1408
1492
|
{
|
|
1409
|
-
|
|
1493
|
+
pointer const p = m_.buffer + (m_.front_idx - 1u);
|
|
1494
|
+
this->alloc_construct(p, boost::forward<Args>(args)...);
|
|
1410
1495
|
--m_.front_idx;
|
|
1496
|
+
BOOST_ASSERT(invariants_ok());
|
|
1497
|
+
return *p;
|
|
1411
1498
|
}
|
|
1412
1499
|
else
|
|
1413
1500
|
{
|
|
1414
|
-
|
|
1501
|
+
typedef dtl::insert_emplace_proxy<allocator_type, Args...> proxy_t;
|
|
1502
|
+
return *this->insert_range_slow_path(this->begin(), 1, proxy_t(::boost::forward<Args>(args)...));
|
|
1415
1503
|
}
|
|
1416
|
-
|
|
1417
|
-
BOOST_ASSERT(invariants_ok());
|
|
1418
1504
|
}
|
|
1419
1505
|
|
|
1420
1506
|
#else //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
1421
1507
|
|
|
1422
1508
|
#define BOOST_CONTAINER_DEVECTOR_EMPLACE_FRONT(N) \
|
|
1423
1509
|
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
|
|
1424
|
-
|
|
1510
|
+
inline reference emplace_front(BOOST_MOVE_UREF##N)\
|
|
1425
1511
|
{\
|
|
1426
1512
|
if (front_free_capacity())\
|
|
1427
1513
|
{\
|
|
1428
|
-
|
|
1514
|
+
pointer const p = m_.buffer + (m_.front_idx - 1u);\
|
|
1515
|
+
this->alloc_construct(p BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
|
1429
1516
|
--m_.front_idx;\
|
|
1517
|
+
return *p;\
|
|
1430
1518
|
}\
|
|
1431
1519
|
else\
|
|
1432
1520
|
{\
|
|
1433
|
-
|
|
1521
|
+
typedef dtl::insert_emplace_proxy_arg##N<allocator_type BOOST_MOVE_I##N BOOST_MOVE_TARG##N> proxy_t;\
|
|
1522
|
+
return *this->insert_range_slow_path(this->begin(), 1, proxy_t(BOOST_MOVE_FWD##N));\
|
|
1434
1523
|
}\
|
|
1435
|
-
\
|
|
1436
|
-
BOOST_ASSERT(invariants_ok());\
|
|
1437
1524
|
}\
|
|
1438
1525
|
//
|
|
1439
1526
|
BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_DEVECTOR_EMPLACE_FRONT)
|
|
@@ -1489,8 +1576,8 @@ class devector
|
|
|
1489
1576
|
*/
|
|
1490
1577
|
void pop_front() BOOST_NOEXCEPT
|
|
1491
1578
|
{
|
|
1492
|
-
BOOST_ASSERT(!
|
|
1493
|
-
allocator_traits_type::destroy(get_allocator_ref(), m_.buffer + m_.front_idx);
|
|
1579
|
+
BOOST_ASSERT(!empty());
|
|
1580
|
+
allocator_traits_type::destroy(get_allocator_ref(), boost::movelib::to_raw_pointer(m_.buffer + m_.front_idx));
|
|
1494
1581
|
++m_.front_idx;
|
|
1495
1582
|
BOOST_ASSERT(invariants_ok());
|
|
1496
1583
|
}
|
|
@@ -1515,38 +1602,43 @@ class devector
|
|
|
1515
1602
|
*/
|
|
1516
1603
|
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
1517
1604
|
template <class... Args>
|
|
1518
|
-
|
|
1605
|
+
inline reference emplace_back(Args&&... args)
|
|
1519
1606
|
{
|
|
1520
|
-
if (this->back_free_capacity()){
|
|
1521
|
-
|
|
1607
|
+
if (BOOST_LIKELY(this->back_free_capacity() != 0)){
|
|
1608
|
+
pointer const p = m_.buffer + m_.back_idx;
|
|
1609
|
+
this->alloc_construct(p, boost::forward<Args>(args)...);
|
|
1522
1610
|
++m_.back_idx;
|
|
1611
|
+
BOOST_ASSERT(invariants_ok());
|
|
1612
|
+
return *p;
|
|
1523
1613
|
}
|
|
1524
1614
|
else {
|
|
1525
|
-
|
|
1615
|
+
typedef dtl::insert_emplace_proxy<allocator_type, Args...> proxy_t;
|
|
1616
|
+
return *this->insert_range_slow_path(this->end(), 1, proxy_t(::boost::forward<Args>(args)...));
|
|
1526
1617
|
}
|
|
1527
|
-
BOOST_ASSERT(invariants_ok());
|
|
1528
1618
|
}
|
|
1529
1619
|
|
|
1530
1620
|
#else //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
1531
1621
|
|
|
1532
1622
|
#define BOOST_CONTAINER_DEVECTOR_EMPLACE_BACK(N) \
|
|
1533
1623
|
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
|
|
1534
|
-
|
|
1624
|
+
inline reference emplace_back(BOOST_MOVE_UREF##N)\
|
|
1535
1625
|
{\
|
|
1536
1626
|
if (this->back_free_capacity()){\
|
|
1537
|
-
|
|
1627
|
+
pointer const p = m_.buffer + m_.back_idx;\
|
|
1628
|
+
this->alloc_construct(p BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
|
1538
1629
|
++m_.back_idx;\
|
|
1630
|
+
return *p;\
|
|
1539
1631
|
}\
|
|
1540
1632
|
else {\
|
|
1541
|
-
|
|
1633
|
+
typedef dtl::insert_emplace_proxy_arg##N<allocator_type BOOST_MOVE_I##N BOOST_MOVE_TARG##N> proxy_t;\
|
|
1634
|
+
return *this->insert_range_slow_path(this->end(), 1, proxy_t(BOOST_MOVE_FWD##N));\
|
|
1542
1635
|
}\
|
|
1543
|
-
BOOST_ASSERT(invariants_ok());\
|
|
1544
1636
|
}\
|
|
1545
1637
|
//
|
|
1546
1638
|
BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_DEVECTOR_EMPLACE_BACK)
|
|
1547
1639
|
#undef BOOST_CONTAINER_DEVECTOR_EMPLACE_BACK
|
|
1548
1640
|
|
|
1549
|
-
#endif
|
|
1641
|
+
#endif //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
1550
1642
|
|
|
1551
1643
|
|
|
1552
1644
|
#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
@@ -1599,7 +1691,7 @@ class devector
|
|
|
1599
1691
|
{
|
|
1600
1692
|
BOOST_ASSERT(! empty());
|
|
1601
1693
|
--m_.back_idx;
|
|
1602
|
-
allocator_traits_type::destroy(get_allocator_ref(), m_.buffer + m_.back_idx);
|
|
1694
|
+
allocator_traits_type::destroy(get_allocator_ref(), boost::movelib::to_raw_pointer(m_.buffer + m_.back_idx));
|
|
1603
1695
|
BOOST_ASSERT(invariants_ok());
|
|
1604
1696
|
}
|
|
1605
1697
|
|
|
@@ -1628,24 +1720,56 @@ class devector
|
|
|
1628
1720
|
{
|
|
1629
1721
|
BOOST_ASSERT(position >= begin());
|
|
1630
1722
|
BOOST_ASSERT(position <= end());
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
{
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1723
|
+
typedef dtl::insert_emplace_proxy<allocator_type, Args...> proxy_t;
|
|
1724
|
+
bool prefer_move_back;
|
|
1725
|
+
if (position == end()){
|
|
1726
|
+
if(back_free_capacity()) // fast path
|
|
1727
|
+
{
|
|
1728
|
+
pointer const p = m_.buffer + m_.back_idx;
|
|
1729
|
+
this->alloc_construct(p, boost::forward<Args>(args)...);
|
|
1730
|
+
++m_.back_idx;
|
|
1731
|
+
return iterator(p);
|
|
1732
|
+
}
|
|
1733
|
+
prefer_move_back = true;
|
|
1637
1734
|
}
|
|
1638
|
-
else if (position == begin()
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1735
|
+
else if (position == begin()){
|
|
1736
|
+
if(front_free_capacity()) // secondary fast path
|
|
1737
|
+
{
|
|
1738
|
+
pointer const p = m_.buffer + (m_.front_idx - 1);
|
|
1739
|
+
this->alloc_construct(p, boost::forward<Args>(args)...);
|
|
1740
|
+
--m_.front_idx;
|
|
1741
|
+
return iterator(p);
|
|
1742
|
+
}
|
|
1743
|
+
prefer_move_back = false;
|
|
1643
1744
|
}
|
|
1644
|
-
else
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1745
|
+
else{
|
|
1746
|
+
iterator nonconst_pos = unconst_iterator(position);
|
|
1747
|
+
prefer_move_back = should_move_back(position);
|
|
1748
|
+
|
|
1749
|
+
if(prefer_move_back){
|
|
1750
|
+
if(back_free_capacity()){
|
|
1751
|
+
boost::container::expand_forward_and_insert_nonempty_middle_alloc
|
|
1752
|
+
( get_allocator_ref()
|
|
1753
|
+
, boost::movelib::to_raw_pointer(nonconst_pos)
|
|
1754
|
+
, this->priv_raw_end()
|
|
1755
|
+
, 1, proxy_t(::boost::forward<Args>(args)...));
|
|
1756
|
+
++m_.back_idx;
|
|
1757
|
+
return nonconst_pos;
|
|
1758
|
+
}
|
|
1759
|
+
}
|
|
1760
|
+
else{
|
|
1761
|
+
if (front_free_capacity()){
|
|
1762
|
+
boost::container::expand_backward_and_insert_nonempty_middle_alloc
|
|
1763
|
+
(get_allocator_ref()
|
|
1764
|
+
, this->priv_raw_begin()
|
|
1765
|
+
, boost::movelib::to_raw_pointer(nonconst_pos)
|
|
1766
|
+
, 1, proxy_t(::boost::forward<Args>(args)...));
|
|
1767
|
+
--m_.front_idx;
|
|
1768
|
+
return --nonconst_pos;
|
|
1769
|
+
}
|
|
1770
|
+
}
|
|
1648
1771
|
}
|
|
1772
|
+
return this->insert_range_slow_path(position, 1, proxy_t(::boost::forward<Args>(args)...));
|
|
1649
1773
|
}
|
|
1650
1774
|
|
|
1651
1775
|
#else //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
@@ -1656,27 +1780,62 @@ class devector
|
|
|
1656
1780
|
{\
|
|
1657
1781
|
BOOST_ASSERT(position >= begin());\
|
|
1658
1782
|
BOOST_ASSERT(position <= end());\
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1783
|
+
typedef dtl::insert_emplace_proxy_arg##N<allocator_type BOOST_MOVE_I##N BOOST_MOVE_TARG##N> proxy_t;\
|
|
1784
|
+
bool prefer_move_back;\
|
|
1785
|
+
if (position == end()){\
|
|
1786
|
+
if(back_free_capacity())\
|
|
1787
|
+
{\
|
|
1788
|
+
pointer const p = m_.buffer + m_.back_idx;\
|
|
1789
|
+
this->alloc_construct(p BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
|
1790
|
+
++m_.back_idx;\
|
|
1791
|
+
return iterator(p);\
|
|
1792
|
+
}\
|
|
1793
|
+
prefer_move_back = true;\
|
|
1664
1794
|
}\
|
|
1665
|
-
else if (position == begin()
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1795
|
+
else if (position == begin()){\
|
|
1796
|
+
if(front_free_capacity())\
|
|
1797
|
+
{\
|
|
1798
|
+
pointer const p = m_.buffer + (m_.front_idx - 1);\
|
|
1799
|
+
this->alloc_construct(p BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
|
1800
|
+
--m_.front_idx;\
|
|
1801
|
+
return iterator(p);\
|
|
1802
|
+
}\
|
|
1803
|
+
prefer_move_back = false;\
|
|
1669
1804
|
}\
|
|
1670
1805
|
else{\
|
|
1671
|
-
|
|
1672
|
-
|
|
1806
|
+
iterator nonconst_pos = unconst_iterator(position);\
|
|
1807
|
+
prefer_move_back = should_move_back(position);\
|
|
1808
|
+
\
|
|
1809
|
+
if(prefer_move_back){\
|
|
1810
|
+
if(back_free_capacity()){\
|
|
1811
|
+
boost::container::expand_forward_and_insert_nonempty_middle_alloc\
|
|
1812
|
+
( get_allocator_ref()\
|
|
1813
|
+
, boost::movelib::to_raw_pointer(nonconst_pos)\
|
|
1814
|
+
, this->priv_raw_end()\
|
|
1815
|
+
, 1, proxy_t(BOOST_MOVE_FWD##N));\
|
|
1816
|
+
++m_.back_idx;\
|
|
1817
|
+
return nonconst_pos;\
|
|
1818
|
+
}\
|
|
1819
|
+
}\
|
|
1820
|
+
else{\
|
|
1821
|
+
if (front_free_capacity()){\
|
|
1822
|
+
boost::container::expand_backward_and_insert_nonempty_middle_alloc\
|
|
1823
|
+
(get_allocator_ref()\
|
|
1824
|
+
, this->priv_raw_begin()\
|
|
1825
|
+
, boost::movelib::to_raw_pointer(nonconst_pos)\
|
|
1826
|
+
, 1, proxy_t(BOOST_MOVE_FWD##N));\
|
|
1827
|
+
--m_.front_idx;\
|
|
1828
|
+
return --nonconst_pos;\
|
|
1829
|
+
}\
|
|
1830
|
+
}\
|
|
1673
1831
|
}\
|
|
1832
|
+
return this->insert_range_slow_path(position, 1, proxy_t(BOOST_MOVE_FWD##N));\
|
|
1674
1833
|
}\
|
|
1675
1834
|
//
|
|
1676
1835
|
BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_DEVECTOR_EMPLACE)
|
|
1677
1836
|
#undef BOOST_CONTAINER_DEVECTOR_EMPLACE
|
|
1678
1837
|
|
|
1679
|
-
#endif
|
|
1838
|
+
#endif //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
1680
1839
|
|
|
1681
1840
|
|
|
1682
1841
|
#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
@@ -1736,16 +1895,16 @@ class devector
|
|
|
1736
1895
|
* [CopyInsertable]: http://en.cppreference.com/w/cpp/concept/CopyInsertable
|
|
1737
1896
|
* [CopyAssignable]: http://en.cppreference.com/w/cpp/concept/CopyAssignable
|
|
1738
1897
|
*/
|
|
1739
|
-
iterator insert(const_iterator position, size_type n, const T& x)
|
|
1898
|
+
inline iterator insert(const_iterator position, size_type n, const T& x)
|
|
1740
1899
|
{
|
|
1741
1900
|
cvalue_iterator first(x, n);
|
|
1742
1901
|
cvalue_iterator last = first + n;
|
|
1743
|
-
return insert_range(position, first, last);
|
|
1902
|
+
return this->insert_range(position, first, last);
|
|
1744
1903
|
}
|
|
1745
1904
|
|
|
1746
1905
|
/**
|
|
1747
1906
|
* **Effects**: Copy constructs elements before the element pointed by position
|
|
1748
|
-
* using each element in the
|
|
1907
|
+
* using each element in the range pointed by `first` and `last` as constructor arguments.
|
|
1749
1908
|
* Invalidates iterators if reallocation is needed.
|
|
1750
1909
|
*
|
|
1751
1910
|
* **Requires**: `T` shall be [EmplaceConstructible] into `*this` from `*first`. If the specified iterator
|
|
@@ -1759,7 +1918,7 @@ class devector
|
|
|
1759
1918
|
* **Complexity**: Linear in the size of `*this` and `N` (where `N` is the distance between `first` and `last`).
|
|
1760
1919
|
* Makes only `N` calls to the constructor of `T` and no reallocations if iterators `first` and `last`
|
|
1761
1920
|
* are of forward, bidirectional, or random access categories. It makes 2N calls to the copy constructor of `T`
|
|
1762
|
-
* and
|
|
1921
|
+
* and `O(log(N)) reallocations if they are just input iterators.
|
|
1763
1922
|
*
|
|
1764
1923
|
* **Exceptions**: Strong exception guarantee if `T` is `NothrowConstructible`
|
|
1765
1924
|
* and `NothrowAssignable`, Basic exception guarantee otherwise.
|
|
@@ -1775,10 +1934,10 @@ class devector
|
|
|
1775
1934
|
iterator insert(const_iterator position, InputIterator first, InputIterator last
|
|
1776
1935
|
//Input iterators
|
|
1777
1936
|
BOOST_CONTAINER_DOCIGN(BOOST_MOVE_I typename dtl::disable_if_or
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1937
|
+
< void
|
|
1938
|
+
BOOST_MOVE_I dtl::is_convertible<InputIterator BOOST_MOVE_I size_type>
|
|
1939
|
+
BOOST_MOVE_I dtl::is_not_input_iterator<InputIterator>
|
|
1940
|
+
>::type * = 0)
|
|
1782
1941
|
)
|
|
1783
1942
|
{
|
|
1784
1943
|
if (position == end())
|
|
@@ -1809,13 +1968,13 @@ class devector
|
|
|
1809
1968
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
1810
1969
|
|
|
1811
1970
|
template <class ForwardIterator>
|
|
1812
|
-
iterator insert(const_iterator position, ForwardIterator first, ForwardIterator last
|
|
1971
|
+
inline iterator insert(const_iterator position, ForwardIterator first, ForwardIterator last
|
|
1813
1972
|
//Other iterators
|
|
1814
1973
|
BOOST_CONTAINER_DOCIGN(BOOST_MOVE_I typename dtl::disable_if_or
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1974
|
+
< void
|
|
1975
|
+
BOOST_MOVE_I dtl::is_convertible<ForwardIterator BOOST_MOVE_I size_type>
|
|
1976
|
+
BOOST_MOVE_I dtl::is_input_iterator<ForwardIterator>
|
|
1977
|
+
>::type * = 0)
|
|
1819
1978
|
)
|
|
1820
1979
|
{
|
|
1821
1980
|
return insert_range(position, first, last);
|
|
@@ -1825,9 +1984,9 @@ class devector
|
|
|
1825
1984
|
|
|
1826
1985
|
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
|
1827
1986
|
/** **Equivalent to**: `insert(position, il.begin(), il.end())` */
|
|
1828
|
-
iterator insert(const_iterator position, std::initializer_list<T> il)
|
|
1987
|
+
inline iterator insert(const_iterator position, std::initializer_list<T> il)
|
|
1829
1988
|
{
|
|
1830
|
-
return
|
|
1989
|
+
return this->insert(position, il.begin(), il.end());
|
|
1831
1990
|
}
|
|
1832
1991
|
#endif
|
|
1833
1992
|
|
|
@@ -1875,8 +2034,8 @@ class devector
|
|
|
1875
2034
|
*/
|
|
1876
2035
|
iterator erase(const_iterator first, const_iterator last)
|
|
1877
2036
|
{
|
|
1878
|
-
iterator nc_first =
|
|
1879
|
-
iterator nc_last =
|
|
2037
|
+
iterator nc_first = unconst_iterator(first);
|
|
2038
|
+
iterator nc_last = unconst_iterator(last);
|
|
1880
2039
|
return erase(nc_first, nc_last);
|
|
1881
2040
|
}
|
|
1882
2041
|
|
|
@@ -1900,38 +2059,38 @@ class devector
|
|
|
1900
2059
|
*/
|
|
1901
2060
|
iterator erase(iterator first, iterator last)
|
|
1902
2061
|
{
|
|
1903
|
-
size_type front_distance = last
|
|
1904
|
-
size_type back_distance
|
|
1905
|
-
size_type n = boost::container::
|
|
2062
|
+
size_type front_distance = pos_to_index(last);
|
|
2063
|
+
size_type back_distance = size_type(end() - first);
|
|
2064
|
+
size_type n = boost::container::iterator_udistance(first, last);
|
|
1906
2065
|
|
|
1907
2066
|
if (front_distance < back_distance)
|
|
1908
2067
|
{
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
2068
|
+
// move n to the right
|
|
2069
|
+
boost::container::move_backward(begin(), first, last);
|
|
2070
|
+
|
|
2071
|
+
for (iterator i = begin(); i != begin() + n; ++i)
|
|
2072
|
+
{
|
|
2073
|
+
allocator_traits_type::destroy(get_allocator_ref(), boost::movelib::to_raw_pointer(i));
|
|
2074
|
+
}
|
|
2075
|
+
//n is always less than max stored_size_type
|
|
2076
|
+
m_.set_front_idx(m_.front_idx + n);
|
|
2077
|
+
|
|
2078
|
+
BOOST_ASSERT(invariants_ok());
|
|
2079
|
+
return last;
|
|
1921
2080
|
}
|
|
1922
2081
|
else {
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1934
|
-
|
|
2082
|
+
// move n to the left
|
|
2083
|
+
boost::container::move(last, end(), first);
|
|
2084
|
+
|
|
2085
|
+
for (iterator i = end() - n; i != end(); ++i)
|
|
2086
|
+
{
|
|
2087
|
+
allocator_traits_type::destroy(get_allocator_ref(), boost::movelib::to_raw_pointer(i));
|
|
2088
|
+
}
|
|
2089
|
+
//n is always less than max stored_size_type
|
|
2090
|
+
m_.set_back_idx(m_.back_idx - n);
|
|
2091
|
+
|
|
2092
|
+
BOOST_ASSERT(invariants_ok());
|
|
2093
|
+
return first;
|
|
1935
2094
|
}
|
|
1936
2095
|
}
|
|
1937
2096
|
|
|
@@ -1951,7 +2110,7 @@ class devector
|
|
|
1951
2110
|
*/
|
|
1952
2111
|
void swap(devector& b)
|
|
1953
2112
|
BOOST_NOEXCEPT_IF( allocator_traits_type::propagate_on_container_swap::value
|
|
1954
|
-
|
|
2113
|
+
|| allocator_traits_type::is_always_equal::value)
|
|
1955
2114
|
{
|
|
1956
2115
|
BOOST_CONSTEXPR_OR_CONST bool propagate_alloc = allocator_traits_type::propagate_on_container_swap::value;
|
|
1957
2116
|
BOOST_ASSERT(propagate_alloc || get_allocator_ref() == b.get_allocator_ref()); // else it's undefined behavior
|
|
@@ -1965,7 +2124,7 @@ class devector
|
|
|
1965
2124
|
//And now swap the allocator
|
|
1966
2125
|
dtl::swap_alloc(this->get_allocator_ref(), b.get_allocator_ref(), dtl::bool_<propagate_alloc>());
|
|
1967
2126
|
|
|
1968
|
-
BOOST_ASSERT(
|
|
2127
|
+
BOOST_ASSERT( invariants_ok());
|
|
1969
2128
|
BOOST_ASSERT(b.invariants_ok());
|
|
1970
2129
|
}
|
|
1971
2130
|
|
|
@@ -1987,93 +2146,186 @@ class devector
|
|
|
1987
2146
|
m_.front_idx = m_.back_idx = 0;
|
|
1988
2147
|
}
|
|
1989
2148
|
|
|
1990
|
-
BOOST_CONTAINER_ATTRIBUTE_NODISCARD
|
|
2149
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
1991
2150
|
friend bool operator==(const devector& x, const devector& y)
|
|
1992
|
-
{
|
|
2151
|
+
{ return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); }
|
|
1993
2152
|
|
|
1994
|
-
BOOST_CONTAINER_ATTRIBUTE_NODISCARD
|
|
2153
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
1995
2154
|
friend bool operator!=(const devector& x, const devector& y)
|
|
1996
|
-
{
|
|
2155
|
+
{ return !(x == y); }
|
|
1997
2156
|
|
|
1998
|
-
BOOST_CONTAINER_ATTRIBUTE_NODISCARD
|
|
2157
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
1999
2158
|
friend bool operator< (const devector& x, const devector& y)
|
|
2000
|
-
{
|
|
2159
|
+
{ return boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); }
|
|
2001
2160
|
|
|
2002
|
-
BOOST_CONTAINER_ATTRIBUTE_NODISCARD
|
|
2161
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
2003
2162
|
friend bool operator>(const devector& x, const devector& y)
|
|
2004
|
-
{
|
|
2163
|
+
{ return y < x; }
|
|
2005
2164
|
|
|
2006
|
-
BOOST_CONTAINER_ATTRIBUTE_NODISCARD
|
|
2165
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
2007
2166
|
friend bool operator<=(const devector& x, const devector& y)
|
|
2008
|
-
{
|
|
2167
|
+
{ return !(y < x); }
|
|
2009
2168
|
|
|
2010
|
-
BOOST_CONTAINER_ATTRIBUTE_NODISCARD
|
|
2169
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
2011
2170
|
friend bool operator>=(const devector& x, const devector& y)
|
|
2012
|
-
{
|
|
2171
|
+
{ return !(x < y); }
|
|
2013
2172
|
|
|
2014
|
-
|
|
2173
|
+
inline friend void swap(devector& x, devector& y)
|
|
2015
2174
|
BOOST_NOEXCEPT_IF( allocator_traits_type::propagate_on_container_swap::value
|
|
2016
|
-
|
|
2017
|
-
{
|
|
2175
|
+
|| allocator_traits_type::is_always_equal::value)
|
|
2176
|
+
{ x.swap(y); }
|
|
2177
|
+
|
|
2178
|
+
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
2179
|
+
|
|
2180
|
+
//Functions for optimizations, not for users
|
|
2181
|
+
T *unused_storage(size_type &sz)
|
|
2182
|
+
{
|
|
2183
|
+
T *const storage_addr = boost::movelib::to_raw_pointer(m_.buffer);
|
|
2184
|
+
if(this->empty()){
|
|
2185
|
+
sz = m_.capacity;
|
|
2186
|
+
return storage_addr;
|
|
2187
|
+
}
|
|
2188
|
+
else if(this->back_free_capacity() > this->front_free_capacity()){
|
|
2189
|
+
sz = this->back_free_capacity();
|
|
2190
|
+
return storage_addr + m_.back_idx;
|
|
2191
|
+
}
|
|
2192
|
+
else{
|
|
2193
|
+
sz = this->front_free_capacity();
|
|
2194
|
+
return storage_addr;
|
|
2195
|
+
}
|
|
2196
|
+
}
|
|
2197
|
+
|
|
2198
|
+
#endif
|
|
2018
2199
|
|
|
2019
2200
|
private:
|
|
2201
|
+
|
|
2202
|
+
void priv_move_assign(BOOST_RV_REF(devector) x, dtl::bool_<true> /*steal_resources*/)
|
|
2203
|
+
{
|
|
2204
|
+
this->clear();
|
|
2205
|
+
this->deallocate_buffer();
|
|
2206
|
+
|
|
2207
|
+
//Move allocator if needed
|
|
2208
|
+
dtl::bool_<allocator_traits_type::
|
|
2209
|
+
propagate_on_container_move_assignment::value> flag;
|
|
2210
|
+
dtl::move_alloc(this->get_allocator_ref(), x.get_allocator_ref(), flag);
|
|
2211
|
+
|
|
2212
|
+
m_.capacity = x.m_.capacity;
|
|
2213
|
+
m_.buffer = x.m_.buffer;
|
|
2214
|
+
m_.front_idx = x.m_.front_idx;
|
|
2215
|
+
m_.back_idx = x.m_.back_idx;
|
|
2216
|
+
|
|
2217
|
+
// leave x in valid state
|
|
2218
|
+
x.m_.capacity = 0u;
|
|
2219
|
+
x.m_.buffer = pointer();
|
|
2220
|
+
x.m_.back_idx = x.m_.front_idx = 0;
|
|
2221
|
+
}
|
|
2222
|
+
|
|
2223
|
+
void priv_move_assign(BOOST_RV_REF(devector) x, dtl::bool_<false> /*steal_resources*/)
|
|
2224
|
+
{
|
|
2225
|
+
//We can't guarantee a compile-time equal allocator or propagation so fallback to runtime
|
|
2226
|
+
//Resources can be transferred if both allocators are equal
|
|
2227
|
+
if (get_allocator_ref() == x.get_allocator_ref()) {
|
|
2228
|
+
this->priv_move_assign(boost::move(x), dtl::true_());
|
|
2229
|
+
}
|
|
2230
|
+
else {
|
|
2231
|
+
// We can't steal memory.
|
|
2232
|
+
move_iterator<iterator> xbegin = boost::make_move_iterator(x.begin());
|
|
2233
|
+
move_iterator<iterator> xend = boost::make_move_iterator(x.end());
|
|
2234
|
+
|
|
2235
|
+
//Move allocator if needed
|
|
2236
|
+
dtl::bool_<allocator_traits_type::
|
|
2237
|
+
propagate_on_container_move_assignment::value> flag;
|
|
2238
|
+
dtl::move_alloc(this->get_allocator_ref(), x.get_allocator_ref(), flag);
|
|
2239
|
+
|
|
2240
|
+
if (m_.capacity >= x.size()) {
|
|
2241
|
+
overwrite_buffer(xbegin, xend);
|
|
2242
|
+
}
|
|
2243
|
+
else {
|
|
2244
|
+
allocate_and_copy_range(xbegin, xend);
|
|
2245
|
+
}
|
|
2246
|
+
}
|
|
2247
|
+
}
|
|
2248
|
+
|
|
2249
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
2250
|
+
size_type pos_to_index(const_iterator i) const
|
|
2251
|
+
{
|
|
2252
|
+
return static_cast<size_type>(i - cbegin());
|
|
2253
|
+
}
|
|
2254
|
+
|
|
2255
|
+
BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
|
|
2256
|
+
bool should_move_back(const_iterator i) const
|
|
2257
|
+
{
|
|
2258
|
+
return static_cast<size_type>(this->pos_to_index(i)) >= this->size()/2u;
|
|
2259
|
+
}
|
|
2260
|
+
|
|
2261
|
+
inline static iterator unconst_iterator(const_iterator i)
|
|
2262
|
+
{
|
|
2263
|
+
return boost::intrusive::pointer_traits<pointer>::const_cast_from(i);
|
|
2264
|
+
}
|
|
2265
|
+
|
|
2266
|
+
inline size_type front_capacity() const
|
|
2267
|
+
{
|
|
2268
|
+
return m_.back_idx;
|
|
2269
|
+
}
|
|
2270
|
+
|
|
2271
|
+
inline size_type back_capacity() const
|
|
2272
|
+
{
|
|
2273
|
+
return size_type(m_.capacity - m_.front_idx);
|
|
2274
|
+
}
|
|
2275
|
+
|
|
2020
2276
|
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
2021
2277
|
|
|
2022
|
-
|
|
2023
|
-
{
|
|
2278
|
+
inline T* priv_raw_begin() BOOST_NOEXCEPT
|
|
2279
|
+
{ return boost::movelib::to_raw_pointer(m_.buffer) + m_.front_idx; }
|
|
2024
2280
|
|
|
2025
|
-
|
|
2026
|
-
{
|
|
2281
|
+
inline T* priv_raw_end() BOOST_NOEXCEPT
|
|
2282
|
+
{ return boost::movelib::to_raw_pointer(m_.buffer) + m_.back_idx; }
|
|
2027
2283
|
|
|
2028
2284
|
|
|
2029
2285
|
template <class U>
|
|
2030
|
-
|
|
2286
|
+
inline void priv_push_front(BOOST_FWD_REF(U) u)
|
|
2031
2287
|
{
|
|
2032
2288
|
this->emplace_front(boost::forward<U>(u));
|
|
2033
2289
|
}
|
|
2034
2290
|
|
|
2035
2291
|
template <class U>
|
|
2036
|
-
|
|
2292
|
+
inline void priv_push_back(BOOST_FWD_REF(U) u)
|
|
2037
2293
|
{
|
|
2038
2294
|
this->emplace_back(boost::forward<U>(u));
|
|
2039
2295
|
}
|
|
2040
2296
|
|
|
2041
2297
|
template <class U>
|
|
2042
|
-
|
|
2298
|
+
inline iterator priv_insert(const_iterator pos, BOOST_FWD_REF(U) u)
|
|
2043
2299
|
{
|
|
2044
2300
|
return this->emplace(pos, boost::forward<U>(u));
|
|
2045
2301
|
}
|
|
2046
2302
|
|
|
2047
2303
|
// allocator_type wrappers
|
|
2048
2304
|
|
|
2049
|
-
|
|
2305
|
+
inline allocator_type& get_allocator_ref() BOOST_NOEXCEPT
|
|
2050
2306
|
{
|
|
2051
2307
|
return static_cast<allocator_type&>(m_);
|
|
2052
2308
|
}
|
|
2053
2309
|
|
|
2054
|
-
|
|
2310
|
+
inline const allocator_type& get_allocator_ref() const BOOST_NOEXCEPT
|
|
2055
2311
|
{
|
|
2056
2312
|
return static_cast<const allocator_type&>(m_);
|
|
2057
2313
|
}
|
|
2058
2314
|
|
|
2059
|
-
pointer allocate(size_type
|
|
2315
|
+
pointer allocate(size_type cap)
|
|
2060
2316
|
{
|
|
2061
|
-
|
|
2062
|
-
if (capacity > stored_size_type(-1)){
|
|
2063
|
-
boost::container::throw_length_error("get_next_capacity, allocator's max size reached");
|
|
2064
|
-
}
|
|
2065
|
-
//(clamp_by_stored_size_type<size_type>)(prefer_in_recvd_out_size, stored_size_type());
|
|
2317
|
+
pointer const p = impl::do_allocate(get_allocator_ref(), cap);
|
|
2066
2318
|
#ifdef BOOST_CONTAINER_DEVECTOR_ALLOC_STATS
|
|
2067
2319
|
++m_.capacity_alloc_count;
|
|
2068
2320
|
#endif // BOOST_CONTAINER_DEVECTOR_ALLOC_STATS
|
|
2069
|
-
return
|
|
2321
|
+
return p;
|
|
2070
2322
|
}
|
|
2071
2323
|
|
|
2072
|
-
void destroy_elements(pointer
|
|
2324
|
+
void destroy_elements(pointer b, pointer e)
|
|
2073
2325
|
{
|
|
2074
|
-
for (;
|
|
2326
|
+
for (; b != e; ++b)
|
|
2075
2327
|
{
|
|
2076
|
-
allocator_traits_type::destroy(get_allocator_ref(),
|
|
2328
|
+
allocator_traits_type::destroy(get_allocator_ref(), boost::movelib::to_raw_pointer(b));
|
|
2077
2329
|
}
|
|
2078
2330
|
}
|
|
2079
2331
|
|
|
@@ -2081,18 +2333,18 @@ class devector
|
|
|
2081
2333
|
{
|
|
2082
2334
|
if (m_.buffer)
|
|
2083
2335
|
{
|
|
2084
|
-
|
|
2336
|
+
allocator_traits_type::deallocate(get_allocator_ref(), m_.buffer, m_.capacity);
|
|
2085
2337
|
}
|
|
2086
2338
|
}
|
|
2087
2339
|
|
|
2088
2340
|
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
2089
2341
|
template <typename... Args>
|
|
2090
|
-
|
|
2342
|
+
inline void alloc_construct(pointer dst, Args&&... args)
|
|
2091
2343
|
{
|
|
2092
2344
|
allocator_traits_type::construct(
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
|
|
2345
|
+
get_allocator_ref(),
|
|
2346
|
+
boost::movelib::to_raw_pointer(dst),
|
|
2347
|
+
boost::forward<Args>(args)...
|
|
2096
2348
|
);
|
|
2097
2349
|
}
|
|
2098
2350
|
|
|
@@ -2117,10 +2369,10 @@ class devector
|
|
|
2117
2369
|
|
|
2118
2370
|
#define BOOST_CONTAINER_DEVECTOR_ALLOC_CONSTRUCT(N) \
|
|
2119
2371
|
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
|
|
2120
|
-
|
|
2372
|
+
inline void alloc_construct(pointer dst BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
2121
2373
|
{\
|
|
2122
2374
|
allocator_traits_type::construct(\
|
|
2123
|
-
|
|
2375
|
+
get_allocator_ref(), boost::movelib::to_raw_pointer(dst) BOOST_MOVE_I##N BOOST_MOVE_FWD##N );\
|
|
2124
2376
|
}\
|
|
2125
2377
|
\
|
|
2126
2378
|
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
|
|
@@ -2135,25 +2387,15 @@ class devector
|
|
|
2135
2387
|
void guarded_construct_n(pointer buffer, size_type n, detail::construction_guard<allocator_type>& ctr_guard BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
2136
2388
|
{\
|
|
2137
2389
|
for (size_type i = 0; i < n; ++i) {\
|
|
2138
|
-
|
|
2139
|
-
|
|
2390
|
+
this->alloc_construct(buffer + i BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
|
2391
|
+
ctr_guard.extend();\
|
|
2140
2392
|
}\
|
|
2141
2393
|
}
|
|
2142
2394
|
//
|
|
2143
2395
|
BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_DEVECTOR_ALLOC_CONSTRUCT)
|
|
2144
2396
|
#undef BOOST_CONTAINER_DEVECTOR_ALLOC_CONSTRUCT
|
|
2145
2397
|
|
|
2146
|
-
#endif
|
|
2147
|
-
|
|
2148
|
-
BOOST_CONTAINER_FORCEINLINE size_type front_capacity() const
|
|
2149
|
-
{
|
|
2150
|
-
return m_.back_idx;
|
|
2151
|
-
}
|
|
2152
|
-
|
|
2153
|
-
BOOST_CONTAINER_FORCEINLINE size_type back_capacity() const
|
|
2154
|
-
{
|
|
2155
|
-
return m_.capacity - m_.front_idx;
|
|
2156
|
-
}
|
|
2398
|
+
#endif //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
2157
2399
|
|
|
2158
2400
|
size_type calculate_new_capacity(size_type requested_capacity)
|
|
2159
2401
|
{
|
|
@@ -2162,7 +2404,7 @@ class devector
|
|
|
2162
2404
|
const size_type remaining_additional_cap = max - size_type(m_.capacity);
|
|
2163
2405
|
const size_type min_additional_cap = requested_capacity - size_type(m_.capacity);
|
|
2164
2406
|
if ( remaining_additional_cap < min_additional_cap )
|
|
2165
|
-
|
|
2407
|
+
boost::container::throw_length_error("devector: get_next_capacity, max size exceeded");
|
|
2166
2408
|
|
|
2167
2409
|
return growth_factor_type()( size_type(m_.capacity), min_additional_cap, max);
|
|
2168
2410
|
}
|
|
@@ -2184,73 +2426,60 @@ class devector
|
|
|
2184
2426
|
deallocate_buffer();
|
|
2185
2427
|
}
|
|
2186
2428
|
|
|
2187
|
-
void opt_move_or_copy(pointer begin, pointer end, pointer dst)
|
|
2188
|
-
{
|
|
2189
|
-
typedef typename dtl::if_c
|
|
2190
|
-
< boost::move_detail::is_nothrow_copy_constructible<T>::value || boost::is_nothrow_move_constructible<T>::value
|
|
2191
|
-
, detail::null_construction_guard
|
|
2192
|
-
, detail::construction_guard<allocator_type>
|
|
2193
|
-
>::type guard_t;
|
|
2194
|
-
|
|
2195
|
-
guard_t guard(dst, get_allocator_ref());
|
|
2196
|
-
|
|
2197
|
-
opt_move_or_copy(begin, end, dst, guard);
|
|
2198
|
-
|
|
2199
|
-
guard.release();
|
|
2200
|
-
}
|
|
2201
|
-
|
|
2202
2429
|
template <typename Guard>
|
|
2203
|
-
void opt_move_or_copy(pointer
|
|
2430
|
+
void opt_move_or_copy(pointer b, pointer e, pointer dst, Guard& guard)
|
|
2204
2431
|
{
|
|
2205
2432
|
// if trivial copy and default allocator, memcpy
|
|
2206
|
-
boost::container::uninitialized_move_alloc(get_allocator_ref(),
|
|
2433
|
+
boost::container::uninitialized_move_alloc(get_allocator_ref(), b, e, dst);
|
|
2207
2434
|
guard.extend();
|
|
2208
2435
|
}
|
|
2209
2436
|
|
|
2210
|
-
|
|
2211
|
-
void opt_copy(Iterator begin, Iterator end, pointer dst)
|
|
2212
|
-
{
|
|
2213
|
-
typedef typename dtl::if_c
|
|
2214
|
-
< boost::move_detail::is_nothrow_copy_constructible<T>::value
|
|
2215
|
-
, detail::null_construction_guard
|
|
2216
|
-
, detail::construction_guard<allocator_type>
|
|
2217
|
-
>::type guard_t;
|
|
2218
|
-
|
|
2219
|
-
guard_t guard(dst, get_allocator_ref());
|
|
2220
|
-
|
|
2221
|
-
opt_copy(begin, end, dst, guard);
|
|
2222
|
-
|
|
2223
|
-
guard.release();
|
|
2224
|
-
}
|
|
2437
|
+
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
2225
2438
|
|
|
2226
|
-
template <typename
|
|
2227
|
-
void
|
|
2439
|
+
template <typename... Args>
|
|
2440
|
+
void resize_impl(size_type sz, Args&&... args)
|
|
2228
2441
|
{
|
|
2229
|
-
|
|
2442
|
+
const size_type old_sz = this->size();
|
|
2443
|
+
if (sz > old_sz)
|
|
2230
2444
|
{
|
|
2231
|
-
|
|
2232
|
-
guard.extend();
|
|
2233
|
-
}
|
|
2234
|
-
}
|
|
2445
|
+
const size_type n = sz - old_sz;
|
|
2235
2446
|
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2447
|
+
if (sz <= m_.capacity)
|
|
2448
|
+
{
|
|
2449
|
+
//Construct at back
|
|
2450
|
+
const size_type bfc = this->back_free_capacity();
|
|
2451
|
+
const size_type b = n < bfc ? n : bfc;
|
|
2452
|
+
construct_n(m_.buffer + m_.back_idx, b, boost::forward<Args>(args)...);
|
|
2453
|
+
m_.set_back_idx(m_.back_idx + b);
|
|
2454
|
+
|
|
2455
|
+
//Construct remaining at front
|
|
2456
|
+
const size_type f = n - b;
|
|
2457
|
+
construct_n(m_.buffer + m_.front_idx - f, f, boost::forward<Args>(args)...);
|
|
2458
|
+
m_.set_front_idx(m_.front_idx - f);
|
|
2459
|
+
}
|
|
2460
|
+
else
|
|
2461
|
+
{
|
|
2462
|
+
resize_back_slow_path(sz, n, boost::forward<Args>(args)...);
|
|
2463
|
+
}
|
|
2464
|
+
}
|
|
2465
|
+
else
|
|
2466
|
+
{
|
|
2467
|
+
const size_type n = old_sz - sz;
|
|
2468
|
+
const size_type new_bidx = m_.back_idx - n;
|
|
2469
|
+
destroy_elements(m_.buffer + new_bidx, m_.buffer + m_.back_idx);
|
|
2470
|
+
m_.set_back_idx(new_bidx);
|
|
2471
|
+
}
|
|
2242
2472
|
}
|
|
2243
2473
|
|
|
2244
|
-
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
2245
|
-
|
|
2246
2474
|
template <typename... Args>
|
|
2247
2475
|
void resize_front_impl(size_type sz , Args&&... args)
|
|
2248
2476
|
{
|
|
2249
|
-
|
|
2477
|
+
const size_type old_sz = this->size();
|
|
2478
|
+
if (sz > old_sz)
|
|
2250
2479
|
{
|
|
2251
|
-
const size_type n = sz -
|
|
2480
|
+
const size_type n = sz - old_sz;
|
|
2252
2481
|
|
|
2253
|
-
if (sz <= front_capacity())
|
|
2482
|
+
if (sz <= this->front_capacity())
|
|
2254
2483
|
{
|
|
2255
2484
|
construct_n(m_.buffer + m_.front_idx - n, n, boost::forward<Args>(args)...);
|
|
2256
2485
|
m_.set_front_idx(m_.front_idx - n);
|
|
@@ -2261,10 +2490,10 @@ class devector
|
|
|
2261
2490
|
}
|
|
2262
2491
|
}
|
|
2263
2492
|
else {
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
|
|
2267
|
-
|
|
2493
|
+
const size_type n = old_sz - sz;
|
|
2494
|
+
const size_type new_fidx = m_.front_idx + n;
|
|
2495
|
+
destroy_elements(m_.buffer + m_.front_idx, m_.buffer + new_fidx);
|
|
2496
|
+
m_.set_front_idx(new_fidx);
|
|
2268
2497
|
}
|
|
2269
2498
|
}
|
|
2270
2499
|
|
|
@@ -2275,7 +2504,8 @@ class devector
|
|
|
2275
2504
|
pointer new_buffer = allocate(new_capacity);
|
|
2276
2505
|
allocation_guard new_buffer_guard(new_buffer, new_capacity, get_allocator_ref());
|
|
2277
2506
|
|
|
2278
|
-
const size_type
|
|
2507
|
+
const size_type old_sz = this->size();
|
|
2508
|
+
const size_type new_old_elem_index = new_capacity - old_sz;
|
|
2279
2509
|
const size_type new_elem_index = new_old_elem_index - n;
|
|
2280
2510
|
|
|
2281
2511
|
detail::construction_guard<allocator_type> guard(new_buffer + new_elem_index, get_allocator_ref());
|
|
@@ -2288,18 +2518,19 @@ class devector
|
|
|
2288
2518
|
|
|
2289
2519
|
m_.buffer = new_buffer;
|
|
2290
2520
|
m_.set_capacity(new_capacity);
|
|
2291
|
-
m_.set_back_idx(new_old_elem_index + m_.back_idx - m_.front_idx);
|
|
2292
2521
|
m_.set_front_idx(new_elem_index);
|
|
2522
|
+
m_.set_back_idx(new_elem_index + old_sz + n);
|
|
2293
2523
|
}
|
|
2294
2524
|
|
|
2295
2525
|
template <typename... Args>
|
|
2296
2526
|
void resize_back_impl(size_type sz, Args&&... args)
|
|
2297
2527
|
{
|
|
2298
|
-
|
|
2528
|
+
const size_type old_sz = this->size();
|
|
2529
|
+
if (sz > old_sz)
|
|
2299
2530
|
{
|
|
2300
|
-
const size_type n = sz -
|
|
2531
|
+
const size_type n = sz - old_sz;
|
|
2301
2532
|
|
|
2302
|
-
if (sz <= back_capacity())
|
|
2533
|
+
if (sz <= this->back_capacity())
|
|
2303
2534
|
{
|
|
2304
2535
|
construct_n(m_.buffer + m_.back_idx, n, boost::forward<Args>(args)...);
|
|
2305
2536
|
m_.set_back_idx(m_.back_idx + n);
|
|
@@ -2311,10 +2542,10 @@ class devector
|
|
|
2311
2542
|
}
|
|
2312
2543
|
else
|
|
2313
2544
|
{
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2545
|
+
const size_type n = old_sz - sz;
|
|
2546
|
+
const size_type new_bidx = m_.back_idx - n;
|
|
2547
|
+
destroy_elements(m_.buffer + new_bidx, m_.buffer + m_.back_idx);
|
|
2548
|
+
m_.set_back_idx(new_bidx);
|
|
2318
2549
|
}
|
|
2319
2550
|
}
|
|
2320
2551
|
|
|
@@ -2338,111 +2569,6 @@ class devector
|
|
|
2338
2569
|
m_.set_back_idx(m_.back_idx + n);
|
|
2339
2570
|
}
|
|
2340
2571
|
|
|
2341
|
-
template <typename... Args>
|
|
2342
|
-
iterator emplace_slow_path(size_type new_elem_index, Args&&... args)
|
|
2343
|
-
{
|
|
2344
|
-
pointer position = begin() + new_elem_index;
|
|
2345
|
-
|
|
2346
|
-
// prefer moving front to access memory forward if there are less elems to move
|
|
2347
|
-
bool prefer_move_front = new_elem_index <= size()/2;
|
|
2348
|
-
|
|
2349
|
-
if (front_free_capacity() && (!back_free_capacity() || prefer_move_front))
|
|
2350
|
-
{
|
|
2351
|
-
BOOST_ASSERT(size() >= 1);
|
|
2352
|
-
|
|
2353
|
-
// move things closer to the front a bit
|
|
2354
|
-
|
|
2355
|
-
// avoid invalidating any reference in args later
|
|
2356
|
-
T tmp(boost::forward<Args>(args)...);
|
|
2357
|
-
|
|
2358
|
-
// construct at front - 1 from front (no guard)
|
|
2359
|
-
this->alloc_construct(begin() - 1, boost::move(*begin()));
|
|
2360
|
-
|
|
2361
|
-
// move front half left
|
|
2362
|
-
boost::move(begin() + 1, position, begin());
|
|
2363
|
-
--m_.front_idx;
|
|
2364
|
-
|
|
2365
|
-
// move assign new elem before pos
|
|
2366
|
-
--position;
|
|
2367
|
-
*position = boost::move(tmp);
|
|
2368
|
-
|
|
2369
|
-
return position;
|
|
2370
|
-
}
|
|
2371
|
-
else if (back_free_capacity()) {
|
|
2372
|
-
BOOST_ASSERT(size() >= 1);
|
|
2373
|
-
|
|
2374
|
-
// move things closer to the end a bit
|
|
2375
|
-
|
|
2376
|
-
// avoid invalidating any reference in args later
|
|
2377
|
-
T tmp(boost::forward<Args>(args)...);
|
|
2378
|
-
|
|
2379
|
-
// construct at back + 1 from back (no guard)
|
|
2380
|
-
this->alloc_construct(end(), boost::move(back()));
|
|
2381
|
-
|
|
2382
|
-
// move back half right
|
|
2383
|
-
boost::container::move_backward(position, end() - 1, end());
|
|
2384
|
-
++m_.back_idx;
|
|
2385
|
-
|
|
2386
|
-
// move assign new elem to pos
|
|
2387
|
-
*position = boost::move(tmp);
|
|
2388
|
-
|
|
2389
|
-
return position;
|
|
2390
|
-
}
|
|
2391
|
-
else
|
|
2392
|
-
{
|
|
2393
|
-
return emplace_reallocating_slow_path(prefer_move_front, new_elem_index, boost::forward<Args>(args)...);
|
|
2394
|
-
}
|
|
2395
|
-
}
|
|
2396
|
-
|
|
2397
|
-
template <typename... Args>
|
|
2398
|
-
pointer emplace_reallocating_slow_path(bool make_front_free, size_type new_elem_index, Args&&... args)
|
|
2399
|
-
{
|
|
2400
|
-
// reallocate
|
|
2401
|
-
size_type new_capacity = calculate_new_capacity(capacity() + 1);
|
|
2402
|
-
pointer new_buffer = allocate(new_capacity);
|
|
2403
|
-
|
|
2404
|
-
// guard allocation
|
|
2405
|
-
allocation_guard new_buffer_guard(new_buffer, new_capacity, get_allocator_ref());
|
|
2406
|
-
|
|
2407
|
-
size_type new_front_index = (make_front_free)
|
|
2408
|
-
? new_capacity - back_free_capacity() - size() - 1
|
|
2409
|
-
: m_.front_idx;
|
|
2410
|
-
|
|
2411
|
-
iterator new_begin = new_buffer + new_front_index;
|
|
2412
|
-
iterator new_position = new_begin + new_elem_index;
|
|
2413
|
-
iterator old_position = begin() + new_elem_index;
|
|
2414
|
-
|
|
2415
|
-
// construct new element (and guard it)
|
|
2416
|
-
this->alloc_construct(new_position, boost::forward<Args>(args)...);
|
|
2417
|
-
|
|
2418
|
-
detail::construction_guard<allocator_type> second_half_guard(new_position, get_allocator_ref());
|
|
2419
|
-
second_half_guard.extend();
|
|
2420
|
-
|
|
2421
|
-
// move front-pos (possibly guarded)
|
|
2422
|
-
detail::construction_guard<allocator_type> first_half_guard(new_begin, get_allocator_ref());
|
|
2423
|
-
opt_move_or_copy(begin(), old_position, new_begin, first_half_guard);
|
|
2424
|
-
|
|
2425
|
-
// move pos+1-end (possibly guarded)
|
|
2426
|
-
opt_move_or_copy(old_position, end(), new_position + 1, second_half_guard);
|
|
2427
|
-
|
|
2428
|
-
// cleanup
|
|
2429
|
-
destroy_elements(begin(), end());
|
|
2430
|
-
deallocate_buffer();
|
|
2431
|
-
|
|
2432
|
-
// release alloc and other guards
|
|
2433
|
-
second_half_guard.release();
|
|
2434
|
-
first_half_guard.release();
|
|
2435
|
-
new_buffer_guard.release();
|
|
2436
|
-
|
|
2437
|
-
// rebind members
|
|
2438
|
-
m_.set_capacity(new_capacity);
|
|
2439
|
-
m_.buffer = new_buffer;
|
|
2440
|
-
m_.set_back_idx(new_front_index + size() + 1);
|
|
2441
|
-
m_.set_front_idx(new_front_index);
|
|
2442
|
-
|
|
2443
|
-
return new_position;
|
|
2444
|
-
}
|
|
2445
|
-
|
|
2446
2572
|
#else //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
2447
2573
|
|
|
2448
2574
|
#define BOOST_CONTAINER_DEVECTOR_SLOW_PATH(N) \
|
|
@@ -2538,140 +2664,27 @@ class devector
|
|
|
2538
2664
|
m_.set_back_idx(m_.back_idx + n);\
|
|
2539
2665
|
}\
|
|
2540
2666
|
\
|
|
2541
|
-
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
|
|
2542
|
-
iterator emplace_slow_path(size_type new_elem_index BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
2543
|
-
{\
|
|
2544
|
-
pointer position = begin() + new_elem_index;\
|
|
2545
|
-
\
|
|
2546
|
-
bool prefer_move_front = new_elem_index <= size()/2;\
|
|
2547
|
-
\
|
|
2548
|
-
if (front_free_capacity() && (!back_free_capacity() || prefer_move_front))\
|
|
2549
|
-
{\
|
|
2550
|
-
BOOST_ASSERT(size() >= 1);\
|
|
2551
|
-
typename dtl::aligned_storage<sizeof(T), dtl::alignment_of<T>::value>::type v;\
|
|
2552
|
-
T *vp = reinterpret_cast<T *>(v.data);\
|
|
2553
|
-
allocator_traits_type::construct(get_stored_allocator(), vp BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
|
2554
|
-
T &tmp = *vp;\
|
|
2555
|
-
dtl::value_destructor<allocator_type> on_exit(get_stored_allocator(), tmp); (void)on_exit;\
|
|
2556
|
-
\
|
|
2557
|
-
this->alloc_construct(begin() - 1, boost::move(*begin()));\
|
|
2558
|
-
boost::move(begin() + 1, position, begin());\
|
|
2559
|
-
--m_.front_idx;\
|
|
2560
|
-
--position;\
|
|
2561
|
-
*position = boost::move(tmp);\
|
|
2562
|
-
return position;\
|
|
2563
|
-
}\
|
|
2564
|
-
else if (back_free_capacity()) {\
|
|
2565
|
-
BOOST_ASSERT(size() >= 1);\
|
|
2566
|
-
typename dtl::aligned_storage<sizeof(T), dtl::alignment_of<T>::value>::type v;\
|
|
2567
|
-
T *vp = reinterpret_cast<T *>(v.data);\
|
|
2568
|
-
allocator_traits_type::construct(get_stored_allocator(), vp BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
|
2569
|
-
T &tmp = *vp;\
|
|
2570
|
-
dtl::value_destructor<allocator_type> on_exit(get_stored_allocator(), tmp); (void)on_exit;\
|
|
2571
|
-
this->alloc_construct(end(), boost::move(back()));\
|
|
2572
|
-
boost::container::move_backward(position, end() - 1, end());\
|
|
2573
|
-
++m_.back_idx;\
|
|
2574
|
-
*position = boost::move(tmp);\
|
|
2575
|
-
return position;\
|
|
2576
|
-
}\
|
|
2577
|
-
else {\
|
|
2578
|
-
return emplace_reallocating_slow_path(prefer_move_front, new_elem_index BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
|
2579
|
-
}\
|
|
2580
|
-
}\
|
|
2581
|
-
\
|
|
2582
|
-
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
|
|
2583
|
-
pointer emplace_reallocating_slow_path(bool make_front_free, size_type new_elem_index BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
|
2584
|
-
{\
|
|
2585
|
-
size_type new_capacity = calculate_new_capacity(capacity() + 1);\
|
|
2586
|
-
pointer new_buffer = allocate(new_capacity);\
|
|
2587
|
-
allocation_guard new_buffer_guard(new_buffer, new_capacity, get_allocator_ref());\
|
|
2588
|
-
size_type new_front_index = (make_front_free)\
|
|
2589
|
-
? new_capacity - back_free_capacity() - size() - 1\
|
|
2590
|
-
: m_.front_idx;\
|
|
2591
|
-
iterator new_begin = new_buffer + new_front_index;\
|
|
2592
|
-
iterator new_position = new_begin + new_elem_index;\
|
|
2593
|
-
iterator old_position = begin() + new_elem_index;\
|
|
2594
|
-
this->alloc_construct(new_position BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
|
2595
|
-
detail::construction_guard<allocator_type> second_half_guard(new_position, get_allocator_ref());\
|
|
2596
|
-
second_half_guard.extend();\
|
|
2597
|
-
detail::construction_guard<allocator_type> first_half_guard(new_begin, get_allocator_ref());\
|
|
2598
|
-
opt_move_or_copy(begin(), old_position, new_begin, first_half_guard);\
|
|
2599
|
-
opt_move_or_copy(old_position, end(), new_position + 1, second_half_guard);\
|
|
2600
|
-
destroy_elements(begin(), end());\
|
|
2601
|
-
deallocate_buffer();\
|
|
2602
|
-
second_half_guard.release();\
|
|
2603
|
-
first_half_guard.release();\
|
|
2604
|
-
new_buffer_guard.release();\
|
|
2605
|
-
m_.set_capacity(new_capacity);\
|
|
2606
|
-
m_.buffer = new_buffer;\
|
|
2607
|
-
m_.set_back_idx(new_front_index + size() + 1);\
|
|
2608
|
-
m_.set_front_idx(new_front_index);\
|
|
2609
|
-
return new_position;\
|
|
2610
|
-
}\
|
|
2611
2667
|
//
|
|
2612
2668
|
BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_DEVECTOR_SLOW_PATH)
|
|
2613
2669
|
#undef BOOST_CONTAINER_DEVECTOR_SLOW_PATH
|
|
2614
2670
|
|
|
2615
|
-
#endif
|
|
2616
|
-
/*
|
|
2617
|
-
void unsafe_uninitialized_grow_front(size_type n)
|
|
2618
|
-
{
|
|
2619
|
-
BOOST_ASSERT(n >= size());
|
|
2620
|
-
|
|
2621
|
-
size_type need = n - size();
|
|
2622
|
-
|
|
2623
|
-
if (need > front_free_capacity())
|
|
2624
|
-
{
|
|
2625
|
-
reallocate_at(n + back_free_capacity(), need);
|
|
2626
|
-
}
|
|
2627
|
-
|
|
2628
|
-
m_.set_front_idx(m_.front_idx - need);
|
|
2629
|
-
}
|
|
2630
|
-
|
|
2631
|
-
void unsafe_uninitialized_shrink_front(size_type n)
|
|
2632
|
-
{
|
|
2633
|
-
BOOST_ASSERT(n <= size());
|
|
2634
|
-
|
|
2635
|
-
size_type doesnt_need = size() - n;
|
|
2636
|
-
m_.set_front_idx(m_.front_idx + doesnt_need);
|
|
2637
|
-
}
|
|
2638
|
-
|
|
2639
|
-
void unsafe_uninitialized_grow_back(size_type n)
|
|
2640
|
-
{
|
|
2641
|
-
BOOST_ASSERT(n >= size());
|
|
2642
|
-
|
|
2643
|
-
size_type need = n - size();
|
|
2644
|
-
|
|
2645
|
-
if (need > back_free_capacity())
|
|
2646
|
-
{
|
|
2647
|
-
reallocate_at(n + front_free_capacity(), front_free_capacity());
|
|
2648
|
-
}
|
|
2649
|
-
|
|
2650
|
-
m_.set_back_idx(m_.back_idx + need);
|
|
2651
|
-
}
|
|
2652
|
-
|
|
2653
|
-
void unsafe_uninitialized_shrink_back(size_type n)
|
|
2654
|
-
{
|
|
2655
|
-
BOOST_ASSERT(n <= size());
|
|
2656
|
-
|
|
2657
|
-
size_type doesnt_need = size() - n;
|
|
2658
|
-
m_.set_back_idx(m_.back_idx - doesnt_need);
|
|
2659
|
-
}
|
|
2660
|
-
*/
|
|
2671
|
+
#endif //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
|
2661
2672
|
|
|
2662
2673
|
void reallocate_at(size_type new_capacity, size_type buffer_offset)
|
|
2663
2674
|
{
|
|
2664
2675
|
pointer new_buffer = allocate(new_capacity);
|
|
2665
|
-
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
|
|
2669
|
-
|
|
2676
|
+
{
|
|
2677
|
+
allocation_guard new_buffer_guard(new_buffer, new_capacity, get_allocator_ref());
|
|
2678
|
+
boost::container::uninitialized_move_alloc(get_allocator_ref(), this->begin(), this->end(), new_buffer + buffer_offset);
|
|
2679
|
+
new_buffer_guard.release();
|
|
2680
|
+
}
|
|
2681
|
+
destroy_elements(m_.buffer + m_.front_idx, m_.buffer + m_.back_idx);
|
|
2682
|
+
deallocate_buffer();
|
|
2670
2683
|
|
|
2671
2684
|
m_.buffer = new_buffer;
|
|
2672
2685
|
//Safe cast, allocate() will handle stored_size_type overflow
|
|
2673
2686
|
m_.set_capacity(new_capacity);
|
|
2674
|
-
m_.set_back_idx(m_.back_idx - m_.front_idx + buffer_offset);
|
|
2687
|
+
m_.set_back_idx(size_type(m_.back_idx - m_.front_idx) + buffer_offset);
|
|
2675
2688
|
m_.set_front_idx(buffer_offset);
|
|
2676
2689
|
|
|
2677
2690
|
BOOST_ASSERT(invariants_ok());
|
|
@@ -2680,167 +2693,137 @@ class devector
|
|
|
2680
2693
|
template <typename ForwardIterator>
|
|
2681
2694
|
iterator insert_range(const_iterator position, ForwardIterator first, ForwardIterator last)
|
|
2682
2695
|
{
|
|
2683
|
-
|
|
2696
|
+
BOOST_ASSERT(position >= begin());
|
|
2697
|
+
BOOST_ASSERT(position <= end());
|
|
2698
|
+
typedef dtl::insert_range_proxy<allocator_type, ForwardIterator> proxy_t;
|
|
2684
2699
|
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
|
|
2689
|
-
return r;
|
|
2700
|
+
size_type const n = boost::container::iterator_udistance(first, last);
|
|
2701
|
+
bool prefer_move_back;
|
|
2702
|
+
if (BOOST_UNLIKELY(!n)) {
|
|
2703
|
+
return begin() + size_type(position - cbegin());
|
|
2690
2704
|
}
|
|
2691
|
-
else if (position ==
|
|
2692
|
-
|
|
2693
|
-
|
|
2694
|
-
|
|
2705
|
+
else if (position == end()) {
|
|
2706
|
+
if(back_free_capacity() >= n) // fast path
|
|
2707
|
+
{
|
|
2708
|
+
iterator r(this->end());
|
|
2709
|
+
boost::container::uninitialized_copy_alloc(get_allocator_ref(), first, last, this->priv_raw_end());
|
|
2710
|
+
m_.set_back_idx(m_.back_idx + n);
|
|
2711
|
+
return r;
|
|
2712
|
+
}
|
|
2713
|
+
prefer_move_back = true;
|
|
2695
2714
|
}
|
|
2696
|
-
else {
|
|
2697
|
-
|
|
2715
|
+
else if (position == begin()) {
|
|
2716
|
+
if(front_free_capacity() >= n) {// secondary fast path
|
|
2717
|
+
boost::container::uninitialized_copy_alloc(get_allocator_ref(), first, last, this->priv_raw_begin() - n);
|
|
2718
|
+
m_.set_front_idx(m_.front_idx - n);
|
|
2719
|
+
return begin();
|
|
2720
|
+
}
|
|
2721
|
+
prefer_move_back = false;
|
|
2698
2722
|
}
|
|
2699
|
-
|
|
2700
|
-
|
|
2701
|
-
|
|
2702
|
-
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
|
|
2709
|
-
|
|
2710
|
-
|
|
2711
|
-
|
|
2712
|
-
|
|
2713
|
-
|
|
2714
|
-
|
|
2723
|
+
else{
|
|
2724
|
+
iterator nonconst_pos = unconst_iterator(position);
|
|
2725
|
+
prefer_move_back = should_move_back(position);
|
|
2726
|
+
|
|
2727
|
+
if(prefer_move_back){
|
|
2728
|
+
if(back_free_capacity() >= n){
|
|
2729
|
+
boost::container::expand_forward_and_insert_nonempty_middle_alloc
|
|
2730
|
+
( get_allocator_ref()
|
|
2731
|
+
, boost::movelib::to_raw_pointer(nonconst_pos)
|
|
2732
|
+
, this->priv_raw_end()
|
|
2733
|
+
, n, proxy_t(first));
|
|
2734
|
+
m_.set_back_idx(m_.back_idx + n);
|
|
2735
|
+
return nonconst_pos;
|
|
2736
|
+
}
|
|
2737
|
+
}
|
|
2738
|
+
else{
|
|
2739
|
+
if (front_free_capacity() >= n){
|
|
2740
|
+
boost::container::expand_backward_and_insert_nonempty_middle_alloc
|
|
2741
|
+
( get_allocator_ref()
|
|
2742
|
+
, this->priv_raw_begin()
|
|
2743
|
+
, boost::movelib::to_raw_pointer(nonconst_pos)
|
|
2744
|
+
, n, proxy_t(first));
|
|
2745
|
+
m_.set_front_idx(m_.front_idx - n);
|
|
2746
|
+
return (nonconst_pos -= n);
|
|
2747
|
+
}
|
|
2715
2748
|
}
|
|
2716
|
-
|
|
2717
|
-
BOOST_ASSERT(first == last);
|
|
2718
|
-
return begin() + index;
|
|
2719
2749
|
}
|
|
2720
|
-
|
|
2721
|
-
|
|
2722
|
-
|
|
2750
|
+
return this->insert_range_slow_path(position, n, proxy_t(first));
|
|
2751
|
+
}
|
|
2752
|
+
|
|
2753
|
+
template <class InsertionProxy>
|
|
2754
|
+
BOOST_CONTAINER_NOINLINE iterator insert_range_slow_path
|
|
2755
|
+
(const_iterator p, const size_type n, const InsertionProxy proxy)
|
|
2756
|
+
{
|
|
2757
|
+
size_type const back_free_cap = back_free_capacity();
|
|
2758
|
+
size_type const front_free_cap = front_free_capacity();
|
|
2759
|
+
size_type const free_cap = front_free_cap + back_free_cap;
|
|
2760
|
+
size_type const index = size_type(p - cbegin());
|
|
2761
|
+
|
|
2762
|
+
size_type const cap = m_.capacity;
|
|
2763
|
+
//Test if enough free memory would be left
|
|
2764
|
+
if (free_cap >= n && (free_cap - n) >= cap/devector_min_free_fraction) {
|
|
2765
|
+
size_type const old_size = this->size();
|
|
2766
|
+
T* const raw_pos = const_cast<T*>(boost::movelib::to_raw_pointer(p));
|
|
2767
|
+
size_type const new_size = old_size + n;
|
|
2768
|
+
size_type const new_front_idx = (cap - new_size) / 2u;
|
|
2769
|
+
|
|
2770
|
+
T* const raw_beg = this->priv_raw_begin();
|
|
2771
|
+
T* const new_raw_beg = raw_beg - std::ptrdiff_t(m_.front_idx - new_front_idx);
|
|
2772
|
+
m_.back_idx = 0u;
|
|
2773
|
+
m_.front_idx = 0u;
|
|
2774
|
+
boost::container::expand_backward_forward_and_insert_alloc
|
|
2775
|
+
(raw_beg, old_size, new_raw_beg, raw_pos, n, proxy, get_allocator_ref());
|
|
2776
|
+
m_.set_front_idx(new_front_idx);
|
|
2777
|
+
m_.set_back_idx(new_front_idx + new_size);
|
|
2723
2778
|
}
|
|
2724
|
-
|
|
2725
|
-
|
|
2726
|
-
|
|
2727
|
-
|
|
2728
|
-
{
|
|
2729
|
-
size_type n_front = dtl::min_value(front_free_capacity(), n);
|
|
2730
|
-
iterator new_begin = begin() - n_front;
|
|
2731
|
-
iterator ctr_pos = new_begin;
|
|
2732
|
-
detail::construction_guard<allocator_type> ctr_guard(ctr_pos, get_allocator_ref());
|
|
2733
|
-
|
|
2734
|
-
while (ctr_pos != begin()) {
|
|
2735
|
-
this->alloc_construct(ctr_pos++, *(first++));
|
|
2736
|
-
ctr_guard.extend();
|
|
2737
|
-
}
|
|
2738
|
-
|
|
2739
|
-
boost::movelib::rotate_gcd(new_begin, ctr_pos, position);
|
|
2740
|
-
m_.set_front_idx(m_.front_idx - n_front);
|
|
2779
|
+
else {
|
|
2780
|
+
// reallocate
|
|
2781
|
+
const size_type new_capacity = calculate_new_capacity(m_.capacity + n);
|
|
2782
|
+
pointer new_buffer = allocate(new_capacity);
|
|
2741
2783
|
|
|
2742
|
-
|
|
2784
|
+
// guard allocation
|
|
2785
|
+
allocation_guard new_buffer_guard(new_buffer, new_capacity, get_allocator_ref());
|
|
2743
2786
|
|
|
2744
|
-
|
|
2787
|
+
size_type const old_size = this->size();
|
|
2788
|
+
const size_type new_front_index = (new_capacity - old_size - n) / 2u;
|
|
2745
2789
|
|
|
2746
|
-
|
|
2747
|
-
|
|
2790
|
+
T* const raw_pos = const_cast<T*>(boost::movelib::to_raw_pointer(p));
|
|
2791
|
+
T* const raw_new_start = const_cast<T*>(boost::movelib::to_raw_pointer(new_buffer)) + new_front_index;
|
|
2748
2792
|
|
|
2749
|
-
|
|
2750
|
-
|
|
2751
|
-
|
|
2752
|
-
const size_type n_back = dtl::min_value(back_free_capacity(), n);
|
|
2753
|
-
iterator ctr_pos = end();
|
|
2793
|
+
boost::container::uninitialized_move_and_insert_alloc
|
|
2794
|
+
(get_allocator_ref(), this->priv_raw_begin(), raw_pos, this->priv_raw_end(), raw_new_start, n, proxy);
|
|
2795
|
+
new_buffer_guard.release();
|
|
2754
2796
|
|
|
2755
|
-
|
|
2797
|
+
// cleanup
|
|
2798
|
+
destroy_elements(begin(), end());
|
|
2799
|
+
deallocate_buffer();
|
|
2756
2800
|
|
|
2757
|
-
|
|
2758
|
-
|
|
2759
|
-
|
|
2801
|
+
// rebind members
|
|
2802
|
+
m_.set_capacity(new_capacity);
|
|
2803
|
+
m_.buffer = new_buffer;
|
|
2804
|
+
m_.set_back_idx(new_front_index + old_size + n);
|
|
2805
|
+
m_.set_front_idx(new_front_index);
|
|
2760
2806
|
}
|
|
2761
|
-
|
|
2762
|
-
boost::movelib::rotate_gcd(position, end(), ctr_pos);
|
|
2763
|
-
m_.set_back_idx(m_.back_idx + n_back);
|
|
2764
|
-
|
|
2765
|
-
ctr_guard.release();
|
|
2766
|
-
|
|
2767
|
-
BOOST_ASSERT(invariants_ok());
|
|
2768
|
-
|
|
2769
|
-
return n_back;
|
|
2807
|
+
return begin() + index;
|
|
2770
2808
|
}
|
|
2771
2809
|
|
|
2772
|
-
template <typename Iterator>
|
|
2773
|
-
iterator insert_range_reallocating_slow_path
|
|
2774
|
-
(bool make_front_free, size_type new_elem_index, Iterator elems, size_type n)
|
|
2775
|
-
{
|
|
2776
|
-
// reallocate
|
|
2777
|
-
const size_type new_capacity = calculate_new_capacity(capacity() + n);
|
|
2778
|
-
pointer new_buffer = allocate(new_capacity);
|
|
2779
|
-
|
|
2780
|
-
// guard allocation
|
|
2781
|
-
allocation_guard new_buffer_guard(new_buffer, new_capacity, get_allocator_ref());
|
|
2782
|
-
|
|
2783
|
-
const size_type new_front_index = (make_front_free)
|
|
2784
|
-
? new_capacity - back_free_capacity() - size() - n
|
|
2785
|
-
: m_.front_idx;
|
|
2786
|
-
|
|
2787
|
-
const iterator new_begin = new_buffer + new_front_index;
|
|
2788
|
-
const iterator new_position = new_begin + new_elem_index;
|
|
2789
|
-
const iterator old_position = begin() + new_elem_index;
|
|
2790
|
-
|
|
2791
|
-
// construct new element (and guard it)
|
|
2792
|
-
iterator second_half_position = new_position;
|
|
2793
|
-
detail::construction_guard<allocator_type> second_half_guard(second_half_position, get_allocator_ref());
|
|
2794
|
-
|
|
2795
|
-
for (size_type i = 0; i < n; ++i) {
|
|
2796
|
-
this->alloc_construct(second_half_position++, *(elems++));
|
|
2797
|
-
second_half_guard.extend();
|
|
2798
|
-
}
|
|
2799
|
-
|
|
2800
|
-
// move front-pos (possibly guarded)
|
|
2801
|
-
detail::construction_guard<allocator_type> first_half_guard(new_begin, get_allocator_ref());
|
|
2802
|
-
opt_move_or_copy(begin(), old_position, new_begin, first_half_guard);
|
|
2803
|
-
|
|
2804
|
-
// move pos+1-end (possibly guarded)
|
|
2805
|
-
opt_move_or_copy(old_position, end(), second_half_position, second_half_guard);
|
|
2806
|
-
|
|
2807
|
-
// cleanup
|
|
2808
|
-
destroy_elements(begin(), end());
|
|
2809
|
-
deallocate_buffer();
|
|
2810
|
-
|
|
2811
|
-
// release alloc and other guards
|
|
2812
|
-
second_half_guard.release();
|
|
2813
|
-
first_half_guard.release();
|
|
2814
|
-
new_buffer_guard.release();
|
|
2815
|
-
|
|
2816
|
-
// rebind members
|
|
2817
|
-
m_.set_capacity(new_capacity);
|
|
2818
|
-
m_.buffer = new_buffer;
|
|
2819
|
-
m_.set_back_idx(new_front_index + size() + n);
|
|
2820
|
-
m_.set_front_idx(new_front_index);
|
|
2821
|
-
|
|
2822
|
-
return new_position;
|
|
2823
|
-
}
|
|
2824
2810
|
|
|
2825
2811
|
template <typename Iterator>
|
|
2826
|
-
void construct_from_range(Iterator
|
|
2812
|
+
void construct_from_range(Iterator b, Iterator e)
|
|
2827
2813
|
{
|
|
2828
2814
|
allocation_guard buffer_guard(m_.buffer, m_.capacity, get_allocator_ref());
|
|
2829
|
-
|
|
2830
|
-
|
|
2815
|
+
boost::container::uninitialized_copy_alloc(get_allocator_ref(), b, e, m_.buffer);
|
|
2831
2816
|
buffer_guard.release();
|
|
2832
2817
|
}
|
|
2833
2818
|
|
|
2834
2819
|
template <typename ForwardIterator>
|
|
2835
2820
|
void allocate_and_copy_range(ForwardIterator first, ForwardIterator last)
|
|
2836
2821
|
{
|
|
2837
|
-
size_type n = boost::container::
|
|
2822
|
+
size_type n = boost::container::iterator_udistance(first, last);
|
|
2838
2823
|
|
|
2839
2824
|
pointer new_buffer = n ? allocate(n) : pointer();
|
|
2840
2825
|
allocation_guard new_buffer_guard(new_buffer, n, get_allocator_ref());
|
|
2841
|
-
|
|
2842
|
-
opt_copy(first, last, new_buffer);
|
|
2843
|
-
|
|
2826
|
+
boost::container::uninitialized_copy_alloc(get_allocator_ref(), first, last, new_buffer);
|
|
2844
2827
|
destroy_elements(begin(), end());
|
|
2845
2828
|
deallocate_buffer();
|
|
2846
2829
|
|
|
@@ -2861,12 +2844,12 @@ class devector
|
|
|
2861
2844
|
template <typename ForwardIterator>
|
|
2862
2845
|
void overwrite_buffer_impl(ForwardIterator first, ForwardIterator last, dtl::true_)
|
|
2863
2846
|
{
|
|
2864
|
-
const size_type n = boost::container::
|
|
2847
|
+
const size_type n = boost::container::iterator_udistance(first, last);
|
|
2865
2848
|
|
|
2866
|
-
BOOST_ASSERT(capacity
|
|
2849
|
+
BOOST_ASSERT(m_.capacity >= n);
|
|
2867
2850
|
boost::container::uninitialized_copy_alloc_n
|
|
2868
|
-
|
|
2869
|
-
|
|
2851
|
+
( get_allocator_ref(), first
|
|
2852
|
+
, n, boost::movelib::to_raw_pointer(m_.buffer));
|
|
2870
2853
|
m_.front_idx = 0;
|
|
2871
2854
|
m_.set_back_idx(n);
|
|
2872
2855
|
}
|
|
@@ -2888,7 +2871,7 @@ class devector
|
|
|
2888
2871
|
|
|
2889
2872
|
detail::construction_guard<allocator_type> back_guard(pos, get_allocator_ref());
|
|
2890
2873
|
|
|
2891
|
-
iterator capacity_end = m_.buffer + capacity
|
|
2874
|
+
iterator capacity_end = m_.buffer + m_.capacity;
|
|
2892
2875
|
while (first != last && pos != capacity_end) {
|
|
2893
2876
|
this->alloc_construct(pos++, *first++);
|
|
2894
2877
|
back_guard.extend();
|
|
@@ -2901,81 +2884,146 @@ class devector
|
|
|
2901
2884
|
back_guard.release();
|
|
2902
2885
|
|
|
2903
2886
|
m_.front_idx = 0;
|
|
2904
|
-
m_.set_back_idx(pos
|
|
2887
|
+
m_.set_back_idx(pos_to_index(pos));
|
|
2905
2888
|
return first;
|
|
2906
2889
|
}
|
|
2907
2890
|
|
|
2908
2891
|
template <typename ForwardIterator>
|
|
2909
|
-
|
|
2892
|
+
inline void overwrite_buffer(ForwardIterator first, ForwardIterator last)
|
|
2910
2893
|
{
|
|
2911
2894
|
this->overwrite_buffer_impl(first, last,
|
|
2912
|
-
|
|
2895
|
+
dtl::bool_<dtl::is_trivially_destructible<T>::value>());
|
|
2913
2896
|
}
|
|
2914
2897
|
|
|
2915
2898
|
bool invariants_ok()
|
|
2916
2899
|
{
|
|
2917
|
-
return
|
|
2918
|
-
|
|
2919
|
-
|
|
2900
|
+
return (! m_.capacity || m_.buffer )
|
|
2901
|
+
&& m_.front_idx <= m_.back_idx
|
|
2902
|
+
&& m_.back_idx <= m_.capacity;
|
|
2920
2903
|
}
|
|
2921
2904
|
|
|
2922
2905
|
struct impl : allocator_type
|
|
2923
2906
|
{
|
|
2907
|
+
BOOST_MOVABLE_BUT_NOT_COPYABLE(impl)
|
|
2908
|
+
|
|
2909
|
+
public:
|
|
2910
|
+
allocator_type &get_al()
|
|
2911
|
+
{ return *this; }
|
|
2912
|
+
|
|
2913
|
+
static pointer do_allocate(allocator_type &a, size_type cap)
|
|
2914
|
+
{
|
|
2915
|
+
if (cap) {
|
|
2916
|
+
//First detect overflow on smaller stored_size_types
|
|
2917
|
+
if (cap > stored_size_type(-1)){
|
|
2918
|
+
boost::container::throw_length_error("get_next_capacity, allocator's max size reached");
|
|
2919
|
+
}
|
|
2920
|
+
return allocator_traits_type::allocate(a, cap);
|
|
2921
|
+
}
|
|
2922
|
+
else {
|
|
2923
|
+
return pointer();
|
|
2924
|
+
}
|
|
2925
|
+
}
|
|
2926
|
+
|
|
2924
2927
|
impl()
|
|
2925
2928
|
: allocator_type(), buffer(), front_idx(), back_idx(), capacity()
|
|
2926
2929
|
#ifdef BOOST_CONTAINER_DEVECTOR_ALLOC_STATS
|
|
2927
|
-
, capacity_alloc_count()
|
|
2930
|
+
, capacity_alloc_count(0)
|
|
2928
2931
|
#endif
|
|
2929
2932
|
{}
|
|
2930
2933
|
|
|
2931
2934
|
explicit impl(const allocator_type &a)
|
|
2932
2935
|
: allocator_type(a), buffer(), front_idx(), back_idx(), capacity()
|
|
2933
2936
|
#ifdef BOOST_CONTAINER_DEVECTOR_ALLOC_STATS
|
|
2934
|
-
, capacity_alloc_count()
|
|
2937
|
+
, capacity_alloc_count(0)
|
|
2935
2938
|
#endif
|
|
2936
2939
|
{}
|
|
2937
2940
|
|
|
2938
|
-
impl(const allocator_type
|
|
2939
|
-
: allocator_type(a), buffer(
|
|
2941
|
+
impl(reserve_uninitialized_t, const allocator_type& a, size_type c)
|
|
2942
|
+
: allocator_type(a), buffer(do_allocate(get_al(), c) )
|
|
2943
|
+
//static cast sizes, as the allocation function will take care of overflows
|
|
2944
|
+
, front_idx(static_cast<stored_size_type>(0u))
|
|
2945
|
+
, back_idx(static_cast<stored_size_type>(c))
|
|
2946
|
+
, capacity(static_cast<stored_size_type>(c))
|
|
2947
|
+
#ifdef BOOST_CONTAINER_DEVECTOR_ALLOC_STATS
|
|
2948
|
+
, capacity_alloc_count(size_type(buffer != pointer()))
|
|
2949
|
+
#endif
|
|
2950
|
+
{}
|
|
2951
|
+
|
|
2952
|
+
impl(reserve_only_tag_t, const allocator_type &a, size_type const ffc, size_type const bfc)
|
|
2953
|
+
: allocator_type(a), buffer(do_allocate(get_al(), ffc+bfc) )
|
|
2954
|
+
//static cast sizes, as the allocation function will take care of overflows
|
|
2955
|
+
, front_idx(static_cast<stored_size_type>(ffc))
|
|
2956
|
+
, back_idx(static_cast<stored_size_type>(ffc))
|
|
2957
|
+
, capacity(static_cast<stored_size_type>(ffc + bfc))
|
|
2958
|
+
#ifdef BOOST_CONTAINER_DEVECTOR_ALLOC_STATS
|
|
2959
|
+
, capacity_alloc_count(size_type(buffer != pointer()))
|
|
2960
|
+
#endif
|
|
2961
|
+
{}
|
|
2962
|
+
|
|
2963
|
+
impl(reserve_only_tag_t, const allocator_type &a, size_type const c)
|
|
2964
|
+
: allocator_type(a), buffer(do_allocate(get_al(), c) )
|
|
2940
2965
|
//static cast sizes, as the allocation function will take care of overflows
|
|
2941
|
-
, front_idx(static_cast<stored_size_type>(
|
|
2942
|
-
, back_idx(static_cast<stored_size_type>(
|
|
2966
|
+
, front_idx(static_cast<stored_size_type>(c/2u))
|
|
2967
|
+
, back_idx(static_cast<stored_size_type>(c/2u))
|
|
2943
2968
|
, capacity(static_cast<stored_size_type>(c))
|
|
2944
2969
|
#ifdef BOOST_CONTAINER_DEVECTOR_ALLOC_STATS
|
|
2945
|
-
, capacity_alloc_count()
|
|
2970
|
+
, capacity_alloc_count(size_type(buffer != pointer()))
|
|
2946
2971
|
#endif
|
|
2947
2972
|
{}
|
|
2948
2973
|
|
|
2949
|
-
impl(
|
|
2950
|
-
: allocator_type(
|
|
2974
|
+
impl(review_implementation_t, const allocator_type &a, pointer p, size_type fi, size_type bi, size_type c)
|
|
2975
|
+
: allocator_type(a), buffer(p)
|
|
2951
2976
|
//static cast sizes, as the allocation function will take care of overflows
|
|
2952
|
-
, front_idx(static_cast<stored_size_type>(
|
|
2953
|
-
, back_idx(static_cast<stored_size_type>(
|
|
2977
|
+
, front_idx(static_cast<stored_size_type>(fi))
|
|
2978
|
+
, back_idx(static_cast<stored_size_type>(bi))
|
|
2954
2979
|
, capacity(static_cast<stored_size_type>(c))
|
|
2955
2980
|
#ifdef BOOST_CONTAINER_DEVECTOR_ALLOC_STATS
|
|
2956
|
-
, capacity_alloc_count()
|
|
2981
|
+
, capacity_alloc_count(0)
|
|
2957
2982
|
#endif
|
|
2958
2983
|
{}
|
|
2959
2984
|
|
|
2960
|
-
|
|
2961
|
-
|
|
2985
|
+
impl(BOOST_RV_REF(impl) m)
|
|
2986
|
+
: allocator_type(BOOST_MOVE_BASE(allocator_type, m))
|
|
2987
|
+
, buffer(static_cast<impl&>(m).buffer)
|
|
2988
|
+
, front_idx(static_cast<impl&>(m).front_idx)
|
|
2989
|
+
, back_idx(static_cast<impl&>(m).back_idx)
|
|
2990
|
+
, capacity(static_cast<impl&>(m).capacity)
|
|
2991
|
+
#ifdef BOOST_CONTAINER_DEVECTOR_ALLOC_STATS
|
|
2992
|
+
, capacity_alloc_count(0)
|
|
2993
|
+
#endif
|
|
2994
|
+
{
|
|
2995
|
+
impl &i = static_cast<impl&>(m);
|
|
2996
|
+
// buffer is already acquired, reset rhs
|
|
2997
|
+
i.capacity = 0u;
|
|
2998
|
+
i.buffer = pointer();
|
|
2999
|
+
i.front_idx = 0;
|
|
3000
|
+
i.back_idx = 0;
|
|
3001
|
+
}
|
|
3002
|
+
|
|
3003
|
+
inline void set_back_idx(size_type bi)
|
|
3004
|
+
{
|
|
3005
|
+
back_idx = static_cast<stored_size_type>(bi);
|
|
3006
|
+
}
|
|
2962
3007
|
|
|
2963
|
-
void set_front_idx(size_type fi)
|
|
2964
|
-
{
|
|
3008
|
+
inline void set_front_idx(size_type fi)
|
|
3009
|
+
{
|
|
3010
|
+
front_idx = static_cast<stored_size_type>(fi);
|
|
3011
|
+
}
|
|
2965
3012
|
|
|
2966
|
-
void set_capacity(size_type c)
|
|
2967
|
-
{
|
|
3013
|
+
inline void set_capacity(size_type c)
|
|
3014
|
+
{
|
|
3015
|
+
capacity = static_cast<stored_size_type>(c);
|
|
3016
|
+
}
|
|
2968
3017
|
|
|
2969
|
-
pointer
|
|
2970
|
-
stored_size_type
|
|
2971
|
-
stored_size_type
|
|
2972
|
-
stored_size_type
|
|
3018
|
+
pointer buffer;
|
|
3019
|
+
stored_size_type front_idx;
|
|
3020
|
+
stored_size_type back_idx;
|
|
3021
|
+
stored_size_type capacity;
|
|
2973
3022
|
#ifdef BOOST_CONTAINER_DEVECTOR_ALLOC_STATS
|
|
2974
3023
|
size_type capacity_alloc_count;
|
|
2975
3024
|
#endif
|
|
2976
3025
|
} m_;
|
|
2977
3026
|
|
|
2978
|
-
|
|
2979
3027
|
#ifdef BOOST_CONTAINER_DEVECTOR_ALLOC_STATS
|
|
2980
3028
|
public:
|
|
2981
3029
|
void reset_alloc_stats()
|
|
@@ -2995,6 +3043,26 @@ class devector
|
|
|
2995
3043
|
|
|
2996
3044
|
}} // namespace boost::container
|
|
2997
3045
|
|
|
3046
|
+
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
3047
|
+
|
|
3048
|
+
namespace boost {
|
|
3049
|
+
|
|
3050
|
+
//!has_trivial_destructor_after_move<> == true_type
|
|
3051
|
+
//!specialization for optimizations
|
|
3052
|
+
template <class T, class Allocator, class Options>
|
|
3053
|
+
struct has_trivial_destructor_after_move<boost::container::devector<T, Allocator, Options> >
|
|
3054
|
+
{
|
|
3055
|
+
typedef typename boost::container::devector<T, Allocator, Options>::allocator_type allocator_type;
|
|
3056
|
+
typedef typename ::boost::container::allocator_traits<allocator_type>::pointer pointer;
|
|
3057
|
+
BOOST_STATIC_CONSTEXPR bool value =
|
|
3058
|
+
::boost::has_trivial_destructor_after_move<allocator_type>::value &&
|
|
3059
|
+
::boost::has_trivial_destructor_after_move<pointer>::value;
|
|
3060
|
+
};
|
|
3061
|
+
|
|
3062
|
+
}
|
|
3063
|
+
|
|
3064
|
+
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
|
3065
|
+
|
|
2998
3066
|
#include <boost/container/detail/config_end.hpp>
|
|
2999
3067
|
|
|
3000
3068
|
#endif // BOOST_CONTAINER_DEVECTOR_HPP
|