passenger 5.1.4 → 5.1.5
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 +9 -0
- data/CHANGELOG +9 -0
- data/build/cxx_tests.rb +11 -1
- data/build/documentation.rb +0 -32
- data/build/support/cxx_dependency_map.rb +602 -2
- data/build/test_basics.rb +3 -3
- data/dev/boost-patches/0001-Patch-boost-thread-so-that-oxt-thread-can-use-it.patch +48 -0
- data/dev/boost-patches/0002-Make-boost-thread_interrupted-derive-from-oxt-tracab.patch +33 -0
- data/dev/boost-patches/0003-Disable-a-Clang-pragma-to-prevent-warnings-on-OS-X.patch +25 -0
- data/dev/ci/README.md +121 -0
- data/dev/ci/lib/functions.sh +129 -0
- data/dev/ci/lib/set-container-envvars.sh +46 -0
- data/dev/ci/lib/setup-container.sh +43 -0
- data/dev/ci/run-tests-natively +24 -0
- data/dev/ci/run-tests-with-docker +42 -0
- data/dev/ci/scripts/debug-console-wrapper.sh +27 -0
- data/dev/ci/scripts/docker-entrypoint-stage2.sh +17 -0
- data/dev/ci/scripts/docker-entrypoint.sh +17 -0
- data/dev/ci/scripts/inituidgid +17 -0
- data/dev/ci/scripts/run-tests-natively-stage2.sh +17 -0
- data/dev/ci/scripts/setup-host-natively.sh +11 -0
- data/dev/ci/setup-host +50 -0
- data/dev/ci/tests/apache2/run +6 -0
- data/dev/ci/tests/apache2/setup +4 -0
- data/dev/ci/tests/cxx/run +9 -0
- data/dev/ci/tests/cxx/setup +4 -0
- data/dev/ci/tests/nginx-dynamic/run +20 -0
- data/dev/ci/tests/nginx-dynamic/setup +4 -0
- data/dev/ci/tests/nginx/run +5 -0
- data/dev/ci/tests/nginx/setup +4 -0
- data/dev/ci/tests/nodejs/run +4 -0
- data/dev/ci/tests/nodejs/setup +4 -0
- data/dev/ci/tests/ruby/run +4 -0
- data/dev/ci/tests/ruby/setup +4 -0
- data/dev/ci/tests/source-packaging/run +4 -0
- data/dev/ci/tests/source-packaging/setup +4 -0
- data/dev/ci/tests/standalone/run +4 -0
- data/dev/ci/tests/standalone/setup +4 -0
- data/dev/copy_boost_headers +8 -2
- data/src/agent/Core/ApiServer.h +11 -5
- data/src/agent/Core/Controller.h +12 -46
- data/src/agent/Core/Controller/CheckoutSession.cpp +1 -1
- data/src/agent/Core/Controller/Config.h +369 -0
- data/src/agent/Core/Controller/ForwardResponse.cpp +4 -4
- data/src/agent/Core/Controller/Hooks.cpp +15 -3
- data/src/agent/Core/Controller/Implementation.cpp +1 -1
- data/src/agent/Core/Controller/InitRequest.cpp +28 -39
- data/src/agent/Core/Controller/InitializationAndShutdown.cpp +25 -60
- data/src/agent/Core/Controller/InternalUtils.cpp +0 -16
- data/src/agent/Core/Controller/Miscellaneous.cpp +0 -17
- data/src/agent/Core/Controller/Request.h +2 -0
- data/src/agent/Core/Controller/SendRequest.cpp +4 -4
- data/src/agent/Core/Controller/{StateInspectionAndConfiguration.cpp → StateInspection.cpp} +0 -22
- data/src/agent/Core/Controller/TurboCaching.h +11 -10
- data/src/agent/Core/CoreMain.cpp +16 -6
- data/src/agent/Core/ResponseCache.h +3 -3
- data/src/agent/Core/SpawningKit/SmartSpawner.h +9 -3
- data/src/agent/Core/SpawningKit/Spawner.h +7 -3
- data/src/agent/UstRouter/ApiServer.h +3 -2
- data/src/agent/UstRouter/Controller.h +66 -32
- data/src/agent/UstRouter/UstRouterMain.cpp +10 -2
- data/src/agent/Watchdog/ApiServer.h +3 -2
- data/src/agent/Watchdog/WatchdogMain.cpp +3 -1
- data/src/apache2_module/ConfigurationCommands.cpp +1 -1
- data/src/cxx_supportlib/ConfigKit/Common.h +125 -0
- data/src/cxx_supportlib/ConfigKit/ConfigKit.h +34 -0
- data/src/cxx_supportlib/ConfigKit/README.md +895 -0
- data/src/cxx_supportlib/ConfigKit/Schema.h +331 -0
- data/src/cxx_supportlib/ConfigKit/Store.h +385 -0
- data/src/cxx_supportlib/ConfigKit/TableTranslator.h +185 -0
- data/src/cxx_supportlib/ConfigKit/Utils.h +141 -0
- data/src/cxx_supportlib/ConfigKit/VariantMapUtils.h +81 -0
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/Crypto.cpp +2 -2
- data/src/cxx_supportlib/Logging.h +0 -35
- data/src/cxx_supportlib/ServerKit/HttpServer.h +35 -16
- data/src/cxx_supportlib/ServerKit/Server.h +65 -25
- data/src/cxx_supportlib/oxt/macros.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/replace.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/array.hpp +53 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_template.hpp +11 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +13 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_x86.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_msvc_x86.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_emulated.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_alpha.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_atomic.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sparc.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sync.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +28 -17
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_linux_arm.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_arm.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_x86.hpp +9 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/bind/arg.hpp +10 -3
- data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +90 -18
- data/src/cxx_supportlib/vendor-modified/boost/cerrno.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +35 -6
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/comeau.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/compaq_cxx.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +19 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/greenhills.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +29 -7
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/kai.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pgi.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sgi_mipspro.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +44 -16
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/platform/linux.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/select_compiler_config.hpp +21 -21
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +42 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcomo.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +40 -7
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +39 -6
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/modena.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/msl.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/roguewave.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/sgi.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/stlport.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/vacpp.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/suffix.hpp +33 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +0 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +34 -27
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +62 -26
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/addressof.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +39 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +49 -32
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +175 -7
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +223 -98
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_sorted.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +88 -41
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +7 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +4 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +45 -18
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +205 -26
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +290 -181
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +24 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +38 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +320 -46
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +91 -18
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +23 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +491 -120
- data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +399 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/deque.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_map.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_set.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/list.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/map.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/set.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/slist.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/small_vector.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/stable_vector.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/string.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/vector.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +101 -20
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +19 -14
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +117 -59
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +33 -28
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +414 -70
- data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_fwd.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +134 -117
- data/src/cxx_supportlib/vendor-modified/boost/core/addressof.hpp +202 -99
- data/src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp +8 -10
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +217 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/scoped_enum.hpp +29 -27
- data/src/cxx_supportlib/vendor-modified/boost/current_function.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/c_time.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/date_time/constrained_value.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration_types.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_facet.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/date_names_put.hpp +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_calendar.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day_of_year.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration_types.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_facet.hpp +27 -7
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_month.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_serialize.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_weekday.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_year.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_date_time.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/posix_time_zone.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/period.hpp +3 -2
- 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_config.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/ptime.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_parsers.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_zone_base.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/date_time/year_month_day.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/detail/iterator.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/detail/workaround.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/detail/shared_ptr.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +25 -3
- data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +114 -1
- data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +116 -142
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +57 -69
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash/detail/hash_float.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash/extensions.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/functional/hash/hash.hpp +27 -13
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/any_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +99 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +35 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +37 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +95 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +209 -72
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +86 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +11 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algo_type.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +58 -45
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +27 -26
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +27 -26
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/equal_to_value.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/exception_disposer.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +9 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/has_member_function_callable_with.hpp +83 -57
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iiterator.hpp +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +16 -15
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +70 -44
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +22 -21
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +29 -28
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/reverse_iterator.hpp +33 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/size_holder.hpp +19 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +21 -20
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/to_raw_pointer.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/transform_iterator.hpp +23 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +23 -22
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +10 -9
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +103 -29
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +295 -211
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +20 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/options.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/parent_from_member.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +22 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +36 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +43 -13
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +95 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/set_hook.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +96 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +102 -5
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +48 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +20 -11
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist_hook.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +95 -8
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +36 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +167 -23
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +100 -46
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +37 -27
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +30 -14
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +35 -36
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +6 -28
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +20 -5
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/posix_api.cpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once.cpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +11 -7
- data/src/cxx_supportlib/vendor-modified/boost/math/policies/policy.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/fpclassify.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +11 -0
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +40 -7
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +2437 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/insertion_sort.hpp +127 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +637 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge_sort.hpp +139 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +155 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +1 -116
- data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +14 -13
- data/src/cxx_supportlib/vendor-modified/boost/move/default_delete.hpp +17 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/destruct_n.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/fwd_macros.hpp +227 -32
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +30 -9
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils_core.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +84 -80
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/placement_new.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/reverse_iterator.hpp +171 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +14 -20
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +32 -33
- data/src/cxx_supportlib/vendor-modified/boost/move/make_unique.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +49 -49
- data/src/cxx_supportlib/vendor-modified/boost/move/utility.hpp +8 -7
- data/src/cxx_supportlib/vendor-modified/boost/move/utility_core.hpp +17 -16
- data/src/cxx_supportlib/vendor-modified/boost/mpl/print.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/none.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +197 -255
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +1059 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_aligned_storage.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +116 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_factory_support.hpp +36 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +253 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +196 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +117 -0
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +372 -554
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional_fwd.hpp +12 -1
- data/src/cxx_supportlib/vendor-modified/boost/pool/detail/mutex.hpp +15 -7
- data/src/cxx_supportlib/vendor-modified/boost/pool/pool_alloc.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/intel.h +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/visualc.h +15 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd.h +16 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86.h +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd.h +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd/versions.h +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/version_number.h +20 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/cat.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/binary_transform.hpp +5 -6
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/to_list_msvc.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/to_list.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/const_iterator.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/range/size_type.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +102 -87
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +45 -21
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +14 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +5 -14
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +116 -13
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +1004 -159
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +4 -58
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_noexcept.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +28 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ref_counter.hpp +187 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +52 -144
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +120 -450
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +70 -8
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +6 -5
- data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/barrier.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/completion_latch.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_views.hpp +0 -11
- data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_timed_queue.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +11 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +11 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/exceptions.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/executor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/generic_executor_ref.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/loop_executor.hpp +22 -18
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +163 -55
- data/src/cxx_supportlib/vendor-modified/boost/thread/futures/launch.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_all.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/lock_types.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/thread/locks.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +6 -7
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +17 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/timespec.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/scoped_thread.hpp +23 -18
- data/src/cxx_supportlib/vendor-modified/boost/thread/synchronized_value.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/thread/thread_functors.hpp +19 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/thread_guard.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/user_scheduler.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +265 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +272 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +300 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_reference.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/aligned_storage.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/common_type.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_arithmetic_type.hpp +9 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/mp_defer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/extent.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_assign.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_constructor.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_destructor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_assign.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_copy.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_destructor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_assign.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_constructor.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_abstract.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_array.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_assignable.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_const.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_default_constructible.hpp +21 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_destructible.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_pod.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_rvalue_reference.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_volatile.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_void.hpp +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/rank.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_all_extents.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_const.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_extent.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_pointer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_volatile.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_with_alignment.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +40 -6
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +4986 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +107 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/set.hpp +105 -0
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +1814 -1255
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +41 -45
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +1498 -1161
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +40 -44
- data/src/cxx_supportlib/vendor-modified/boost/utility.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/utility/base_from_member.hpp +7 -6
- data/src/cxx_supportlib/vendor-modified/boost/utility/compare_pointees.hpp +10 -2
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +39 -22
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +690 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view_fwd.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/helper-scripts/crash-watch.rb +3 -0
- data/src/ruby_supportlib/phusion_passenger.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +2 -12
- metadata +77 -38
- data/dev/ci/inituidgid +0 -24
- data/dev/ci/run_jenkins.sh +0 -70
- data/dev/ci/run_travis.sh +0 -314
- data/doc/Design and Architecture.html +0 -2421
- data/doc/Design and Architecture.txt +0 -511
- data/doc/Security of user switching support.html +0 -1833
- data/doc/Users guide Apache.html +0 -3101
- data/doc/Users guide Apache.idmap.txt +0 -451
- data/doc/Users guide Apache.txt +0 -534
- data/doc/Users guide Nginx.html +0 -3026
- data/doc/Users guide Nginx.idmap.txt +0 -431
- data/doc/Users guide Nginx.txt +0 -451
- data/doc/Users guide Standalone.html +0 -2092
- data/doc/Users guide Standalone.idmap.txt +0 -137
- data/doc/Users guide Standalone.txt +0 -81
- data/doc/Users guide.html +0 -1606
- data/doc/Users guide.txt +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +0 -20
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/address.hpp +0 -29
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/align.hpp +0 -40
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +0 -22
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +0 -29
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/hash_table.hpp +0 -383
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_allocator.hpp +0 -318
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_count_impl.hpp +0 -67
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_traits.hpp +0 -60
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_utility.hpp +0 -214
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_if_array.hpp +0 -34
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/allocate.hpp +0 -1128
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/buckets.hpp +0 -928
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/equivalent.hpp +0 -686
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/extract_key.hpp +0 -188
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/table.hpp +0 -873
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/unique.hpp +0 -628
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/util.hpp +0 -266
@@ -60,6 +60,30 @@ extern const char DEFAULT_INTERNAL_SERVER_ERROR_RESPONSE[];
|
|
60
60
|
extern const unsigned int DEFAULT_INTERNAL_SERVER_ERROR_RESPONSE_SIZE;
|
61
61
|
|
62
62
|
|
63
|
+
class HttpServerSchema: public BaseServerSchema {
|
64
|
+
private:
|
65
|
+
void initialize() {
|
66
|
+
using namespace ConfigKit;
|
67
|
+
|
68
|
+
add("request_freelist_limit", UINT_TYPE, OPTIONAL, 1024);
|
69
|
+
}
|
70
|
+
|
71
|
+
public:
|
72
|
+
HttpServerSchema()
|
73
|
+
: BaseServerSchema(true)
|
74
|
+
{
|
75
|
+
initialize();
|
76
|
+
finalize();
|
77
|
+
}
|
78
|
+
|
79
|
+
HttpServerSchema(bool _subclassing)
|
80
|
+
: BaseServerSchema(true)
|
81
|
+
{
|
82
|
+
initialize();
|
83
|
+
}
|
84
|
+
};
|
85
|
+
|
86
|
+
|
63
87
|
template< typename DerivedServer, typename Client = HttpClient<HttpRequest> >
|
64
88
|
class HttpServer: public BaseServer<DerivedServer, Client> {
|
65
89
|
public:
|
@@ -917,6 +941,13 @@ protected:
|
|
917
941
|
req->bodyChannel.deinitialize();
|
918
942
|
}
|
919
943
|
|
944
|
+
virtual void onConfigChange(const ConfigKit::Store *oldConfig) {
|
945
|
+
ParentClass::onConfigChange(oldConfig);
|
946
|
+
const ConfigKit::Store &config = this->config;
|
947
|
+
|
948
|
+
requestFreelistLimit = config["request_freelist_limit"].asUInt();
|
949
|
+
}
|
950
|
+
|
920
951
|
|
921
952
|
/***** Misc *****/
|
922
953
|
|
@@ -926,8 +957,9 @@ protected:
|
|
926
957
|
}
|
927
958
|
|
928
959
|
public:
|
929
|
-
HttpServer(Context *context
|
930
|
-
|
960
|
+
HttpServer(Context *context, const HttpServerSchema &schema,
|
961
|
+
const Json::Value &initialConfig = Json::Value())
|
962
|
+
: ParentClass(context, schema, initialConfig),
|
931
963
|
freeRequestCount(0),
|
932
964
|
requestFreelistLimit(1024),
|
933
965
|
totalRequestsBegun(0),
|
@@ -966,7 +998,7 @@ public:
|
|
966
998
|
|
967
999
|
/***** Request manipulation *****/
|
968
1000
|
|
969
|
-
|
1001
|
+
/** Increase request reference count. */
|
970
1002
|
void refRequest(Request *req, const char *file, unsigned int line) {
|
971
1003
|
int oldRefcount = req->refcount.fetch_add(1, boost::memory_order_relaxed);
|
972
1004
|
SKC_TRACE_WITH_POS(static_cast<Client *>(req->client), 3, file, line,
|
@@ -1178,19 +1210,6 @@ public:
|
|
1178
1210
|
|
1179
1211
|
/***** Configuration and introspection *****/
|
1180
1212
|
|
1181
|
-
virtual void configure(const Json::Value &doc) {
|
1182
|
-
ParentClass::configure(doc);
|
1183
|
-
if (doc.isMember("request_freelist_limit")) {
|
1184
|
-
requestFreelistLimit = doc["request_freelist_limit"].asUInt();
|
1185
|
-
}
|
1186
|
-
}
|
1187
|
-
|
1188
|
-
virtual Json::Value getConfigAsJson() const {
|
1189
|
-
Json::Value doc = ParentClass::getConfigAsJson();
|
1190
|
-
doc["request_freelist_limit"] = requestFreelistLimit;
|
1191
|
-
return doc;
|
1192
|
-
}
|
1193
|
-
|
1194
1213
|
virtual Json::Value inspectStateAsJson() const {
|
1195
1214
|
Json::Value doc = ParentClass::inspectStateAsJson();
|
1196
1215
|
doc["free_request_count"] = freeRequestCount;
|
@@ -56,6 +56,7 @@
|
|
56
56
|
#include <ServerKit/Hooks.h>
|
57
57
|
#include <ServerKit/Client.h>
|
58
58
|
#include <ServerKit/ClientRef.h>
|
59
|
+
#include <ConfigKit/ConfigKit.h>
|
59
60
|
#include <Algorithms/MovingAverage.h>
|
60
61
|
#include <Utils.h>
|
61
62
|
#include <Utils/ScopeGuard.h>
|
@@ -139,6 +140,30 @@ using namespace oxt;
|
|
139
140
|
TRACE_POINT_WITH_DATA_FUNCTION(klass::_getClientNameFromTracePoint, client); \
|
140
141
|
SKC_TRACE_FROM_STATIC(server, client, 3, "Event: " eventName)
|
141
142
|
|
143
|
+
|
144
|
+
class BaseServerSchema: public ConfigKit::Schema {
|
145
|
+
private:
|
146
|
+
void initialize() {
|
147
|
+
using namespace ConfigKit;
|
148
|
+
|
149
|
+
add("accept_burst_count", UINT_TYPE, OPTIONAL, 32);
|
150
|
+
add("start_reading_after_accept", BOOL_TYPE, OPTIONAL, true);
|
151
|
+
add("min_spare_clients", UINT_TYPE, OPTIONAL, 0);
|
152
|
+
add("client_freelist_limit", UINT_TYPE, OPTIONAL, 0);
|
153
|
+
}
|
154
|
+
|
155
|
+
public:
|
156
|
+
BaseServerSchema() {
|
157
|
+
initialize();
|
158
|
+
finalize();
|
159
|
+
}
|
160
|
+
|
161
|
+
BaseServerSchema(bool _subclassing) {
|
162
|
+
initialize();
|
163
|
+
}
|
164
|
+
};
|
165
|
+
|
166
|
+
|
142
167
|
/**
|
143
168
|
* A highly optimized generic base class for evented socket servers, implementing basic,
|
144
169
|
* low-level connection management.
|
@@ -203,6 +228,7 @@ public:
|
|
203
228
|
typedef void (*Callback)(DerivedServer *server);
|
204
229
|
|
205
230
|
/***** Configuration *****/
|
231
|
+
ConfigKit::Store config;
|
206
232
|
unsigned int acceptBurstCount: 7;
|
207
233
|
bool startReadingAfterAccept: 1;
|
208
234
|
unsigned int minSpareClients: 12;
|
@@ -632,11 +658,20 @@ protected:
|
|
632
658
|
// Do nothing.
|
633
659
|
}
|
634
660
|
|
661
|
+
virtual void onConfigChange(const ConfigKit::Store *oldConfig) {
|
662
|
+
acceptBurstCount = config["accept_burst_count"].asUInt();
|
663
|
+
startReadingAfterAccept = config["start_reading_after_accept"].asBool();
|
664
|
+
minSpareClients = config["min_spare_clients"].asUInt();
|
665
|
+
clientFreelistLimit = config["client_freelist_limit"].asUInt();
|
666
|
+
}
|
667
|
+
|
635
668
|
public:
|
636
669
|
/***** Public methods *****/
|
637
670
|
|
638
|
-
BaseServer(Context *context
|
639
|
-
|
671
|
+
BaseServer(Context *context, const BaseServerSchema &schema,
|
672
|
+
const Json::Value &initialConfig = Json::Value())
|
673
|
+
: config(schema),
|
674
|
+
acceptBurstCount(0),
|
640
675
|
startReadingAfterAccept(true),
|
641
676
|
minSpareClients(0),
|
642
677
|
clientFreelistLimit(0),
|
@@ -657,6 +692,12 @@ public:
|
|
657
692
|
nEndpoints(0),
|
658
693
|
accept4Available(true)
|
659
694
|
{
|
695
|
+
vector<ConfigKit::Error> errors;
|
696
|
+
if (!config.update(initialConfig, errors)) {
|
697
|
+
throw ArgumentException("Invalid initial configuration: " +
|
698
|
+
toString(errors));
|
699
|
+
}
|
700
|
+
|
660
701
|
STAILQ_INIT(&freeClients);
|
661
702
|
TAILQ_INIT(&activeClients);
|
662
703
|
TAILQ_INIT(&disconnectedClients);
|
@@ -670,8 +711,6 @@ public:
|
|
670
711
|
statisticsUpdateWatcher.set<
|
671
712
|
BaseServer<DerivedServer, Client>,
|
672
713
|
&BaseServer<DerivedServer, Client>::onStatisticsUpdateTimeout>(this);
|
673
|
-
statisticsUpdateWatcher.set(5, 5);
|
674
|
-
statisticsUpdateWatcher.start();
|
675
714
|
}
|
676
715
|
|
677
716
|
virtual ~BaseServer() {
|
@@ -681,6 +720,12 @@ public:
|
|
681
720
|
|
682
721
|
/***** Initialization, listening and shutdown *****/
|
683
722
|
|
723
|
+
virtual void initialize() {
|
724
|
+
onConfigChange(NULL);
|
725
|
+
statisticsUpdateWatcher.set(5, 5);
|
726
|
+
statisticsUpdateWatcher.start();
|
727
|
+
}
|
728
|
+
|
684
729
|
// Pre-create multiple client objects so that they get allocated
|
685
730
|
// near each other in memory. Hopefully increases CPU cache locality.
|
686
731
|
void createSpareClients() {
|
@@ -1017,28 +1062,22 @@ public:
|
|
1017
1062
|
return P_STATIC_STRING("Server");
|
1018
1063
|
}
|
1019
1064
|
|
1020
|
-
virtual
|
1021
|
-
|
1022
|
-
|
1023
|
-
|
1024
|
-
|
1025
|
-
|
1026
|
-
|
1027
|
-
|
1028
|
-
|
1029
|
-
|
1030
|
-
if (doc.isMember("client_freelist_limit")) {
|
1031
|
-
clientFreelistLimit = doc["client_freelist_limit"].asUInt();
|
1065
|
+
virtual Json::Value previewConfigUpdate(const Json::Value &updates,
|
1066
|
+
vector<ConfigKit::Error> &errors)
|
1067
|
+
{
|
1068
|
+
return config.previewUpdate(updates, errors);
|
1069
|
+
}
|
1070
|
+
|
1071
|
+
virtual bool configure(const Json::Value &updates, vector<ConfigKit::Error> &errors) {
|
1072
|
+
ConfigKit::Store oldConfig = config;
|
1073
|
+
if (config.update(updates, errors)) {
|
1074
|
+
onConfigChange(&oldConfig);
|
1032
1075
|
}
|
1076
|
+
return errors.empty();
|
1033
1077
|
}
|
1034
1078
|
|
1035
|
-
virtual Json::Value
|
1036
|
-
|
1037
|
-
doc["accept_burst_count"] = acceptBurstCount;
|
1038
|
-
doc["start_reading_after_accept"] = startReadingAfterAccept;
|
1039
|
-
doc["min_spare_clients"] = minSpareClients;
|
1040
|
-
doc["client_freelist_limit"] = clientFreelistLimit;
|
1041
|
-
return doc;
|
1079
|
+
virtual Json::Value inspectConfig() const {
|
1080
|
+
return config.inspect();
|
1042
1081
|
}
|
1043
1082
|
|
1044
1083
|
virtual Json::Value inspectStateAsJson() const {
|
@@ -1161,8 +1200,9 @@ public:
|
|
1161
1200
|
template <typename Client = Client>
|
1162
1201
|
class Server: public BaseServer<Server<Client>, Client> {
|
1163
1202
|
public:
|
1164
|
-
Server(Context *context
|
1165
|
-
|
1203
|
+
Server(Context *context, const BaseServerSchema &schema,
|
1204
|
+
const Json::Value &initialConfig = Json::Value())
|
1205
|
+
: BaseServer<Server, Client>(context, schema, initialConfig)
|
1166
1206
|
{ }
|
1167
1207
|
};
|
1168
1208
|
|
@@ -54,6 +54,8 @@
|
|
54
54
|
*/
|
55
55
|
#define OXT_FORCE_INLINE __attribute__((always_inline))
|
56
56
|
|
57
|
+
#define OXT_PURE __attribute__((pure))
|
58
|
+
|
57
59
|
#if __GNUC__ >= 4
|
58
60
|
#define OXT_RESTRICT __restrict__
|
59
61
|
#else
|
@@ -77,6 +79,7 @@
|
|
77
79
|
#define OXT_LIKELY(expr) expr
|
78
80
|
#define OXT_UNLIKELY(expr) expr
|
79
81
|
#define OXT_FORCE_INLINE
|
82
|
+
#define OXT_PURE
|
80
83
|
#define restrict
|
81
84
|
#define restrict_ref
|
82
85
|
#endif
|
@@ -401,7 +401,6 @@ namespace boost {
|
|
401
401
|
\param Search A substring to be searched for
|
402
402
|
\param Format A substitute string
|
403
403
|
\param Loc A locale used for case insensitive comparison
|
404
|
-
\return A reference to the modified input
|
405
404
|
*/
|
406
405
|
template<typename SequenceT, typename Range1T, typename Range2T>
|
407
406
|
inline void ireplace_last(
|
@@ -643,7 +642,6 @@ namespace boost {
|
|
643
642
|
\param Input An input string
|
644
643
|
\param Search A substring to be searched for
|
645
644
|
\param Format A substitute string
|
646
|
-
\return A reference to the modified input
|
647
645
|
*/
|
648
646
|
template<typename SequenceT, typename Range1T, typename Range2T>
|
649
647
|
inline void replace_all(
|
@@ -13,6 +13,7 @@
|
|
13
13
|
* accompanying file LICENSE_1_0.txt or copy at
|
14
14
|
* http://www.boost.org/LICENSE_1_0.txt)
|
15
15
|
*
|
16
|
+
* 9 Jan 2013 - (mtc) Added constexpr
|
16
17
|
* 14 Apr 2012 - (mtc) Added support for boost::hash
|
17
18
|
* 28 Dec 2010 - (mtc) Added cbegin and cend (and crbegin and crend) for C++Ox compatibility.
|
18
19
|
* 10 Mar 2010 - (mtc) fill method added, matching resolution of the standard library working group.
|
@@ -42,12 +43,12 @@
|
|
42
43
|
#include <cstddef>
|
43
44
|
#include <stdexcept>
|
44
45
|
#include <boost/assert.hpp>
|
46
|
+
#include <boost/static_assert.hpp>
|
45
47
|
#include <boost/swap.hpp>
|
46
48
|
|
47
49
|
// Handles broken standard libraries better than <iterator>
|
48
50
|
#include <boost/detail/iterator.hpp>
|
49
51
|
#include <boost/throw_exception.hpp>
|
50
|
-
#include <boost/functional/hash_fwd.hpp>
|
51
52
|
#include <algorithm>
|
52
53
|
|
53
54
|
// FIXES for broken compilers
|
@@ -81,15 +82,9 @@ namespace boost {
|
|
81
82
|
const_iterator cend() const { return elems+N; }
|
82
83
|
|
83
84
|
// reverse iterator support
|
84
|
-
#if !defined(
|
85
|
+
#if !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
|
85
86
|
typedef std::reverse_iterator<iterator> reverse_iterator;
|
86
87
|
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
|
87
|
-
#elif defined(_MSC_VER) && (_MSC_VER == 1300) && defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB == 310)
|
88
|
-
// workaround for broken reverse_iterator in VC7
|
89
|
-
typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, iterator,
|
90
|
-
reference, iterator, reference> > reverse_iterator;
|
91
|
-
typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, const_iterator,
|
92
|
-
const_reference, iterator, reference> > const_reverse_iterator;
|
93
88
|
#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
|
94
89
|
typedef std::reverse_iterator<iterator, std::random_access_iterator_tag,
|
95
90
|
value_type, reference, iterator, difference_type> reverse_iterator;
|
@@ -120,19 +115,17 @@ namespace boost {
|
|
120
115
|
// operator[]
|
121
116
|
reference operator[](size_type i)
|
122
117
|
{
|
123
|
-
BOOST_ASSERT_MSG( i < N, "out of range" );
|
124
|
-
return elems[i];
|
118
|
+
return BOOST_ASSERT_MSG( i < N, "out of range" ), elems[i];
|
125
119
|
}
|
126
120
|
|
127
|
-
const_reference operator[](size_type i) const
|
121
|
+
/*BOOST_CONSTEXPR*/ const_reference operator[](size_type i) const
|
128
122
|
{
|
129
|
-
BOOST_ASSERT_MSG( i < N, "out of range" );
|
130
|
-
return elems[i];
|
123
|
+
return BOOST_ASSERT_MSG( i < N, "out of range" ), elems[i];
|
131
124
|
}
|
132
125
|
|
133
126
|
// at() with range check
|
134
|
-
reference
|
135
|
-
const_reference at(size_type i) const { rangecheck(i)
|
127
|
+
reference at(size_type i) { return rangecheck(i), elems[i]; }
|
128
|
+
/*BOOST_CONSTEXPR*/ const_reference at(size_type i) const { return rangecheck(i), elems[i]; }
|
136
129
|
|
137
130
|
// front() and back()
|
138
131
|
reference front()
|
@@ -140,7 +133,7 @@ namespace boost {
|
|
140
133
|
return elems[0];
|
141
134
|
}
|
142
135
|
|
143
|
-
const_reference front() const
|
136
|
+
BOOST_CONSTEXPR const_reference front() const
|
144
137
|
{
|
145
138
|
return elems[0];
|
146
139
|
}
|
@@ -150,15 +143,15 @@ namespace boost {
|
|
150
143
|
return elems[N-1];
|
151
144
|
}
|
152
145
|
|
153
|
-
const_reference back() const
|
146
|
+
BOOST_CONSTEXPR const_reference back() const
|
154
147
|
{
|
155
148
|
return elems[N-1];
|
156
149
|
}
|
157
150
|
|
158
151
|
// size is constant
|
159
|
-
static size_type size() { return N; }
|
160
|
-
static bool empty() { return false; }
|
161
|
-
static size_type max_size() { return N; }
|
152
|
+
static BOOST_CONSTEXPR size_type size() { return N; }
|
153
|
+
static BOOST_CONSTEXPR bool empty() { return false; }
|
154
|
+
static BOOST_CONSTEXPR size_type max_size() { return N; }
|
162
155
|
enum { static_size = N };
|
163
156
|
|
164
157
|
// swap (note: linear complexity)
|
@@ -189,16 +182,12 @@ namespace boost {
|
|
189
182
|
}
|
190
183
|
|
191
184
|
// check range (may be private because it is static)
|
192
|
-
static
|
193
|
-
|
194
|
-
std::out_of_range e("array<>: index out of range");
|
195
|
-
boost::throw_exception(e);
|
196
|
-
}
|
185
|
+
static BOOST_CONSTEXPR bool rangecheck (size_type i) {
|
186
|
+
return i > size() ? boost::throw_exception(std::out_of_range ("array<>: index out of range")), true : true;
|
197
187
|
}
|
198
188
|
|
199
189
|
};
|
200
190
|
|
201
|
-
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
|
202
191
|
template< class T >
|
203
192
|
class array< T, 0 > {
|
204
193
|
|
@@ -222,15 +211,9 @@ namespace boost {
|
|
222
211
|
const_iterator cend() const { return cbegin(); }
|
223
212
|
|
224
213
|
// reverse iterator support
|
225
|
-
#if !defined(
|
214
|
+
#if !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
|
226
215
|
typedef std::reverse_iterator<iterator> reverse_iterator;
|
227
216
|
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
|
228
|
-
#elif defined(_MSC_VER) && (_MSC_VER == 1300) && defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB == 310)
|
229
|
-
// workaround for broken reverse_iterator in VC7
|
230
|
-
typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, iterator,
|
231
|
-
reference, iterator, reference> > reverse_iterator;
|
232
|
-
typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, const_iterator,
|
233
|
-
const_reference, iterator, reference> > const_reverse_iterator;
|
234
217
|
#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
|
235
218
|
typedef std::reverse_iterator<iterator, std::random_access_iterator_tag,
|
236
219
|
value_type, reference, iterator, difference_type> reverse_iterator;
|
@@ -264,14 +247,14 @@ namespace boost {
|
|
264
247
|
return failed_rangecheck();
|
265
248
|
}
|
266
249
|
|
267
|
-
const_reference operator[](size_type /*i*/) const
|
250
|
+
/*BOOST_CONSTEXPR*/ const_reference operator[](size_type /*i*/) const
|
268
251
|
{
|
269
252
|
return failed_rangecheck();
|
270
253
|
}
|
271
254
|
|
272
255
|
// at() with range check
|
273
256
|
reference at(size_type /*i*/) { return failed_rangecheck(); }
|
274
|
-
const_reference at(size_type /*i*/) const {
|
257
|
+
/*BOOST_CONSTEXPR*/ const_reference at(size_type /*i*/) const { return failed_rangecheck(); }
|
275
258
|
|
276
259
|
// front() and back()
|
277
260
|
reference front()
|
@@ -279,7 +262,7 @@ namespace boost {
|
|
279
262
|
return failed_rangecheck();
|
280
263
|
}
|
281
264
|
|
282
|
-
const_reference front() const
|
265
|
+
BOOST_CONSTEXPR const_reference front() const
|
283
266
|
{
|
284
267
|
return failed_rangecheck();
|
285
268
|
}
|
@@ -289,15 +272,15 @@ namespace boost {
|
|
289
272
|
return failed_rangecheck();
|
290
273
|
}
|
291
274
|
|
292
|
-
const_reference back() const
|
275
|
+
BOOST_CONSTEXPR const_reference back() const
|
293
276
|
{
|
294
277
|
return failed_rangecheck();
|
295
278
|
}
|
296
279
|
|
297
280
|
// size is constant
|
298
|
-
static size_type size() { return 0; }
|
299
|
-
static bool empty() { return true; }
|
300
|
-
static size_type max_size() { return 0; }
|
281
|
+
static BOOST_CONSTEXPR size_type size() { return 0; }
|
282
|
+
static BOOST_CONSTEXPR bool empty() { return true; }
|
283
|
+
static BOOST_CONSTEXPR size_type max_size() { return 0; }
|
301
284
|
enum { static_size = 0 };
|
302
285
|
|
303
286
|
void swap (array<T,0>& /*y*/) {
|
@@ -335,7 +318,6 @@ namespace boost {
|
|
335
318
|
#endif
|
336
319
|
}
|
337
320
|
};
|
338
|
-
#endif
|
339
321
|
|
340
322
|
// comparisons
|
341
323
|
template<class T, std::size_t N>
|
@@ -391,7 +373,7 @@ namespace boost {
|
|
391
373
|
|
392
374
|
// Specific for boost::array: simply returns its elems data member.
|
393
375
|
template <typename T, std::size_t N>
|
394
|
-
typename
|
376
|
+
typename detail::c_array<T,N>::type const& get_c_array(const boost::array<T,N>& arg)
|
395
377
|
{
|
396
378
|
return arg.elems;
|
397
379
|
}
|
@@ -429,6 +411,7 @@ namespace boost {
|
|
429
411
|
}
|
430
412
|
#endif
|
431
413
|
|
414
|
+
template <class It> std::size_t hash_range(It, It);
|
432
415
|
|
433
416
|
template<class T, std::size_t N>
|
434
417
|
std::size_t hash_value(const array<T,N>& arr)
|
@@ -436,8 +419,36 @@ namespace boost {
|
|
436
419
|
return boost::hash_range(arr.begin(), arr.end());
|
437
420
|
}
|
438
421
|
|
422
|
+
template <size_t Idx, typename T, size_t N>
|
423
|
+
T &get(boost::array<T,N> &arr) BOOST_NOEXCEPT {
|
424
|
+
BOOST_STATIC_ASSERT_MSG ( Idx < N, "boost::get<>(boost::array &) index out of range" );
|
425
|
+
return arr[Idx];
|
426
|
+
}
|
427
|
+
|
428
|
+
template <size_t Idx, typename T, size_t N>
|
429
|
+
const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
|
430
|
+
BOOST_STATIC_ASSERT_MSG ( Idx < N, "boost::get<>(const boost::array &) index out of range" );
|
431
|
+
return arr[Idx];
|
432
|
+
}
|
433
|
+
|
439
434
|
} /* namespace boost */
|
440
435
|
|
436
|
+
#ifndef BOOST_NO_CXX11_HDR_ARRAY
|
437
|
+
// If we don't have std::array, I'm assuming that we don't have std::get
|
438
|
+
namespace std {
|
439
|
+
template <size_t Idx, typename T, size_t N>
|
440
|
+
T &get(boost::array<T,N> &arr) BOOST_NOEXCEPT {
|
441
|
+
BOOST_STATIC_ASSERT_MSG ( Idx < N, "std::get<>(boost::array &) index out of range" );
|
442
|
+
return arr[Idx];
|
443
|
+
}
|
444
|
+
|
445
|
+
template <size_t Idx, typename T, size_t N>
|
446
|
+
const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
|
447
|
+
BOOST_STATIC_ASSERT_MSG ( Idx < N, "std::get<>(const boost::array &) index out of range" );
|
448
|
+
return arr[Idx];
|
449
|
+
}
|
450
|
+
}
|
451
|
+
#endif
|
441
452
|
|
442
453
|
#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
|
443
454
|
# pragma warning(pop)
|