passenger 5.0.24 → 5.0.25
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.editorconfig +8 -18
- data/CHANGELOG +20 -0
- data/build/cplusplus_support.rb +3 -3
- data/build/cxx_dependency_map.rb +148 -96
- data/build/cxx_tests.rb +24 -12
- data/build/packaging.rb +1 -2
- data/dev/copy_boost_headers +32 -9
- data/resources/templates/standalone/config.erb +2 -0
- data/resources/templates/standalone/footer.erb +3 -0
- data/resources/templates/standalone/server.erb +7 -0
- data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +2 -2
- data/src/agent/Core/SpawningKit/DirectSpawner.h +3 -0
- data/src/agent/Core/UnionStation/Transaction.h +1 -15
- data/src/agent/README.md +15 -3
- data/src/agent/UstRouter/Controller.h +95 -90
- data/src/agent/UstRouter/FileSink.h +3 -2
- data/src/agent/UstRouter/LogSink.h +5 -6
- data/src/agent/UstRouter/RemoteSender.h +41 -12
- data/src/agent/UstRouter/RemoteSink.h +3 -2
- data/src/agent/UstRouter/Transaction.h +198 -66
- data/src/apache2_module/Configuration.cpp +57 -2
- data/src/apache2_module/Configuration.h +3 -1
- data/src/apache2_module/Configuration.hpp +3 -1
- data/src/apache2_module/Hooks.cpp +4 -2
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/MemoryKit/palloc.h +1 -0
- data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +1 -0
- data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +4 -3
- data/src/cxx_supportlib/ServerKit/Server.h +1 -0
- data/src/cxx_supportlib/Utils/BufferedIO.h +21 -4
- data/src/cxx_supportlib/Utils/IOUtils.cpp +62 -12
- data/src/cxx_supportlib/Utils/StrIntUtils.cpp +3 -3
- data/src/cxx_supportlib/Utils/StrIntUtils.h +2 -2
- data/src/cxx_supportlib/WatchdogLauncher.cpp +13 -1
- data/src/cxx_supportlib/WatchdogLauncher.h +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/classification.hpp +312 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/concept.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/classification.hpp +353 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_format.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_format_all.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_format_store.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_iterator.hpp +87 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/finder.hpp +1 -8
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/finder_regex.hpp +122 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/formatter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/formatter_regex.hpp +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/predicate.hpp +77 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/trim.hpp +95 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/util.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/erase.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/find.hpp +334 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/find_format.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/find_iterator.hpp +388 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/finder.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/formatter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/iter_find.hpp +193 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/join.hpp +145 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/predicate.hpp +475 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/predicate_facade.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/regex.hpp +646 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/regex_find_format.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/replace.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/sequence_traits.hpp +0 -73
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/split.hpp +163 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/std/list_traits.hpp +68 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/std/rope_traits.hpp +81 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/std/slist_traits.hpp +69 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/std/string_traits.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/std_containers_traits.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/trim.hpp +398 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/trim_all.hpp +217 -0
- data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/address.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/align.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/aligned_storage.hpp +1 -164
- data/src/cxx_supportlib/vendor-modified/boost/assert.hpp +33 -84
- data/src/cxx_supportlib/vendor-modified/boost/atomic.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +83 -231
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_flag.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/capabilities.hpp +161 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_template.hpp +774 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_alpha.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_arm.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_atomic.hpp +134 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_ppc.hpp +36 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_sparc.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_sync.hpp +62 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_x86.hpp +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_linux_arm.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_msvc_arm.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_msvc_x86.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +57 -36
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +140 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +297 -16
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/link.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/lockpool.hpp +30 -76
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/operations.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/operations_fwd.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/operations_lockfree.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_cas_based.hpp +105 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_emulated.hpp +161 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_extending_cas_based.hpp +68 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_alpha.hpp +876 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm.hpp +973 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_atomic.hpp +395 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc.hpp +802 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sparc.hpp +240 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sync.hpp +270 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86.hpp +514 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +616 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_linux_arm.hpp +178 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_arm.hpp +824 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_common.hpp +38 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_x86.hpp +928 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +91 -32
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_type.hpp +280 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/fences.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind.hpp +18 -1
- data/src/cxx_supportlib/vendor-modified/boost/bind/apply.hpp +74 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/arg.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +507 -2
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf_cc.hpp +214 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/make_adaptable.hpp +187 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_vw.hpp +130 -0
- data/src/cxx_supportlib/vendor-modified/boost/bind/placeholders.hpp +29 -36
- data/src/cxx_supportlib/vendor-modified/boost/bind/protect.hpp +304 -0
- data/src/cxx_supportlib/vendor-modified/boost/checked_delete.hpp +13 -65
- data/src/cxx_supportlib/vendor-modified/boost/chrono/config.hpp +9 -13
- data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +10 -4
- data/src/cxx_supportlib/vendor-modified/boost/concept/assert.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/concept/detail/concept_def.hpp +0 -17
- data/src/cxx_supportlib/vendor-modified/boost/concept/detail/general.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/concept/usage.hpp +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/concept_check.hpp +25 -26
- data/src/cxx_supportlib/vendor-modified/boost/config.hpp +9 -12
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +17 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +36 -6
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +135 -14
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +41 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +48 -9
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +33 -5
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +36 -16
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +121 -87
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +39 -5
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +13 -9
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +327 -64
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +44 -10
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +38 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +0 -12
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +36 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pgi.hpp +37 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +63 -23
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +44 -13
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +102 -128
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +258 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/cloudabi.hpp +18 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/haiku.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/linux.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/macos.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/solaris.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/select_compiler_config.hpp +43 -7
- data/src/cxx_supportlib/vendor-modified/boost/config/select_platform_config.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/select_stdlib_config.hpp +28 -8
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +58 -15
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcomo.hpp +13 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +129 -14
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/modena.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/msl.hpp +13 -9
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/roguewave.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/sgi.hpp +14 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/stlport.hpp +13 -8
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/vacpp.hpp +13 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/suffix.hpp +159 -85
- data/src/cxx_supportlib/vendor-modified/boost/config/user.hpp +15 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +351 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +371 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +283 -213
- data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +195 -51
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +840 -625
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +166 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +24 -13
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/addressof.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +289 -181
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +314 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocation_type.hpp +11 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +24 -25
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/auto_link.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_list.hpp +139 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_slist.hpp +157 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +74 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +16 -14
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_end.hpp +1 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +62 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +1142 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +61 -48
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +293 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/dlmalloc.hpp +103 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +335 -408
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/function_detector.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/hash_table.hpp +383 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator_to_raw_pointer.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +300 -83
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +13 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/min_max.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/minimal_char_traits_header.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +45 -118
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +22 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +288 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +115 -109
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +157 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +33 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +62 -89
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/placement_new.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common.hpp +11 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +102 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_resource.hpp +191 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/singleton.hpp +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/to_raw_pointer.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/transform_iterator.hpp +17 -13
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +646 -595
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +44 -184
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +7 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +9 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +23 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +50 -15
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +627 -287
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +608 -657
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +395 -376
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +616 -625
- data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +179 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +344 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +80 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/deque.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_map.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_set.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/global_resource.hpp +66 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/list.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/map.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +101 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +180 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +166 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/pool_options.hpp +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +193 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/set.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/slist.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/small_vector.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/stable_vector.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/string.hpp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/synchronized_pool_resource.hpp +138 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/unsynchronized_pool_resource.hpp +194 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/vector.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +423 -1019
- data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator_fwd.hpp +23 -35
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +520 -626
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +416 -407
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +574 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +711 -470
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +314 -145
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +477 -282
- data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +63 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +169 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_fwd.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +1660 -945
- data/src/cxx_supportlib/vendor-modified/boost/core/addressof.hpp +162 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/checked_delete.hpp +69 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp +128 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/enable_if.hpp +128 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/explicit_operator_bool.hpp +154 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/ignore_unused.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/is_same.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +171 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/no_exceptions_support.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/noncopyable.hpp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/null_deleter.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +301 -0
- data/src/cxx_supportlib/vendor-modified/boost/{detail/scoped_enum_emulation.hpp → core/scoped_enum.hpp} +19 -164
- data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/typeinfo.hpp +151 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/underlying_type.hpp +79 -0
- data/src/cxx_supportlib/vendor-modified/boost/cstdint.hpp +132 -95
- data/src/cxx_supportlib/vendor-modified/boost/current_function.hpp +8 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/adjust_functors.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/c_local_time_adjustor.hpp +69 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/c_time.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/constrained_value.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_clock_device.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_defs.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration_types.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_facet.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_format_simple.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_formatting.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_formatting_limited.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_formatting_locales.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_generator_formatter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_generator_parser.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_generators.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_names_put.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_parsing.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/dst_rules.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/dst_transition_generators.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/filetime_functions.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/format_date_parser.hpp +11 -7
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/conversion.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters_limited.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_calendar.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day_of_year.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration_types.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_facet.hpp +352 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_month.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_serialize.hpp +517 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_weekday.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_year.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_ymd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/gregorian.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/gregorian_io.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/gregorian_types.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/parsers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.ipp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/date_time/int_adapter.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/iso_format.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/conversion.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/custom_time_zone.hpp +169 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/date_duration_operators.hpp +115 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/dst_transition_day_rules.hpp +77 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_date_time.hpp +528 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_time.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_time_io.hpp +184 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_time_types.hpp +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/posix_time_zone.hpp +474 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/tz_database.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time_adjustor.hpp +218 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_timezone_defs.hpp +193 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/locale_config.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/microsec_time_clock.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/parse_format_base.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/period.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/period_formatter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/period_parser.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/conversion.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/date_duration_operators.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_config.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_io.hpp +1 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_legacy_io.hpp +153 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_system.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/ptime.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters_limited.hpp +212 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_parsers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_period.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_serialize.hpp +201 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/special_defs.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_formatter.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/string_convert.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/string_parse_tree.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/strings_from_facet.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_clock.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_defs.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_formatting_streams.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_parsing.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_resolution_traits.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_system_counted.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_system_split.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_zone_base.hpp +99 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_zone_names.hpp +98 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/tz_db_base.hpp +396 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/wrapping_int.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/year_month_day.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +139 -0
- data/src/cxx_supportlib/vendor-modified/boost/detail/container_fwd.hpp +1 -6
- data/src/cxx_supportlib/vendor-modified/boost/detail/endian.hpp +3 -118
- data/src/cxx_supportlib/vendor-modified/boost/detail/fenv.hpp +30 -3
- data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +0 -283
- data/src/cxx_supportlib/vendor-modified/boost/detail/iterator.hpp +9 -477
- data/src/cxx_supportlib/vendor-modified/boost/detail/no_exceptions_support.hpp +12 -82
- data/src/cxx_supportlib/vendor-modified/boost/detail/reference_content.hpp +0 -21
- data/src/cxx_supportlib/vendor-modified/boost/detail/sp_typeinfo.hpp +8 -107
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/clone_current_exception.hpp +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +7 -9
- data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/foreach.hpp +11 -12
- data/src/cxx_supportlib/vendor-modified/boost/function/detail/gen_maybe_include.pl +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/function0.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/function1.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/function10.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/function2.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/function3.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/function4.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/function5.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/function6.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/function7.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/function8.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/function9.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +6 -24
- data/src/cxx_supportlib/vendor-modified/boost/function/function_fwd.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +35 -30
- data/src/cxx_supportlib/vendor-modified/boost/function/function_typeof.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/function/gen_function_N.pl +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash/detail/float_functions.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash/detail/hash_float.hpp +22 -28
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash/detail/limits.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash/extensions.hpp +5 -66
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash/hash.hpp +77 -48
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash/hash_fwd.hpp +3 -7
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash_fwd.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/get_pointer.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/integer.hpp +25 -24
- data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_ct.hpp +102 -0
- data/src/cxx_supportlib/vendor-modified/boost/integer_fwd.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/integer_traits.hpp +1 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/any_hook.hpp +47 -55
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +655 -2197
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set_hook.hpp +16 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +376 -1605
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +329 -601
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +982 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set_hook.hpp +17 -27
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +2101 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/{detail/tree_algorithms.hpp → bstree_algorithms.hpp} +973 -684
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +121 -66
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +30 -28
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +22 -15
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algo_type.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algorithm.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +48 -61
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/array_initializer.hpp +95 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/assert.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +19 -24
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +184 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +104 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_end.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +69 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +235 -39
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/empty_node_checker.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/equal_to_value.hpp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/exception_disposer.hpp +88 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/function_detector.hpp +8 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +107 -95
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/get_value_traits.hpp +222 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/has_member_function_callable_with.hpp +279 -296
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +122 -85
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +186 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iiterator.hpp +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/is_stateful_value_traits.hpp +9 -5
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +155 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +99 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +133 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +14 -139
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/math.hpp +295 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/minimal_less_equal_header.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/minimal_pair_header.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +160 -337
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +105 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_holder.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_to_value.hpp +130 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +34 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/pointer_element.hpp +168 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +22 -19
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/reverse_iterator.hpp +144 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/size_holder.hpp +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +124 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +14 -117
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/std_fwd.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/to_raw_pointer.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/transform_iterator.hpp +18 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +171 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +13 -133
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +89 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/uncast.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +22 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +2006 -1615
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/intrusive_fwd.hpp +450 -229
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +17 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/link_mode.hpp +21 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +253 -282
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list_hook.hpp +17 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +21 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/options.hpp +94 -648
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pack_options.hpp +374 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/parent_from_member.hpp +10 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +16 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_rebind.hpp +188 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +97 -44
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +29 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +366 -1592
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +297 -639
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +619 -2187
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set_hook.hpp +16 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +661 -2252
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +468 -1493
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +163 -594
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +326 -307
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist_hook.hpp +16 -21
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +686 -2238
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +425 -1575
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +422 -703
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +440 -1122
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +158 -406
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +558 -2257
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +14 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +476 -1611
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +36 -27
- data/src/cxx_supportlib/vendor-modified/boost/iterator.hpp +3 -42
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_def.hpp +4 -13
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_undef.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/enable_if.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +15 -22
- data/src/cxx_supportlib/vendor-modified/boost/iterator/interoperable.hpp +8 -4
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +59 -64
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_categories.hpp +77 -50
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +13 -22
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +318 -212
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_traits.hpp +17 -49
- data/src/cxx_supportlib/vendor-modified/boost/iterator/{detail/minimum_category.hpp → minimum_category.hpp} +24 -45
- data/src/cxx_supportlib/vendor-modified/boost/iterator/reverse_iterator.hpp +10 -5
- data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +17 -18
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +29 -2649
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +101 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +498 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +787 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +194 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +197 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +294 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +212 -0
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/c_regex_traits.cpp +24 -11
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cpp_regex_traits.cpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cregex.cpp +40 -40
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/posix_api.cpp +14 -17
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex_raw_buffer.cpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex_traits_defaults.cpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/static_mutex.cpp +8 -4
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wc_regex_traits.cpp +24 -11
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +11 -14
- data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +3 -420
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/future.cpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once.cpp +3 -5
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once_atomic.cpp +0 -6
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +173 -77
- data/src/cxx_supportlib/vendor-modified/boost/math/policies/policy.hpp +83 -33
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/fpclassify.hpp +42 -12
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +196 -18
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/sign.hpp +52 -8
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +111 -13
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/promotion.hpp +40 -8
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/real_cast.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/user.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +9 -5
- data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +233 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +10 -3
- data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +223 -54
- data/src/cxx_supportlib/vendor-modified/boost/move/default_delete.hpp +201 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +6 -10
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_end.hpp +2 -10
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/fwd_macros.hpp +661 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +468 -62
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils_core.hpp +120 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +206 -129
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_begin.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_end.hpp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +1078 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +591 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +33 -19
- data/src/cxx_supportlib/vendor-modified/boost/move/make_unique.hpp +237 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/move.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/traits.hpp +30 -95
- data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +871 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/utility.hpp +53 -98
- data/src/cxx_supportlib/vendor-modified/boost/move/utility_core.hpp +317 -0
- data/src/cxx_supportlib/vendor-modified/boost/mpl/O1_size.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/O1_size_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/accumulate.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/advance.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/advance_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/alias.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/always.hpp +6 -7
- data/src/cxx_supportlib/vendor-modified/boost/mpl/and.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/mpl/apply.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/apply_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/apply_wrap.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/arg.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/arg_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/arithmetic.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/as_sequence.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/mpl/at.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/at_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/O1_size_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/adl_barrier.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/advance_backward.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/advance_forward.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/apply_1st.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/arg_typedef.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/arithmetic_op.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/arity.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/arity_spec.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/at_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/back_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/basic_bind.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/begin_end_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/clear_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/common_name_wknd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/comparison_op.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/adl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/arrays.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/bcc.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/bind.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/compiler.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/ctps.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/dependent_nttp.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/dtp.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/eti.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/forwarding.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/gcc.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/gpu.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/has_apply.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/has_xxx.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/integral.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/intel.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/lambda.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/msvc.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/msvc_typename.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/nttp.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/operators.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/overload_resolution.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/pp_counter.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/preprocessor.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/static_constant.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/ttp.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/typeof.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/use_preprocessed.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/config/workaround.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/contains_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/count_args.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/count_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/empty_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/erase_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/erase_key_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/filter_iter.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/fold_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/fold_impl_body.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/fold_op.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/fold_pred.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/front_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/full_lambda.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/has_apply.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/has_begin.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/has_key_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/has_rebind.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/has_size.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/has_tag.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/has_type.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/include_preprocessed.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/insert_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/insert_range_impl.hpp +22 -19
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/inserter_algorithm.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/integral_wrapper.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/is_msvc_eti_arg.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/iter_apply.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/iter_fold_if_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/iter_fold_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/iter_push_front.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/joint_iter.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/lambda_arity_param.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/lambda_no_ctps.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/lambda_spec.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/lambda_support.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/largest_int.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/logical_op.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/msvc_dtw.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/msvc_eti_base.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/msvc_is_class.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/msvc_never_true.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/msvc_type.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/na.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/na_assert.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/na_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/na_spec.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/nested_type_wknd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/nttp_decl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/numeric_cast_utils.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/numeric_op.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/order_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/overload_names.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/partition_op.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/pop_back_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/pop_front_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/add.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/def_params_tail.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/default_params.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/enum.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/ext_params.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/filter_params.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/is_seq.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/params.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/partial_spec_params.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/range.hpp +11 -4
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/repeat.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/sub.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/token_equal.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessor/tuple.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/ptr_to_ref.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/push_back_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/push_front_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/range_c/O1_size.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/range_c/back.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/range_c/empty.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/range_c/front.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/range_c/iterator.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/range_c/size.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/range_c/tag.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/reverse_fold_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/reverse_fold_impl_body.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/reverse_iter_fold_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/sequence_wrapper.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/shift_op.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/single_element_iter.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/size_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/sort_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/static_cast.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/template_arity.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/template_arity_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/test.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/test/assert.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/test/data.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/test/test_case.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/traits_lambda_spec.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/transform_iter.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/type_wrapper.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/unwrap.hpp +7 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/value_wknd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/yes_no.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/back.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/back_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/back_inserter.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/base.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/begin.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/begin_end.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/begin_end_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/bind.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/bind_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/bitand.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/mpl/bitor.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/mpl/bitwise.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/bitxor.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/bool.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/mpl/bool_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/clear.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/clear_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/comparison.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/contains.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/contains_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/copy.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/copy_if.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/count.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/count_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/count_if.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/deque.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/deref.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/distance.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/distance_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/divides.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/empty.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/empty_base.hpp +13 -9
- data/src/cxx_supportlib/vendor-modified/boost/mpl/empty_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/empty_sequence.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/mpl/end.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/equal.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/equal_to.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/erase.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/erase_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/erase_key.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/erase_key_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/eval_if.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/mpl/filter_view.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/find.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/find_if.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/fold.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/for_each.hpp +11 -4
- data/src/cxx_supportlib/vendor-modified/boost/mpl/front.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/front_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/front_inserter.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/greater.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/greater_equal.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/has_key.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/has_key_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/has_xxx.hpp +12 -5
- data/src/cxx_supportlib/vendor-modified/boost/mpl/identity.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/if.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/index_if.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/index_of.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/inherit.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/inherit_linearly.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/insert.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/insert_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/insert_range.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/insert_range_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/inserter.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/int.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/int_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/integral_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/integral_c_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/integral_c_tag.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/is_placeholder.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/is_sequence.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/iter_fold.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/iter_fold_if.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/iterator_category.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/iterator_range.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/iterator_tags.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/joint_view.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/key_type.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/key_type_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/lambda.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/lambda_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/less.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/less_equal.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/limits/arity.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/limits/list.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/limits/map.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/limits/set.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/limits/unrolling.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/limits/vector.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/O1_size.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/begin_end.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/clear.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/empty.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/front.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/include_preprocessed.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/item.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/iterator.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/numbered.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/numbered_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/pop_front.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/push_back.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/push_front.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/size.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/aux_/tag.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list0.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list0_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list10.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list10_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list20.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list20_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list30.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list30_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list40.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list40_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list50.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list/list50_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/list_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/logical.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/long.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/long_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/lower_bound.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/at_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/begin_end_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/clear_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/contains_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/empty_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/erase_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/erase_key_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/has_key_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/include_preprocessed.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/insert_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/insert_range_impl.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/item.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/iterator.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/key_type_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/map0.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/numbered.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/size_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/tag.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/aux_/value_type_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/map0.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/map10.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/map20.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/map30.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/map40.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/map/map50.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/math/fixed_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/math/is_even.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/math/rational_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/max.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/max_element.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/min.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/min_element.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/min_max.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/minus.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/modulus.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/multiplies.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/multiset/aux_/count_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/multiset/aux_/insert_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/multiset/aux_/item.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/multiset/aux_/multiset0.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/multiset/aux_/tag.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/multiset/multiset0.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/negate.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/next.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/next_prior.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/not.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/not_equal_to.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/numeric_cast.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/or.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/mpl/order.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/order_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/pair.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/pair_view.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/partition.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/placeholders.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/plus.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/pop_back.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/pop_back_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/pop_front.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/pop_front_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/print.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/mpl/prior.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/protect.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/push_back.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/push_back_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/push_front.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/push_front_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/quote.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/range_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/remove.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/remove_if.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/replace.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/replace_if.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/reverse.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/reverse_fold.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/reverse_iter_fold.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/same_as.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/sequence_tag.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/sequence_tag_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/at_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/begin_end_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/clear_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/empty_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/erase_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/erase_key_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/has_key_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/include_preprocessed.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/insert_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/insert_range_impl.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/item.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/iterator.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/key_type_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/numbered.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/numbered_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/set0.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/size_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/tag.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/aux_/value_type_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set0.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set0_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set10.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set10_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set20.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set20_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set30.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set30_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set40.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set40_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set50.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set/set50_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/set_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/shift_left.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/shift_right.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/single_view.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/size.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/size_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/size_t.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/size_t_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/sizeof.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/sort.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/stable_partition.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/string.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/mpl/switch.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/tag.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/times.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/transform.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/transform_view.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/unique.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/unpack_args.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/upper_bound.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/value_type.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/value_type_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/O1_size.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/at.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/back.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/begin_end.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/clear.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/empty.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/front.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/include_preprocessed.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/item.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/iterator.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/numbered.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/numbered_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/pop_back.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/pop_front.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/push_back.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/push_front.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/size.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/tag.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/aux_/vector0.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector0.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector0_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector10.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector10_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector20.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector20_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector30.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector30_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector40.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector40_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector50.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector/vector50_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/vector_c.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/void.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/void_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/zip_view.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/next_prior.hpp +118 -4
- data/src/cxx_supportlib/vendor-modified/boost/noncopyable.hpp +12 -43
- data/src/cxx_supportlib/vendor-modified/boost/none.hpp +32 -1
- data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +18 -2
- data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +9 -37
- data/src/cxx_supportlib/vendor-modified/boost/optional/bad_optional_access.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +660 -84
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional_fwd.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional_io.hpp +94 -0
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/arg_list.hpp +4 -27
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/cast.hpp +2 -4
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/parenthesized_type.hpp +0 -84
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/set.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tagged_argument.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/unwrap_cv_reference.hpp +0 -6
- data/src/cxx_supportlib/vendor-modified/boost/parameter/binding.hpp +2 -28
- data/src/cxx_supportlib/vendor-modified/boost/parameter/keyword.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/parameter/name.hpp +5 -15
- data/src/cxx_supportlib/vendor-modified/boost/parameter/preprocessor.hpp +6 -107
- data/src/cxx_supportlib/vendor-modified/boost/parameter/value_type.hpp +2 -28
- data/src/cxx_supportlib/vendor-modified/boost/pool/detail/mutex.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/predef.h +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/alpha.h +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/blackfin.h +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/convex.h +65 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ia64.h +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/m68k.h +82 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/mips.h +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/parisc.h +64 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ppc.h +72 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/pyramid.h +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/rs6k.h +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sparc.h +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/superh.h +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sys370.h +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sys390.h +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/x86.h +38 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/x86/32.h +87 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/x86/64.h +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/z.h +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler.h +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/borland.h +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/clang.h +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/comeau.h +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/compaq.h +66 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/diab.h +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/digitalmars.h +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/dignus.h +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/edg.h +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/ekopath.h +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/gcc.h +68 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/gcc_xml.h +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/greenhills.h +66 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/hp_acc.h +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/iar.h +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/ibm.h +72 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/intel.h +65 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/kai.h +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/llvm.h +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/metaware.h +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/metrowerks.h +77 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/microtec.h +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/mpw.h +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/palm.h +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/pgi.h +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/sgi_mipspro.h +66 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/sunpro.h +76 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/tendra.h +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/visualc.h +91 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/watcom.h +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/detail/_cassert.h +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/detail/_exception.h +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/detail/comp_detected.h +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/detail/endian_compat.h +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/detail/os_detected.h +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/detail/platform_detected.h +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/detail/test.h +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/detail/test_def.h +71 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware.h +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd.h +107 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/arm.h +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/arm/versions.h +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/ppc.h +69 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/ppc/versions.h +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86.h +123 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86/versions.h +129 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd.h +87 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd/versions.h +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/language.h +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/language/objc.h +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/language/stdc.h +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/language/stdcpp.h +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library.h +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/c.h +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/_prefix.h +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/gnu.h +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/uc.h +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/vms.h +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/c/zos.h +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std.h +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/_prefix.h +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/cxx.h +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/dinkumware.h +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/libcomo.h +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/modena.h +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/msl.h +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/roguewave.h +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/sgi.h +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/stdcpp3.h +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/stlport.h +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/vacpp.h +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +89 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os.h +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/aix.h +66 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/amigaos.h +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/android.h +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/beos.h +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd.h +103 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/bsdi.h +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/dragonfly.h +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/free.h +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/net.h +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/bsd/open.h +171 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/haiku.h +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/hpux.h +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/ios.h +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/irix.h +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/linux.h +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/macos.h +65 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/os400.h +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/qnxnto.h +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/solaris.h +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/unix.h +76 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/vms.h +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/windows.h +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/other.h +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +204 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform.h +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/mingw.h +69 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_desktop.h +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_phone.h +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_runtime.h +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/platform/windows_store.h +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/version_number.h +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/arithmetic/dec.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/detail/get_data.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/push_back.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/push_front.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/to_list.hpp +17 -3
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/to_seq.hpp +16 -3
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/array/to_tuple.hpp +12 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +11 -12
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/detail/is_empty.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/empty.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/identity.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/is_empty.hpp +17 -4
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/is_empty_or_1.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/facilities/is_empty_variadic.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/library.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/to_array.hpp +33 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/list/to_tuple.hpp +27 -4
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/punctuation.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/punctuation/detail/is_begin_parens.hpp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/punctuation/is_begin_parens.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/punctuation/remove_parens.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/repetition/for.hpp +19 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/binary_transform.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/is_empty.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/for_each.hpp +57 -10
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/for_each_i.hpp +58 -10
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/replace.hpp +18 -2
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/rest_n.hpp +19 -3
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/size.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/variadic_seq_to_seq.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/detail/is_single_return.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/eat.hpp +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/elem.hpp +12 -2
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/insert.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/pop_back.hpp +64 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/pop_front.hpp +65 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/push_back.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/push_front.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/rem.hpp +18 -3
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/remove.hpp +64 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/replace.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/reverse.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/to_array.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/to_list.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/to_seq.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/detail/is_single_return.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/algorithm/equal.hpp +5 -3
- data/src/cxx_supportlib/vendor-modified/boost/range/as_literal.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/begin.hpp +5 -13
- data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +35 -15
- data/src/cxx_supportlib/vendor-modified/boost/range/config.hpp +9 -7
- data/src/cxx_supportlib/vendor-modified/boost/range/const_iterator.hpp +39 -30
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/common.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/extract_optional_type.hpp +21 -25
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/has_member_size.hpp +66 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/implementation_help.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/msvc_has_iterator_workaround.hpp +132 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/difference_type.hpp +20 -2
- data/src/cxx_supportlib/vendor-modified/boost/range/distance.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/empty.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/end.hpp +5 -13
- data/src/cxx_supportlib/vendor-modified/boost/range/functions.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +83 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/iterator.hpp +36 -34
- data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +481 -251
- data/src/cxx_supportlib/vendor-modified/boost/range/mutable_iterator.hpp +41 -29
- data/src/cxx_supportlib/vendor-modified/boost/range/range_fwd.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/rbegin.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/rend.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/reverse_iterator.hpp +5 -3
- data/src/cxx_supportlib/vendor-modified/boost/range/size.hpp +30 -6
- data/src/cxx_supportlib/vendor-modified/boost/range/size_type.hpp +18 -12
- data/src/cxx_supportlib/vendor-modified/boost/range/value_type.hpp +1 -5
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/abs.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/gcd.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/lcm.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/sign.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/overflow_helpers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio.hpp +63 -3
- data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_fwd.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/ref.hpp +12 -184
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +51 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/mfc.hpp +30 -34
- data/src/cxx_supportlib/vendor-modified/boost/regex/pattern_except.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/static_mutex.hpp +10 -7
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +11 -5
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +18 -19
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +25 -38
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +211 -14
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +161 -106
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cregex.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +24 -21
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_traits.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +24 -19
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +46 -20
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +38 -14
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +206 -31
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +122 -16
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/primary_transform.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/protected_call.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_grep.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_match.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_replace.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_search.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +6 -15
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +10 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/states.hpp +23 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/sub_match.hpp +75 -71
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +6 -15
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +43 -41
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +103 -172
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_allocator.hpp +318 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_count_impl.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_traits.hpp +16 -9
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_utility.hpp +106 -70
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +36 -59
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_nt.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/{atomic_count_pthreads.hpp → atomic_count_pt.hpp} +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_spin.hpp +62 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_std_atomic.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/operator_bool.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +116 -10
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_convertible.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +15 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +140 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +16 -15
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +137 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +21 -4
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_disable_deprecated.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_forward.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_if_array.hpp +8 -5
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_nullptr_t.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_pool.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_std_atomic.hpp +83 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +30 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +80 -169
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +121 -118
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +54 -12
- data/src/cxx_supportlib/vendor-modified/boost/static_assert.hpp +4 -19
- data/src/cxx_supportlib/vendor-modified/boost/swap.hpp +11 -6
- data/src/cxx_supportlib/vendor-modified/boost/system/config.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.ipp +467 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/barrier.hpp +222 -36
- data/src/cxx_supportlib/vendor-modified/boost/thread/caller_context.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/completion_latch.hpp +4 -11
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/deque_adaptor.hpp +209 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/deque_base.hpp +202 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/deque_views.hpp +165 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_deque_base.hpp +223 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_queue_base.hpp +223 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_adaptor.hpp +209 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_base.hpp +202 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_op_status.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_views.hpp +155 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_bounded_queue.hpp +725 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_deque.hpp +327 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_priority_queue.hpp +369 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_queue.hpp +335 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_timed_queue.hpp +466 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/deque.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/devector.hpp +102 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/functional.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/list.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory.hpp +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_arg.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_traits.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/config.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/default_delete.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/pointer_traits.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/scoped_allocator.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/shared_ptr.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/unique_ptr.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/queue.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/tuple.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/vector.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/cv_status.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +32 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/counter.hpp +17 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/delete.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/function_wrapper.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/invoke.hpp +373 -120
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/invoker.hpp +762 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/is_convertible.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/memory.hpp +11 -119
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/move.hpp +116 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/nullary_function.hpp +234 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +41 -16
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread_group.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/variadic_footer.hpp +10 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/variadic_header.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/exceptional_ptr.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/exceptions.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/executor.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +318 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/detail/priority_executor_base.hpp +77 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/detail/scheduled_executor_base.hpp +66 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/executor.hpp +148 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/executor_adaptor.hpp +136 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/generic_executor_ref.hpp +213 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/inline_executor.hpp +171 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/loop_executor.hpp +205 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduled_thread_pool.hpp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduler.hpp +271 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/scheduling_adaptor.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/serial_executor.hpp +216 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/serial_executor_cont.hpp +170 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/thread_executor.hpp +157 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/work.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/config/inline_namespace.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/exception_list.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/parallel/v1/exception_list.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/parallel/v1/inline_namespace.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/parallel/v2/inline_namespace.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/parallel/v2/task_region.hpp +316 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/task_region.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/externally_locked.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +3327 -1705
- data/src/cxx_supportlib/vendor-modified/boost/thread/futures/future_error.hpp +98 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/{future_error_code.hpp → futures/future_error_code.hpp} +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/thread/futures/future_status.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/futures/is_future_type.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/futures/launch.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_all.hpp +74 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_any.hpp +161 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/latch.hpp +43 -15
- data/src/cxx_supportlib/vendor-modified/boost/thread/lock_types.hpp +45 -41
- data/src/cxx_supportlib/vendor-modified/boost/thread/lockable_adapter.hpp +28 -28
- data/src/cxx_supportlib/vendor-modified/boost/thread/once.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/ostream_buffer.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/poly_lockable.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +101 -56
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +141 -47
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +20 -13
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once_atomic.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +11 -8
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +39 -10
- data/src/cxx_supportlib/vendor-modified/boost/thread/scoped_thread.hpp +15 -11
- data/src/cxx_supportlib/vendor-modified/boost/thread/shared_mutex.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/sync_bounded_queue.hpp +2 -580
- data/src/cxx_supportlib/vendor-modified/boost/thread/sync_queue.hpp +2 -502
- data/src/cxx_supportlib/vendor-modified/boost/thread/synchronized_value.hpp +78 -11
- data/src/cxx_supportlib/vendor-modified/boost/thread/testable_mutex.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/thread_pool.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/tss.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/thread/user_scheduler.hpp +202 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/v2/shared_mutex.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/thread/v2/thread.hpp +73 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/with_lock_guard.hpp +234 -0
- data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +7 -5
- data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +3 -17
- data/src/cxx_supportlib/vendor-modified/boost/token_iterator.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +14 -5
- data/src/cxx_supportlib/vendor-modified/boost/tuple/tuple.hpp +1 -24
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_const.hpp +9 -10
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_cv.hpp +2 -9
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_lvalue_reference.hpp +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_pointer.hpp +6 -17
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_reference.hpp +14 -62
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_rvalue_reference.hpp +5 -7
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_volatile.hpp +2 -9
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/aligned_storage.hpp +134 -9
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/alignment_of.hpp +9 -18
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/{detail/wrap.hpp → alignment_traits.hpp} +7 -10
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/arithmetic_traits.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/array_traits.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/broken_compiler_spec.hpp +9 -105
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/common_type.hpp +118 -131
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/conditional.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/config.hpp +5 -60
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/copy_cv.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/decay.hpp +12 -13
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/declval.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/bool_trait_def.hpp +9 -26
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/bool_trait_undef.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_arithmetic_type.hpp +212 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_type_impl.hpp +107 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/composite_member_pointer_type.hpp +113 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/composite_pointer_type.hpp +153 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +72 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_binary_operator.hpp +12 -19
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +12 -19
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +14 -19
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/ice_and.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/ice_eq.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/ice_not.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/ice_or.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_helper.hpp +13 -57
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_tester.hpp +13 -218
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +13 -107
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +15 -974
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/mp_defer.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/template_arity_spec.hpp +6 -21
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/extent.hpp +138 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/floating_point_promotion.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/function_traits.hpp +0 -62
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_bit_and.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_bit_and_assign.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_bit_or.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_bit_or_assign.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_bit_xor.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_bit_xor_assign.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_complement.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_dereference.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_divides.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_divides_assign.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_equal_to.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_greater.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_greater_equal.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_left_shift.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_left_shift_assign.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_less.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_less_equal.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_logical_and.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_logical_not.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_logical_or.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +65 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_modulus.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_modulus_assign.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_multiplies.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_multiplies_assign.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_negate.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_new_operator.hpp +147 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_not_equal_to.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_assign.hpp +57 -18
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_constructor.hpp +43 -24
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_copy.hpp +52 -23
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_destructor.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_operator.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +66 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_decrement.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_increment.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_decrement.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_increment.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_right_shift.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_right_shift_assign.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_assign.hpp +23 -29
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_constructor.hpp +31 -25
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_copy.hpp +34 -36
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_destructor.hpp +21 -22
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_assign.hpp +40 -25
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_constructor.hpp +45 -25
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_unary_minus.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_unary_plus.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_virtual_destructor.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +86 -33
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_promotion.hpp +181 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +116 -41
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_abstract.hpp +6 -10
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_arithmetic.hpp +3 -32
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_array.hpp +12 -60
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_assignable.hpp +76 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_base_and_derived.hpp +9 -19
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_base_of.hpp +8 -20
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_base_of_tr1.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_class.hpp +17 -43
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complex.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_compound.hpp +2 -24
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_const.hpp +8 -127
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_constructible.hpp +80 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_convertible.hpp +94 -98
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_assignable.hpp +141 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_constructible.hpp +187 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_default_constructible.hpp +64 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_destructible.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_empty.hpp +8 -117
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_enum.hpp +19 -42
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_final.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_float.hpp +2 -9
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_floating_point.hpp +12 -9
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_function.hpp +9 -18
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_fundamental.hpp +2 -21
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_integral.hpp +43 -37
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_lvalue_reference.hpp +8 -76
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_function_pointer.hpp +18 -34
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_object_pointer.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_pointer.hpp +8 -79
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +32 -35
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +43 -41
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_object.hpp +7 -32
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_pod.hpp +14 -101
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_pointer.hpp +12 -127
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_polymorphic.hpp +122 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_reference.hpp +6 -21
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_rvalue_reference.hpp +4 -8
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_same.hpp +4 -66
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_scalar.hpp +3 -31
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_signed.hpp +83 -60
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_stateless.hpp +8 -23
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_union.hpp +6 -32
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_unsigned.hpp +85 -57
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +105 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_void.hpp +7 -19
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_volatile.hpp +8 -115
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_signed.hpp +35 -57
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_unsigned.hpp +34 -57
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/promote.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/rank.hpp +86 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/reference_traits.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_all_extents.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_bounds.hpp +4 -31
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_const.hpp +8 -65
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv.hpp +13 -57
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_extent.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_pointer.hpp +8 -23
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_reference.hpp +5 -21
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_volatile.hpp +7 -61
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_identity.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_with_alignment.hpp +101 -239
- data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +100 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/incr_registration_group.hpp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +118 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/integral_template_param.hpp +80 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +283 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +38 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +135 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_fundamental.hpp +62 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/bitset.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/complex.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/deque.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/fstream.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/functional.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iostream.hpp +18 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/istream.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iterator.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/list.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/locale.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/map.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/memory.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/ostream.hpp +18 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/queue.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/set.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/sstream.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/stack.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/streambuf.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/string.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/utility.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/valarray.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/std/vector.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +160 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +149 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/type_template_param.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +186 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/unsupported.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +166 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +321 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +471 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +621 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +171 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/allocate.hpp +42 -34
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/buckets.hpp +108 -56
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/equivalent.hpp +30 -24
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/extract_key.hpp +21 -16
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/table.hpp +45 -33
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/unique.hpp +21 -15
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/util.hpp +8 -2
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +11 -6
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +11 -6
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/unordered_map.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/unordered_set.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/utility.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/addressof.hpp +11 -96
- data/src/cxx_supportlib/vendor-modified/boost/utility/base_from_member.hpp +171 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/binary.hpp +708 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/declval.hpp +5 -41
- data/src/cxx_supportlib/vendor-modified/boost/utility/detail/result_of_iterate.hpp +18 -5
- data/src/cxx_supportlib/vendor-modified/boost/utility/empty_deleter.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/enable_if.hpp +10 -112
- data/src/cxx_supportlib/vendor-modified/boost/utility/explicit_operator_bool.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/identity_type.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/in_place_factory.hpp +2 -4
- data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +25 -9
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +536 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref_fwd.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/swap.hpp +10 -48
- data/src/cxx_supportlib/vendor-modified/boost/utility/typed_in_place_factory.hpp +77 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/value_init.hpp +281 -0
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/visit_each.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/modp_b64.cpp +3 -1
- data/src/nginx_module/Configuration.c +157 -6
- data/src/nginx_module/Configuration.h +3 -1
- data/src/nginx_module/ContentHandler.c +2 -1
- data/src/nginx_module/ngx_http_passenger_module.c +27 -46
- data/src/nodejs_supportlib/phusion_passenger/log_express.js +1 -1
- data/src/ruby_supportlib/phusion_passenger.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/rack_handler.rb +102 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +20 -3
- data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +36 -3
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +3 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/LICENSE.md +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core.rb +7 -0
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/api.rb +28 -0
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/request_reporter/misc.rb +4 -0
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/spec_helper.rb +18 -0
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/transaction.rb +1 -10
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/version_data.rb +4 -4
- metadata +609 -62
- data/src/agent/UstRouter/DataStoreId.h +0 -184
- data/src/cxx_supportlib/vendor-copy/libuv/autom4te.cache/output.0 +0 -15374
- data/src/cxx_supportlib/vendor-copy/libuv/autom4te.cache/output.1 +0 -15374
- data/src/cxx_supportlib/vendor-copy/libuv/autom4te.cache/output.2 +0 -15374
- data/src/cxx_supportlib/vendor-copy/libuv/autom4te.cache/requests +0 -568
- data/src/cxx_supportlib/vendor-copy/libuv/autom4te.cache/traces.0 +0 -3104
- data/src/cxx_supportlib/vendor-copy/libuv/autom4te.cache/traces.1 +0 -3104
- data/src/cxx_supportlib/vendor-copy/libuv/autom4te.cache/traces.2 +0 -699
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/base.hpp +0 -585
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/cas32strong.hpp +0 -885
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/cas32weak.hpp +0 -947
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/cas64strong.hpp +0 -443
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc-alpha.hpp +0 -368
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc-armv6plus.hpp +0 -252
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc-cas.hpp +0 -157
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc-ppc.hpp +0 -2850
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc-sparcv9.hpp +0 -1259
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc-x86.hpp +0 -1766
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/generic-cas.hpp +0 -206
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/linux-arm.hpp +0 -189
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type-classification.hpp +0 -45
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithms.hpp +0 -84
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/memory_util.hpp +0 -83
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/preprocessor.hpp +0 -232
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/utilities.hpp +0 -1141
- data/src/cxx_supportlib/vendor-modified/boost/detail/is_incrementable.hpp +0 -134
- data/src/cxx_supportlib/vendor-modified/boost/detail/is_xxx.hpp +0 -61
- data/src/cxx_supportlib/vendor-modified/boost/detail/limits.hpp +0 -449
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/attribute_noreturn.hpp +0 -17
- data/src/cxx_supportlib/vendor-modified/boost/indirect_reference.hpp +0 -43
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/clear_on_destructor_base.hpp +0 -36
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/memory_util.hpp +0 -288
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/preprocessor.hpp +0 -52
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/utilities.hpp +0 -858
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set_hook.hpp +0 -292
- data/src/cxx_supportlib/vendor-modified/boost/libs/atomic/lockpool.cpp +0 -24
- data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/local_free_on_destruction.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/timeconv.inl +0 -151
- data/src/cxx_supportlib/vendor-modified/boost/math/common_factor_ct.hpp +0 -180
- data/src/cxx_supportlib/vendor-modified/boost/math_fwd.hpp +0 -108
- data/src/cxx_supportlib/vendor-modified/boost/parameter.hpp +0 -21
- data/src/cxx_supportlib/vendor-modified/boost/pointee.hpp +0 -74
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/allocate_array_helper.hpp +0 -169
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_deleter.hpp +0 -124
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/make_array_helper.hpp +0 -157
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/async_func.hpp +0 -571
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_type_imp.hpp +0 -333
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/cv_traits_impl.hpp +0 -97
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/false_result.hpp +0 -28
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/size_t_trait_def.hpp +0 -60
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/size_t_trait_undef.hpp +0 -16
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/type_trait_def.hpp +0 -67
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/type_trait_undef.hpp +0 -19
- data/src/cxx_supportlib/vendor-modified/boost/units/detail/utility.hpp +0 -104
@@ -1,6 +1,6 @@
|
|
1
1
|
//////////////////////////////////////////////////////////////////////////////
|
2
2
|
//
|
3
|
-
// (C) Copyright Ion Gaztanaga 2005-
|
3
|
+
// (C) Copyright Ion Gaztanaga 2005-2014. Distributed under the Boost
|
4
4
|
// Software License, Version 1.0. (See accompanying file
|
5
5
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
6
6
|
//
|
@@ -11,34 +11,75 @@
|
|
11
11
|
#ifndef BOOST_CONTAINER_CONTAINER_FWD_HPP
|
12
12
|
#define BOOST_CONTAINER_CONTAINER_FWD_HPP
|
13
13
|
|
14
|
-
#
|
15
|
-
#
|
14
|
+
#ifndef BOOST_CONFIG_HPP
|
15
|
+
# include <boost/config.hpp>
|
16
16
|
#endif
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
#if defined(BOOST_HAS_PRAGMA_ONCE)
|
19
|
+
# pragma once
|
20
|
+
#endif
|
21
21
|
|
22
|
-
|
22
|
+
//! \file
|
23
|
+
//! This header file forward declares the following containers:
|
24
|
+
//! - boost::container::vector
|
25
|
+
//! - boost::container::stable_vector
|
26
|
+
//! - boost::container::static_vector
|
27
|
+
//! - boost::container::small_vector
|
28
|
+
//! - boost::container::slist
|
29
|
+
//! - boost::container::list
|
30
|
+
//! - boost::container::set
|
31
|
+
//! - boost::container::multiset
|
32
|
+
//! - boost::container::map
|
33
|
+
//! - boost::container::multimap
|
34
|
+
//! - boost::container::flat_set
|
35
|
+
//! - boost::container::flat_multiset
|
36
|
+
//! - boost::container::flat_map
|
37
|
+
//! - boost::container::flat_multimap
|
38
|
+
//! - boost::container::basic_string
|
39
|
+
//! - boost::container::string
|
40
|
+
//! - boost::container::wstring
|
41
|
+
//!
|
42
|
+
//! Forward declares the following allocators:
|
43
|
+
//! - boost::container::allocator
|
44
|
+
//! - boost::container::node_allocator
|
45
|
+
//! - boost::container::adaptive_pool
|
46
|
+
//!
|
47
|
+
//! Forward declares the following polymorphic resource classes:
|
48
|
+
//! - boost::container::pmr::memory_resource
|
49
|
+
//! - boost::container::pmr::polymorphic_allocator
|
50
|
+
//! - boost::container::pmr::monotonic_buffer_resource
|
51
|
+
//! - boost::container::pmr::pool_options
|
52
|
+
//! - boost::container::pmr::unsynchronized_pool_resource
|
53
|
+
//! - boost::container::pmr::synchronized_pool_resource
|
54
|
+
//!
|
55
|
+
//! And finally it defines the following types
|
56
|
+
|
57
|
+
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
58
|
+
|
59
|
+
//Std forward declarations
|
60
|
+
#ifndef BOOST_CONTAINER_DETAIL_STD_FWD_HPP
|
61
|
+
#include <boost/container/detail/std_fwd.hpp>
|
62
|
+
#endif
|
23
63
|
|
24
64
|
namespace boost{
|
25
65
|
namespace intrusive{
|
66
|
+
namespace detail{
|
26
67
|
//Create namespace to avoid compilation errors
|
27
|
-
}}
|
68
|
+
}}}
|
28
69
|
|
29
70
|
namespace boost{ namespace container{ namespace container_detail{
|
71
|
+
namespace bi = boost::intrusive;
|
72
|
+
namespace bid = boost::intrusive::detail;
|
73
|
+
}}}
|
30
74
|
|
31
|
-
namespace
|
32
|
-
|
75
|
+
namespace boost{ namespace container{ namespace pmr{
|
76
|
+
namespace bi = boost::intrusive;
|
77
|
+
namespace bid = boost::intrusive::detail;
|
33
78
|
}}}
|
34
79
|
|
35
|
-
#include <
|
36
|
-
#include <memory>
|
37
|
-
#include <functional>
|
38
|
-
#include <iosfwd>
|
39
|
-
#include <string>
|
80
|
+
#include <cstddef>
|
40
81
|
|
41
|
-
|
82
|
+
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
42
83
|
|
43
84
|
//////////////////////////////////////////////////////////////////////////////
|
44
85
|
// Containers
|
@@ -47,111 +88,212 @@ namespace bi = boost::intrusive;
|
|
47
88
|
namespace boost {
|
48
89
|
namespace container {
|
49
90
|
|
50
|
-
|
91
|
+
//! Enumeration used to configure ordered associative containers
|
92
|
+
//! with a concrete tree implementation.
|
93
|
+
enum tree_type_enum
|
94
|
+
{
|
95
|
+
red_black_tree,
|
96
|
+
avl_tree,
|
97
|
+
scapegoat_tree,
|
98
|
+
splay_tree
|
99
|
+
};
|
100
|
+
|
101
|
+
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
102
|
+
|
103
|
+
template<class T>
|
104
|
+
class new_allocator;
|
105
|
+
|
51
106
|
template <class T
|
52
|
-
,class Allocator =
|
107
|
+
,class Allocator = new_allocator<T> >
|
53
108
|
class vector;
|
54
109
|
|
55
|
-
//vector class
|
56
110
|
template <class T
|
57
|
-
,class Allocator =
|
111
|
+
,class Allocator = new_allocator<T> >
|
58
112
|
class stable_vector;
|
59
113
|
|
60
|
-
|
114
|
+
template <class T, std::size_t Capacity>
|
115
|
+
class static_vector;
|
116
|
+
|
117
|
+
template < class T, std::size_t N
|
118
|
+
, class Allocator= new_allocator<T> >
|
119
|
+
class small_vector;
|
120
|
+
|
61
121
|
template <class T
|
62
|
-
,class Allocator =
|
122
|
+
,class Allocator = new_allocator<T> >
|
63
123
|
class deque;
|
64
124
|
|
65
|
-
//list class
|
66
125
|
template <class T
|
67
|
-
,class Allocator =
|
126
|
+
,class Allocator = new_allocator<T> >
|
68
127
|
class list;
|
69
128
|
|
70
|
-
//slist class
|
71
129
|
template <class T
|
72
|
-
,class Allocator =
|
130
|
+
,class Allocator = new_allocator<T> >
|
73
131
|
class slist;
|
74
132
|
|
75
|
-
|
133
|
+
template<tree_type_enum TreeType, bool OptimizeSize>
|
134
|
+
struct tree_opt;
|
135
|
+
|
136
|
+
typedef tree_opt<red_black_tree, true> tree_assoc_defaults;
|
137
|
+
|
76
138
|
template <class Key
|
77
139
|
,class Compare = std::less<Key>
|
78
|
-
,class Allocator =
|
140
|
+
,class Allocator = new_allocator<Key>
|
141
|
+
,class Options = tree_assoc_defaults >
|
79
142
|
class set;
|
80
143
|
|
81
|
-
//multiset class
|
82
144
|
template <class Key
|
83
145
|
,class Compare = std::less<Key>
|
84
|
-
,class Allocator =
|
146
|
+
,class Allocator = new_allocator<Key>
|
147
|
+
,class Options = tree_assoc_defaults >
|
85
148
|
class multiset;
|
86
149
|
|
87
|
-
//map class
|
88
150
|
template <class Key
|
89
151
|
,class T
|
90
152
|
,class Compare = std::less<Key>
|
91
|
-
,class Allocator =
|
153
|
+
,class Allocator = new_allocator<std::pair<const Key, T> >
|
154
|
+
,class Options = tree_assoc_defaults >
|
92
155
|
class map;
|
93
156
|
|
94
|
-
//multimap class
|
95
157
|
template <class Key
|
96
158
|
,class T
|
97
159
|
,class Compare = std::less<Key>
|
98
|
-
,class Allocator =
|
160
|
+
,class Allocator = new_allocator<std::pair<const Key, T> >
|
161
|
+
,class Options = tree_assoc_defaults >
|
99
162
|
class multimap;
|
100
163
|
|
101
|
-
//flat_set class
|
102
164
|
template <class Key
|
103
165
|
,class Compare = std::less<Key>
|
104
|
-
,class Allocator =
|
166
|
+
,class Allocator = new_allocator<Key> >
|
105
167
|
class flat_set;
|
106
168
|
|
107
|
-
//flat_multiset class
|
108
169
|
template <class Key
|
109
170
|
,class Compare = std::less<Key>
|
110
|
-
,class Allocator =
|
171
|
+
,class Allocator = new_allocator<Key> >
|
111
172
|
class flat_multiset;
|
112
173
|
|
113
|
-
//flat_map class
|
114
174
|
template <class Key
|
115
175
|
,class T
|
116
176
|
,class Compare = std::less<Key>
|
117
|
-
,class Allocator =
|
177
|
+
,class Allocator = new_allocator<std::pair<Key, T> > >
|
118
178
|
class flat_map;
|
119
179
|
|
120
|
-
//flat_multimap class
|
121
180
|
template <class Key
|
122
181
|
,class T
|
123
182
|
,class Compare = std::less<Key>
|
124
|
-
,class Allocator =
|
183
|
+
,class Allocator = new_allocator<std::pair<Key, T> > >
|
125
184
|
class flat_multimap;
|
126
185
|
|
127
|
-
//basic_string class
|
128
186
|
template <class CharT
|
129
187
|
,class Traits = std::char_traits<CharT>
|
130
|
-
,class Allocator =
|
188
|
+
,class Allocator = new_allocator<CharT> >
|
131
189
|
class basic_string;
|
132
190
|
|
191
|
+
typedef basic_string
|
192
|
+
<char
|
193
|
+
,std::char_traits<char>
|
194
|
+
,new_allocator<char> >
|
195
|
+
string;
|
196
|
+
|
197
|
+
typedef basic_string
|
198
|
+
<wchar_t
|
199
|
+
,std::char_traits<wchar_t>
|
200
|
+
,new_allocator<wchar_t> >
|
201
|
+
wstring;
|
202
|
+
|
203
|
+
static const std::size_t ADP_nodes_per_block = 256u;
|
204
|
+
static const std::size_t ADP_max_free_blocks = 2u;
|
205
|
+
static const std::size_t ADP_overhead_percent = 1u;
|
206
|
+
static const std::size_t ADP_only_alignment = 0u;
|
207
|
+
|
208
|
+
template < class T
|
209
|
+
, std::size_t NodesPerBlock = ADP_nodes_per_block
|
210
|
+
, std::size_t MaxFreeBlocks = ADP_max_free_blocks
|
211
|
+
, std::size_t OverheadPercent = ADP_overhead_percent
|
212
|
+
, unsigned Version = 2
|
213
|
+
>
|
214
|
+
class adaptive_pool;
|
215
|
+
|
216
|
+
template < class T
|
217
|
+
, unsigned Version = 2
|
218
|
+
, unsigned int AllocationDisableMask = 0>
|
219
|
+
class allocator;
|
220
|
+
|
221
|
+
static const std::size_t NodeAlloc_nodes_per_block = 256u;
|
222
|
+
|
223
|
+
template
|
224
|
+
< class T
|
225
|
+
, std::size_t NodesPerBlock = NodeAlloc_nodes_per_block
|
226
|
+
, std::size_t Version = 2>
|
227
|
+
class node_allocator;
|
228
|
+
|
229
|
+
namespace pmr {
|
230
|
+
|
231
|
+
class memory_resource;
|
232
|
+
|
233
|
+
template<class T>
|
234
|
+
class polymorphic_allocator;
|
235
|
+
|
236
|
+
class monotonic_buffer_resource;
|
237
|
+
|
238
|
+
struct pool_options;
|
239
|
+
|
240
|
+
template <class Allocator>
|
241
|
+
class resource_adaptor_imp;
|
242
|
+
|
243
|
+
class unsynchronized_pool_resource;
|
244
|
+
|
245
|
+
class synchronized_pool_resource;
|
246
|
+
|
247
|
+
} //namespace pmr {
|
248
|
+
|
249
|
+
#else
|
250
|
+
|
251
|
+
//! Default options for tree-based associative containers
|
252
|
+
//! - tree_type<red_black_tree>
|
253
|
+
//! - optimize_size<true>
|
254
|
+
typedef implementation_defined tree_assoc_defaults;
|
255
|
+
|
256
|
+
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
257
|
+
|
133
258
|
//! Type used to tag that the input range is
|
134
259
|
//! guaranteed to be ordered
|
135
260
|
struct ordered_range_t
|
136
261
|
{};
|
137
262
|
|
263
|
+
//! Value used to tag that the input range is
|
264
|
+
//! guaranteed to be ordered
|
265
|
+
static const ordered_range_t ordered_range = ordered_range_t();
|
266
|
+
|
138
267
|
//! Type used to tag that the input range is
|
139
268
|
//! guaranteed to be ordered and unique
|
140
269
|
struct ordered_unique_range_t
|
141
270
|
: public ordered_range_t
|
142
271
|
{};
|
143
272
|
|
144
|
-
//! Value used to tag that the input range is
|
145
|
-
//! guaranteed to be ordered
|
146
|
-
static const ordered_range_t ordered_range = ordered_range_t();
|
147
|
-
|
148
273
|
//! Value used to tag that the input range is
|
149
274
|
//! guaranteed to be ordered and unique
|
150
275
|
static const ordered_unique_range_t ordered_unique_range = ordered_unique_range_t();
|
151
276
|
|
152
|
-
|
277
|
+
//! Type used to tag that the inserted values
|
278
|
+
//! should be default initialized
|
279
|
+
struct default_init_t
|
280
|
+
{};
|
281
|
+
|
282
|
+
//! Value used to tag that the inserted values
|
283
|
+
//! should be default initialized
|
284
|
+
static const default_init_t default_init = default_init_t();
|
285
|
+
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
286
|
+
|
287
|
+
//! Type used to tag that the inserted values
|
288
|
+
//! should be value initialized
|
289
|
+
struct value_init_t
|
290
|
+
{};
|
291
|
+
|
292
|
+
//! Value used to tag that the inserted values
|
293
|
+
//! should be value initialized
|
294
|
+
static const value_init_t value_init = value_init_t();
|
153
295
|
|
154
|
-
namespace
|
296
|
+
namespace container_detail_really_deep_namespace {
|
155
297
|
|
156
298
|
//Otherwise, gcc issues a warning of previously defined
|
157
299
|
//anonymous_instance and unique_instance
|
@@ -161,12 +303,14 @@ struct dummy
|
|
161
303
|
{
|
162
304
|
(void)ordered_range;
|
163
305
|
(void)ordered_unique_range;
|
306
|
+
(void)default_init;
|
164
307
|
}
|
165
308
|
};
|
166
309
|
|
167
310
|
} //detail_really_deep_namespace {
|
168
311
|
|
169
|
-
|
312
|
+
|
313
|
+
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
170
314
|
|
171
315
|
}} //namespace boost { namespace container {
|
172
316
|
|
@@ -1,380 +1,330 @@
|
|
1
1
|
//////////////////////////////////////////////////////////////////////////////
|
2
2
|
//
|
3
|
-
// (C) Copyright Ion Gaztanaga 2005-
|
3
|
+
// (C) Copyright Ion Gaztanaga 2005-2015. Distributed under the Boost
|
4
4
|
// Software License, Version 1.0. (See accompanying file
|
5
5
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
6
6
|
//
|
7
7
|
// See http://www.boost.org/libs/container for documentation.
|
8
8
|
//
|
9
9
|
//////////////////////////////////////////////////////////////////////////////
|
10
|
-
// Copyright (c) 1996,1997
|
11
|
-
// Silicon Graphics Computer Systems, Inc.
|
12
|
-
//
|
13
|
-
// Permission to use, copy, modify, distribute and sell this software
|
14
|
-
// and its documentation for any purpose is hereby granted without fee,
|
15
|
-
// provided that the above copyright notice appear in all copies and
|
16
|
-
// that both that copyright notice and this permission notice appear
|
17
|
-
// in supporting documentation. Silicon Graphics makes no
|
18
|
-
// representations about the suitability of this software for any
|
19
|
-
// purpose. It is provided "as is" without express or implied warranty.
|
20
|
-
//
|
21
|
-
//
|
22
|
-
// Copyright (c) 1994
|
23
|
-
// Hewlett-Packard Company
|
24
|
-
//
|
25
|
-
// Permission to use, copy, modify, distribute and sell this software
|
26
|
-
// and its documentation for any purpose is hereby granted without fee,
|
27
|
-
// provided that the above copyright notice appear in all copies and
|
28
|
-
// that both that copyright notice and this permission notice appear
|
29
|
-
// in supporting documentation. Hewlett-Packard Company makes no
|
30
|
-
// representations about the suitability of this software for any
|
31
|
-
// purpose. It is provided "as is" without express or implied warranty.
|
32
|
-
|
33
10
|
#ifndef BOOST_CONTAINER_DEQUE_HPP
|
34
11
|
#define BOOST_CONTAINER_DEQUE_HPP
|
35
12
|
|
36
|
-
#
|
13
|
+
#ifndef BOOST_CONFIG_HPP
|
14
|
+
# include <boost/config.hpp>
|
15
|
+
#endif
|
16
|
+
|
17
|
+
#if defined(BOOST_HAS_PRAGMA_ONCE)
|
37
18
|
# pragma once
|
38
19
|
#endif
|
39
20
|
|
40
21
|
#include <boost/container/detail/config_begin.hpp>
|
41
22
|
#include <boost/container/detail/workaround.hpp>
|
42
|
-
|
43
|
-
#include <boost/container/detail/utilities.hpp>
|
44
|
-
#include <boost/container/detail/iterators.hpp>
|
45
|
-
#include <boost/container/detail/algorithms.hpp>
|
46
|
-
#include <boost/container/detail/mpl.hpp>
|
23
|
+
// container
|
47
24
|
#include <boost/container/allocator_traits.hpp>
|
48
25
|
#include <boost/container/container_fwd.hpp>
|
26
|
+
#include <boost/container/new_allocator.hpp> //new_allocator
|
49
27
|
#include <boost/container/throw_exception.hpp>
|
50
|
-
|
51
|
-
#include <
|
52
|
-
#include <boost/
|
53
|
-
#include <
|
54
|
-
#include <
|
55
|
-
#include <boost/detail/
|
56
|
-
#include <boost/
|
57
|
-
#include <boost/
|
58
|
-
#include <boost/
|
59
|
-
#include <boost/
|
60
|
-
#include <boost/
|
61
|
-
#include <boost/
|
28
|
+
// container/detail
|
29
|
+
#include <boost/container/detail/advanced_insert_int.hpp>
|
30
|
+
#include <boost/container/detail/algorithm.hpp> //algo_equal(), algo_lexicographical_compare
|
31
|
+
#include <boost/container/detail/alloc_helpers.hpp>
|
32
|
+
#include <boost/container/detail/copy_move_algo.hpp>
|
33
|
+
#include <boost/container/detail/iterator.hpp>
|
34
|
+
#include <boost/container/detail/iterator_to_raw_pointer.hpp>
|
35
|
+
#include <boost/container/detail/iterators.hpp>
|
36
|
+
#include <boost/container/detail/min_max.hpp>
|
37
|
+
#include <boost/container/detail/mpl.hpp>
|
38
|
+
#include <boost/container/detail/to_raw_pointer.hpp>
|
39
|
+
#include <boost/container/detail/type_traits.hpp>
|
40
|
+
// move
|
41
|
+
#include <boost/move/adl_move_swap.hpp>
|
62
42
|
#include <boost/move/iterator.hpp>
|
43
|
+
#include <boost/move/traits.hpp>
|
44
|
+
#include <boost/move/utility_core.hpp>
|
45
|
+
// move/detail
|
46
|
+
#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
47
|
+
#include <boost/move/detail/fwd_macros.hpp>
|
48
|
+
#endif
|
63
49
|
#include <boost/move/detail/move_helpers.hpp>
|
64
|
-
|
65
|
-
#include <boost/
|
50
|
+
// other
|
51
|
+
#include <boost/assert.hpp>
|
52
|
+
#include <boost/core/no_exceptions_support.hpp>
|
53
|
+
// std
|
54
|
+
#include <cstddef>
|
55
|
+
|
56
|
+
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
57
|
+
#include <initializer_list>
|
58
|
+
#endif
|
66
59
|
|
67
60
|
namespace boost {
|
68
61
|
namespace container {
|
69
62
|
|
70
|
-
|
71
|
-
#ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
|
72
|
-
template <class T, class Allocator = std::allocator<T> >
|
73
|
-
#else
|
63
|
+
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
74
64
|
template <class T, class Allocator>
|
75
|
-
#endif
|
76
65
|
class deque;
|
77
66
|
|
78
|
-
template <class T
|
67
|
+
template <class T>
|
79
68
|
struct deque_value_traits
|
80
69
|
{
|
81
70
|
typedef T value_type;
|
82
|
-
|
83
|
-
static const bool trivial_dctr = boost::has_trivial_destructor<value_type>::value;
|
71
|
+
static const bool trivial_dctr = container_detail::is_trivially_destructible<value_type>::value;
|
84
72
|
static const bool trivial_dctr_after_move = ::boost::has_trivial_destructor_after_move<value_type>::value;
|
85
|
-
static const bool trivial_copy = has_trivial_copy<value_type>::value;
|
86
|
-
static const bool nothrow_copy = has_nothrow_copy<value_type>::value;
|
87
|
-
static const bool trivial_assign = has_trivial_assign<value_type>::value;
|
88
|
-
//static const bool nothrow_assign = has_nothrow_assign<value_type>::value;
|
89
|
-
static const bool nothrow_assign = false;
|
90
73
|
};
|
91
74
|
|
92
75
|
// Note: this function is simply a kludge to work around several compilers'
|
93
76
|
// bugs in handling constant expressions.
|
94
|
-
|
95
|
-
|
77
|
+
template<class T>
|
78
|
+
struct deque_buf_size
|
79
|
+
{
|
80
|
+
static const std::size_t min_size = 512u;
|
81
|
+
static const std::size_t sizeof_t = sizeof(T);
|
82
|
+
static const std::size_t value = sizeof_t < min_size ? (min_size/sizeof_t) : std::size_t(1);
|
83
|
+
};
|
96
84
|
|
97
|
-
|
98
|
-
|
99
|
-
//
|
100
|
-
|
101
|
-
|
85
|
+
namespace container_detail {
|
86
|
+
|
87
|
+
// Class invariants:
|
88
|
+
// For any nonsingular iterator i:
|
89
|
+
// i.node is the address of an element in the map array. The
|
90
|
+
// contents of i.node is a pointer to the beginning of a node.
|
91
|
+
// i.first == //(i.node)
|
92
|
+
// i.last == i.first + node_size
|
93
|
+
// i.cur is a pointer in the range [i.first, i.last). NOTE:
|
94
|
+
// the implication of this is that i.cur is always a dereferenceable
|
95
|
+
// pointer, even if i is a past-the-end iterator.
|
96
|
+
// Start and Finish are always nonsingular iterators. NOTE: this means
|
97
|
+
// that an empty deque must have one node, and that a deque
|
98
|
+
// with N elements, where N is the buffer size, must have two nodes.
|
99
|
+
// For every node other than start.node and finish.node, every element
|
100
|
+
// in the node is an initialized object. If start.node == finish.node,
|
101
|
+
// then [start.cur, finish.cur) are initialized objects, and
|
102
|
+
// the elements outside that range are uninitialized storage. Otherwise,
|
103
|
+
// [start.cur, start.last) and [finish.first, finish.cur) are initialized
|
104
|
+
// objects, and [start.first, start.cur) and [finish.cur, finish.last)
|
105
|
+
// are uninitialized storage.
|
106
|
+
// [map, map + map_size) is a valid, non-empty range.
|
107
|
+
// [start.node, finish.node] is a valid range contained within
|
108
|
+
// [map, map + map_size).
|
109
|
+
// A pointer in the range [map, map + map_size) points to an allocated node
|
110
|
+
// if and only if the pointer is in the range [start.node, finish.node].
|
111
|
+
template<class Pointer, bool IsConst>
|
112
|
+
class deque_iterator
|
102
113
|
{
|
103
|
-
BOOST_COPYABLE_AND_MOVABLE(deque_base)
|
104
114
|
public:
|
105
|
-
typedef
|
106
|
-
typedef typename
|
107
|
-
typedef typename
|
108
|
-
typedef typename
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
typedef
|
115
|
+
typedef std::random_access_iterator_tag iterator_category;
|
116
|
+
typedef typename boost::intrusive::pointer_traits<Pointer>::element_type value_type;
|
117
|
+
typedef typename boost::intrusive::pointer_traits<Pointer>::difference_type difference_type;
|
118
|
+
typedef typename if_c
|
119
|
+
< IsConst
|
120
|
+
, typename boost::intrusive::pointer_traits<Pointer>::template
|
121
|
+
rebind_pointer<const value_type>::type
|
122
|
+
, Pointer
|
123
|
+
>::type pointer;
|
124
|
+
typedef typename if_c
|
125
|
+
< IsConst
|
126
|
+
, const value_type&
|
127
|
+
, value_type&
|
128
|
+
>::type reference;
|
129
|
+
|
130
|
+
static std::size_t s_buffer_size()
|
131
|
+
{ return deque_buf_size<value_type>::value; }
|
132
|
+
|
133
|
+
typedef Pointer val_alloc_ptr;
|
134
|
+
typedef typename boost::intrusive::pointer_traits<Pointer>::
|
135
|
+
template rebind_pointer<Pointer>::type index_pointer;
|
136
|
+
|
137
|
+
Pointer m_cur;
|
138
|
+
Pointer m_first;
|
139
|
+
Pointer m_last;
|
140
|
+
index_pointer m_node;
|
124
141
|
|
125
|
-
|
142
|
+
public:
|
126
143
|
|
127
|
-
|
128
|
-
|
144
|
+
Pointer get_cur() const { return m_cur; }
|
145
|
+
Pointer get_first() const { return m_first; }
|
146
|
+
Pointer get_last() const { return m_last; }
|
147
|
+
index_pointer get_node() const { return m_node; }
|
129
148
|
|
130
|
-
|
149
|
+
deque_iterator(val_alloc_ptr x, index_pointer y) BOOST_NOEXCEPT_OR_NOTHROW
|
150
|
+
: m_cur(x), m_first(*y), m_last(*y + s_buffer_size()), m_node(y)
|
151
|
+
{}
|
131
152
|
|
132
|
-
|
133
|
-
|
153
|
+
deque_iterator() BOOST_NOEXCEPT_OR_NOTHROW
|
154
|
+
: m_cur(), m_first(), m_last(), m_node() //Value initialization to achieve "null iterators" (N3644)
|
155
|
+
{}
|
134
156
|
|
135
|
-
|
136
|
-
|
157
|
+
deque_iterator(deque_iterator<Pointer, false> const& x) BOOST_NOEXCEPT_OR_NOTHROW
|
158
|
+
: m_cur(x.get_cur()), m_first(x.get_first()), m_last(x.get_last()), m_node(x.get_node())
|
159
|
+
{}
|
137
160
|
|
138
|
-
|
139
|
-
|
161
|
+
deque_iterator(Pointer cur, Pointer first, Pointer last, index_pointer node) BOOST_NOEXCEPT_OR_NOTHROW
|
162
|
+
: m_cur(cur), m_first(first), m_last(last), m_node(node)
|
163
|
+
{}
|
140
164
|
|
141
|
-
|
142
|
-
|
165
|
+
deque_iterator<Pointer, false> unconst() const BOOST_NOEXCEPT_OR_NOTHROW
|
166
|
+
{
|
167
|
+
return deque_iterator<Pointer, false>(this->get_cur(), this->get_first(), this->get_last(), this->get_node());
|
168
|
+
}
|
143
169
|
|
144
|
-
|
145
|
-
|
146
|
-
// For any nonsingular iterator i:
|
147
|
-
// i.node is the address of an element in the map array. The
|
148
|
-
// contents of i.node is a pointer to the beginning of a node.
|
149
|
-
// i.first == //(i.node)
|
150
|
-
// i.last == i.first + node_size
|
151
|
-
// i.cur is a pointer in the range [i.first, i.last). NOTE:
|
152
|
-
// the implication of this is that i.cur is always a dereferenceable
|
153
|
-
// pointer, even if i is a past-the-end iterator.
|
154
|
-
// Start and Finish are always nonsingular iterators. NOTE: this means
|
155
|
-
// that an empty deque must have one node, and that a deque
|
156
|
-
// with N elements, where N is the buffer size, must have two nodes.
|
157
|
-
// For every node other than start.node and finish.node, every element
|
158
|
-
// in the node is an initialized object. If start.node == finish.node,
|
159
|
-
// then [start.cur, finish.cur) are initialized objects, and
|
160
|
-
// the elements outside that range are uninitialized storage. Otherwise,
|
161
|
-
// [start.cur, start.last) and [finish.first, finish.cur) are initialized
|
162
|
-
// objects, and [start.first, start.cur) and [finish.cur, finish.last)
|
163
|
-
// are uninitialized storage.
|
164
|
-
// [map, map + map_size) is a valid, non-empty range.
|
165
|
-
// [start.node, finish.node] is a valid range contained within
|
166
|
-
// [map, map + map_size).
|
167
|
-
// Allocator pointer in the range [map, map + map_size) points to an allocated node
|
168
|
-
// if and only if the pointer is in the range [start.node, finish.node].
|
169
|
-
class const_iterator
|
170
|
-
: public std::iterator<std::random_access_iterator_tag,
|
171
|
-
val_alloc_val, val_alloc_diff,
|
172
|
-
val_alloc_cptr, val_alloc_cref>
|
173
|
-
{
|
174
|
-
public:
|
175
|
-
static size_type s_buffer_size() { return deque_base<T, Allocator>::s_buffer_size(); }
|
176
|
-
|
177
|
-
typedef std::random_access_iterator_tag iterator_category;
|
178
|
-
typedef val_alloc_val value_type;
|
179
|
-
typedef val_alloc_cptr pointer;
|
180
|
-
typedef val_alloc_cref reference;
|
181
|
-
typedef val_alloc_diff difference_type;
|
182
|
-
|
183
|
-
typedef ptr_alloc_ptr index_pointer;
|
184
|
-
typedef const_iterator self_t;
|
185
|
-
|
186
|
-
friend class deque<T, Allocator>;
|
187
|
-
friend class deque_base<T, Allocator>;
|
188
|
-
|
189
|
-
protected:
|
190
|
-
val_alloc_ptr m_cur;
|
191
|
-
val_alloc_ptr m_first;
|
192
|
-
val_alloc_ptr m_last;
|
193
|
-
index_pointer m_node;
|
194
|
-
|
195
|
-
public:
|
196
|
-
const_iterator(val_alloc_ptr x, index_pointer y)
|
197
|
-
: m_cur(x), m_first(*y),
|
198
|
-
m_last(*y + s_buffer_size()), m_node(y) {}
|
199
|
-
|
200
|
-
const_iterator() : m_cur(0), m_first(0), m_last(0), m_node(0) {}
|
201
|
-
|
202
|
-
const_iterator(const const_iterator& x)
|
203
|
-
: m_cur(x.m_cur), m_first(x.m_first),
|
204
|
-
m_last(x.m_last), m_node(x.m_node) {}
|
205
|
-
|
206
|
-
reference operator*() const
|
207
|
-
{ return *this->m_cur; }
|
208
|
-
|
209
|
-
pointer operator->() const
|
210
|
-
{ return this->m_cur; }
|
211
|
-
|
212
|
-
difference_type operator-(const self_t& x) const
|
213
|
-
{
|
214
|
-
if(!this->m_cur && !x.m_cur){
|
215
|
-
return 0;
|
216
|
-
}
|
217
|
-
return difference_type(this->s_buffer_size()) * (this->m_node - x.m_node - 1) +
|
218
|
-
(this->m_cur - this->m_first) + (x.m_last - x.m_cur);
|
219
|
-
}
|
170
|
+
reference operator*() const BOOST_NOEXCEPT_OR_NOTHROW
|
171
|
+
{ return *this->m_cur; }
|
220
172
|
|
221
|
-
|
222
|
-
{
|
223
|
-
++this->m_cur;
|
224
|
-
if (this->m_cur == this->m_last) {
|
225
|
-
this->priv_set_node(this->m_node + 1);
|
226
|
-
this->m_cur = this->m_first;
|
227
|
-
}
|
228
|
-
return *this;
|
229
|
-
}
|
173
|
+
pointer operator->() const BOOST_NOEXCEPT_OR_NOTHROW
|
174
|
+
{ return this->m_cur; }
|
230
175
|
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
return tmp;
|
176
|
+
difference_type operator-(const deque_iterator& x) const BOOST_NOEXCEPT_OR_NOTHROW
|
177
|
+
{
|
178
|
+
if(!this->m_cur && !x.m_cur){
|
179
|
+
return 0;
|
236
180
|
}
|
181
|
+
return difference_type(this->s_buffer_size()) * (this->m_node - x.m_node - 1) +
|
182
|
+
(this->m_cur - this->m_first) + (x.m_last - x.m_cur);
|
183
|
+
}
|
237
184
|
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
--this->m_cur;
|
245
|
-
return *this;
|
185
|
+
deque_iterator& operator++() BOOST_NOEXCEPT_OR_NOTHROW
|
186
|
+
{
|
187
|
+
++this->m_cur;
|
188
|
+
if (this->m_cur == this->m_last) {
|
189
|
+
this->priv_set_node(this->m_node + 1);
|
190
|
+
this->m_cur = this->m_first;
|
246
191
|
}
|
192
|
+
return *this;
|
193
|
+
}
|
247
194
|
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
195
|
+
deque_iterator operator++(int) BOOST_NOEXCEPT_OR_NOTHROW
|
196
|
+
{
|
197
|
+
deque_iterator tmp(*this);
|
198
|
+
++*this;
|
199
|
+
return tmp;
|
200
|
+
}
|
254
201
|
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
else {
|
261
|
-
difference_type node_offset =
|
262
|
-
offset > 0 ? offset / difference_type(this->s_buffer_size())
|
263
|
-
: -difference_type((-offset - 1) / this->s_buffer_size()) - 1;
|
264
|
-
this->priv_set_node(this->m_node + node_offset);
|
265
|
-
this->m_cur = this->m_first +
|
266
|
-
(offset - node_offset * difference_type(this->s_buffer_size()));
|
267
|
-
}
|
268
|
-
return *this;
|
202
|
+
deque_iterator& operator--() BOOST_NOEXCEPT_OR_NOTHROW
|
203
|
+
{
|
204
|
+
if (this->m_cur == this->m_first) {
|
205
|
+
this->priv_set_node(this->m_node - 1);
|
206
|
+
this->m_cur = this->m_last;
|
269
207
|
}
|
208
|
+
--this->m_cur;
|
209
|
+
return *this;
|
210
|
+
}
|
270
211
|
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
self_t operator-(difference_type n) const
|
278
|
-
{ self_t tmp = *this; return tmp -= n; }
|
279
|
-
|
280
|
-
reference operator[](difference_type n) const
|
281
|
-
{ return *(*this + n); }
|
212
|
+
deque_iterator operator--(int) BOOST_NOEXCEPT_OR_NOTHROW
|
213
|
+
{
|
214
|
+
deque_iterator tmp(*this);
|
215
|
+
--*this;
|
216
|
+
return tmp;
|
217
|
+
}
|
282
218
|
|
283
|
-
|
284
|
-
|
219
|
+
deque_iterator& operator+=(difference_type n) BOOST_NOEXCEPT_OR_NOTHROW
|
220
|
+
{
|
221
|
+
difference_type offset = n + (this->m_cur - this->m_first);
|
222
|
+
if (offset >= 0 && offset < difference_type(this->s_buffer_size()))
|
223
|
+
this->m_cur += n;
|
224
|
+
else {
|
225
|
+
difference_type node_offset =
|
226
|
+
offset > 0 ? offset / difference_type(this->s_buffer_size())
|
227
|
+
: -difference_type((-offset - 1) / this->s_buffer_size()) - 1;
|
228
|
+
this->priv_set_node(this->m_node + node_offset);
|
229
|
+
this->m_cur = this->m_first +
|
230
|
+
(offset - node_offset * difference_type(this->s_buffer_size()));
|
231
|
+
}
|
232
|
+
return *this;
|
233
|
+
}
|
285
234
|
|
286
|
-
|
287
|
-
|
235
|
+
deque_iterator operator+(difference_type n) const BOOST_NOEXCEPT_OR_NOTHROW
|
236
|
+
{ deque_iterator tmp(*this); return tmp += n; }
|
288
237
|
|
289
|
-
|
290
|
-
{
|
291
|
-
return (this->m_node == x.m_node) ?
|
292
|
-
(this->m_cur < x.m_cur) : (this->m_node < x.m_node);
|
293
|
-
}
|
238
|
+
deque_iterator& operator-=(difference_type n) BOOST_NOEXCEPT_OR_NOTHROW
|
239
|
+
{ return *this += -n; }
|
294
240
|
|
295
|
-
|
296
|
-
|
241
|
+
deque_iterator operator-(difference_type n) const BOOST_NOEXCEPT_OR_NOTHROW
|
242
|
+
{ deque_iterator tmp(*this); return tmp -= n; }
|
297
243
|
|
298
|
-
|
299
|
-
|
244
|
+
reference operator[](difference_type n) const BOOST_NOEXCEPT_OR_NOTHROW
|
245
|
+
{ return *(*this + n); }
|
300
246
|
|
301
|
-
|
302
|
-
|
247
|
+
friend bool operator==(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
248
|
+
{ return l.m_cur == r.m_cur; }
|
303
249
|
|
304
|
-
|
305
|
-
{
|
306
|
-
this->m_node = new_node;
|
307
|
-
this->m_first = *new_node;
|
308
|
-
this->m_last = this->m_first + this->s_buffer_size();
|
309
|
-
}
|
250
|
+
friend bool operator!=(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
251
|
+
{ return l.m_cur != r.m_cur; }
|
310
252
|
|
311
|
-
|
312
|
-
|
313
|
-
};
|
253
|
+
friend bool operator<(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
254
|
+
{ return (l.m_node == r.m_node) ? (l.m_cur < r.m_cur) : (l.m_node < r.m_node); }
|
314
255
|
|
315
|
-
|
316
|
-
|
317
|
-
{
|
318
|
-
public:
|
319
|
-
typedef std::random_access_iterator_tag iterator_category;
|
320
|
-
typedef val_alloc_val value_type;
|
321
|
-
typedef val_alloc_ptr pointer;
|
322
|
-
typedef val_alloc_ref reference;
|
323
|
-
typedef val_alloc_diff difference_type;
|
324
|
-
typedef ptr_alloc_ptr index_pointer;
|
325
|
-
typedef const_iterator self_t;
|
256
|
+
friend bool operator>(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
257
|
+
{ return r < l; }
|
326
258
|
|
327
|
-
|
328
|
-
|
259
|
+
friend bool operator<=(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
260
|
+
{ return !(r < l); }
|
329
261
|
|
330
|
-
|
331
|
-
|
262
|
+
friend bool operator>=(const deque_iterator& l, const deque_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
|
263
|
+
{ return !(l < r); }
|
332
264
|
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
265
|
+
void priv_set_node(index_pointer new_node) BOOST_NOEXCEPT_OR_NOTHROW
|
266
|
+
{
|
267
|
+
this->m_node = new_node;
|
268
|
+
this->m_first = *new_node;
|
269
|
+
this->m_last = this->m_first + this->s_buffer_size();
|
270
|
+
}
|
339
271
|
|
340
|
-
|
341
|
-
|
342
|
-
|
272
|
+
friend deque_iterator operator+(difference_type n, deque_iterator x) BOOST_NOEXCEPT_OR_NOTHROW
|
273
|
+
{ return x += n; }
|
274
|
+
};
|
343
275
|
|
344
|
-
|
276
|
+
} //namespace container_detail {
|
345
277
|
|
346
|
-
|
347
|
-
|
348
|
-
|
278
|
+
// Deque base class. It has two purposes. First, its constructor
|
279
|
+
// and destructor allocate (but don't initialize) storage. This makes
|
280
|
+
// exception safety easier.
|
281
|
+
template <class Allocator>
|
282
|
+
class deque_base
|
283
|
+
{
|
284
|
+
BOOST_COPYABLE_AND_MOVABLE(deque_base)
|
285
|
+
public:
|
286
|
+
typedef allocator_traits<Allocator> val_alloc_traits_type;
|
287
|
+
typedef typename val_alloc_traits_type::value_type val_alloc_val;
|
288
|
+
typedef typename val_alloc_traits_type::pointer val_alloc_ptr;
|
289
|
+
typedef typename val_alloc_traits_type::const_pointer val_alloc_cptr;
|
290
|
+
typedef typename val_alloc_traits_type::reference val_alloc_ref;
|
291
|
+
typedef typename val_alloc_traits_type::const_reference val_alloc_cref;
|
292
|
+
typedef typename val_alloc_traits_type::difference_type val_alloc_diff;
|
293
|
+
typedef typename val_alloc_traits_type::size_type val_alloc_size;
|
294
|
+
typedef typename val_alloc_traits_type::template
|
295
|
+
portable_rebind_alloc<val_alloc_ptr>::type ptr_alloc_t;
|
296
|
+
typedef allocator_traits<ptr_alloc_t> ptr_alloc_traits_type;
|
297
|
+
typedef typename ptr_alloc_traits_type::value_type ptr_alloc_val;
|
298
|
+
typedef typename ptr_alloc_traits_type::pointer ptr_alloc_ptr;
|
299
|
+
typedef typename ptr_alloc_traits_type::const_pointer ptr_alloc_cptr;
|
300
|
+
typedef typename ptr_alloc_traits_type::reference ptr_alloc_ref;
|
301
|
+
typedef typename ptr_alloc_traits_type::const_reference ptr_alloc_cref;
|
302
|
+
typedef Allocator allocator_type;
|
303
|
+
typedef allocator_type stored_allocator_type;
|
304
|
+
typedef val_alloc_size size_type;
|
349
305
|
|
350
|
-
|
351
|
-
{ iterator tmp = *this; ++*this; return tmp; }
|
352
|
-
|
353
|
-
iterator& operator--()
|
354
|
-
{ this->const_iterator::operator--(); return *this; }
|
306
|
+
protected:
|
355
307
|
|
356
|
-
|
357
|
-
|
308
|
+
typedef deque_value_traits<val_alloc_val> traits_t;
|
309
|
+
typedef ptr_alloc_t map_allocator_type;
|
358
310
|
|
359
|
-
|
360
|
-
|
361
|
-
{ this->const_iterator::operator+=(off); return *this; }
|
311
|
+
static size_type s_buffer_size() BOOST_NOEXCEPT_OR_NOTHROW
|
312
|
+
{ return deque_buf_size<val_alloc_val>::value; }
|
362
313
|
|
363
|
-
|
364
|
-
|
314
|
+
val_alloc_ptr priv_allocate_node()
|
315
|
+
{ return this->alloc().allocate(s_buffer_size()); }
|
365
316
|
|
366
|
-
|
367
|
-
|
317
|
+
void priv_deallocate_node(val_alloc_ptr p) BOOST_NOEXCEPT_OR_NOTHROW
|
318
|
+
{ this->alloc().deallocate(p, s_buffer_size()); }
|
368
319
|
|
369
|
-
|
370
|
-
|
320
|
+
ptr_alloc_ptr priv_allocate_map(size_type n)
|
321
|
+
{ return this->ptr_alloc().allocate(n); }
|
371
322
|
|
372
|
-
|
373
|
-
|
323
|
+
void priv_deallocate_map(ptr_alloc_ptr p, size_type n) BOOST_NOEXCEPT_OR_NOTHROW
|
324
|
+
{ this->ptr_alloc().deallocate(p, n); }
|
374
325
|
|
375
|
-
|
376
|
-
|
377
|
-
};
|
326
|
+
typedef container_detail::deque_iterator<val_alloc_ptr, false> iterator;
|
327
|
+
typedef container_detail::deque_iterator<val_alloc_ptr, true > const_iterator;
|
378
328
|
|
379
329
|
deque_base(size_type num_elements, const allocator_type& a)
|
380
330
|
: members_(a)
|
@@ -403,15 +353,15 @@ class deque_base
|
|
403
353
|
|
404
354
|
private:
|
405
355
|
deque_base(const deque_base&);
|
406
|
-
|
356
|
+
|
407
357
|
protected:
|
408
358
|
|
409
|
-
void swap_members(deque_base &x)
|
359
|
+
void swap_members(deque_base &x) BOOST_NOEXCEPT_OR_NOTHROW
|
410
360
|
{
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
361
|
+
::boost::adl_move_swap(this->members_.m_start, x.members_.m_start);
|
362
|
+
::boost::adl_move_swap(this->members_.m_finish, x.members_.m_finish);
|
363
|
+
::boost::adl_move_swap(this->members_.m_map, x.members_.m_map);
|
364
|
+
::boost::adl_move_swap(this->members_.m_map_size, x.members_.m_map_size);
|
415
365
|
}
|
416
366
|
|
417
367
|
void priv_initialize_map(size_type num_elements)
|
@@ -424,7 +374,7 @@ class deque_base
|
|
424
374
|
|
425
375
|
ptr_alloc_ptr nstart = this->members_.m_map + (this->members_.m_map_size - num_nodes) / 2;
|
426
376
|
ptr_alloc_ptr nfinish = nstart + num_nodes;
|
427
|
-
|
377
|
+
|
428
378
|
BOOST_TRY {
|
429
379
|
this->priv_create_nodes(nstart, nfinish);
|
430
380
|
}
|
@@ -446,9 +396,9 @@ class deque_base
|
|
446
396
|
|
447
397
|
void priv_create_nodes(ptr_alloc_ptr nstart, ptr_alloc_ptr nfinish)
|
448
398
|
{
|
449
|
-
ptr_alloc_ptr cur;
|
399
|
+
ptr_alloc_ptr cur = nstart;
|
450
400
|
BOOST_TRY {
|
451
|
-
for (
|
401
|
+
for (; cur < nfinish; ++cur)
|
452
402
|
*cur = this->priv_allocate_node();
|
453
403
|
}
|
454
404
|
BOOST_CATCH(...){
|
@@ -458,13 +408,13 @@ class deque_base
|
|
458
408
|
BOOST_CATCH_END
|
459
409
|
}
|
460
410
|
|
461
|
-
void priv_destroy_nodes(ptr_alloc_ptr nstart, ptr_alloc_ptr nfinish)
|
411
|
+
void priv_destroy_nodes(ptr_alloc_ptr nstart, ptr_alloc_ptr nfinish) BOOST_NOEXCEPT_OR_NOTHROW
|
462
412
|
{
|
463
413
|
for (ptr_alloc_ptr n = nstart; n < nfinish; ++n)
|
464
414
|
this->priv_deallocate_node(*n);
|
465
415
|
}
|
466
416
|
|
467
|
-
void priv_clear_map()
|
417
|
+
void priv_clear_map() BOOST_NOEXCEPT_OR_NOTHROW
|
468
418
|
{
|
469
419
|
if (this->members_.m_map) {
|
470
420
|
this->priv_destroy_nodes(this->members_.m_start.m_node, this->members_.m_finish.m_node + 1);
|
@@ -509,33 +459,36 @@ class deque_base
|
|
509
459
|
iterator m_finish;
|
510
460
|
} members_;
|
511
461
|
|
512
|
-
ptr_alloc_t &ptr_alloc()
|
462
|
+
ptr_alloc_t &ptr_alloc() BOOST_NOEXCEPT_OR_NOTHROW
|
513
463
|
{ return members_; }
|
514
|
-
|
515
|
-
const ptr_alloc_t &ptr_alloc() const
|
464
|
+
|
465
|
+
const ptr_alloc_t &ptr_alloc() const BOOST_NOEXCEPT_OR_NOTHROW
|
516
466
|
{ return members_; }
|
517
467
|
|
518
|
-
allocator_type &alloc()
|
468
|
+
allocator_type &alloc() BOOST_NOEXCEPT_OR_NOTHROW
|
519
469
|
{ return members_; }
|
520
|
-
|
521
|
-
const allocator_type &alloc() const
|
470
|
+
|
471
|
+
const allocator_type &alloc() const BOOST_NOEXCEPT_OR_NOTHROW
|
522
472
|
{ return members_; }
|
523
473
|
};
|
524
|
-
|
474
|
+
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
525
475
|
|
526
|
-
//! Deque class
|
527
|
-
//!
|
528
476
|
#ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
|
529
|
-
|
477
|
+
//! A double-ended queue is a sequence that supports random access to elements, constant time insertion
|
478
|
+
//! and removal of elements at the end of the sequence, and linear time insertion and removal of elements in the middle.
|
479
|
+
//!
|
480
|
+
//! \tparam T The type of object that is stored in the deque
|
481
|
+
//! \tparam Allocator The allocator used for all internal memory management
|
482
|
+
template <class T, class Allocator = new_allocator<T> >
|
530
483
|
#else
|
531
484
|
template <class T, class Allocator>
|
532
485
|
#endif
|
533
|
-
class deque : protected deque_base<
|
486
|
+
class deque : protected deque_base<Allocator>
|
534
487
|
{
|
535
|
-
|
488
|
+
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
536
489
|
private:
|
537
|
-
typedef deque_base<
|
538
|
-
|
490
|
+
typedef deque_base<Allocator> Base;
|
491
|
+
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
539
492
|
|
540
493
|
public:
|
541
494
|
|
@@ -556,10 +509,10 @@ class deque : protected deque_base<T, Allocator>
|
|
556
509
|
typedef BOOST_CONTAINER_IMPDEF(allocator_type) stored_allocator_type;
|
557
510
|
typedef BOOST_CONTAINER_IMPDEF(typename Base::iterator) iterator;
|
558
511
|
typedef BOOST_CONTAINER_IMPDEF(typename Base::const_iterator) const_iterator;
|
559
|
-
typedef BOOST_CONTAINER_IMPDEF(
|
560
|
-
typedef BOOST_CONTAINER_IMPDEF(
|
512
|
+
typedef BOOST_CONTAINER_IMPDEF(boost::container::reverse_iterator<iterator>) reverse_iterator;
|
513
|
+
typedef BOOST_CONTAINER_IMPDEF(boost::container::reverse_iterator<const_iterator>) const_reverse_iterator;
|
561
514
|
|
562
|
-
|
515
|
+
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
563
516
|
|
564
517
|
private: // Internal typedefs
|
565
518
|
BOOST_COPYABLE_AND_MOVABLE(deque)
|
@@ -568,7 +521,7 @@ class deque : protected deque_base<T, Allocator>
|
|
568
521
|
{ return Base::s_buffer_size(); }
|
569
522
|
typedef allocator_traits<Allocator> allocator_traits_type;
|
570
523
|
|
571
|
-
|
524
|
+
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
572
525
|
|
573
526
|
public:
|
574
527
|
//////////////////////////////////////////////
|
@@ -591,30 +544,79 @@ class deque : protected deque_base<T, Allocator>
|
|
591
544
|
//! <b>Throws</b>: Nothing
|
592
545
|
//!
|
593
546
|
//! <b>Complexity</b>: Constant.
|
594
|
-
explicit deque(const allocator_type& a)
|
547
|
+
explicit deque(const allocator_type& a) BOOST_NOEXCEPT_OR_NOTHROW
|
595
548
|
: Base(a)
|
596
549
|
{}
|
597
550
|
|
598
|
-
//! <b>Effects</b>: Constructs a deque
|
599
|
-
//! and inserts n
|
551
|
+
//! <b>Effects</b>: Constructs a deque
|
552
|
+
//! and inserts n value initialized values.
|
600
553
|
//!
|
601
|
-
//! <b>Throws</b>: If allocator_type's default constructor
|
602
|
-
//! throws or T's
|
554
|
+
//! <b>Throws</b>: If allocator_type's default constructor
|
555
|
+
//! throws or T's value initialization throws.
|
603
556
|
//!
|
604
557
|
//! <b>Complexity</b>: Linear to n.
|
605
558
|
explicit deque(size_type n)
|
606
559
|
: Base(n, allocator_type())
|
607
560
|
{
|
608
|
-
container_detail::
|
609
|
-
proxy.uninitialized_copy_n_and_update(this->begin(), n);
|
561
|
+
container_detail::insert_value_initialized_n_proxy<Allocator, iterator> proxy;
|
562
|
+
proxy.uninitialized_copy_n_and_update(this->alloc(), this->begin(), n);
|
563
|
+
//deque_base will deallocate in case of exception...
|
564
|
+
}
|
565
|
+
|
566
|
+
//! <b>Effects</b>: Constructs a deque
|
567
|
+
//! and inserts n default initialized values.
|
568
|
+
//!
|
569
|
+
//! <b>Throws</b>: If allocator_type's default constructor
|
570
|
+
//! throws or T's default initialization or copy constructor throws.
|
571
|
+
//!
|
572
|
+
//! <b>Complexity</b>: Linear to n.
|
573
|
+
//!
|
574
|
+
//! <b>Note</b>: Non-standard extension
|
575
|
+
deque(size_type n, default_init_t)
|
576
|
+
: Base(n, allocator_type())
|
577
|
+
{
|
578
|
+
container_detail::insert_default_initialized_n_proxy<Allocator, iterator> proxy;
|
579
|
+
proxy.uninitialized_copy_n_and_update(this->alloc(), this->begin(), n);
|
580
|
+
//deque_base will deallocate in case of exception...
|
581
|
+
}
|
582
|
+
|
583
|
+
//! <b>Effects</b>: Constructs a deque that will use a copy of allocator a
|
584
|
+
//! and inserts n value initialized values.
|
585
|
+
//!
|
586
|
+
//! <b>Throws</b>: If allocator_type's default constructor
|
587
|
+
//! throws or T's value initialization throws.
|
588
|
+
//!
|
589
|
+
//! <b>Complexity</b>: Linear to n.
|
590
|
+
explicit deque(size_type n, const allocator_type &a)
|
591
|
+
: Base(n, a)
|
592
|
+
{
|
593
|
+
container_detail::insert_value_initialized_n_proxy<Allocator, iterator> proxy;
|
594
|
+
proxy.uninitialized_copy_n_and_update(this->alloc(), this->begin(), n);
|
595
|
+
//deque_base will deallocate in case of exception...
|
596
|
+
}
|
597
|
+
|
598
|
+
//! <b>Effects</b>: Constructs a deque that will use a copy of allocator a
|
599
|
+
//! and inserts n default initialized values.
|
600
|
+
//!
|
601
|
+
//! <b>Throws</b>: If allocator_type's default constructor
|
602
|
+
//! throws or T's default initialization or copy constructor throws.
|
603
|
+
//!
|
604
|
+
//! <b>Complexity</b>: Linear to n.
|
605
|
+
//!
|
606
|
+
//! <b>Note</b>: Non-standard extension
|
607
|
+
deque(size_type n, default_init_t, const allocator_type &a)
|
608
|
+
: Base(n, a)
|
609
|
+
{
|
610
|
+
container_detail::insert_default_initialized_n_proxy<Allocator, iterator> proxy;
|
611
|
+
proxy.uninitialized_copy_n_and_update(this->alloc(), this->begin(), n);
|
610
612
|
//deque_base will deallocate in case of exception...
|
611
613
|
}
|
612
614
|
|
613
615
|
//! <b>Effects</b>: Constructs a deque that will use a copy of allocator a
|
614
616
|
//! and inserts n copies of value.
|
615
617
|
//!
|
616
|
-
//! <b>Throws</b>: If allocator_type's default constructor
|
617
|
-
//! throws or T's
|
618
|
+
//! <b>Throws</b>: If allocator_type's default constructor
|
619
|
+
//! throws or T's copy constructor throws.
|
618
620
|
//!
|
619
621
|
//! <b>Complexity</b>: Linear to n.
|
620
622
|
deque(size_type n, const value_type& value,
|
@@ -625,8 +627,8 @@ class deque : protected deque_base<T, Allocator>
|
|
625
627
|
//! <b>Effects</b>: Constructs a deque that will use a copy of allocator a
|
626
628
|
//! and inserts a copy of the range [first, last) in the deque.
|
627
629
|
//!
|
628
|
-
//! <b>Throws</b>: If allocator_type's default constructor
|
629
|
-
//! throws or T's constructor taking
|
630
|
+
//! <b>Throws</b>: If allocator_type's default constructor
|
631
|
+
//! throws or T's constructor taking a dereferenced InIt throws.
|
630
632
|
//!
|
631
633
|
//! <b>Complexity</b>: Linear to the range [first, last).
|
632
634
|
template <class InIt>
|
@@ -639,9 +641,23 @@ class deque : protected deque_base<T, Allocator>
|
|
639
641
|
)
|
640
642
|
: Base(a)
|
641
643
|
{
|
642
|
-
|
643
|
-
|
644
|
+
this->priv_range_initialize(first, last);
|
645
|
+
}
|
646
|
+
|
647
|
+
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
648
|
+
//! <b>Effects</b>: Constructs a deque that will use a copy of allocator a
|
649
|
+
//! and inserts a copy of the range [il.begin(), il.end()) in the deque.
|
650
|
+
//!
|
651
|
+
//! <b>Throws</b>: If allocator_type's default constructor
|
652
|
+
//! throws or T's constructor taking a dereferenced std::initializer_list iterator throws.
|
653
|
+
//!
|
654
|
+
//! <b>Complexity</b>: Linear to the range [il.begin(), il.end()).
|
655
|
+
deque(std::initializer_list<value_type> il, const allocator_type& a = allocator_type())
|
656
|
+
: Base(a)
|
657
|
+
{
|
658
|
+
this->priv_range_initialize(il.begin(), il.end());
|
644
659
|
}
|
660
|
+
#endif
|
645
661
|
|
646
662
|
//! <b>Effects</b>: Copy constructs a deque.
|
647
663
|
//!
|
@@ -658,13 +674,13 @@ class deque : protected deque_base<T, Allocator>
|
|
658
674
|
}
|
659
675
|
}
|
660
676
|
|
661
|
-
//! <b>Effects</b>: Move constructor. Moves
|
677
|
+
//! <b>Effects</b>: Move constructor. Moves x's resources to *this.
|
662
678
|
//!
|
663
679
|
//! <b>Throws</b>: If allocator_type's copy constructor throws.
|
664
680
|
//!
|
665
681
|
//! <b>Complexity</b>: Constant.
|
666
682
|
deque(BOOST_RV_REF(deque) x)
|
667
|
-
: Base(
|
683
|
+
: Base(BOOST_MOVE_BASE(Base, x))
|
668
684
|
{ this->swap_members(x); }
|
669
685
|
|
670
686
|
//! <b>Effects</b>: Copy constructs a vector using the specified allocator.
|
@@ -686,23 +702,24 @@ class deque : protected deque_base<T, Allocator>
|
|
686
702
|
}
|
687
703
|
|
688
704
|
//! <b>Effects</b>: Move constructor using the specified allocator.
|
689
|
-
//! Moves
|
705
|
+
//! Moves x's resources to *this if a == allocator_type().
|
690
706
|
//! Otherwise copies values from x to *this.
|
691
707
|
//!
|
692
708
|
//! <b>Throws</b>: If allocation or T's copy constructor throws.
|
693
709
|
//!
|
694
|
-
//! <b>Complexity</b>: Constant if a ==
|
695
|
-
deque(BOOST_RV_REF(deque)
|
710
|
+
//! <b>Complexity</b>: Constant if a == x.get_allocator(), linear otherwise.
|
711
|
+
deque(BOOST_RV_REF(deque) x, const allocator_type &a)
|
696
712
|
: Base(a)
|
697
713
|
{
|
698
|
-
if(
|
699
|
-
this->swap_members(
|
714
|
+
if(x.alloc() == a){
|
715
|
+
this->swap_members(x);
|
700
716
|
}
|
701
717
|
else{
|
702
|
-
if(
|
703
|
-
this->priv_initialize_map(
|
718
|
+
if(x.size()){
|
719
|
+
this->priv_initialize_map(x.size());
|
704
720
|
boost::container::uninitialized_copy_alloc
|
705
|
-
(this->alloc(),
|
721
|
+
( this->alloc(), boost::make_move_iterator(x.begin())
|
722
|
+
, boost::make_move_iterator(x.end()), this->members_.m_start);
|
706
723
|
}
|
707
724
|
}
|
708
725
|
}
|
@@ -713,7 +730,7 @@ class deque : protected deque_base<T, Allocator>
|
|
713
730
|
//! <b>Throws</b>: Nothing.
|
714
731
|
//!
|
715
732
|
//! <b>Complexity</b>: Linear to the number of elements.
|
716
|
-
~deque()
|
733
|
+
~deque() BOOST_NOEXCEPT_OR_NOTHROW
|
717
734
|
{
|
718
735
|
this->priv_destroy_range(this->members_.m_start, this->members_.m_finish);
|
719
736
|
}
|
@@ -744,40 +761,60 @@ class deque : protected deque_base<T, Allocator>
|
|
744
761
|
return *this;
|
745
762
|
}
|
746
763
|
|
747
|
-
//! <b>Effects</b>: Move assignment. All
|
748
|
-
//!
|
749
|
-
//! <b>Postcondition</b>: x.empty(). *this contains a the elements x had
|
750
|
-
//! before the function.
|
764
|
+
//! <b>Effects</b>: Move assignment. All x's values are transferred to *this.
|
751
765
|
//!
|
752
|
-
//! <b>Throws</b>: If
|
766
|
+
//! <b>Throws</b>: If allocator_traits_type::propagate_on_container_move_assignment
|
767
|
+
//! is false and (allocation throws or value_type's move constructor throws)
|
753
768
|
//!
|
754
|
-
//! <b>Complexity</b>:
|
769
|
+
//! <b>Complexity</b>: Constant if allocator_traits_type::
|
770
|
+
//! propagate_on_container_move_assignment is true or
|
771
|
+
//! this->get>allocator() == x.get_allocator(). Linear otherwise.
|
755
772
|
deque& operator= (BOOST_RV_REF(deque) x)
|
773
|
+
BOOST_NOEXCEPT_IF(allocator_traits_type::propagate_on_container_move_assignment::value
|
774
|
+
|| allocator_traits_type::is_always_equal::value)
|
756
775
|
{
|
757
|
-
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
|
762
|
-
|
763
|
-
|
764
|
-
|
765
|
-
|
766
|
-
|
767
|
-
|
768
|
-
|
769
|
-
|
770
|
-
|
771
|
-
|
772
|
-
|
773
|
-
|
774
|
-
|
775
|
-
|
776
|
-
|
776
|
+
BOOST_ASSERT(this != &x);
|
777
|
+
allocator_type &this_alloc = this->alloc();
|
778
|
+
allocator_type &x_alloc = x.alloc();
|
779
|
+
const bool propagate_alloc = allocator_traits_type::
|
780
|
+
propagate_on_container_move_assignment::value;
|
781
|
+
container_detail::bool_<propagate_alloc> flag;
|
782
|
+
const bool allocators_equal = this_alloc == x_alloc; (void)allocators_equal;
|
783
|
+
//Resources can be transferred if both allocators are
|
784
|
+
//going to be equal after this function (either propagated or already equal)
|
785
|
+
if(propagate_alloc || allocators_equal){
|
786
|
+
//Destroy objects but retain memory in case x reuses it in the future
|
787
|
+
this->clear();
|
788
|
+
//Move allocator if needed
|
789
|
+
container_detail::move_alloc(this_alloc, x_alloc, flag);
|
790
|
+
container_detail::move_alloc(this->ptr_alloc(), x.ptr_alloc(), flag);
|
791
|
+
//Nothrow swap
|
792
|
+
this->swap_members(x);
|
793
|
+
}
|
794
|
+
//Else do a one by one move
|
795
|
+
else{
|
796
|
+
this->assign( boost::make_move_iterator(x.begin())
|
797
|
+
, boost::make_move_iterator(x.end()));
|
777
798
|
}
|
778
799
|
return *this;
|
779
800
|
}
|
780
801
|
|
802
|
+
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
803
|
+
//! <b>Effects</b>: Makes *this contain the same elements as il.
|
804
|
+
//!
|
805
|
+
//! <b>Postcondition</b>: this->size() == il.size(). *this contains a copy
|
806
|
+
//! of each of x's elements.
|
807
|
+
//!
|
808
|
+
//! <b>Throws</b>: If memory allocation throws or T's copy constructor throws.
|
809
|
+
//!
|
810
|
+
//! <b>Complexity</b>: Linear to the number of elements in il.
|
811
|
+
deque& operator=(std::initializer_list<value_type> il)
|
812
|
+
{
|
813
|
+
this->assign(il.begin(), il.end());
|
814
|
+
return *this;
|
815
|
+
}
|
816
|
+
#endif
|
817
|
+
|
781
818
|
//! <b>Effects</b>: Assigns the n copies of val to *this.
|
782
819
|
//!
|
783
820
|
//! <b>Throws</b>: If memory allocation throws or T's copy constructor throws.
|
@@ -798,9 +835,10 @@ class deque : protected deque_base<T, Allocator>
|
|
798
835
|
template <class InIt>
|
799
836
|
void assign(InIt first, InIt last
|
800
837
|
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
801
|
-
, typename container_detail::
|
802
|
-
<
|
803
|
-
|
838
|
+
, typename container_detail::disable_if_or
|
839
|
+
< void
|
840
|
+
, container_detail::is_convertible<InIt, size_type>
|
841
|
+
, container_detail::is_not_input_iterator<InIt>
|
804
842
|
>::type * = 0
|
805
843
|
#endif
|
806
844
|
)
|
@@ -820,16 +858,17 @@ class deque : protected deque_base<T, Allocator>
|
|
820
858
|
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
821
859
|
template <class FwdIt>
|
822
860
|
void assign(FwdIt first, FwdIt last
|
823
|
-
, typename container_detail::
|
824
|
-
<
|
825
|
-
|
861
|
+
, typename container_detail::disable_if_or
|
862
|
+
< void
|
863
|
+
, container_detail::is_convertible<FwdIt, size_type>
|
864
|
+
, container_detail::is_input_iterator<FwdIt>
|
826
865
|
>::type * = 0
|
827
866
|
)
|
828
867
|
{
|
829
|
-
const size_type len =
|
868
|
+
const size_type len = boost::container::iterator_distance(first, last);
|
830
869
|
if (len > size()) {
|
831
870
|
FwdIt mid = first;
|
832
|
-
|
871
|
+
boost::container::iterator_advance(mid, this->size());
|
833
872
|
boost::container::copy(first, mid, begin());
|
834
873
|
this->insert(this->cend(), mid, last);
|
835
874
|
}
|
@@ -839,12 +878,23 @@ class deque : protected deque_base<T, Allocator>
|
|
839
878
|
}
|
840
879
|
#endif
|
841
880
|
|
881
|
+
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
882
|
+
//! <b>Effects</b>: Assigns the the range [il.begin(), il.end()) to *this.
|
883
|
+
//!
|
884
|
+
//! <b>Throws</b>: If memory allocation throws or
|
885
|
+
//! T's constructor from dereferencing std::initializer_list iterator throws.
|
886
|
+
//!
|
887
|
+
//! <b>Complexity</b>: Linear to il.size().
|
888
|
+
void assign(std::initializer_list<value_type> il)
|
889
|
+
{ this->assign(il.begin(), il.end()); }
|
890
|
+
#endif
|
891
|
+
|
842
892
|
//! <b>Effects</b>: Returns a copy of the internal allocator.
|
843
893
|
//!
|
844
894
|
//! <b>Throws</b>: If allocator's copy constructor throws.
|
845
895
|
//!
|
846
896
|
//! <b>Complexity</b>: Constant.
|
847
|
-
allocator_type get_allocator() const
|
897
|
+
allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
|
848
898
|
{ return Base::alloc(); }
|
849
899
|
|
850
900
|
//! <b>Effects</b>: Returns a reference to the internal allocator.
|
@@ -854,7 +904,7 @@ class deque : protected deque_base<T, Allocator>
|
|
854
904
|
//! <b>Complexity</b>: Constant.
|
855
905
|
//!
|
856
906
|
//! <b>Note</b>: Non-standard extension.
|
857
|
-
const stored_allocator_type &get_stored_allocator() const
|
907
|
+
const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
|
858
908
|
{ return Base::alloc(); }
|
859
909
|
|
860
910
|
//////////////////////////////////////////////
|
@@ -870,7 +920,7 @@ class deque : protected deque_base<T, Allocator>
|
|
870
920
|
//! <b>Complexity</b>: Constant.
|
871
921
|
//!
|
872
922
|
//! <b>Note</b>: Non-standard extension.
|
873
|
-
stored_allocator_type &get_stored_allocator()
|
923
|
+
stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW
|
874
924
|
{ return Base::alloc(); }
|
875
925
|
|
876
926
|
//! <b>Effects</b>: Returns an iterator to the first element contained in the deque.
|
@@ -878,7 +928,7 @@ class deque : protected deque_base<T, Allocator>
|
|
878
928
|
//! <b>Throws</b>: Nothing.
|
879
929
|
//!
|
880
930
|
//! <b>Complexity</b>: Constant.
|
881
|
-
iterator begin()
|
931
|
+
iterator begin() BOOST_NOEXCEPT_OR_NOTHROW
|
882
932
|
{ return this->members_.m_start; }
|
883
933
|
|
884
934
|
//! <b>Effects</b>: Returns a const_iterator to the first element contained in the deque.
|
@@ -886,7 +936,7 @@ class deque : protected deque_base<T, Allocator>
|
|
886
936
|
//! <b>Throws</b>: Nothing.
|
887
937
|
//!
|
888
938
|
//! <b>Complexity</b>: Constant.
|
889
|
-
const_iterator begin() const
|
939
|
+
const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW
|
890
940
|
{ return this->members_.m_start; }
|
891
941
|
|
892
942
|
//! <b>Effects</b>: Returns an iterator to the end of the deque.
|
@@ -894,7 +944,7 @@ class deque : protected deque_base<T, Allocator>
|
|
894
944
|
//! <b>Throws</b>: Nothing.
|
895
945
|
//!
|
896
946
|
//! <b>Complexity</b>: Constant.
|
897
|
-
iterator end()
|
947
|
+
iterator end() BOOST_NOEXCEPT_OR_NOTHROW
|
898
948
|
{ return this->members_.m_finish; }
|
899
949
|
|
900
950
|
//! <b>Effects</b>: Returns a const_iterator to the end of the deque.
|
@@ -902,7 +952,7 @@ class deque : protected deque_base<T, Allocator>
|
|
902
952
|
//! <b>Throws</b>: Nothing.
|
903
953
|
//!
|
904
954
|
//! <b>Complexity</b>: Constant.
|
905
|
-
const_iterator end() const
|
955
|
+
const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW
|
906
956
|
{ return this->members_.m_finish; }
|
907
957
|
|
908
958
|
//! <b>Effects</b>: Returns a reverse_iterator pointing to the beginning
|
@@ -911,7 +961,7 @@ class deque : protected deque_base<T, Allocator>
|
|
911
961
|
//! <b>Throws</b>: Nothing.
|
912
962
|
//!
|
913
963
|
//! <b>Complexity</b>: Constant.
|
914
|
-
reverse_iterator rbegin()
|
964
|
+
reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW
|
915
965
|
{ return reverse_iterator(this->members_.m_finish); }
|
916
966
|
|
917
967
|
//! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
|
@@ -920,7 +970,7 @@ class deque : protected deque_base<T, Allocator>
|
|
920
970
|
//! <b>Throws</b>: Nothing.
|
921
971
|
//!
|
922
972
|
//! <b>Complexity</b>: Constant.
|
923
|
-
const_reverse_iterator rbegin() const
|
973
|
+
const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW
|
924
974
|
{ return const_reverse_iterator(this->members_.m_finish); }
|
925
975
|
|
926
976
|
//! <b>Effects</b>: Returns a reverse_iterator pointing to the end
|
@@ -929,7 +979,7 @@ class deque : protected deque_base<T, Allocator>
|
|
929
979
|
//! <b>Throws</b>: Nothing.
|
930
980
|
//!
|
931
981
|
//! <b>Complexity</b>: Constant.
|
932
|
-
reverse_iterator rend()
|
982
|
+
reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW
|
933
983
|
{ return reverse_iterator(this->members_.m_start); }
|
934
984
|
|
935
985
|
//! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
|
@@ -938,7 +988,7 @@ class deque : protected deque_base<T, Allocator>
|
|
938
988
|
//! <b>Throws</b>: Nothing.
|
939
989
|
//!
|
940
990
|
//! <b>Complexity</b>: Constant.
|
941
|
-
const_reverse_iterator rend() const
|
991
|
+
const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW
|
942
992
|
{ return const_reverse_iterator(this->members_.m_start); }
|
943
993
|
|
944
994
|
//! <b>Effects</b>: Returns a const_iterator to the first element contained in the deque.
|
@@ -946,7 +996,7 @@ class deque : protected deque_base<T, Allocator>
|
|
946
996
|
//! <b>Throws</b>: Nothing.
|
947
997
|
//!
|
948
998
|
//! <b>Complexity</b>: Constant.
|
949
|
-
const_iterator cbegin() const
|
999
|
+
const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW
|
950
1000
|
{ return this->members_.m_start; }
|
951
1001
|
|
952
1002
|
//! <b>Effects</b>: Returns a const_iterator to the end of the deque.
|
@@ -954,7 +1004,7 @@ class deque : protected deque_base<T, Allocator>
|
|
954
1004
|
//! <b>Throws</b>: Nothing.
|
955
1005
|
//!
|
956
1006
|
//! <b>Complexity</b>: Constant.
|
957
|
-
const_iterator cend() const
|
1007
|
+
const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW
|
958
1008
|
{ return this->members_.m_finish; }
|
959
1009
|
|
960
1010
|
//! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
|
@@ -963,7 +1013,7 @@ class deque : protected deque_base<T, Allocator>
|
|
963
1013
|
//! <b>Throws</b>: Nothing.
|
964
1014
|
//!
|
965
1015
|
//! <b>Complexity</b>: Constant.
|
966
|
-
const_reverse_iterator crbegin() const
|
1016
|
+
const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW
|
967
1017
|
{ return const_reverse_iterator(this->members_.m_finish); }
|
968
1018
|
|
969
1019
|
//! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
|
@@ -972,7 +1022,7 @@ class deque : protected deque_base<T, Allocator>
|
|
972
1022
|
//! <b>Throws</b>: Nothing.
|
973
1023
|
//!
|
974
1024
|
//! <b>Complexity</b>: Constant.
|
975
|
-
const_reverse_iterator crend() const
|
1025
|
+
const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW
|
976
1026
|
{ return const_reverse_iterator(this->members_.m_start); }
|
977
1027
|
|
978
1028
|
//////////////////////////////////////////////
|
@@ -986,7 +1036,7 @@ class deque : protected deque_base<T, Allocator>
|
|
986
1036
|
//! <b>Throws</b>: Nothing.
|
987
1037
|
//!
|
988
1038
|
//! <b>Complexity</b>: Constant.
|
989
|
-
bool empty() const
|
1039
|
+
bool empty() const BOOST_NOEXCEPT_OR_NOTHROW
|
990
1040
|
{ return this->members_.m_finish == this->members_.m_start; }
|
991
1041
|
|
992
1042
|
//! <b>Effects</b>: Returns the number of the elements contained in the deque.
|
@@ -994,7 +1044,7 @@ class deque : protected deque_base<T, Allocator>
|
|
994
1044
|
//! <b>Throws</b>: Nothing.
|
995
1045
|
//!
|
996
1046
|
//! <b>Complexity</b>: Constant.
|
997
|
-
size_type size() const
|
1047
|
+
size_type size() const BOOST_NOEXCEPT_OR_NOTHROW
|
998
1048
|
{ return this->members_.m_finish - this->members_.m_start; }
|
999
1049
|
|
1000
1050
|
//! <b>Effects</b>: Returns the largest possible size of the deque.
|
@@ -1002,13 +1052,13 @@ class deque : protected deque_base<T, Allocator>
|
|
1002
1052
|
//! <b>Throws</b>: Nothing.
|
1003
1053
|
//!
|
1004
1054
|
//! <b>Complexity</b>: Constant.
|
1005
|
-
size_type max_size() const
|
1055
|
+
size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
|
1006
1056
|
{ return allocator_traits_type::max_size(this->alloc()); }
|
1007
1057
|
|
1008
1058
|
//! <b>Effects</b>: Inserts or erases elements at the end such that
|
1009
|
-
//! the size becomes n. New elements are
|
1059
|
+
//! the size becomes n. New elements are value initialized.
|
1010
1060
|
//!
|
1011
|
-
//! <b>Throws</b>: If memory allocation throws, or T's
|
1061
|
+
//! <b>Throws</b>: If memory allocation throws, or T's constructor throws.
|
1012
1062
|
//!
|
1013
1063
|
//! <b>Complexity</b>: Linear to the difference between size() and new_size.
|
1014
1064
|
void resize(size_type new_size)
|
@@ -1018,7 +1068,27 @@ class deque : protected deque_base<T, Allocator>
|
|
1018
1068
|
this->priv_erase_last_n(len - new_size);
|
1019
1069
|
else{
|
1020
1070
|
const size_type n = new_size - this->size();
|
1021
|
-
container_detail::
|
1071
|
+
container_detail::insert_value_initialized_n_proxy<Allocator, iterator> proxy;
|
1072
|
+
priv_insert_back_aux_impl(n, proxy);
|
1073
|
+
}
|
1074
|
+
}
|
1075
|
+
|
1076
|
+
//! <b>Effects</b>: Inserts or erases elements at the end such that
|
1077
|
+
//! the size becomes n. New elements are default initialized.
|
1078
|
+
//!
|
1079
|
+
//! <b>Throws</b>: If memory allocation throws, or T's constructor throws.
|
1080
|
+
//!
|
1081
|
+
//! <b>Complexity</b>: Linear to the difference between size() and new_size.
|
1082
|
+
//!
|
1083
|
+
//! <b>Note</b>: Non-standard extension
|
1084
|
+
void resize(size_type new_size, default_init_t)
|
1085
|
+
{
|
1086
|
+
const size_type len = size();
|
1087
|
+
if (new_size < len)
|
1088
|
+
this->priv_erase_last_n(len - new_size);
|
1089
|
+
else{
|
1090
|
+
const size_type n = new_size - this->size();
|
1091
|
+
container_detail::insert_default_initialized_n_proxy<Allocator, iterator> proxy;
|
1022
1092
|
priv_insert_back_aux_impl(n, proxy);
|
1023
1093
|
}
|
1024
1094
|
}
|
@@ -1069,8 +1139,11 @@ class deque : protected deque_base<T, Allocator>
|
|
1069
1139
|
//! <b>Throws</b>: Nothing.
|
1070
1140
|
//!
|
1071
1141
|
//! <b>Complexity</b>: Constant.
|
1072
|
-
reference front()
|
1073
|
-
|
1142
|
+
reference front() BOOST_NOEXCEPT_OR_NOTHROW
|
1143
|
+
{
|
1144
|
+
BOOST_ASSERT(!this->empty());
|
1145
|
+
return *this->members_.m_start;
|
1146
|
+
}
|
1074
1147
|
|
1075
1148
|
//! <b>Requires</b>: !empty()
|
1076
1149
|
//!
|
@@ -1080,8 +1153,11 @@ class deque : protected deque_base<T, Allocator>
|
|
1080
1153
|
//! <b>Throws</b>: Nothing.
|
1081
1154
|
//!
|
1082
1155
|
//! <b>Complexity</b>: Constant.
|
1083
|
-
const_reference front() const
|
1084
|
-
|
1156
|
+
const_reference front() const BOOST_NOEXCEPT_OR_NOTHROW
|
1157
|
+
{
|
1158
|
+
BOOST_ASSERT(!this->empty());
|
1159
|
+
return *this->members_.m_start;
|
1160
|
+
}
|
1085
1161
|
|
1086
1162
|
//! <b>Requires</b>: !empty()
|
1087
1163
|
//!
|
@@ -1091,8 +1167,11 @@ class deque : protected deque_base<T, Allocator>
|
|
1091
1167
|
//! <b>Throws</b>: Nothing.
|
1092
1168
|
//!
|
1093
1169
|
//! <b>Complexity</b>: Constant.
|
1094
|
-
reference back()
|
1095
|
-
|
1170
|
+
reference back() BOOST_NOEXCEPT_OR_NOTHROW
|
1171
|
+
{
|
1172
|
+
BOOST_ASSERT(!this->empty());
|
1173
|
+
return *(end()-1);
|
1174
|
+
}
|
1096
1175
|
|
1097
1176
|
//! <b>Requires</b>: !empty()
|
1098
1177
|
//!
|
@@ -1102,8 +1181,11 @@ class deque : protected deque_base<T, Allocator>
|
|
1102
1181
|
//! <b>Throws</b>: Nothing.
|
1103
1182
|
//!
|
1104
1183
|
//! <b>Complexity</b>: Constant.
|
1105
|
-
const_reference back() const
|
1106
|
-
|
1184
|
+
const_reference back() const BOOST_NOEXCEPT_OR_NOTHROW
|
1185
|
+
{
|
1186
|
+
BOOST_ASSERT(!this->empty());
|
1187
|
+
return *(cend()-1);
|
1188
|
+
}
|
1107
1189
|
|
1108
1190
|
//! <b>Requires</b>: size() > n.
|
1109
1191
|
//!
|
@@ -1113,8 +1195,11 @@ class deque : protected deque_base<T, Allocator>
|
|
1113
1195
|
//! <b>Throws</b>: Nothing.
|
1114
1196
|
//!
|
1115
1197
|
//! <b>Complexity</b>: Constant.
|
1116
|
-
reference operator[](size_type n)
|
1117
|
-
|
1198
|
+
reference operator[](size_type n) BOOST_NOEXCEPT_OR_NOTHROW
|
1199
|
+
{
|
1200
|
+
BOOST_ASSERT(this->size() > n);
|
1201
|
+
return this->members_.m_start[difference_type(n)];
|
1202
|
+
}
|
1118
1203
|
|
1119
1204
|
//! <b>Requires</b>: size() > n.
|
1120
1205
|
//!
|
@@ -1124,8 +1209,78 @@ class deque : protected deque_base<T, Allocator>
|
|
1124
1209
|
//! <b>Throws</b>: Nothing.
|
1125
1210
|
//!
|
1126
1211
|
//! <b>Complexity</b>: Constant.
|
1127
|
-
const_reference operator[](size_type n) const
|
1128
|
-
|
1212
|
+
const_reference operator[](size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
|
1213
|
+
{
|
1214
|
+
BOOST_ASSERT(this->size() > n);
|
1215
|
+
return this->members_.m_start[difference_type(n)];
|
1216
|
+
}
|
1217
|
+
|
1218
|
+
//! <b>Requires</b>: size() >= n.
|
1219
|
+
//!
|
1220
|
+
//! <b>Effects</b>: Returns an iterator to the nth element
|
1221
|
+
//! from the beginning of the container. Returns end()
|
1222
|
+
//! if n == size().
|
1223
|
+
//!
|
1224
|
+
//! <b>Throws</b>: Nothing.
|
1225
|
+
//!
|
1226
|
+
//! <b>Complexity</b>: Constant.
|
1227
|
+
//!
|
1228
|
+
//! <b>Note</b>: Non-standard extension
|
1229
|
+
iterator nth(size_type n) BOOST_NOEXCEPT_OR_NOTHROW
|
1230
|
+
{
|
1231
|
+
BOOST_ASSERT(this->size() >= n);
|
1232
|
+
return iterator(this->begin()+n);
|
1233
|
+
}
|
1234
|
+
|
1235
|
+
//! <b>Requires</b>: size() >= n.
|
1236
|
+
//!
|
1237
|
+
//! <b>Effects</b>: Returns a const_iterator to the nth element
|
1238
|
+
//! from the beginning of the container. Returns end()
|
1239
|
+
//! if n == size().
|
1240
|
+
//!
|
1241
|
+
//! <b>Throws</b>: Nothing.
|
1242
|
+
//!
|
1243
|
+
//! <b>Complexity</b>: Constant.
|
1244
|
+
//!
|
1245
|
+
//! <b>Note</b>: Non-standard extension
|
1246
|
+
const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
|
1247
|
+
{
|
1248
|
+
BOOST_ASSERT(this->size() >= n);
|
1249
|
+
return const_iterator(this->cbegin()+n);
|
1250
|
+
}
|
1251
|
+
|
1252
|
+
//! <b>Requires</b>: size() >= n.
|
1253
|
+
//!
|
1254
|
+
//! <b>Effects</b>: Returns an iterator to the nth element
|
1255
|
+
//! from the beginning of the container. Returns end()
|
1256
|
+
//! if n == size().
|
1257
|
+
//!
|
1258
|
+
//! <b>Throws</b>: Nothing.
|
1259
|
+
//!
|
1260
|
+
//! <b>Complexity</b>: Constant.
|
1261
|
+
//!
|
1262
|
+
//! <b>Note</b>: Non-standard extension
|
1263
|
+
size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW
|
1264
|
+
{
|
1265
|
+
//Range checked priv_index_of
|
1266
|
+
return this->priv_index_of(p);
|
1267
|
+
}
|
1268
|
+
|
1269
|
+
//! <b>Requires</b>: begin() <= p <= end().
|
1270
|
+
//!
|
1271
|
+
//! <b>Effects</b>: Returns the index of the element pointed by p
|
1272
|
+
//! and size() if p == end().
|
1273
|
+
//!
|
1274
|
+
//! <b>Throws</b>: Nothing.
|
1275
|
+
//!
|
1276
|
+
//! <b>Complexity</b>: Constant.
|
1277
|
+
//!
|
1278
|
+
//! <b>Note</b>: Non-standard extension
|
1279
|
+
size_type index_of(const_iterator p) const BOOST_NOEXCEPT_OR_NOTHROW
|
1280
|
+
{
|
1281
|
+
//Range checked priv_index_of
|
1282
|
+
return this->priv_index_of(p);
|
1283
|
+
}
|
1129
1284
|
|
1130
1285
|
//! <b>Requires</b>: size() > n.
|
1131
1286
|
//!
|
@@ -1136,7 +1291,10 @@ class deque : protected deque_base<T, Allocator>
|
|
1136
1291
|
//!
|
1137
1292
|
//! <b>Complexity</b>: Constant.
|
1138
1293
|
reference at(size_type n)
|
1139
|
-
|
1294
|
+
{
|
1295
|
+
this->priv_throw_if_out_of_range(n);
|
1296
|
+
return (*this)[n];
|
1297
|
+
}
|
1140
1298
|
|
1141
1299
|
//! <b>Requires</b>: size() > n.
|
1142
1300
|
//!
|
@@ -1147,7 +1305,10 @@ class deque : protected deque_base<T, Allocator>
|
|
1147
1305
|
//!
|
1148
1306
|
//! <b>Complexity</b>: Constant.
|
1149
1307
|
const_reference at(size_type n) const
|
1150
|
-
|
1308
|
+
{
|
1309
|
+
this->priv_throw_if_out_of_range(n);
|
1310
|
+
return (*this)[n];
|
1311
|
+
}
|
1151
1312
|
|
1152
1313
|
//////////////////////////////////////////////
|
1153
1314
|
//
|
@@ -1155,7 +1316,7 @@ class deque : protected deque_base<T, Allocator>
|
|
1155
1316
|
//
|
1156
1317
|
//////////////////////////////////////////////
|
1157
1318
|
|
1158
|
-
#if defined(
|
1319
|
+
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
1159
1320
|
|
1160
1321
|
//! <b>Effects</b>: Inserts an object of type T constructed with
|
1161
1322
|
//! std::forward<Args>(args)... in the beginning of the deque.
|
@@ -1164,7 +1325,7 @@ class deque : protected deque_base<T, Allocator>
|
|
1164
1325
|
//!
|
1165
1326
|
//! <b>Complexity</b>: Amortized constant time
|
1166
1327
|
template <class... Args>
|
1167
|
-
void emplace_front(Args
|
1328
|
+
void emplace_front(BOOST_FWD_REF(Args)... args)
|
1168
1329
|
{
|
1169
1330
|
if(this->priv_push_front_simple_available()){
|
1170
1331
|
allocator_traits_type::construct
|
@@ -1174,8 +1335,8 @@ class deque : protected deque_base<T, Allocator>
|
|
1174
1335
|
this->priv_push_front_simple_commit();
|
1175
1336
|
}
|
1176
1337
|
else{
|
1177
|
-
typedef container_detail::
|
1178
|
-
this->priv_insert_front_aux_impl(1, type(
|
1338
|
+
typedef container_detail::insert_nonmovable_emplace_proxy<Allocator, iterator, Args...> type;
|
1339
|
+
this->priv_insert_front_aux_impl(1, type(boost::forward<Args>(args)...));
|
1179
1340
|
}
|
1180
1341
|
}
|
1181
1342
|
|
@@ -1186,7 +1347,7 @@ class deque : protected deque_base<T, Allocator>
|
|
1186
1347
|
//!
|
1187
1348
|
//! <b>Complexity</b>: Amortized constant time
|
1188
1349
|
template <class... Args>
|
1189
|
-
void emplace_back(Args
|
1350
|
+
void emplace_back(BOOST_FWD_REF(Args)... args)
|
1190
1351
|
{
|
1191
1352
|
if(this->priv_push_back_simple_available()){
|
1192
1353
|
allocator_traits_type::construct
|
@@ -1196,23 +1357,24 @@ class deque : protected deque_base<T, Allocator>
|
|
1196
1357
|
this->priv_push_back_simple_commit();
|
1197
1358
|
}
|
1198
1359
|
else{
|
1199
|
-
typedef container_detail::
|
1200
|
-
this->priv_insert_back_aux_impl(1, type(
|
1360
|
+
typedef container_detail::insert_nonmovable_emplace_proxy<Allocator, iterator, Args...> type;
|
1361
|
+
this->priv_insert_back_aux_impl(1, type(boost::forward<Args>(args)...));
|
1201
1362
|
}
|
1202
1363
|
}
|
1203
1364
|
|
1204
|
-
//! <b>Requires</b>:
|
1365
|
+
//! <b>Requires</b>: p must be a valid iterator of *this.
|
1205
1366
|
//!
|
1206
1367
|
//! <b>Effects</b>: Inserts an object of type T constructed with
|
1207
|
-
//! std::forward<Args>(args)... before
|
1368
|
+
//! std::forward<Args>(args)... before p
|
1208
1369
|
//!
|
1209
1370
|
//! <b>Throws</b>: If memory allocation throws or the in-place constructor throws.
|
1210
1371
|
//!
|
1211
|
-
//! <b>Complexity</b>: If
|
1372
|
+
//! <b>Complexity</b>: If p is end(), amortized constant time
|
1212
1373
|
//! Linear time otherwise.
|
1213
1374
|
template <class... Args>
|
1214
|
-
iterator emplace(const_iterator p, Args
|
1375
|
+
iterator emplace(const_iterator p, BOOST_FWD_REF(Args)... args)
|
1215
1376
|
{
|
1377
|
+
BOOST_ASSERT(this->priv_in_range_or_end(p));
|
1216
1378
|
if(p == this->cbegin()){
|
1217
1379
|
this->emplace_front(boost::forward<Args>(args)...);
|
1218
1380
|
return this->begin();
|
@@ -1223,74 +1385,66 @@ class deque : protected deque_base<T, Allocator>
|
|
1223
1385
|
}
|
1224
1386
|
else{
|
1225
1387
|
typedef container_detail::insert_emplace_proxy<Allocator, iterator, Args...> type;
|
1226
|
-
return this->priv_insert_aux_impl(p, 1, type(
|
1227
|
-
}
|
1228
|
-
}
|
1229
|
-
|
1230
|
-
#else
|
1231
|
-
|
1232
|
-
|
1233
|
-
|
1234
|
-
|
1235
|
-
|
1236
|
-
|
1237
|
-
|
1238
|
-
|
1239
|
-
|
1240
|
-
|
1241
|
-
|
1242
|
-
|
1243
|
-
|
1244
|
-
|
1245
|
-
|
1246
|
-
|
1247
|
-
|
1248
|
-
|
1249
|
-
|
1250
|
-
|
1251
|
-
|
1252
|
-
|
1253
|
-
|
1254
|
-
|
1255
|
-
|
1256
|
-
|
1257
|
-
|
1258
|
-
|
1259
|
-
|
1260
|
-
|
1261
|
-
|
1262
|
-
|
1263
|
-
|
1264
|
-
|
1265
|
-
|
1266
|
-
|
1267
|
-
|
1268
|
-
|
1269
|
-
|
1270
|
-
|
1271
|
-
|
1272
|
-
|
1273
|
-
|
1274
|
-
|
1275
|
-
|
1276
|
-
|
1277
|
-
|
1278
|
-
|
1279
|
-
|
1280
|
-
|
1281
|
-
|
1282
|
-
|
1283
|
-
|
1284
|
-
|
1285
|
-
|
1286
|
-
return this->priv_insert_aux_impl(p, 1, proxy); \
|
1287
|
-
} \
|
1288
|
-
} \
|
1289
|
-
//!
|
1290
|
-
#define BOOST_PP_LOCAL_LIMITS (0, BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS)
|
1291
|
-
#include BOOST_PP_LOCAL_ITERATE()
|
1292
|
-
|
1293
|
-
#endif //#ifdef BOOST_CONTAINER_PERFECT_FORWARDING
|
1388
|
+
return this->priv_insert_aux_impl(p, 1, type(boost::forward<Args>(args)...));
|
1389
|
+
}
|
1390
|
+
}
|
1391
|
+
|
1392
|
+
#else //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
1393
|
+
|
1394
|
+
#define BOOST_CONTAINER_DEQUE_EMPLACE_CODE(N) \
|
1395
|
+
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N\
|
1396
|
+
void emplace_front(BOOST_MOVE_UREF##N)\
|
1397
|
+
{\
|
1398
|
+
if(priv_push_front_simple_available()){\
|
1399
|
+
allocator_traits_type::construct\
|
1400
|
+
( this->alloc(), this->priv_push_front_simple_pos() BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
1401
|
+
priv_push_front_simple_commit();\
|
1402
|
+
}\
|
1403
|
+
else{\
|
1404
|
+
typedef container_detail::insert_nonmovable_emplace_proxy##N\
|
1405
|
+
<Allocator, iterator BOOST_MOVE_I##N BOOST_MOVE_TARG##N> type;\
|
1406
|
+
priv_insert_front_aux_impl(1, type(BOOST_MOVE_FWD##N));\
|
1407
|
+
}\
|
1408
|
+
}\
|
1409
|
+
\
|
1410
|
+
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N\
|
1411
|
+
void emplace_back(BOOST_MOVE_UREF##N)\
|
1412
|
+
{\
|
1413
|
+
if(priv_push_back_simple_available()){\
|
1414
|
+
allocator_traits_type::construct\
|
1415
|
+
( this->alloc(), this->priv_push_back_simple_pos() BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
|
1416
|
+
priv_push_back_simple_commit();\
|
1417
|
+
}\
|
1418
|
+
else{\
|
1419
|
+
typedef container_detail::insert_nonmovable_emplace_proxy##N\
|
1420
|
+
<Allocator, iterator BOOST_MOVE_I##N BOOST_MOVE_TARG##N> type;\
|
1421
|
+
priv_insert_back_aux_impl(1, type(BOOST_MOVE_FWD##N));\
|
1422
|
+
}\
|
1423
|
+
}\
|
1424
|
+
\
|
1425
|
+
BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N\
|
1426
|
+
iterator emplace(const_iterator p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
1427
|
+
{\
|
1428
|
+
BOOST_ASSERT(this->priv_in_range_or_end(p));\
|
1429
|
+
if(p == this->cbegin()){\
|
1430
|
+
this->emplace_front(BOOST_MOVE_FWD##N);\
|
1431
|
+
return this->begin();\
|
1432
|
+
}\
|
1433
|
+
else if(p == cend()){\
|
1434
|
+
this->emplace_back(BOOST_MOVE_FWD##N);\
|
1435
|
+
return (--this->end());\
|
1436
|
+
}\
|
1437
|
+
else{\
|
1438
|
+
typedef container_detail::insert_emplace_proxy_arg##N\
|
1439
|
+
<Allocator, iterator BOOST_MOVE_I##N BOOST_MOVE_TARG##N> type;\
|
1440
|
+
return this->priv_insert_aux_impl(p, 1, type(BOOST_MOVE_FWD##N));\
|
1441
|
+
}\
|
1442
|
+
}
|
1443
|
+
//
|
1444
|
+
BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_DEQUE_EMPLACE_CODE)
|
1445
|
+
#undef BOOST_CONTAINER_DEQUE_EMPLACE_CODE
|
1446
|
+
|
1447
|
+
#endif // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
1294
1448
|
|
1295
1449
|
#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
1296
1450
|
//! <b>Effects</b>: Inserts a copy of x at the front of the deque.
|
@@ -1302,7 +1456,7 @@ class deque : protected deque_base<T, Allocator>
|
|
1302
1456
|
void push_front(const T &x);
|
1303
1457
|
|
1304
1458
|
//! <b>Effects</b>: Constructs a new element in the front of the deque
|
1305
|
-
//! and moves the resources of
|
1459
|
+
//! and moves the resources of x to this new element.
|
1306
1460
|
//!
|
1307
1461
|
//! <b>Throws</b>: If memory allocation throws.
|
1308
1462
|
//!
|
@@ -1322,7 +1476,7 @@ class deque : protected deque_base<T, Allocator>
|
|
1322
1476
|
void push_back(const T &x);
|
1323
1477
|
|
1324
1478
|
//! <b>Effects</b>: Constructs a new element in the end of the deque
|
1325
|
-
//! and moves the resources of
|
1479
|
+
//! and moves the resources of x to this new element.
|
1326
1480
|
//!
|
1327
1481
|
//! <b>Throws</b>: If memory allocation throws.
|
1328
1482
|
//!
|
@@ -1334,31 +1488,31 @@ class deque : protected deque_base<T, Allocator>
|
|
1334
1488
|
|
1335
1489
|
#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
1336
1490
|
|
1337
|
-
//! <b>Requires</b>:
|
1491
|
+
//! <b>Requires</b>: p must be a valid iterator of *this.
|
1338
1492
|
//!
|
1339
|
-
//! <b>Effects</b>: Insert a copy of x before
|
1493
|
+
//! <b>Effects</b>: Insert a copy of x before p.
|
1340
1494
|
//!
|
1341
1495
|
//! <b>Returns</b>: an iterator to the inserted element.
|
1342
1496
|
//!
|
1343
1497
|
//! <b>Throws</b>: If memory allocation throws or x's copy constructor throws.
|
1344
1498
|
//!
|
1345
|
-
//! <b>Complexity</b>: If
|
1499
|
+
//! <b>Complexity</b>: If p is end(), amortized constant time
|
1346
1500
|
//! Linear time otherwise.
|
1347
|
-
iterator insert(const_iterator
|
1501
|
+
iterator insert(const_iterator p, const T &x);
|
1348
1502
|
|
1349
|
-
//! <b>Requires</b>:
|
1503
|
+
//! <b>Requires</b>: p must be a valid iterator of *this.
|
1350
1504
|
//!
|
1351
|
-
//! <b>Effects</b>: Insert a new element before
|
1505
|
+
//! <b>Effects</b>: Insert a new element before p with x's resources.
|
1352
1506
|
//!
|
1353
1507
|
//! <b>Returns</b>: an iterator to the inserted element.
|
1354
1508
|
//!
|
1355
1509
|
//! <b>Throws</b>: If memory allocation throws.
|
1356
1510
|
//!
|
1357
|
-
//! <b>Complexity</b>: If
|
1511
|
+
//! <b>Complexity</b>: If p is end(), amortized constant time
|
1358
1512
|
//! Linear time otherwise.
|
1359
|
-
iterator insert(const_iterator
|
1513
|
+
iterator insert(const_iterator p, T &&x);
|
1360
1514
|
#else
|
1361
|
-
BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG(insert, T, iterator, priv_insert, const_iterator)
|
1515
|
+
BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG(insert, T, iterator, priv_insert, const_iterator, const_iterator)
|
1362
1516
|
#endif
|
1363
1517
|
|
1364
1518
|
//! <b>Requires</b>: pos must be a valid iterator of *this.
|
@@ -1372,6 +1526,7 @@ class deque : protected deque_base<T, Allocator>
|
|
1372
1526
|
//! <b>Complexity</b>: Linear to n.
|
1373
1527
|
iterator insert(const_iterator pos, size_type n, const value_type& x)
|
1374
1528
|
{
|
1529
|
+
//Range check of p is done by insert()
|
1375
1530
|
typedef constant_iterator<value_type, difference_type> c_it;
|
1376
1531
|
return this->insert(pos, c_it(x, n), c_it());
|
1377
1532
|
}
|
@@ -1385,19 +1540,21 @@ class deque : protected deque_base<T, Allocator>
|
|
1385
1540
|
//! <b>Throws</b>: If memory allocation throws, T's constructor from a
|
1386
1541
|
//! dereferenced InIt throws or T's copy constructor throws.
|
1387
1542
|
//!
|
1388
|
-
//! <b>Complexity</b>: Linear to
|
1543
|
+
//! <b>Complexity</b>: Linear to distance [first, last).
|
1389
1544
|
template <class InIt>
|
1390
1545
|
iterator insert(const_iterator pos, InIt first, InIt last
|
1391
1546
|
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
1392
|
-
, typename container_detail::
|
1393
|
-
<
|
1394
|
-
|
1547
|
+
, typename container_detail::disable_if_or
|
1548
|
+
< void
|
1549
|
+
, container_detail::is_convertible<InIt, size_type>
|
1550
|
+
, container_detail::is_not_input_iterator<InIt>
|
1395
1551
|
>::type * = 0
|
1396
1552
|
#endif
|
1397
1553
|
)
|
1398
1554
|
{
|
1555
|
+
BOOST_ASSERT(this->priv_in_range_or_end(pos));
|
1399
1556
|
size_type n = 0;
|
1400
|
-
iterator it(pos);
|
1557
|
+
iterator it(pos.unconst());
|
1401
1558
|
for(;first != last; ++first, ++n){
|
1402
1559
|
it = this->emplace(it, *first);
|
1403
1560
|
++it;
|
@@ -1406,19 +1563,39 @@ class deque : protected deque_base<T, Allocator>
|
|
1406
1563
|
return it;
|
1407
1564
|
}
|
1408
1565
|
|
1566
|
+
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
|
1567
|
+
//! <b>Requires</b>: pos must be a valid iterator of *this.
|
1568
|
+
//!
|
1569
|
+
//! <b>Effects</b>: Insert a copy of the [il.begin(), il.end()) range before pos.
|
1570
|
+
//!
|
1571
|
+
//! <b>Returns</b>: an iterator to the first inserted element or pos if il.begin() == il.end().
|
1572
|
+
//!
|
1573
|
+
//! <b>Throws</b>: If memory allocation throws, T's constructor from a
|
1574
|
+
//! dereferenced std::initializer_list throws or T's copy constructor throws.
|
1575
|
+
//!
|
1576
|
+
//! <b>Complexity</b>: Linear to distance [il.begin(), il.end()).
|
1577
|
+
iterator insert(const_iterator pos, std::initializer_list<value_type> il)
|
1578
|
+
{
|
1579
|
+
//Range check os pos is done in insert()
|
1580
|
+
return insert(pos, il.begin(), il.end());
|
1581
|
+
}
|
1582
|
+
#endif
|
1583
|
+
|
1409
1584
|
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
1410
1585
|
template <class FwdIt>
|
1411
1586
|
iterator insert(const_iterator p, FwdIt first, FwdIt last
|
1412
1587
|
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
1413
|
-
, typename container_detail::
|
1414
|
-
<
|
1415
|
-
|
1588
|
+
, typename container_detail::disable_if_or
|
1589
|
+
< void
|
1590
|
+
, container_detail::is_convertible<FwdIt, size_type>
|
1591
|
+
, container_detail::is_input_iterator<FwdIt>
|
1416
1592
|
>::type * = 0
|
1417
1593
|
#endif
|
1418
1594
|
)
|
1419
1595
|
{
|
1420
|
-
|
1421
|
-
|
1596
|
+
BOOST_ASSERT(this->priv_in_range_or_end(p));
|
1597
|
+
container_detail::insert_range_proxy<Allocator, FwdIt, iterator> proxy(first);
|
1598
|
+
return priv_insert_aux_impl(p, boost::container::iterator_distance(first, last), proxy);
|
1422
1599
|
}
|
1423
1600
|
#endif
|
1424
1601
|
|
@@ -1427,8 +1604,9 @@ class deque : protected deque_base<T, Allocator>
|
|
1427
1604
|
//! <b>Throws</b>: Nothing.
|
1428
1605
|
//!
|
1429
1606
|
//! <b>Complexity</b>: Constant time.
|
1430
|
-
void pop_front()
|
1607
|
+
void pop_front() BOOST_NOEXCEPT_OR_NOTHROW
|
1431
1608
|
{
|
1609
|
+
BOOST_ASSERT(!this->empty());
|
1432
1610
|
if (this->members_.m_start.m_cur != this->members_.m_start.m_last - 1) {
|
1433
1611
|
allocator_traits_type::destroy
|
1434
1612
|
( this->alloc()
|
@@ -1445,8 +1623,9 @@ class deque : protected deque_base<T, Allocator>
|
|
1445
1623
|
//! <b>Throws</b>: Nothing.
|
1446
1624
|
//!
|
1447
1625
|
//! <b>Complexity</b>: Constant time.
|
1448
|
-
void pop_back()
|
1626
|
+
void pop_back() BOOST_NOEXCEPT_OR_NOTHROW
|
1449
1627
|
{
|
1628
|
+
BOOST_ASSERT(!this->empty());
|
1450
1629
|
if (this->members_.m_finish.m_cur != this->members_.m_finish.m_first) {
|
1451
1630
|
--this->members_.m_finish.m_cur;
|
1452
1631
|
allocator_traits_type::destroy
|
@@ -1458,7 +1637,7 @@ class deque : protected deque_base<T, Allocator>
|
|
1458
1637
|
this->priv_pop_back_aux();
|
1459
1638
|
}
|
1460
1639
|
|
1461
|
-
//! <b>Effects</b>: Erases the element at
|
1640
|
+
//! <b>Effects</b>: Erases the element at p.
|
1462
1641
|
//!
|
1463
1642
|
//! <b>Throws</b>: Nothing.
|
1464
1643
|
//!
|
@@ -1466,17 +1645,18 @@ class deque : protected deque_base<T, Allocator>
|
|
1466
1645
|
//! last element (if pos is near the end) or the first element
|
1467
1646
|
//! if(pos is near the beginning).
|
1468
1647
|
//! Constant if pos is the first or the last element.
|
1469
|
-
iterator erase(const_iterator pos)
|
1648
|
+
iterator erase(const_iterator pos) BOOST_NOEXCEPT_OR_NOTHROW
|
1470
1649
|
{
|
1471
|
-
|
1650
|
+
BOOST_ASSERT(this->priv_in_range(pos));
|
1651
|
+
iterator next = pos.unconst();
|
1472
1652
|
++next;
|
1473
1653
|
size_type index = pos - this->members_.m_start;
|
1474
1654
|
if (index < (this->size()/2)) {
|
1475
|
-
boost::move_backward(begin(),
|
1655
|
+
boost::container::move_backward(this->begin(), pos.unconst(), next);
|
1476
1656
|
pop_front();
|
1477
1657
|
}
|
1478
1658
|
else {
|
1479
|
-
boost::move(
|
1659
|
+
boost::container::move(next, this->end(), pos.unconst());
|
1480
1660
|
pop_back();
|
1481
1661
|
}
|
1482
1662
|
return this->members_.m_start + index;
|
@@ -1490,8 +1670,10 @@ class deque : protected deque_base<T, Allocator>
|
|
1490
1670
|
//! last plus the elements between pos and the
|
1491
1671
|
//! last element (if pos is near the end) or the first element
|
1492
1672
|
//! if(pos is near the beginning).
|
1493
|
-
iterator erase(const_iterator first, const_iterator last)
|
1673
|
+
iterator erase(const_iterator first, const_iterator last) BOOST_NOEXCEPT_OR_NOTHROW
|
1494
1674
|
{
|
1675
|
+
BOOST_ASSERT(first == last ||
|
1676
|
+
(first < last && this->priv_in_range(first) && this->priv_in_range_or_end(last)));
|
1495
1677
|
if (first == this->members_.m_start && last == this->members_.m_finish) {
|
1496
1678
|
this->clear();
|
1497
1679
|
return this->members_.m_finish;
|
@@ -1500,7 +1682,7 @@ class deque : protected deque_base<T, Allocator>
|
|
1500
1682
|
const size_type n = static_cast<size_type>(last - first);
|
1501
1683
|
const size_type elems_before = static_cast<size_type>(first - this->members_.m_start);
|
1502
1684
|
if (elems_before < (this->size() - n) - elems_before) {
|
1503
|
-
boost::move_backward(begin(),
|
1685
|
+
boost::container::move_backward(begin(), first.unconst(), last.unconst());
|
1504
1686
|
iterator new_start = this->members_.m_start + n;
|
1505
1687
|
if(!Base::traits_t::trivial_dctr_after_move)
|
1506
1688
|
this->priv_destroy_range(this->members_.m_start, new_start);
|
@@ -1508,7 +1690,7 @@ class deque : protected deque_base<T, Allocator>
|
|
1508
1690
|
this->members_.m_start = new_start;
|
1509
1691
|
}
|
1510
1692
|
else {
|
1511
|
-
boost::move(
|
1693
|
+
boost::container::move(last.unconst(), end(), first.unconst());
|
1512
1694
|
iterator new_finish = this->members_.m_finish - n;
|
1513
1695
|
if(!Base::traits_t::trivial_dctr_after_move)
|
1514
1696
|
this->priv_destroy_range(new_finish, this->members_.m_finish);
|
@@ -1525,6 +1707,8 @@ class deque : protected deque_base<T, Allocator>
|
|
1525
1707
|
//!
|
1526
1708
|
//! <b>Complexity</b>: Constant.
|
1527
1709
|
void swap(deque &x)
|
1710
|
+
BOOST_NOEXCEPT_IF(allocator_traits_type::propagate_on_container_swap::value
|
1711
|
+
|| allocator_traits_type::is_always_equal::value)
|
1528
1712
|
{
|
1529
1713
|
this->swap_members(x);
|
1530
1714
|
container_detail::bool_<allocator_traits_type::propagate_on_container_swap::value> flag;
|
@@ -1537,7 +1721,7 @@ class deque : protected deque_base<T, Allocator>
|
|
1537
1721
|
//! <b>Throws</b>: Nothing.
|
1538
1722
|
//!
|
1539
1723
|
//! <b>Complexity</b>: Linear to the number of elements in the deque.
|
1540
|
-
void clear()
|
1724
|
+
void clear() BOOST_NOEXCEPT_OR_NOTHROW
|
1541
1725
|
{
|
1542
1726
|
for (index_pointer node = this->members_.m_start.m_node + 1;
|
1543
1727
|
node < this->members_.m_finish.m_node;
|
@@ -1557,9 +1741,58 @@ class deque : protected deque_base<T, Allocator>
|
|
1557
1741
|
this->members_.m_finish = this->members_.m_start;
|
1558
1742
|
}
|
1559
1743
|
|
1560
|
-
|
1744
|
+
//! <b>Effects</b>: Returns true if x and y are equal
|
1745
|
+
//!
|
1746
|
+
//! <b>Complexity</b>: Linear to the number of elements in the container.
|
1747
|
+
friend bool operator==(const deque& x, const deque& y)
|
1748
|
+
{ return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); }
|
1749
|
+
|
1750
|
+
//! <b>Effects</b>: Returns true if x and y are unequal
|
1751
|
+
//!
|
1752
|
+
//! <b>Complexity</b>: Linear to the number of elements in the container.
|
1753
|
+
friend bool operator!=(const deque& x, const deque& y)
|
1754
|
+
{ return !(x == y); }
|
1755
|
+
|
1756
|
+
//! <b>Effects</b>: Returns true if x is less than y
|
1757
|
+
//!
|
1758
|
+
//! <b>Complexity</b>: Linear to the number of elements in the container.
|
1759
|
+
friend bool operator<(const deque& x, const deque& y)
|
1760
|
+
{ return ::boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); }
|
1761
|
+
|
1762
|
+
//! <b>Effects</b>: Returns true if x is greater than y
|
1763
|
+
//!
|
1764
|
+
//! <b>Complexity</b>: Linear to the number of elements in the container.
|
1765
|
+
friend bool operator>(const deque& x, const deque& y)
|
1766
|
+
{ return y < x; }
|
1767
|
+
|
1768
|
+
//! <b>Effects</b>: Returns true if x is equal or less than y
|
1769
|
+
//!
|
1770
|
+
//! <b>Complexity</b>: Linear to the number of elements in the container.
|
1771
|
+
friend bool operator<=(const deque& x, const deque& y)
|
1772
|
+
{ return !(y < x); }
|
1773
|
+
|
1774
|
+
//! <b>Effects</b>: Returns true if x is equal or greater than y
|
1775
|
+
//!
|
1776
|
+
//! <b>Complexity</b>: Linear to the number of elements in the container.
|
1777
|
+
friend bool operator>=(const deque& x, const deque& y)
|
1778
|
+
{ return !(x < y); }
|
1779
|
+
|
1780
|
+
//! <b>Effects</b>: x.swap(y)
|
1781
|
+
//!
|
1782
|
+
//! <b>Complexity</b>: Constant.
|
1783
|
+
friend void swap(deque& x, deque& y)
|
1784
|
+
{ x.swap(y); }
|
1785
|
+
|
1786
|
+
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
1561
1787
|
private:
|
1562
1788
|
|
1789
|
+
size_type priv_index_of(const_iterator p) const
|
1790
|
+
{
|
1791
|
+
BOOST_ASSERT(this->cbegin() <= p);
|
1792
|
+
BOOST_ASSERT(p <= this->cend());
|
1793
|
+
return static_cast<size_type>(p - this->cbegin());
|
1794
|
+
}
|
1795
|
+
|
1563
1796
|
void priv_erase_last_n(size_type n)
|
1564
1797
|
{
|
1565
1798
|
if(n == this->size()) {
|
@@ -1574,23 +1807,38 @@ class deque : protected deque_base<T, Allocator>
|
|
1574
1807
|
}
|
1575
1808
|
}
|
1576
1809
|
|
1577
|
-
void
|
1578
|
-
|
1810
|
+
void priv_throw_if_out_of_range(size_type n) const
|
1811
|
+
{
|
1812
|
+
if (n >= this->size())
|
1813
|
+
throw_out_of_range("deque::at out of range");
|
1814
|
+
}
|
1815
|
+
|
1816
|
+
bool priv_in_range(const_iterator pos) const
|
1817
|
+
{
|
1818
|
+
return (this->begin() <= pos) && (pos < this->end());
|
1819
|
+
}
|
1820
|
+
|
1821
|
+
bool priv_in_range_or_end(const_iterator pos) const
|
1822
|
+
{
|
1823
|
+
return (this->begin() <= pos) && (pos <= this->end());
|
1824
|
+
}
|
1579
1825
|
|
1580
1826
|
template <class U>
|
1581
|
-
iterator priv_insert(const_iterator
|
1827
|
+
iterator priv_insert(const_iterator p, BOOST_FWD_REF(U) x)
|
1582
1828
|
{
|
1583
|
-
|
1829
|
+
BOOST_ASSERT(this->priv_in_range_or_end(p));
|
1830
|
+
if (p == cbegin()){
|
1584
1831
|
this->push_front(::boost::forward<U>(x));
|
1585
1832
|
return begin();
|
1586
1833
|
}
|
1587
|
-
else if (
|
1834
|
+
else if (p == cend()){
|
1588
1835
|
this->push_back(::boost::forward<U>(x));
|
1589
1836
|
return --end();
|
1590
1837
|
}
|
1591
1838
|
else {
|
1592
1839
|
return priv_insert_aux_impl
|
1593
|
-
(
|
1840
|
+
( p, (size_type)1
|
1841
|
+
, container_detail::get_insert_value_proxy<iterator, Allocator>(::boost::forward<U>(x)));
|
1594
1842
|
}
|
1595
1843
|
}
|
1596
1844
|
|
@@ -1604,7 +1852,8 @@ class deque : protected deque_base<T, Allocator>
|
|
1604
1852
|
}
|
1605
1853
|
else{
|
1606
1854
|
priv_insert_aux_impl
|
1607
|
-
(this->cbegin(), (size_type)1
|
1855
|
+
( this->cbegin(), (size_type)1
|
1856
|
+
, container_detail::get_insert_value_proxy<iterator, Allocator>(::boost::forward<U>(x)));
|
1608
1857
|
}
|
1609
1858
|
}
|
1610
1859
|
|
@@ -1618,8 +1867,8 @@ class deque : protected deque_base<T, Allocator>
|
|
1618
1867
|
}
|
1619
1868
|
else{
|
1620
1869
|
priv_insert_aux_impl
|
1621
|
-
(this->cend(), (size_type)1
|
1622
|
-
|
1870
|
+
( this->cend(), (size_type)1
|
1871
|
+
, container_detail::get_insert_value_proxy<iterator, Allocator>(::boost::forward<U>(x)));
|
1623
1872
|
}
|
1624
1873
|
}
|
1625
1874
|
|
@@ -1653,28 +1902,26 @@ class deque : protected deque_base<T, Allocator>
|
|
1653
1902
|
|
1654
1903
|
void priv_destroy_range(iterator p, iterator p2)
|
1655
1904
|
{
|
1656
|
-
|
1657
|
-
|
1658
|
-
(
|
1659
|
-
|
1660
|
-
);
|
1905
|
+
if(!Base::traits_t::trivial_dctr){
|
1906
|
+
for(;p != p2; ++p){
|
1907
|
+
allocator_traits_type::destroy(this->alloc(), container_detail::iterator_to_raw_pointer(p));
|
1908
|
+
}
|
1661
1909
|
}
|
1662
1910
|
}
|
1663
1911
|
|
1664
1912
|
void priv_destroy_range(pointer p, pointer p2)
|
1665
1913
|
{
|
1666
|
-
|
1667
|
-
|
1668
|
-
(
|
1669
|
-
|
1670
|
-
);
|
1914
|
+
if(!Base::traits_t::trivial_dctr){
|
1915
|
+
for(;p != p2; ++p){
|
1916
|
+
allocator_traits_type::destroy(this->alloc(), container_detail::iterator_to_raw_pointer(p));
|
1917
|
+
}
|
1671
1918
|
}
|
1672
1919
|
}
|
1673
1920
|
|
1674
1921
|
template<class InsertProxy>
|
1675
|
-
iterator priv_insert_aux_impl(const_iterator p, size_type n, InsertProxy
|
1922
|
+
iterator priv_insert_aux_impl(const_iterator p, size_type n, InsertProxy proxy)
|
1676
1923
|
{
|
1677
|
-
iterator pos(p);
|
1924
|
+
iterator pos(p.unconst());
|
1678
1925
|
const size_type pos_n = p - this->cbegin();
|
1679
1926
|
if(!this->members_.m_map){
|
1680
1927
|
this->priv_initialize_map(0);
|
@@ -1687,7 +1934,7 @@ class deque : protected deque_base<T, Allocator>
|
|
1687
1934
|
const iterator new_start = this->priv_reserve_elements_at_front(n);
|
1688
1935
|
const iterator old_start = this->members_.m_start;
|
1689
1936
|
if(!elemsbefore){
|
1690
|
-
|
1937
|
+
proxy.uninitialized_copy_n_and_update(this->alloc(), new_start, n);
|
1691
1938
|
this->members_.m_start = new_start;
|
1692
1939
|
}
|
1693
1940
|
else{
|
@@ -1697,18 +1944,18 @@ class deque : protected deque_base<T, Allocator>
|
|
1697
1944
|
::boost::container::uninitialized_move_alloc
|
1698
1945
|
(this->alloc(), this->members_.m_start, start_n, new_start);
|
1699
1946
|
this->members_.m_start = new_start;
|
1700
|
-
boost::move(start_n, pos, old_start);
|
1701
|
-
|
1947
|
+
boost::container::move(start_n, pos, old_start);
|
1948
|
+
proxy.copy_n_and_update(this->alloc(), pos - n, n);
|
1702
1949
|
}
|
1703
1950
|
else {
|
1704
1951
|
const size_type mid_count = n - elemsbefore;
|
1705
1952
|
const iterator mid_start = old_start - mid_count;
|
1706
|
-
|
1953
|
+
proxy.uninitialized_copy_n_and_update(this->alloc(), mid_start, mid_count);
|
1707
1954
|
this->members_.m_start = mid_start;
|
1708
1955
|
::boost::container::uninitialized_move_alloc
|
1709
1956
|
(this->alloc(), old_start, pos, new_start);
|
1710
1957
|
this->members_.m_start = new_start;
|
1711
|
-
|
1958
|
+
proxy.copy_n_and_update(this->alloc(), old_start, elemsbefore);
|
1712
1959
|
}
|
1713
1960
|
}
|
1714
1961
|
}
|
@@ -1717,7 +1964,7 @@ class deque : protected deque_base<T, Allocator>
|
|
1717
1964
|
const iterator old_finish = this->members_.m_finish;
|
1718
1965
|
const size_type elemsafter = length - elemsbefore;
|
1719
1966
|
if(!elemsafter){
|
1720
|
-
|
1967
|
+
proxy.uninitialized_copy_n_and_update(this->alloc(), old_finish, n);
|
1721
1968
|
this->members_.m_finish = new_finish;
|
1722
1969
|
}
|
1723
1970
|
else{
|
@@ -1727,16 +1974,16 @@ class deque : protected deque_base<T, Allocator>
|
|
1727
1974
|
::boost::container::uninitialized_move_alloc
|
1728
1975
|
(this->alloc(), finish_n, old_finish, old_finish);
|
1729
1976
|
this->members_.m_finish = new_finish;
|
1730
|
-
boost::move_backward(pos, finish_n, old_finish);
|
1731
|
-
|
1977
|
+
boost::container::move_backward(pos, finish_n, old_finish);
|
1978
|
+
proxy.copy_n_and_update(this->alloc(), pos, n);
|
1732
1979
|
}
|
1733
1980
|
else {
|
1734
1981
|
const size_type raw_gap = n - elemsafter;
|
1735
1982
|
::boost::container::uninitialized_move_alloc
|
1736
1983
|
(this->alloc(), pos, old_finish, old_finish + raw_gap);
|
1737
1984
|
BOOST_TRY{
|
1738
|
-
|
1739
|
-
|
1985
|
+
proxy.copy_n_and_update(this->alloc(), pos, elemsafter);
|
1986
|
+
proxy.uninitialized_copy_n_and_update(this->alloc(), old_finish, raw_gap);
|
1740
1987
|
}
|
1741
1988
|
BOOST_CATCH(...){
|
1742
1989
|
this->priv_destroy_range(old_finish, old_finish + elemsafter);
|
@@ -1751,7 +1998,7 @@ class deque : protected deque_base<T, Allocator>
|
|
1751
1998
|
}
|
1752
1999
|
|
1753
2000
|
template <class InsertProxy>
|
1754
|
-
iterator priv_insert_back_aux_impl(size_type n, InsertProxy
|
2001
|
+
iterator priv_insert_back_aux_impl(size_type n, InsertProxy proxy)
|
1755
2002
|
{
|
1756
2003
|
if(!this->members_.m_map){
|
1757
2004
|
this->priv_initialize_map(0);
|
@@ -1759,20 +2006,20 @@ class deque : protected deque_base<T, Allocator>
|
|
1759
2006
|
|
1760
2007
|
iterator new_finish = this->priv_reserve_elements_at_back(n);
|
1761
2008
|
iterator old_finish = this->members_.m_finish;
|
1762
|
-
|
2009
|
+
proxy.uninitialized_copy_n_and_update(this->alloc(), old_finish, n);
|
1763
2010
|
this->members_.m_finish = new_finish;
|
1764
2011
|
return iterator(this->members_.m_finish - n);
|
1765
2012
|
}
|
1766
2013
|
|
1767
2014
|
template <class InsertProxy>
|
1768
|
-
iterator priv_insert_front_aux_impl(size_type n, InsertProxy
|
2015
|
+
iterator priv_insert_front_aux_impl(size_type n, InsertProxy proxy)
|
1769
2016
|
{
|
1770
2017
|
if(!this->members_.m_map){
|
1771
2018
|
this->priv_initialize_map(0);
|
1772
2019
|
}
|
1773
2020
|
|
1774
2021
|
iterator new_start = this->priv_reserve_elements_at_front(n);
|
1775
|
-
|
2022
|
+
proxy.uninitialized_copy_n_and_update(this->alloc(), new_start, n);
|
1776
2023
|
this->members_.m_start = new_start;
|
1777
2024
|
return new_start;
|
1778
2025
|
}
|
@@ -1787,9 +2034,9 @@ class deque : protected deque_base<T, Allocator>
|
|
1787
2034
|
// but none of the deque's elements have yet been constructed.
|
1788
2035
|
void priv_fill_initialize(const value_type& value)
|
1789
2036
|
{
|
1790
|
-
index_pointer cur;
|
2037
|
+
index_pointer cur = this->members_.m_start.m_node;
|
1791
2038
|
BOOST_TRY {
|
1792
|
-
for (
|
2039
|
+
for ( ; cur < this->members_.m_finish.m_node; ++cur){
|
1793
2040
|
boost::container::uninitialized_fill_alloc
|
1794
2041
|
(this->alloc(), *cur, *cur + this->s_buffer_size(), value);
|
1795
2042
|
}
|
@@ -1804,7 +2051,7 @@ class deque : protected deque_base<T, Allocator>
|
|
1804
2051
|
}
|
1805
2052
|
|
1806
2053
|
template <class InIt>
|
1807
|
-
void priv_range_initialize(InIt first, InIt last, std::input_iterator_tag)
|
2054
|
+
void priv_range_initialize(InIt first, InIt last, typename iterator_enable_if_tag<InIt, std::input_iterator_tag>::type* =0)
|
1808
2055
|
{
|
1809
2056
|
this->priv_initialize_map(0);
|
1810
2057
|
BOOST_TRY {
|
@@ -1819,19 +2066,17 @@ class deque : protected deque_base<T, Allocator>
|
|
1819
2066
|
}
|
1820
2067
|
|
1821
2068
|
template <class FwdIt>
|
1822
|
-
void priv_range_initialize(FwdIt first, FwdIt last, std::
|
2069
|
+
void priv_range_initialize(FwdIt first, FwdIt last, typename iterator_disable_if_tag<FwdIt, std::input_iterator_tag>::type* =0)
|
1823
2070
|
{
|
1824
2071
|
size_type n = 0;
|
1825
|
-
n =
|
2072
|
+
n = boost::container::iterator_distance(first, last);
|
1826
2073
|
this->priv_initialize_map(n);
|
1827
2074
|
|
1828
|
-
index_pointer cur_node;
|
2075
|
+
index_pointer cur_node = this->members_.m_start.m_node;
|
1829
2076
|
BOOST_TRY {
|
1830
|
-
for (cur_node
|
1831
|
-
cur_node < this->members_.m_finish.m_node;
|
1832
|
-
++cur_node) {
|
2077
|
+
for (; cur_node < this->members_.m_finish.m_node; ++cur_node) {
|
1833
2078
|
FwdIt mid = first;
|
1834
|
-
|
2079
|
+
boost::container::iterator_advance(mid, this->s_buffer_size());
|
1835
2080
|
::boost::container::uninitialized_copy_alloc(this->alloc(), first, mid, *cur_node);
|
1836
2081
|
first = mid;
|
1837
2082
|
}
|
@@ -1845,7 +2090,7 @@ class deque : protected deque_base<T, Allocator>
|
|
1845
2090
|
}
|
1846
2091
|
|
1847
2092
|
// Called only if this->members_.m_finish.m_cur == this->members_.m_finish.m_first.
|
1848
|
-
void priv_pop_back_aux()
|
2093
|
+
void priv_pop_back_aux() BOOST_NOEXCEPT_OR_NOTHROW
|
1849
2094
|
{
|
1850
2095
|
this->priv_deallocate_node(this->members_.m_finish.m_first);
|
1851
2096
|
this->members_.m_finish.priv_set_node(this->members_.m_finish.m_node - 1);
|
@@ -1860,7 +2105,7 @@ class deque : protected deque_base<T, Allocator>
|
|
1860
2105
|
// if the deque has at least one element (a precondition for this member
|
1861
2106
|
// function), and if this->members_.m_start.m_cur == this->members_.m_start.m_last, then the deque
|
1862
2107
|
// must have at least two nodes.
|
1863
|
-
void priv_pop_front_aux()
|
2108
|
+
void priv_pop_front_aux() BOOST_NOEXCEPT_OR_NOTHROW
|
1864
2109
|
{
|
1865
2110
|
allocator_traits_type::destroy
|
1866
2111
|
( this->alloc()
|
@@ -1869,7 +2114,7 @@ class deque : protected deque_base<T, Allocator>
|
|
1869
2114
|
this->priv_deallocate_node(this->members_.m_start.m_first);
|
1870
2115
|
this->members_.m_start.priv_set_node(this->members_.m_start.m_node + 1);
|
1871
2116
|
this->members_.m_start.m_cur = this->members_.m_start.m_first;
|
1872
|
-
}
|
2117
|
+
}
|
1873
2118
|
|
1874
2119
|
iterator priv_reserve_elements_at_front(size_type n)
|
1875
2120
|
{
|
@@ -1889,7 +2134,7 @@ class deque : protected deque_base<T, Allocator>
|
|
1889
2134
|
}
|
1890
2135
|
BOOST_CATCH(...) {
|
1891
2136
|
for (size_type j = 1; j < i; ++j)
|
1892
|
-
this->priv_deallocate_node(*(this->members_.m_start.m_node - j));
|
2137
|
+
this->priv_deallocate_node(*(this->members_.m_start.m_node - j));
|
1893
2138
|
BOOST_RETHROW
|
1894
2139
|
}
|
1895
2140
|
BOOST_CATCH_END
|
@@ -1907,14 +2152,14 @@ class deque : protected deque_base<T, Allocator>
|
|
1907
2152
|
if (new_nodes + 1 > s){
|
1908
2153
|
this->priv_reallocate_map(new_nodes, false);
|
1909
2154
|
}
|
1910
|
-
size_type i;
|
2155
|
+
size_type i = 1;
|
1911
2156
|
BOOST_TRY {
|
1912
|
-
for (
|
2157
|
+
for (; i <= new_nodes; ++i)
|
1913
2158
|
*(this->members_.m_finish.m_node + i) = this->priv_allocate_node();
|
1914
2159
|
}
|
1915
2160
|
BOOST_CATCH(...) {
|
1916
2161
|
for (size_type j = 1; j < i; ++j)
|
1917
|
-
this->priv_deallocate_node(*(this->members_.m_finish.m_node + j));
|
2162
|
+
this->priv_deallocate_node(*(this->members_.m_finish.m_node + j));
|
1918
2163
|
BOOST_RETHROW
|
1919
2164
|
}
|
1920
2165
|
BOOST_CATCH_END
|
@@ -1932,9 +2177,9 @@ class deque : protected deque_base<T, Allocator>
|
|
1932
2177
|
new_nstart = this->members_.m_map + (this->members_.m_map_size - new_num_nodes) / 2
|
1933
2178
|
+ (add_at_front ? nodes_to_add : 0);
|
1934
2179
|
if (new_nstart < this->members_.m_start.m_node)
|
1935
|
-
boost::move(this->members_.m_start.m_node, this->members_.m_finish.m_node + 1, new_nstart);
|
2180
|
+
boost::container::move(this->members_.m_start.m_node, this->members_.m_finish.m_node + 1, new_nstart);
|
1936
2181
|
else
|
1937
|
-
boost::move_backward
|
2182
|
+
boost::container::move_backward
|
1938
2183
|
(this->members_.m_start.m_node, this->members_.m_finish.m_node + 1, new_nstart + old_num_nodes);
|
1939
2184
|
}
|
1940
2185
|
else {
|
@@ -1944,7 +2189,7 @@ class deque : protected deque_base<T, Allocator>
|
|
1944
2189
|
index_pointer new_map = this->priv_allocate_map(new_map_size);
|
1945
2190
|
new_nstart = new_map + (new_map_size - new_num_nodes) / 2
|
1946
2191
|
+ (add_at_front ? nodes_to_add : 0);
|
1947
|
-
boost::move(this->members_.m_start.m_node, this->members_.m_finish.m_node + 1, new_nstart);
|
2192
|
+
boost::container::move(this->members_.m_start.m_node, this->members_.m_finish.m_node + 1, new_nstart);
|
1948
2193
|
this->priv_deallocate_map(this->members_.m_map, this->members_.m_map_size);
|
1949
2194
|
|
1950
2195
|
this->members_.m_map = new_map;
|
@@ -1954,45 +2199,12 @@ class deque : protected deque_base<T, Allocator>
|
|
1954
2199
|
this->members_.m_start.priv_set_node(new_nstart);
|
1955
2200
|
this->members_.m_finish.priv_set_node(new_nstart + old_num_nodes - 1);
|
1956
2201
|
}
|
1957
|
-
|
2202
|
+
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
1958
2203
|
};
|
1959
2204
|
|
1960
|
-
// Nonmember functions.
|
1961
|
-
template <class T, class Allocator>
|
1962
|
-
inline bool operator==(const deque<T, Allocator>& x, const deque<T, Allocator>& y)
|
1963
|
-
{
|
1964
|
-
return x.size() == y.size() && equal(x.begin(), x.end(), y.begin());
|
1965
|
-
}
|
1966
|
-
|
1967
|
-
template <class T, class Allocator>
|
1968
|
-
inline bool operator<(const deque<T, Allocator>& x, const deque<T, Allocator>& y)
|
1969
|
-
{
|
1970
|
-
return lexicographical_compare(x.begin(), x.end(), y.begin(), y.end());
|
1971
|
-
}
|
1972
|
-
|
1973
|
-
template <class T, class Allocator>
|
1974
|
-
inline bool operator!=(const deque<T, Allocator>& x, const deque<T, Allocator>& y)
|
1975
|
-
{ return !(x == y); }
|
1976
|
-
|
1977
|
-
template <class T, class Allocator>
|
1978
|
-
inline bool operator>(const deque<T, Allocator>& x, const deque<T, Allocator>& y)
|
1979
|
-
{ return y < x; }
|
1980
|
-
|
1981
|
-
template <class T, class Allocator>
|
1982
|
-
inline bool operator>=(const deque<T, Allocator>& x, const deque<T, Allocator>& y)
|
1983
|
-
{ return !(x < y); }
|
1984
|
-
|
1985
|
-
template <class T, class Allocator>
|
1986
|
-
inline bool operator<=(const deque<T, Allocator>& x, const deque<T, Allocator>& y)
|
1987
|
-
{ return !(y < x); }
|
1988
|
-
|
1989
|
-
template <class T, class Allocator>
|
1990
|
-
inline void swap(deque<T, Allocator>& x, deque<T, Allocator>& y)
|
1991
|
-
{ x.swap(y); }
|
1992
|
-
|
1993
2205
|
}}
|
1994
2206
|
|
1995
|
-
|
2207
|
+
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
1996
2208
|
|
1997
2209
|
namespace boost {
|
1998
2210
|
|
@@ -2000,12 +2212,15 @@ namespace boost {
|
|
2000
2212
|
//!specialization for optimizations
|
2001
2213
|
template <class T, class Allocator>
|
2002
2214
|
struct has_trivial_destructor_after_move<boost::container::deque<T, Allocator> >
|
2003
|
-
|
2004
|
-
|
2215
|
+
{
|
2216
|
+
typedef typename ::boost::container::allocator_traits<Allocator>::pointer pointer;
|
2217
|
+
static const bool value = ::boost::has_trivial_destructor_after_move<Allocator>::value &&
|
2218
|
+
::boost::has_trivial_destructor_after_move<pointer>::value;
|
2219
|
+
};
|
2005
2220
|
|
2006
2221
|
}
|
2007
2222
|
|
2008
|
-
|
2223
|
+
#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
|
2009
2224
|
|
2010
2225
|
#include <boost/container/detail/config_end.hpp>
|
2011
2226
|
|