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
@@ -9,6 +9,9 @@
|
|
9
9
|
// This header is obsolete and will be deprecated.
|
10
10
|
|
11
11
|
#include <iterator>
|
12
|
+
#if defined(__SUNPRO_CC) && (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))
|
13
|
+
#include <cstddef>
|
14
|
+
#endif
|
12
15
|
|
13
16
|
namespace boost
|
14
17
|
{
|
@@ -19,6 +22,16 @@ namespace detail
|
|
19
22
|
using std::iterator_traits;
|
20
23
|
using std::distance;
|
21
24
|
|
25
|
+
#if defined(__SUNPRO_CC) && (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))
|
26
|
+
// std::distance from stlport with Oracle compiler 12.4 and 12.5 fails to deduce template parameters
|
27
|
+
// when one of the arguments is an array and the other one is a pointer.
|
28
|
+
template< typename T, std::size_t N >
|
29
|
+
inline typename std::iterator_traits< T* >::difference_type distance(T (&left)[N], T* right)
|
30
|
+
{
|
31
|
+
return std::distance(static_cast< T* >(left), right);
|
32
|
+
}
|
33
|
+
#endif
|
34
|
+
|
22
35
|
} // namespace detail
|
23
36
|
|
24
37
|
} // namespace boost
|
@@ -125,6 +125,7 @@ inline std::streamsize lcast_get_precision(T* = 0)
|
|
125
125
|
limits::radix == 10 && limits::digits10 > 0;
|
126
126
|
std::streamsize const streamsize_max =
|
127
127
|
(boost::integer_traits<std::streamsize>::max)();
|
128
|
+
(void)streamsize_max;
|
128
129
|
|
129
130
|
if(is_specialized_bin)
|
130
131
|
{ // Floating-point types with
|
@@ -85,6 +85,11 @@
|
|
85
85
|
#else
|
86
86
|
#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 0
|
87
87
|
#endif
|
88
|
+
#ifndef BOOST_GCC
|
89
|
+
#define BOOST_GCC_WORKAROUND_GUARD 1
|
90
|
+
#else
|
91
|
+
#define BOOST_GCC_WORKAROUND_GUARD 0
|
92
|
+
#endif
|
88
93
|
#ifndef __IBMCPP__
|
89
94
|
#define __IBMCPP___WORKAROUND_GUARD 1
|
90
95
|
#else
|
@@ -12,6 +12,8 @@
|
|
12
12
|
#pragma warning(push,1)
|
13
13
|
#endif
|
14
14
|
|
15
|
+
#include <boost/config.hpp>
|
16
|
+
#include <utility>
|
15
17
|
#include <string>
|
16
18
|
|
17
19
|
namespace
|
@@ -46,6 +48,11 @@ boost
|
|
46
48
|
typedef T value_type;
|
47
49
|
|
48
50
|
error_info( value_type const & value );
|
51
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
52
|
+
error_info( error_info const & );
|
53
|
+
error_info( value_type && value ) BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(value_type(std::move(value))));
|
54
|
+
error_info( error_info && x ) BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(value_type(std::move(x.value_))));
|
55
|
+
#endif
|
49
56
|
~error_info() throw();
|
50
57
|
|
51
58
|
value_type const &
|
@@ -61,6 +68,10 @@ boost
|
|
61
68
|
}
|
62
69
|
|
63
70
|
private:
|
71
|
+
error_info & operator=( error_info const & );
|
72
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
73
|
+
error_info & operator=( error_info && x );
|
74
|
+
#endif
|
64
75
|
|
65
76
|
std::string name_value_string() const;
|
66
77
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
|
2
|
+
|
3
|
+
//Distributed under the Boost Software License, Version 1.0. (See accompanying
|
4
|
+
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
5
|
+
|
6
|
+
#ifndef UUID_837060E885AF11E68DA91D15E31AC075
|
7
|
+
#define UUID_837060E885AF11E68DA91D15E31AC075
|
8
|
+
|
9
|
+
#ifdef BOOST_EXCEPTION_MINI_BOOST
|
10
|
+
#include <memory>
|
11
|
+
namespace boost { namespace exception_detail { using std::shared_ptr; } }
|
12
|
+
#else
|
13
|
+
#include <boost/shared_ptr.hpp>
|
14
|
+
namespace boost { namespace exception_detail { using boost::shared_ptr; } }
|
15
|
+
#endif
|
16
|
+
|
17
|
+
#endif
|
@@ -12,6 +12,14 @@
|
|
12
12
|
#pragma warning(push,1)
|
13
13
|
#endif
|
14
14
|
|
15
|
+
#ifdef BOOST_EXCEPTION_MINI_BOOST
|
16
|
+
#include <memory>
|
17
|
+
namespace boost { namespace exception_detail { using std::shared_ptr; } }
|
18
|
+
#else
|
19
|
+
namespace boost { template <class T> class shared_ptr; };
|
20
|
+
namespace boost { namespace exception_detail { using boost::shared_ptr; } }
|
21
|
+
#endif
|
22
|
+
|
15
23
|
namespace
|
16
24
|
boost
|
17
25
|
{
|
@@ -144,9 +152,6 @@ boost
|
|
144
152
|
# endif
|
145
153
|
#endif
|
146
154
|
|
147
|
-
template <class T>
|
148
|
-
class shared_ptr;
|
149
|
-
|
150
155
|
namespace
|
151
156
|
exception_detail
|
152
157
|
{
|
@@ -182,6 +187,18 @@ boost
|
|
182
187
|
template <>
|
183
188
|
struct get_info<throw_line>;
|
184
189
|
|
190
|
+
template <class>
|
191
|
+
struct set_info_rv;
|
192
|
+
|
193
|
+
template <>
|
194
|
+
struct set_info_rv<throw_function>;
|
195
|
+
|
196
|
+
template <>
|
197
|
+
struct set_info_rv<throw_file>;
|
198
|
+
|
199
|
+
template <>
|
200
|
+
struct set_info_rv<throw_line>;
|
201
|
+
|
185
202
|
char const * get_diagnostic_information( exception const &, char const * );
|
186
203
|
|
187
204
|
void copy_boost_exception( exception *, exception const * );
|
@@ -264,6 +281,11 @@ boost
|
|
264
281
|
friend struct exception_detail::get_info<throw_function>;
|
265
282
|
friend struct exception_detail::get_info<throw_file>;
|
266
283
|
friend struct exception_detail::get_info<throw_line>;
|
284
|
+
template <class>
|
285
|
+
friend struct exception_detail::set_info_rv;
|
286
|
+
friend struct exception_detail::set_info_rv<throw_function>;
|
287
|
+
friend struct exception_detail::set_info_rv<throw_file>;
|
288
|
+
friend struct exception_detail::set_info_rv<throw_line>;
|
267
289
|
friend void exception_detail::copy_boost_exception( exception *, exception const * );
|
268
290
|
#endif
|
269
291
|
mutable exception_detail::refcount_ptr<exception_detail::error_info_container> data_;
|
@@ -15,7 +15,8 @@
|
|
15
15
|
#include <boost/exception/exception.hpp>
|
16
16
|
#include <boost/exception/detail/error_info_impl.hpp>
|
17
17
|
#include <boost/exception/detail/type_info.hpp>
|
18
|
-
#include <boost/shared_ptr.hpp>
|
18
|
+
#include <boost/exception/detail/shared_ptr.hpp>
|
19
|
+
#include <boost/assert.hpp>
|
19
20
|
|
20
21
|
namespace
|
21
22
|
boost
|
@@ -15,7 +15,7 @@
|
|
15
15
|
#include <boost/exception/exception.hpp>
|
16
16
|
#include <boost/exception/to_string_stub.hpp>
|
17
17
|
#include <boost/exception/detail/error_info_impl.hpp>
|
18
|
-
#include <boost/shared_ptr.hpp>
|
18
|
+
#include <boost/exception/detail/shared_ptr.hpp>
|
19
19
|
#include <boost/config.hpp>
|
20
20
|
#include <map>
|
21
21
|
|
@@ -46,6 +46,30 @@ boost
|
|
46
46
|
{
|
47
47
|
}
|
48
48
|
|
49
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
50
|
+
template <class Tag,class T>
|
51
|
+
inline
|
52
|
+
error_info<Tag,T>::
|
53
|
+
error_info( error_info const & x ):
|
54
|
+
value_(x.value_)
|
55
|
+
{
|
56
|
+
}
|
57
|
+
template <class Tag,class T>
|
58
|
+
inline
|
59
|
+
error_info<Tag,T>::
|
60
|
+
error_info( value_type && value ) BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(value_type(std::move(value)))):
|
61
|
+
value_(std::move(value))
|
62
|
+
{
|
63
|
+
}
|
64
|
+
template <class Tag,class T>
|
65
|
+
inline
|
66
|
+
error_info<Tag,T>::
|
67
|
+
error_info( error_info && x ) BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(value_type(std::move(x.value_)))):
|
68
|
+
value_(std::move(x.value_))
|
69
|
+
{
|
70
|
+
}
|
71
|
+
#endif
|
72
|
+
|
49
73
|
template <class Tag,class T>
|
50
74
|
inline
|
51
75
|
error_info<Tag,T>::
|
@@ -175,6 +199,85 @@ boost
|
|
175
199
|
return x;
|
176
200
|
}
|
177
201
|
|
202
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
203
|
+
template <class E,class Tag,class T>
|
204
|
+
E const & set_info( E const &, error_info<Tag,T> && );
|
205
|
+
template <class T>
|
206
|
+
struct set_info_rv;
|
207
|
+
template <class Tag,class T>
|
208
|
+
struct
|
209
|
+
set_info_rv<error_info<Tag,T> >
|
210
|
+
{
|
211
|
+
template <class E,class Tag1,class T1>
|
212
|
+
friend E const & set_info( E const &, error_info<Tag1,T1> && );
|
213
|
+
template <class E>
|
214
|
+
static
|
215
|
+
E const &
|
216
|
+
set( E const & x, error_info<Tag,T> && v )
|
217
|
+
{
|
218
|
+
typedef error_info<Tag,T> error_info_tag_t;
|
219
|
+
shared_ptr<error_info_tag_t> p( new error_info_tag_t(std::move(v)) );
|
220
|
+
exception_detail::error_info_container * c=x.data_.get();
|
221
|
+
if( !c )
|
222
|
+
x.data_.adopt(c=new exception_detail::error_info_container_impl);
|
223
|
+
c->set(p,BOOST_EXCEPTION_STATIC_TYPEID(error_info_tag_t));
|
224
|
+
return x;
|
225
|
+
}
|
226
|
+
};
|
227
|
+
template <>
|
228
|
+
struct
|
229
|
+
set_info_rv<throw_function>
|
230
|
+
{
|
231
|
+
template <class E,class Tag1,class T1>
|
232
|
+
friend E const & set_info( E const &, error_info<Tag1,T1> && );
|
233
|
+
template <class E>
|
234
|
+
static
|
235
|
+
E const &
|
236
|
+
set( E const & x, throw_function && y )
|
237
|
+
{
|
238
|
+
x.throw_function_=y.v_;
|
239
|
+
return x;
|
240
|
+
}
|
241
|
+
};
|
242
|
+
template <>
|
243
|
+
struct
|
244
|
+
set_info_rv<throw_file>
|
245
|
+
{
|
246
|
+
template <class E,class Tag1,class T1>
|
247
|
+
friend E const & set_info( E const &, error_info<Tag1,T1> && );
|
248
|
+
template <class E>
|
249
|
+
static
|
250
|
+
E const &
|
251
|
+
set( E const & x, throw_file && y )
|
252
|
+
{
|
253
|
+
x.throw_file_=y.v_;
|
254
|
+
return x;
|
255
|
+
}
|
256
|
+
};
|
257
|
+
template <>
|
258
|
+
struct
|
259
|
+
set_info_rv<throw_line>
|
260
|
+
{
|
261
|
+
template <class E,class Tag1,class T1>
|
262
|
+
friend E const & set_info( E const &, error_info<Tag1,T1> && );
|
263
|
+
template <class E>
|
264
|
+
static
|
265
|
+
E const &
|
266
|
+
set( E const & x, throw_line && y )
|
267
|
+
{
|
268
|
+
x.throw_line_=y.v_;
|
269
|
+
return x;
|
270
|
+
}
|
271
|
+
};
|
272
|
+
template <class E,class Tag,class T>
|
273
|
+
inline
|
274
|
+
E const &
|
275
|
+
set_info( E const & x, error_info<Tag,T> && v )
|
276
|
+
{
|
277
|
+
return set_info_rv<error_info<Tag,T> >::template set<E>(x,std::move(v));
|
278
|
+
}
|
279
|
+
#endif
|
280
|
+
|
178
281
|
template <class T>
|
179
282
|
struct
|
180
283
|
derives_boost_exception
|
@@ -190,6 +293,16 @@ boost
|
|
190
293
|
{
|
191
294
|
return exception_detail::set_info(x,v);
|
192
295
|
}
|
296
|
+
|
297
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
298
|
+
template <class E,class Tag,class T>
|
299
|
+
inline
|
300
|
+
typename enable_if<exception_detail::derives_boost_exception<E>,E const &>::type
|
301
|
+
operator<<( E const & x, error_info<Tag,T> && v )
|
302
|
+
{
|
303
|
+
return exception_detail::set_info(x,std::move(v));
|
304
|
+
}
|
305
|
+
#endif
|
193
306
|
}
|
194
307
|
|
195
308
|
#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
|
@@ -16,9 +16,9 @@
|
|
16
16
|
#include <memory>
|
17
17
|
#include <new>
|
18
18
|
#include <boost/config.hpp>
|
19
|
-
#include <boost/detail/sp_typeinfo.hpp>
|
20
19
|
#include <boost/assert.hpp>
|
21
20
|
#include <boost/integer.hpp>
|
21
|
+
#include <boost/type_index.hpp>
|
22
22
|
#include <boost/type_traits/has_trivial_copy.hpp>
|
23
23
|
#include <boost/type_traits/has_trivial_destructor.hpp>
|
24
24
|
#include <boost/type_traits/is_const.hpp>
|
@@ -41,28 +41,6 @@
|
|
41
41
|
# pragma warning( push )
|
42
42
|
# pragma warning( disable : 4793 ) // complaint about native code generation
|
43
43
|
# pragma warning( disable : 4127 ) // "conditional expression is constant"
|
44
|
-
#endif
|
45
|
-
|
46
|
-
// Define BOOST_FUNCTION_STD_NS to the namespace that contains type_info.
|
47
|
-
#ifdef BOOST_NO_STD_TYPEINFO
|
48
|
-
// Embedded VC++ does not have type_info in namespace std
|
49
|
-
# define BOOST_FUNCTION_STD_NS
|
50
|
-
#else
|
51
|
-
# define BOOST_FUNCTION_STD_NS std
|
52
|
-
#endif
|
53
|
-
|
54
|
-
// Borrowed from Boost.Python library: determines the cases where we
|
55
|
-
// need to use std::type_info::name to compare instead of operator==.
|
56
|
-
#if defined( BOOST_NO_TYPEID )
|
57
|
-
# define BOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) ((X)==(Y))
|
58
|
-
#elif defined(__GNUC__) \
|
59
|
-
|| defined(_AIX) \
|
60
|
-
|| ( defined(__sgi) && defined(__host_mips))
|
61
|
-
# include <cstring>
|
62
|
-
# define BOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) \
|
63
|
-
(std::strcmp((X).name(),(Y).name()) == 0)
|
64
|
-
# else
|
65
|
-
# define BOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) ((X)==(Y))
|
66
44
|
#endif
|
67
45
|
|
68
46
|
#if defined(__ICL) && __ICL <= 600 || defined(__MWERKS__) && __MWERKS__ < 0x2406 && !defined(BOOST_STRICT_CONFIG)
|
@@ -87,15 +65,16 @@ namespace boost {
|
|
87
65
|
* object pointers, and a structure that resembles a bound
|
88
66
|
* member function pointer.
|
89
67
|
*/
|
90
|
-
union
|
68
|
+
union function_buffer_members
|
91
69
|
{
|
92
70
|
// For pointers to function objects
|
93
|
-
|
71
|
+
typedef void* obj_ptr_t;
|
72
|
+
mutable obj_ptr_t obj_ptr;
|
94
73
|
|
95
74
|
// For pointers to std::type_info objects
|
96
75
|
struct type_t {
|
97
76
|
// (get_functor_type_tag, check_functor_type_tag).
|
98
|
-
const
|
77
|
+
const boost::typeindex::type_info* type;
|
99
78
|
|
100
79
|
// Whether the type is const-qualified.
|
101
80
|
bool const_qualified;
|
@@ -104,7 +83,8 @@ namespace boost {
|
|
104
83
|
} type;
|
105
84
|
|
106
85
|
// For function pointers of all kinds
|
107
|
-
|
86
|
+
typedef void (*func_ptr_t)();
|
87
|
+
mutable func_ptr_t func_ptr;
|
108
88
|
|
109
89
|
// For bound member pointers
|
110
90
|
struct bound_memfunc_ptr_t {
|
@@ -119,9 +99,15 @@ namespace boost {
|
|
119
99
|
bool is_const_qualified;
|
120
100
|
bool is_volatile_qualified;
|
121
101
|
} obj_ref;
|
102
|
+
};
|
103
|
+
|
104
|
+
union function_buffer
|
105
|
+
{
|
106
|
+
// Type-specific union members
|
107
|
+
mutable function_buffer_members members;
|
122
108
|
|
123
109
|
// To relax aliasing constraints
|
124
|
-
mutable char data;
|
110
|
+
mutable char data[sizeof(function_buffer_members)];
|
125
111
|
};
|
126
112
|
|
127
113
|
/**
|
@@ -188,45 +174,42 @@ namespace boost {
|
|
188
174
|
struct reference_manager
|
189
175
|
{
|
190
176
|
static inline void
|
191
|
-
manage(const function_buffer& in_buffer, function_buffer& out_buffer,
|
177
|
+
manage(const function_buffer& in_buffer, function_buffer& out_buffer,
|
192
178
|
functor_manager_operation_type op)
|
193
179
|
{
|
194
180
|
switch (op) {
|
195
|
-
case clone_functor_tag:
|
196
|
-
out_buffer.obj_ref = in_buffer.obj_ref;
|
181
|
+
case clone_functor_tag:
|
182
|
+
out_buffer.members.obj_ref = in_buffer.members.obj_ref;
|
197
183
|
return;
|
198
184
|
|
199
185
|
case move_functor_tag:
|
200
|
-
out_buffer.obj_ref = in_buffer.obj_ref;
|
201
|
-
in_buffer.obj_ref.obj_ptr = 0;
|
186
|
+
out_buffer.members.obj_ref = in_buffer.members.obj_ref;
|
187
|
+
in_buffer.members.obj_ref.obj_ptr = 0;
|
202
188
|
return;
|
203
189
|
|
204
190
|
case destroy_functor_tag:
|
205
|
-
out_buffer.obj_ref.obj_ptr = 0;
|
191
|
+
out_buffer.members.obj_ref.obj_ptr = 0;
|
206
192
|
return;
|
207
193
|
|
208
194
|
case check_functor_type_tag:
|
209
195
|
{
|
210
|
-
const detail::sp_typeinfo& check_type
|
211
|
-
= *out_buffer.type.type;
|
212
|
-
|
213
196
|
// Check whether we have the same type. We can add
|
214
197
|
// cv-qualifiers, but we can't take them away.
|
215
|
-
if (
|
216
|
-
&& (!in_buffer.obj_ref.is_const_qualified
|
217
|
-
|| out_buffer.type.const_qualified)
|
218
|
-
&& (!in_buffer.obj_ref.is_volatile_qualified
|
219
|
-
|| out_buffer.type.volatile_qualified))
|
220
|
-
out_buffer.obj_ptr = in_buffer.obj_ref.obj_ptr;
|
198
|
+
if (*out_buffer.members.type.type == boost::typeindex::type_id<F>()
|
199
|
+
&& (!in_buffer.members.obj_ref.is_const_qualified
|
200
|
+
|| out_buffer.members.type.const_qualified)
|
201
|
+
&& (!in_buffer.members.obj_ref.is_volatile_qualified
|
202
|
+
|| out_buffer.members.type.volatile_qualified))
|
203
|
+
out_buffer.members.obj_ptr = in_buffer.members.obj_ref.obj_ptr;
|
221
204
|
else
|
222
|
-
out_buffer.obj_ptr = 0;
|
205
|
+
out_buffer.members.obj_ptr = 0;
|
223
206
|
}
|
224
207
|
return;
|
225
208
|
|
226
209
|
case get_functor_type_tag:
|
227
|
-
out_buffer.type.type = &
|
228
|
-
out_buffer.type.const_qualified = in_buffer.obj_ref.is_const_qualified;
|
229
|
-
out_buffer.type.volatile_qualified = in_buffer.obj_ref.is_volatile_qualified;
|
210
|
+
out_buffer.members.type.type = &boost::typeindex::type_id<F>().type_info();
|
211
|
+
out_buffer.members.type.const_qualified = in_buffer.members.obj_ref.is_const_qualified;
|
212
|
+
out_buffer.members.type.volatile_qualified = in_buffer.members.obj_ref.is_volatile_qualified;
|
230
213
|
return;
|
231
214
|
}
|
232
215
|
}
|
@@ -240,9 +223,9 @@ namespace boost {
|
|
240
223
|
struct function_allows_small_object_optimization
|
241
224
|
{
|
242
225
|
BOOST_STATIC_CONSTANT
|
243
|
-
(bool,
|
226
|
+
(bool,
|
244
227
|
value = ((sizeof(F) <= sizeof(function_buffer) &&
|
245
|
-
(alignment_of<function_buffer>::value
|
228
|
+
(alignment_of<function_buffer>::value
|
246
229
|
% alignment_of<F>::value == 0))));
|
247
230
|
};
|
248
231
|
|
@@ -254,7 +237,7 @@ namespace boost {
|
|
254
237
|
A(a)
|
255
238
|
{
|
256
239
|
}
|
257
|
-
|
240
|
+
|
258
241
|
functor_wrapper(const functor_wrapper& f) :
|
259
242
|
F(static_cast<const F&>(f)),
|
260
243
|
A(static_cast<const A&>(f))
|
@@ -273,61 +256,57 @@ namespace boost {
|
|
273
256
|
|
274
257
|
// Function pointers
|
275
258
|
static inline void
|
276
|
-
manage_ptr(const function_buffer& in_buffer, function_buffer& out_buffer,
|
259
|
+
manage_ptr(const function_buffer& in_buffer, function_buffer& out_buffer,
|
277
260
|
functor_manager_operation_type op)
|
278
261
|
{
|
279
262
|
if (op == clone_functor_tag)
|
280
|
-
out_buffer.func_ptr = in_buffer.func_ptr;
|
263
|
+
out_buffer.members.func_ptr = in_buffer.members.func_ptr;
|
281
264
|
else if (op == move_functor_tag) {
|
282
|
-
out_buffer.func_ptr = in_buffer.func_ptr;
|
283
|
-
in_buffer.func_ptr = 0;
|
265
|
+
out_buffer.members.func_ptr = in_buffer.members.func_ptr;
|
266
|
+
in_buffer.members.func_ptr = 0;
|
284
267
|
} else if (op == destroy_functor_tag)
|
285
|
-
out_buffer.func_ptr = 0;
|
268
|
+
out_buffer.members.func_ptr = 0;
|
286
269
|
else if (op == check_functor_type_tag) {
|
287
|
-
|
288
|
-
=
|
289
|
-
if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, BOOST_SP_TYPEID(Functor)))
|
290
|
-
out_buffer.obj_ptr = &in_buffer.func_ptr;
|
270
|
+
if (*out_buffer.members.type.type == boost::typeindex::type_id<Functor>())
|
271
|
+
out_buffer.members.obj_ptr = &in_buffer.members.func_ptr;
|
291
272
|
else
|
292
|
-
out_buffer.obj_ptr = 0;
|
273
|
+
out_buffer.members.obj_ptr = 0;
|
293
274
|
} else /* op == get_functor_type_tag */ {
|
294
|
-
out_buffer.type.type = &
|
295
|
-
out_buffer.type.const_qualified = false;
|
296
|
-
out_buffer.type.volatile_qualified = false;
|
275
|
+
out_buffer.members.type.type = &boost::typeindex::type_id<Functor>().type_info();
|
276
|
+
out_buffer.members.type.const_qualified = false;
|
277
|
+
out_buffer.members.type.volatile_qualified = false;
|
297
278
|
}
|
298
279
|
}
|
299
280
|
|
300
281
|
// Function objects that fit in the small-object buffer.
|
301
282
|
static inline void
|
302
|
-
manage_small(const function_buffer& in_buffer, function_buffer& out_buffer,
|
283
|
+
manage_small(const function_buffer& in_buffer, function_buffer& out_buffer,
|
303
284
|
functor_manager_operation_type op)
|
304
285
|
{
|
305
286
|
if (op == clone_functor_tag || op == move_functor_tag) {
|
306
|
-
const functor_type* in_functor =
|
307
|
-
reinterpret_cast<const functor_type*>(
|
308
|
-
new (reinterpret_cast<void*>(
|
287
|
+
const functor_type* in_functor =
|
288
|
+
reinterpret_cast<const functor_type*>(in_buffer.data);
|
289
|
+
new (reinterpret_cast<void*>(out_buffer.data)) functor_type(*in_functor);
|
309
290
|
|
310
291
|
if (op == move_functor_tag) {
|
311
|
-
functor_type* f = reinterpret_cast<functor_type*>(
|
292
|
+
functor_type* f = reinterpret_cast<functor_type*>(in_buffer.data);
|
312
293
|
(void)f; // suppress warning about the value of f not being used (MSVC)
|
313
294
|
f->~Functor();
|
314
295
|
}
|
315
296
|
} else if (op == destroy_functor_tag) {
|
316
297
|
// Some compilers (Borland, vc6, ...) are unhappy with ~functor_type.
|
317
|
-
functor_type* f = reinterpret_cast<functor_type*>(
|
298
|
+
functor_type* f = reinterpret_cast<functor_type*>(out_buffer.data);
|
318
299
|
(void)f; // suppress warning about the value of f not being used (MSVC)
|
319
300
|
f->~Functor();
|
320
301
|
} else if (op == check_functor_type_tag) {
|
321
|
-
|
322
|
-
=
|
323
|
-
if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, BOOST_SP_TYPEID(Functor)))
|
324
|
-
out_buffer.obj_ptr = &in_buffer.data;
|
302
|
+
if (*out_buffer.members.type.type == boost::typeindex::type_id<Functor>())
|
303
|
+
out_buffer.members.obj_ptr = in_buffer.data;
|
325
304
|
else
|
326
|
-
out_buffer.obj_ptr = 0;
|
305
|
+
out_buffer.members.obj_ptr = 0;
|
327
306
|
} else /* op == get_functor_type_tag */ {
|
328
|
-
out_buffer.type.type = &
|
329
|
-
out_buffer.type.const_qualified = false;
|
330
|
-
out_buffer.type.volatile_qualified = false;
|
307
|
+
out_buffer.members.type.type = &boost::typeindex::type_id<Functor>().type_info();
|
308
|
+
out_buffer.members.type.const_qualified = false;
|
309
|
+
out_buffer.members.type.volatile_qualified = false;
|
331
310
|
}
|
332
311
|
}
|
333
312
|
};
|
@@ -340,7 +319,7 @@ namespace boost {
|
|
340
319
|
|
341
320
|
// Function pointers
|
342
321
|
static inline void
|
343
|
-
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
322
|
+
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
344
323
|
functor_manager_operation_type op, function_ptr_tag)
|
345
324
|
{
|
346
325
|
functor_manager_common<Functor>::manage_ptr(in_buffer,out_buffer,op);
|
@@ -348,15 +327,15 @@ namespace boost {
|
|
348
327
|
|
349
328
|
// Function objects that fit in the small-object buffer.
|
350
329
|
static inline void
|
351
|
-
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
330
|
+
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
352
331
|
functor_manager_operation_type op, mpl::true_)
|
353
332
|
{
|
354
333
|
functor_manager_common<Functor>::manage_small(in_buffer,out_buffer,op);
|
355
334
|
}
|
356
|
-
|
335
|
+
|
357
336
|
// Function objects that require heap allocation
|
358
337
|
static inline void
|
359
|
-
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
338
|
+
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
360
339
|
functor_manager_operation_type op, mpl::false_)
|
361
340
|
{
|
362
341
|
if (op == clone_functor_tag) {
|
@@ -366,29 +345,27 @@ namespace boost {
|
|
366
345
|
// jewillco: Changing this to static_cast because GCC 2.95.3 is
|
367
346
|
// obsolete.
|
368
347
|
const functor_type* f =
|
369
|
-
static_cast<const functor_type*>(in_buffer.obj_ptr);
|
348
|
+
static_cast<const functor_type*>(in_buffer.members.obj_ptr);
|
370
349
|
functor_type* new_f = new functor_type(*f);
|
371
|
-
out_buffer.obj_ptr = new_f;
|
350
|
+
out_buffer.members.obj_ptr = new_f;
|
372
351
|
} else if (op == move_functor_tag) {
|
373
|
-
out_buffer.obj_ptr = in_buffer.obj_ptr;
|
374
|
-
in_buffer.obj_ptr = 0;
|
352
|
+
out_buffer.members.obj_ptr = in_buffer.members.obj_ptr;
|
353
|
+
in_buffer.members.obj_ptr = 0;
|
375
354
|
} else if (op == destroy_functor_tag) {
|
376
355
|
/* Cast from the void pointer to the functor pointer type */
|
377
356
|
functor_type* f =
|
378
|
-
static_cast<functor_type*>(out_buffer.obj_ptr);
|
357
|
+
static_cast<functor_type*>(out_buffer.members.obj_ptr);
|
379
358
|
delete f;
|
380
|
-
out_buffer.obj_ptr = 0;
|
359
|
+
out_buffer.members.obj_ptr = 0;
|
381
360
|
} else if (op == check_functor_type_tag) {
|
382
|
-
|
383
|
-
=
|
384
|
-
if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, BOOST_SP_TYPEID(Functor)))
|
385
|
-
out_buffer.obj_ptr = in_buffer.obj_ptr;
|
361
|
+
if (*out_buffer.members.type.type == boost::typeindex::type_id<Functor>())
|
362
|
+
out_buffer.members.obj_ptr = in_buffer.members.obj_ptr;
|
386
363
|
else
|
387
|
-
out_buffer.obj_ptr = 0;
|
364
|
+
out_buffer.members.obj_ptr = 0;
|
388
365
|
} else /* op == get_functor_type_tag */ {
|
389
|
-
out_buffer.type.type = &
|
390
|
-
out_buffer.type.const_qualified = false;
|
391
|
-
out_buffer.type.volatile_qualified = false;
|
366
|
+
out_buffer.members.type.type = &boost::typeindex::type_id<Functor>().type_info();
|
367
|
+
out_buffer.members.type.const_qualified = false;
|
368
|
+
out_buffer.members.type.volatile_qualified = false;
|
392
369
|
}
|
393
370
|
}
|
394
371
|
|
@@ -396,7 +373,7 @@ namespace boost {
|
|
396
373
|
// object can use the small-object optimization buffer or
|
397
374
|
// whether we need to allocate it on the heap.
|
398
375
|
static inline void
|
399
|
-
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
376
|
+
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
400
377
|
functor_manager_operation_type op, function_obj_tag)
|
401
378
|
{
|
402
379
|
manager(in_buffer, out_buffer, op,
|
@@ -405,7 +382,7 @@ namespace boost {
|
|
405
382
|
|
406
383
|
// For member pointers, we use the small-object optimization buffer.
|
407
384
|
static inline void
|
408
|
-
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
385
|
+
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
409
386
|
functor_manager_operation_type op, member_ptr_tag)
|
410
387
|
{
|
411
388
|
manager(in_buffer, out_buffer, op, mpl::true_());
|
@@ -415,15 +392,15 @@ namespace boost {
|
|
415
392
|
/* Dispatch to an appropriate manager based on whether we have a
|
416
393
|
function pointer or a function object pointer. */
|
417
394
|
static inline void
|
418
|
-
manage(const function_buffer& in_buffer, function_buffer& out_buffer,
|
395
|
+
manage(const function_buffer& in_buffer, function_buffer& out_buffer,
|
419
396
|
functor_manager_operation_type op)
|
420
397
|
{
|
421
398
|
typedef typename get_function_tag<functor_type>::type tag_type;
|
422
399
|
switch (op) {
|
423
400
|
case get_functor_type_tag:
|
424
|
-
out_buffer.type.type = &
|
425
|
-
out_buffer.type.const_qualified = false;
|
426
|
-
out_buffer.type.volatile_qualified = false;
|
401
|
+
out_buffer.members.type.type = &boost::typeindex::type_id<functor_type>().type_info();
|
402
|
+
out_buffer.members.type.const_qualified = false;
|
403
|
+
out_buffer.members.type.volatile_qualified = false;
|
427
404
|
return;
|
428
405
|
|
429
406
|
default:
|
@@ -441,7 +418,7 @@ namespace boost {
|
|
441
418
|
|
442
419
|
// Function pointers
|
443
420
|
static inline void
|
444
|
-
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
421
|
+
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
445
422
|
functor_manager_operation_type op, function_ptr_tag)
|
446
423
|
{
|
447
424
|
functor_manager_common<Functor>::manage_ptr(in_buffer,out_buffer,op);
|
@@ -449,15 +426,15 @@ namespace boost {
|
|
449
426
|
|
450
427
|
// Function objects that fit in the small-object buffer.
|
451
428
|
static inline void
|
452
|
-
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
429
|
+
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
453
430
|
functor_manager_operation_type op, mpl::true_)
|
454
431
|
{
|
455
432
|
functor_manager_common<Functor>::manage_small(in_buffer,out_buffer,op);
|
456
433
|
}
|
457
|
-
|
434
|
+
|
458
435
|
// Function objects that require heap allocation
|
459
436
|
static inline void
|
460
|
-
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
437
|
+
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
461
438
|
functor_manager_operation_type op, mpl::false_)
|
462
439
|
{
|
463
440
|
typedef functor_wrapper<Functor,Allocator> functor_wrapper_type;
|
@@ -470,36 +447,34 @@ namespace boost {
|
|
470
447
|
// GCC 2.95.3 gets the CV qualifiers wrong here, so we
|
471
448
|
// can't do the static_cast that we should do.
|
472
449
|
const functor_wrapper_type* f =
|
473
|
-
static_cast<const functor_wrapper_type*>(in_buffer.obj_ptr);
|
450
|
+
static_cast<const functor_wrapper_type*>(in_buffer.members.obj_ptr);
|
474
451
|
wrapper_allocator_type wrapper_allocator(static_cast<Allocator const &>(*f));
|
475
452
|
wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1);
|
476
453
|
wrapper_allocator.construct(copy, *f);
|
477
454
|
|
478
455
|
// Get back to the original pointer type
|
479
456
|
functor_wrapper_type* new_f = static_cast<functor_wrapper_type*>(copy);
|
480
|
-
out_buffer.obj_ptr = new_f;
|
457
|
+
out_buffer.members.obj_ptr = new_f;
|
481
458
|
} else if (op == move_functor_tag) {
|
482
|
-
out_buffer.obj_ptr = in_buffer.obj_ptr;
|
483
|
-
in_buffer.obj_ptr = 0;
|
459
|
+
out_buffer.members.obj_ptr = in_buffer.members.obj_ptr;
|
460
|
+
in_buffer.members.obj_ptr = 0;
|
484
461
|
} else if (op == destroy_functor_tag) {
|
485
462
|
/* Cast from the void pointer to the functor_wrapper_type */
|
486
463
|
functor_wrapper_type* victim =
|
487
|
-
static_cast<functor_wrapper_type*>(in_buffer.obj_ptr);
|
464
|
+
static_cast<functor_wrapper_type*>(in_buffer.members.obj_ptr);
|
488
465
|
wrapper_allocator_type wrapper_allocator(static_cast<Allocator const &>(*victim));
|
489
466
|
wrapper_allocator.destroy(victim);
|
490
467
|
wrapper_allocator.deallocate(victim,1);
|
491
|
-
out_buffer.obj_ptr = 0;
|
468
|
+
out_buffer.members.obj_ptr = 0;
|
492
469
|
} else if (op == check_functor_type_tag) {
|
493
|
-
|
494
|
-
=
|
495
|
-
if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, BOOST_SP_TYPEID(Functor)))
|
496
|
-
out_buffer.obj_ptr = in_buffer.obj_ptr;
|
470
|
+
if (*out_buffer.members.type.type == boost::typeindex::type_id<Functor>())
|
471
|
+
out_buffer.members.obj_ptr = in_buffer.members.obj_ptr;
|
497
472
|
else
|
498
|
-
out_buffer.obj_ptr = 0;
|
473
|
+
out_buffer.members.obj_ptr = 0;
|
499
474
|
} else /* op == get_functor_type_tag */ {
|
500
|
-
out_buffer.type.type = &
|
501
|
-
out_buffer.type.const_qualified = false;
|
502
|
-
out_buffer.type.volatile_qualified = false;
|
475
|
+
out_buffer.members.type.type = &boost::typeindex::type_id<Functor>().type_info();
|
476
|
+
out_buffer.members.type.const_qualified = false;
|
477
|
+
out_buffer.members.type.volatile_qualified = false;
|
503
478
|
}
|
504
479
|
}
|
505
480
|
|
@@ -507,7 +482,7 @@ namespace boost {
|
|
507
482
|
// object can use the small-object optimization buffer or
|
508
483
|
// whether we need to allocate it on the heap.
|
509
484
|
static inline void
|
510
|
-
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
485
|
+
manager(const function_buffer& in_buffer, function_buffer& out_buffer,
|
511
486
|
functor_manager_operation_type op, function_obj_tag)
|
512
487
|
{
|
513
488
|
manager(in_buffer, out_buffer, op,
|
@@ -518,15 +493,15 @@ namespace boost {
|
|
518
493
|
/* Dispatch to an appropriate manager based on whether we have a
|
519
494
|
function pointer or a function object pointer. */
|
520
495
|
static inline void
|
521
|
-
manage(const function_buffer& in_buffer, function_buffer& out_buffer,
|
496
|
+
manage(const function_buffer& in_buffer, function_buffer& out_buffer,
|
522
497
|
functor_manager_operation_type op)
|
523
498
|
{
|
524
499
|
typedef typename get_function_tag<functor_type>::type tag_type;
|
525
500
|
switch (op) {
|
526
501
|
case get_functor_type_tag:
|
527
|
-
out_buffer.type.type = &
|
528
|
-
out_buffer.type.const_qualified = false;
|
529
|
-
out_buffer.type.volatile_qualified = false;
|
502
|
+
out_buffer.members.type.type = &boost::typeindex::type_id<functor_type>().type_info();
|
503
|
+
out_buffer.members.type.const_qualified = false;
|
504
|
+
out_buffer.members.type.volatile_qualified = false;
|
530
505
|
return;
|
531
506
|
|
532
507
|
default:
|
@@ -604,8 +579,8 @@ namespace boost {
|
|
604
579
|
*/
|
605
580
|
struct vtable_base
|
606
581
|
{
|
607
|
-
void (*manager)(const function_buffer& in_buffer,
|
608
|
-
function_buffer& out_buffer,
|
582
|
+
void (*manager)(const function_buffer& in_buffer,
|
583
|
+
function_buffer& out_buffer,
|
609
584
|
functor_manager_operation_type op);
|
610
585
|
};
|
611
586
|
} // end namespace function
|
@@ -625,15 +600,15 @@ public:
|
|
625
600
|
/** Determine if the function is empty (i.e., has no target). */
|
626
601
|
bool empty() const { return !vtable; }
|
627
602
|
|
628
|
-
/** Retrieve the type of the stored function object, or
|
603
|
+
/** Retrieve the type of the stored function object, or type_id<void>()
|
629
604
|
if this is empty. */
|
630
|
-
const
|
605
|
+
const boost::typeindex::type_info& target_type() const
|
631
606
|
{
|
632
|
-
if (!vtable) return
|
607
|
+
if (!vtable) return boost::typeindex::type_id<void>().type_info();
|
633
608
|
|
634
609
|
detail::function::function_buffer type;
|
635
610
|
get_vtable()->manager(functor, type, detail::function::get_functor_type_tag);
|
636
|
-
return *type.type.type;
|
611
|
+
return *type.members.type.type;
|
637
612
|
}
|
638
613
|
|
639
614
|
template<typename Functor>
|
@@ -642,12 +617,12 @@ public:
|
|
642
617
|
if (!vtable) return 0;
|
643
618
|
|
644
619
|
detail::function::function_buffer type_result;
|
645
|
-
type_result.type.type = &
|
646
|
-
type_result.type.const_qualified = is_const<Functor>::value;
|
647
|
-
type_result.type.volatile_qualified = is_volatile<Functor>::value;
|
648
|
-
get_vtable()->manager(functor, type_result,
|
620
|
+
type_result.members.type.type = &boost::typeindex::type_id<Functor>().type_info();
|
621
|
+
type_result.members.type.const_qualified = is_const<Functor>::value;
|
622
|
+
type_result.members.type.volatile_qualified = is_volatile<Functor>::value;
|
623
|
+
get_vtable()->manager(functor, type_result,
|
649
624
|
detail::function::check_functor_type_tag);
|
650
|
-
return static_cast<Functor*>(type_result.obj_ptr);
|
625
|
+
return static_cast<Functor*>(type_result.members.obj_ptr);
|
651
626
|
}
|
652
627
|
|
653
628
|
template<typename Functor>
|
@@ -656,14 +631,14 @@ public:
|
|
656
631
|
if (!vtable) return 0;
|
657
632
|
|
658
633
|
detail::function::function_buffer type_result;
|
659
|
-
type_result.type.type = &
|
660
|
-
type_result.type.const_qualified = true;
|
661
|
-
type_result.type.volatile_qualified = is_volatile<Functor>::value;
|
662
|
-
get_vtable()->manager(functor, type_result,
|
634
|
+
type_result.members.type.type = &boost::typeindex::type_id<Functor>().type_info();
|
635
|
+
type_result.members.type.const_qualified = true;
|
636
|
+
type_result.members.type.volatile_qualified = is_volatile<Functor>::value;
|
637
|
+
get_vtable()->manager(functor, type_result,
|
663
638
|
detail::function::check_functor_type_tag);
|
664
639
|
// GCC 2.95.3 gets the CV qualifiers wrong here, so we
|
665
640
|
// can't do the static_cast that we should do.
|
666
|
-
return static_cast<const Functor*>(type_result.obj_ptr);
|
641
|
+
return static_cast<const Functor*>(type_result.members.obj_ptr);
|
667
642
|
}
|
668
643
|
|
669
644
|
template<typename F>
|
@@ -883,10 +858,9 @@ namespace detail {
|
|
883
858
|
} // end namespace boost
|
884
859
|
|
885
860
|
#undef BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL
|
886
|
-
#undef BOOST_FUNCTION_COMPARE_TYPE_ID
|
887
861
|
|
888
862
|
#if defined(BOOST_MSVC)
|
889
863
|
# pragma warning( pop )
|
890
|
-
#endif
|
864
|
+
#endif
|
891
865
|
|
892
866
|
#endif // BOOST_FUNCTION_BASE_HEADER
|