passenger 6.0.1 → 6.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +145 -18
- data/CONTRIBUTORS +6 -0
- data/bin/passenger-install-nginx-module +1 -1
- data/bin/passenger-status +15 -0
- data/build/misc.rb +3 -1
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +56 -3
- data/dev/copy_boost_headers +1 -0
- data/package.json +1 -1
- data/passenger.gemspec +9 -1
- data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.css +0 -0
- data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.js +0 -0
- data/resources/templates/error_renderer/with_details/src/bootstrap/config.json +0 -0
- data/resources/templates/standalone/http.erb +2 -0
- data/resources/templates/standalone/server.erb +1 -0
- data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +1 -0
- data/src/agent/Core/ApplicationPool/Options.h +10 -0
- data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +1 -1
- data/src/agent/Core/Config.h +14 -1
- data/src/agent/Core/Controller.h +1 -0
- data/src/agent/Core/Controller/Config.h +5 -1
- data/src/agent/Core/Controller/ForwardResponse.cpp +13 -0
- data/src/agent/Core/Controller/InitRequest.cpp +3 -0
- data/src/agent/Core/Controller/InitializationAndShutdown.cpp +1 -0
- data/src/agent/Core/CoreMain.cpp +2 -1
- data/src/agent/Core/OptionParser.h +3 -0
- data/src/agent/Core/SpawningKit/Context.h +1 -0
- data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -1
- data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +5 -2
- data/src/agent/TempDirToucher/TempDirToucherMain.cpp +2 -0
- data/src/agent/Watchdog/Config.h +15 -1
- data/src/agent/Watchdog/WatchdogMain.cpp +7 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +10 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +10 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +30 -0
- data/src/apache2_module/Hooks.cpp +6 -0
- data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +20 -0
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +24 -0
- data/src/cxx_supportlib/Constants.h +2 -1
- data/src/cxx_supportlib/LoggingKit/Config.h +2 -0
- data/src/cxx_supportlib/LoggingKit/Implementation.cpp +15 -9
- data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +1 -1
- data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +20 -19
- data/src/cxx_supportlib/WebSocketCommandReverseServer.h +11 -7
- data/src/cxx_supportlib/oxt/system_calls.cpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/finder.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +46 -37
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +16 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +45 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +38 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +50 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +5 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +13 -12
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp +34 -34
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/thread_clock.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/chrono.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp +27 -27
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/thread_clock.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/system.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/allocators.hpp +89 -0
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +83 -74
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +21 -33
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/space_optimized.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/concept/assert.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/concept/detail/general.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/concept/detail/has_constraints.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/concept/usage.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/concept_check.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +6 -2
- 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 +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +368 -52
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -0
- 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 +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/kai.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +9 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_compiler_config.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +14 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +262 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +22 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +833 -459
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +24 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +61 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +33 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +132 -41
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +28 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +167 -115
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/thread_mutex.hpp +181 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +167 -29
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +18 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +389 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +262 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +52 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +364 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/synchronized_pool_resource.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +286 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +56 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +43 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +100 -31
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +126 -69
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +75 -51
- data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +136 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/exchange.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/explicit_operator_bool.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +101 -130
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/noncopyable.hpp +16 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/quick_exit.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/typeinfo.hpp +26 -10
- data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +38 -47
- data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/detail/reference_content.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +62 -58
- data/src/cxx_supportlib/vendor-modified/boost/function.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +29 -29
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +38 -40
- data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +44 -44
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +39 -39
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +33 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +39 -39
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +61 -61
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +66 -66
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +54 -54
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +65 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +23 -23
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +18 -13
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cregex.cpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +16 -5
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/future.cpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +14 -8
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/tss_null.cpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +29 -6
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +12 -3
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +23 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +9 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +10 -11
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +20 -1
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +211 -101
- data/src/cxx_supportlib/vendor-modified/boost/parameter/python.hpp +5 -6
- data/src/cxx_supportlib/vendor-modified/boost/pool/detail/mutex.hpp +119 -25
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ptx.h +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/compaq.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/nvcc.h +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/detail/endian_compat.h +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/language.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/language/cuda.h +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +17 -8
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/stringize.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/wstringize.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/gray_coded_qrng.hpp +166 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/niederreiter_base2_table.hpp +513 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/qrng_base.hpp +291 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/sobol_table.hpp +4106 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/faure.hpp +367 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/niederreiter_base2.hpp +360 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/sobol.hpp +237 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/as_literal.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/begin.hpp +13 -5
- data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/common.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/implementation_help.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/range/distance.hpp +11 -5
- data/src/cxx_supportlib/vendor-modified/boost/range/end.hpp +14 -6
- data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +55 -37
- data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +7 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +15 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +12 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +7 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +7 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +7 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +1 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +2 -10
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +60 -115
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +14 -8
- data/src/cxx_supportlib/vendor-modified/boost/system/config.hpp +4 -24
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +101 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_interoperability.hpp +141 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_posix.hpp +132 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +775 -588
- data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/move.hpp +13 -6
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/nullary_function.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread_safety.hpp +160 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/tss_hooks.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/exceptions.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +24 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/lock_guard.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/lockable_traits.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +8 -53
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +73 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +14 -9
- data/src/cxx_supportlib/vendor-modified/boost/thread/xtime.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +21 -19
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_arithmetic_type.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/detector.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +72 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_03.hpp +108 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_11.hpp +501 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_msvc10_fix.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_03.hpp +117 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp +557 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_rvalue_reference_msvc10_fix.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected_or.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/enable_if.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_dereference.hpp +344 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_decrement.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_increment.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_decrement.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_increment.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_assign.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_constructor.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +5 -15
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +16 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_assignable.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_constructible.hpp +4 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_convertible.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_exact.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_final.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_function.hpp +4 -79
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_function_pointer.hpp +3 -97
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_noncopyable.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_rvalue_reference.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +104 -63
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_void.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/nonesuch.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/constant.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +201 -201
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +301 -301
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +401 -401
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +101 -101
- data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +26 -6
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/helper-scripts/prespawn +1 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +40 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +26 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +48 -0
- data/src/nginx_module/Configuration.c +6 -2
- data/src/nginx_module/ContentHandler.c +5 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +15 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +15 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +28 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +6 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +11 -0
- data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +11 -0
- data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +23 -0
- data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +8 -0
- data/src/nginx_module/ngx_http_passenger_module.c +2 -0
- data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/logger.js +0 -0
- data/src/ruby_native_extension/extconf.rb +7 -0
- data/src/ruby_supportlib/phusion_passenger.rb +7 -7
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +8 -0
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +23 -0
- data/src/ruby_supportlib/phusion_passenger/constants.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +1 -3
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +37 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +10 -0
- data/src/ruby_supportlib/phusion_passenger/request_handler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +5 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +11 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +3 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +6 -0
- data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +15 -11
- metadata +42 -8
- data/src/cxx_supportlib/vendor-modified/boost/call_traits.hpp +0 -20
- data/src/cxx_supportlib/vendor-modified/boost/detail/call_traits.hpp +0 -172
- data/src/cxx_supportlib/vendor-modified/boost/detail/no_exceptions_support.hpp +0 -17
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.ipp +0 -496
@@ -41,7 +41,7 @@ struct treap_node_extra_checker
|
|
41
41
|
typedef ExtraChecker base_checker_t;
|
42
42
|
typedef ValueTraits value_traits;
|
43
43
|
typedef typename value_traits::node_traits node_traits;
|
44
|
-
typedef typename node_traits::const_node_ptr
|
44
|
+
typedef typename node_traits::const_node_ptr const_node_ptr;
|
45
45
|
|
46
46
|
typedef typename base_checker_t::return_type return_type;
|
47
47
|
|
@@ -114,8 +114,8 @@ class treap_algorithms
|
|
114
114
|
public:
|
115
115
|
typedef NodeTraits node_traits;
|
116
116
|
typedef typename NodeTraits::node node;
|
117
|
-
typedef typename NodeTraits::node_ptr
|
118
|
-
typedef typename NodeTraits::const_node_ptr
|
117
|
+
typedef typename NodeTraits::node_ptr node_ptr;
|
118
|
+
typedef typename NodeTraits::const_node_ptr const_node_ptr;
|
119
119
|
|
120
120
|
/// @cond
|
121
121
|
private:
|
@@ -127,7 +127,7 @@ class treap_algorithms
|
|
127
127
|
rerotate_on_destroy& operator=(const rerotate_on_destroy&);
|
128
128
|
|
129
129
|
public:
|
130
|
-
rerotate_on_destroy(
|
130
|
+
rerotate_on_destroy(node_ptr header, node_ptr p, std::size_t &n)
|
131
131
|
: header_(header), p_(p), n_(n), remove_it_(true)
|
132
132
|
{}
|
133
133
|
|
@@ -181,33 +181,33 @@ class treap_algorithms
|
|
181
181
|
#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
182
182
|
|
183
183
|
//! @copydoc ::boost::intrusive::bstree_algorithms::get_header(const const_node_ptr&)
|
184
|
-
static node_ptr get_header(
|
184
|
+
static node_ptr get_header(const_node_ptr n);
|
185
185
|
|
186
186
|
//! @copydoc ::boost::intrusive::bstree_algorithms::begin_node
|
187
|
-
static node_ptr begin_node(
|
187
|
+
static node_ptr begin_node(const_node_ptr header);
|
188
188
|
|
189
189
|
//! @copydoc ::boost::intrusive::bstree_algorithms::end_node
|
190
|
-
static node_ptr end_node(
|
190
|
+
static node_ptr end_node(const_node_ptr header);
|
191
191
|
|
192
192
|
//! @copydoc ::boost::intrusive::bstree_algorithms::swap_tree
|
193
|
-
static void swap_tree(
|
193
|
+
static void swap_tree(node_ptr header1, node_ptr header2);
|
194
194
|
|
195
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::swap_nodes(
|
196
|
-
static void swap_nodes(
|
195
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::swap_nodes(node_ptr,node_ptr)
|
196
|
+
static void swap_nodes(node_ptr node1, node_ptr node2);
|
197
197
|
|
198
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::swap_nodes(
|
199
|
-
static void swap_nodes(
|
198
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::swap_nodes(node_ptr,node_ptr,node_ptr,node_ptr)
|
199
|
+
static void swap_nodes(node_ptr node1, node_ptr header1, node_ptr node2, node_ptr header2);
|
200
200
|
|
201
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::replace_node(
|
202
|
-
static void replace_node(
|
201
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::replace_node(node_ptr,node_ptr)
|
202
|
+
static void replace_node(node_ptr node_to_be_replaced, node_ptr new_node);
|
203
203
|
|
204
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::replace_node(
|
205
|
-
static void replace_node(
|
204
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::replace_node(node_ptr,node_ptr,node_ptr)
|
205
|
+
static void replace_node(node_ptr node_to_be_replaced, node_ptr header, node_ptr new_node);
|
206
206
|
#endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
207
207
|
|
208
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::unlink(
|
208
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::unlink(node_ptr)
|
209
209
|
template<class NodePtrPriorityCompare>
|
210
|
-
static void unlink(
|
210
|
+
static void unlink(node_ptr node, NodePtrPriorityCompare pcomp)
|
211
211
|
{
|
212
212
|
node_ptr x = NodeTraits::get_parent(node);
|
213
213
|
if(x){
|
@@ -219,30 +219,30 @@ class treap_algorithms
|
|
219
219
|
|
220
220
|
#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
221
221
|
//! @copydoc ::boost::intrusive::bstree_algorithms::unlink_leftmost_without_rebalance
|
222
|
-
static node_ptr unlink_leftmost_without_rebalance(
|
222
|
+
static node_ptr unlink_leftmost_without_rebalance(node_ptr header);
|
223
223
|
|
224
224
|
//! @copydoc ::boost::intrusive::bstree_algorithms::unique(const const_node_ptr&)
|
225
|
-
static bool unique(
|
225
|
+
static bool unique(const_node_ptr node);
|
226
226
|
|
227
227
|
//! @copydoc ::boost::intrusive::bstree_algorithms::size(const const_node_ptr&)
|
228
|
-
static std::size_t size(
|
228
|
+
static std::size_t size(const_node_ptr header);
|
229
229
|
|
230
230
|
//! @copydoc ::boost::intrusive::bstree_algorithms::next_node(const node_ptr&)
|
231
|
-
static node_ptr next_node(
|
231
|
+
static node_ptr next_node(node_ptr node);
|
232
232
|
|
233
233
|
//! @copydoc ::boost::intrusive::bstree_algorithms::prev_node(const node_ptr&)
|
234
|
-
static node_ptr prev_node(
|
234
|
+
static node_ptr prev_node(node_ptr node);
|
235
235
|
|
236
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::init(
|
237
|
-
static void init(
|
236
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::init(node_ptr)
|
237
|
+
static void init(node_ptr node);
|
238
238
|
|
239
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::init_header(
|
240
|
-
static void init_header(
|
239
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::init_header(node_ptr)
|
240
|
+
static void init_header(node_ptr header);
|
241
241
|
#endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
242
242
|
|
243
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::erase(
|
243
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::erase(node_ptr,node_ptr)
|
244
244
|
template<class NodePtrPriorityCompare>
|
245
|
-
static node_ptr erase(
|
245
|
+
static node_ptr erase(node_ptr header, node_ptr z, NodePtrPriorityCompare pcomp)
|
246
246
|
{
|
247
247
|
rebalance_for_erasure(header, z, pcomp);
|
248
248
|
bstree_algo::erase(header, z);
|
@@ -250,44 +250,44 @@ class treap_algorithms
|
|
250
250
|
}
|
251
251
|
|
252
252
|
#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
253
|
-
//! @copydoc ::boost::intrusive::bstree_algorithms::clone(const const_node_ptr&,
|
253
|
+
//! @copydoc ::boost::intrusive::bstree_algorithms::clone(const const_node_ptr&,node_ptr,Cloner,Disposer)
|
254
254
|
template <class Cloner, class Disposer>
|
255
255
|
static void clone
|
256
|
-
(
|
256
|
+
(const_node_ptr source_header, node_ptr target_header, Cloner cloner, Disposer disposer);
|
257
257
|
|
258
258
|
//! @copydoc ::boost::intrusive::bstree_algorithms::clear_and_dispose(const node_ptr&,Disposer)
|
259
259
|
template<class Disposer>
|
260
|
-
static void clear_and_dispose(
|
260
|
+
static void clear_and_dispose(node_ptr header, Disposer disposer);
|
261
261
|
|
262
262
|
//! @copydoc ::boost::intrusive::bstree_algorithms::lower_bound(const const_node_ptr&,const KeyType&,KeyNodePtrCompare)
|
263
263
|
template<class KeyType, class KeyNodePtrCompare>
|
264
264
|
static node_ptr lower_bound
|
265
|
-
(
|
265
|
+
(const_node_ptr header, const KeyType &key, KeyNodePtrCompare comp);
|
266
266
|
|
267
267
|
//! @copydoc ::boost::intrusive::bstree_algorithms::upper_bound(const const_node_ptr&,const KeyType&,KeyNodePtrCompare)
|
268
268
|
template<class KeyType, class KeyNodePtrCompare>
|
269
269
|
static node_ptr upper_bound
|
270
|
-
(
|
270
|
+
(const_node_ptr header, const KeyType &key, KeyNodePtrCompare comp);
|
271
271
|
|
272
272
|
//! @copydoc ::boost::intrusive::bstree_algorithms::find(const const_node_ptr&, const KeyType&,KeyNodePtrCompare)
|
273
273
|
template<class KeyType, class KeyNodePtrCompare>
|
274
274
|
static node_ptr find
|
275
|
-
(
|
275
|
+
(const_node_ptr header, const KeyType &key, KeyNodePtrCompare comp);
|
276
276
|
|
277
277
|
//! @copydoc ::boost::intrusive::bstree_algorithms::equal_range(const const_node_ptr&,const KeyType&,KeyNodePtrCompare)
|
278
278
|
template<class KeyType, class KeyNodePtrCompare>
|
279
279
|
static std::pair<node_ptr, node_ptr> equal_range
|
280
|
-
(
|
280
|
+
(const_node_ptr header, const KeyType &key, KeyNodePtrCompare comp);
|
281
281
|
|
282
282
|
//! @copydoc ::boost::intrusive::bstree_algorithms::bounded_range(const const_node_ptr&,const KeyType&,const KeyType&,KeyNodePtrCompare,bool,bool)
|
283
283
|
template<class KeyType, class KeyNodePtrCompare>
|
284
284
|
static std::pair<node_ptr, node_ptr> bounded_range
|
285
|
-
(
|
285
|
+
(const_node_ptr header, const KeyType &lower_key, const KeyType &upper_key, KeyNodePtrCompare comp
|
286
286
|
, bool left_closed, bool right_closed);
|
287
287
|
|
288
288
|
//! @copydoc ::boost::intrusive::bstree_algorithms::count(const const_node_ptr&,const KeyType&,KeyNodePtrCompare)
|
289
289
|
template<class KeyType, class KeyNodePtrCompare>
|
290
|
-
static std::size_t count(
|
290
|
+
static std::size_t count(const_node_ptr header, const KeyType &key, KeyNodePtrCompare comp);
|
291
291
|
|
292
292
|
#endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
293
293
|
|
@@ -308,7 +308,7 @@ class treap_algorithms
|
|
308
308
|
//! <b>Throws</b>: If "comp" throw or "pcomp" throw.
|
309
309
|
template<class NodePtrCompare, class NodePtrPriorityCompare>
|
310
310
|
static node_ptr insert_equal_upper_bound
|
311
|
-
(
|
311
|
+
(node_ptr h, node_ptr new_node, NodePtrCompare comp, NodePtrPriorityCompare pcomp)
|
312
312
|
{
|
313
313
|
insert_commit_data commit_data;
|
314
314
|
bstree_algo::insert_equal_upper_bound_check(h, new_node, comp, commit_data);
|
@@ -333,7 +333,7 @@ class treap_algorithms
|
|
333
333
|
//! <b>Throws</b>: If "comp" throws.
|
334
334
|
template<class NodePtrCompare, class NodePtrPriorityCompare>
|
335
335
|
static node_ptr insert_equal_lower_bound
|
336
|
-
(
|
336
|
+
(node_ptr h, node_ptr new_node, NodePtrCompare comp, NodePtrPriorityCompare pcomp)
|
337
337
|
{
|
338
338
|
insert_commit_data commit_data;
|
339
339
|
bstree_algo::insert_equal_lower_bound_check(h, new_node, comp, commit_data);
|
@@ -361,7 +361,7 @@ class treap_algorithms
|
|
361
361
|
//! <b>Throws</b>: If "comp" throw or "pcomp" throw.
|
362
362
|
template<class NodePtrCompare, class NodePtrPriorityCompare>
|
363
363
|
static node_ptr insert_equal
|
364
|
-
(
|
364
|
+
(node_ptr h, node_ptr hint, node_ptr new_node, NodePtrCompare comp, NodePtrPriorityCompare pcomp)
|
365
365
|
{
|
366
366
|
insert_commit_data commit_data;
|
367
367
|
bstree_algo::insert_equal_check(h, hint, new_node, comp, commit_data);
|
@@ -389,7 +389,7 @@ class treap_algorithms
|
|
389
389
|
//! tree invariants might be broken.
|
390
390
|
template<class NodePtrPriorityCompare>
|
391
391
|
static node_ptr insert_before
|
392
|
-
(
|
392
|
+
(node_ptr header, node_ptr pos, node_ptr new_node, NodePtrPriorityCompare pcomp)
|
393
393
|
{
|
394
394
|
insert_commit_data commit_data;
|
395
395
|
bstree_algo::insert_before_check(header, pos, commit_data);
|
@@ -415,7 +415,7 @@ class treap_algorithms
|
|
415
415
|
//! tree invariants are broken. This function is slightly faster than
|
416
416
|
//! using "insert_before".
|
417
417
|
template<class NodePtrPriorityCompare>
|
418
|
-
static void push_back(
|
418
|
+
static void push_back(node_ptr header, node_ptr new_node, NodePtrPriorityCompare pcomp)
|
419
419
|
{
|
420
420
|
insert_commit_data commit_data;
|
421
421
|
bstree_algo::push_back_check(header, commit_data);
|
@@ -440,7 +440,7 @@ class treap_algorithms
|
|
440
440
|
//! tree invariants are broken. This function is slightly faster than
|
441
441
|
//! using "insert_before".
|
442
442
|
template<class NodePtrPriorityCompare>
|
443
|
-
static void push_front(
|
443
|
+
static void push_front(node_ptr header, node_ptr new_node, NodePtrPriorityCompare pcomp)
|
444
444
|
{
|
445
445
|
insert_commit_data commit_data;
|
446
446
|
bstree_algo::push_front_check(header, commit_data);
|
@@ -483,7 +483,7 @@ class treap_algorithms
|
|
483
483
|
//! if no more objects are inserted or erased from the set.
|
484
484
|
template<class KeyType, class KeyNodePtrCompare, class KeyNodePtrPrioCompare>
|
485
485
|
static std::pair<node_ptr, bool> insert_unique_check
|
486
|
-
(
|
486
|
+
(const_node_ptr header, const KeyType &key
|
487
487
|
,KeyNodePtrCompare comp, KeyNodePtrPrioCompare pcomp
|
488
488
|
,insert_commit_data &commit_data)
|
489
489
|
{
|
@@ -535,7 +535,7 @@ class treap_algorithms
|
|
535
535
|
//! if no more objects are inserted or erased from the set.
|
536
536
|
template<class KeyType, class KeyNodePtrCompare, class KeyNodePtrPrioCompare>
|
537
537
|
static std::pair<node_ptr, bool> insert_unique_check
|
538
|
-
(
|
538
|
+
(const_node_ptr header, node_ptr hint, const KeyType &key
|
539
539
|
,KeyNodePtrCompare comp, KeyNodePtrPrioCompare pcomp, insert_commit_data &commit_data)
|
540
540
|
{
|
541
541
|
std::pair<node_ptr, bool> ret =
|
@@ -563,7 +563,7 @@ class treap_algorithms
|
|
563
563
|
//! previously executed to fill "commit_data". No value should be inserted or
|
564
564
|
//! erased between the "insert_check" and "insert_commit" calls.
|
565
565
|
static void insert_unique_commit
|
566
|
-
(
|
566
|
+
(node_ptr header, node_ptr new_node, const insert_commit_data &commit_data)
|
567
567
|
{
|
568
568
|
bstree_algo::insert_unique_commit(header, new_node, commit_data);
|
569
569
|
rotate_up_n(header, new_node, commit_data.rotations);
|
@@ -572,7 +572,7 @@ class treap_algorithms
|
|
572
572
|
//! @copydoc ::boost::intrusive::bstree_algorithms::transfer_unique
|
573
573
|
template<class NodePtrCompare, class KeyNodePtrPrioCompare>
|
574
574
|
static bool transfer_unique
|
575
|
-
(
|
575
|
+
(node_ptr header1, NodePtrCompare comp, KeyNodePtrPrioCompare pcomp, node_ptr header2, node_ptr z)
|
576
576
|
{
|
577
577
|
insert_commit_data commit_data;
|
578
578
|
bool const transferable = insert_unique_check(header1, z, comp, pcomp, commit_data).second;
|
@@ -586,7 +586,7 @@ class treap_algorithms
|
|
586
586
|
//! @copydoc ::boost::intrusive::bstree_algorithms::transfer_equal
|
587
587
|
template<class NodePtrCompare, class KeyNodePtrPrioCompare>
|
588
588
|
static void transfer_equal
|
589
|
-
(
|
589
|
+
(node_ptr header1, NodePtrCompare comp, KeyNodePtrPrioCompare pcomp, node_ptr header2, node_ptr z)
|
590
590
|
{
|
591
591
|
insert_commit_data commit_data;
|
592
592
|
bstree_algo::insert_equal_upper_bound_check(header1, z, comp, commit_data);
|
@@ -600,14 +600,14 @@ class treap_algorithms
|
|
600
600
|
#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
601
601
|
|
602
602
|
//! @copydoc ::boost::intrusive::bstree_algorithms::is_header
|
603
|
-
static bool is_header(
|
603
|
+
static bool is_header(const_node_ptr p);
|
604
604
|
#endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
|
605
605
|
|
606
606
|
/// @cond
|
607
607
|
private:
|
608
608
|
|
609
609
|
template<class NodePtrPriorityCompare>
|
610
|
-
static void rebalance_for_erasure(
|
610
|
+
static void rebalance_for_erasure(node_ptr header, node_ptr z, NodePtrPriorityCompare pcomp)
|
611
611
|
{
|
612
612
|
std::size_t n = 0;
|
613
613
|
rerotate_on_destroy rb(header, z, n);
|
@@ -631,7 +631,7 @@ class treap_algorithms
|
|
631
631
|
|
632
632
|
template<class NodePtrPriorityCompare>
|
633
633
|
static void rebalance_check_and_commit
|
634
|
-
(
|
634
|
+
(node_ptr h, node_ptr new_node, NodePtrPriorityCompare pcomp, insert_commit_data &commit_data)
|
635
635
|
{
|
636
636
|
rebalance_after_insertion_check(h, commit_data.node, new_node, pcomp, commit_data.rotations);
|
637
637
|
//No-throw
|
@@ -641,7 +641,7 @@ class treap_algorithms
|
|
641
641
|
|
642
642
|
template<class Key, class KeyNodePriorityCompare>
|
643
643
|
static void rebalance_after_insertion_check
|
644
|
-
(
|
644
|
+
(const_node_ptr header, const_node_ptr up, const Key &k
|
645
645
|
, KeyNodePriorityCompare pcomp, std::size_t &num_rotations)
|
646
646
|
{
|
647
647
|
const_node_ptr upnode(up);
|
@@ -656,7 +656,7 @@ class treap_algorithms
|
|
656
656
|
}
|
657
657
|
|
658
658
|
template<class NodePtrPriorityCompare>
|
659
|
-
static bool check_invariant(
|
659
|
+
static bool check_invariant(const_node_ptr header, NodePtrPriorityCompare pcomp)
|
660
660
|
{
|
661
661
|
node_ptr beg = begin_node(header);
|
662
662
|
node_ptr end = end_node(header);
|
@@ -498,6 +498,7 @@ class unordered_set
|
|
498
498
|
typedef typename Base::hasher hasher;
|
499
499
|
typedef typename Base::key_equal key_equal;
|
500
500
|
|
501
|
+
BOOST_INTRUSIVE_FORCEINLINE
|
501
502
|
explicit unordered_set ( const bucket_traits &b_traits
|
502
503
|
, const hasher & hash_func = hasher()
|
503
504
|
, const key_equal &equal_func = key_equal()
|
@@ -506,7 +507,8 @@ class unordered_set
|
|
506
507
|
{}
|
507
508
|
|
508
509
|
template<class Iterator>
|
509
|
-
BOOST_INTRUSIVE_FORCEINLINE
|
510
|
+
BOOST_INTRUSIVE_FORCEINLINE
|
511
|
+
unordered_set
|
510
512
|
( Iterator b, Iterator e
|
511
513
|
, const bucket_traits &b_traits
|
512
514
|
, const hasher & hash_func = hasher()
|
@@ -947,6 +949,7 @@ class unordered_multiset
|
|
947
949
|
typedef typename Base::hasher hasher;
|
948
950
|
typedef typename Base::key_equal key_equal;
|
949
951
|
|
952
|
+
BOOST_INTRUSIVE_FORCEINLINE
|
950
953
|
explicit unordered_multiset( const bucket_traits &b_traits
|
951
954
|
, const hasher & hash_func = hasher()
|
952
955
|
, const key_equal &equal_func = key_equal()
|
@@ -954,7 +957,8 @@ class unordered_multiset
|
|
954
957
|
: Base(b_traits, hash_func, equal_func, v_traits)
|
955
958
|
{}
|
956
959
|
|
957
|
-
template<class Iterator>
|
960
|
+
template<class Iterator>
|
961
|
+
BOOST_INTRUSIVE_FORCEINLINE
|
958
962
|
unordered_multiset( Iterator b
|
959
963
|
, Iterator e
|
960
964
|
, const bucket_traits &b_traits
|
@@ -85,13 +85,13 @@ struct unordered_node_traits
|
|
85
85
|
static node_ptr get_next(const const_node_ptr & n)
|
86
86
|
{ return pointer_traits<node_ptr>::static_cast_from(n->next_); }
|
87
87
|
|
88
|
-
static void set_next(
|
88
|
+
static void set_next(node_ptr n, node_ptr next)
|
89
89
|
{ n->next_ = next; }
|
90
90
|
|
91
91
|
static node_ptr get_prev_in_group(const const_node_ptr & n)
|
92
92
|
{ return n->prev_in_group_; }
|
93
93
|
|
94
|
-
static void set_prev_in_group(
|
94
|
+
static void set_prev_in_group(node_ptr n, node_ptr prev)
|
95
95
|
{ n->prev_in_group_ = prev; }
|
96
96
|
|
97
97
|
static std::size_t get_hash(const const_node_ptr & n)
|
@@ -111,7 +111,7 @@ struct unordered_group_adapter
|
|
111
111
|
static node_ptr get_next(const const_node_ptr & n)
|
112
112
|
{ return NodeTraits::get_prev_in_group(n); }
|
113
113
|
|
114
|
-
static void set_next(
|
114
|
+
static void set_next(node_ptr n, node_ptr next)
|
115
115
|
{ NodeTraits::set_prev_in_group(n, next); }
|
116
116
|
};
|
117
117
|
|
@@ -0,0 +1,65 @@
|
|
1
|
+
// Copyright (C) 2017 Michel Morin.
|
2
|
+
//
|
3
|
+
// Distributed under the Boost Software License, Version 1.0.
|
4
|
+
// (See accompanying file LICENSE_1_0.txt or copy at
|
5
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
6
|
+
|
7
|
+
#ifndef BOOST_ITERATOR_DISTANCE_HPP
|
8
|
+
#define BOOST_ITERATOR_DISTANCE_HPP
|
9
|
+
|
10
|
+
#include <boost/config.hpp>
|
11
|
+
#include <boost/iterator/iterator_categories.hpp>
|
12
|
+
#include <boost/iterator/iterator_traits.hpp>
|
13
|
+
|
14
|
+
namespace boost {
|
15
|
+
namespace iterators {
|
16
|
+
|
17
|
+
namespace detail {
|
18
|
+
template <typename SinglePassIterator>
|
19
|
+
inline BOOST_CXX14_CONSTEXPR typename iterator_difference<SinglePassIterator>::type
|
20
|
+
distance_impl(
|
21
|
+
SinglePassIterator first
|
22
|
+
, SinglePassIterator last
|
23
|
+
, single_pass_traversal_tag
|
24
|
+
)
|
25
|
+
{
|
26
|
+
typename iterator_difference<SinglePassIterator>::type n = 0;
|
27
|
+
while (first != last) {
|
28
|
+
++first;
|
29
|
+
++n;
|
30
|
+
}
|
31
|
+
return n;
|
32
|
+
}
|
33
|
+
|
34
|
+
template <typename RandomAccessIterator>
|
35
|
+
inline BOOST_CXX14_CONSTEXPR typename iterator_difference<RandomAccessIterator>::type
|
36
|
+
distance_impl(
|
37
|
+
RandomAccessIterator first
|
38
|
+
, RandomAccessIterator last
|
39
|
+
, random_access_traversal_tag
|
40
|
+
)
|
41
|
+
{
|
42
|
+
return last - first;
|
43
|
+
}
|
44
|
+
}
|
45
|
+
|
46
|
+
namespace distance_adl_barrier {
|
47
|
+
template <typename SinglePassIterator>
|
48
|
+
inline BOOST_CXX14_CONSTEXPR typename iterator_difference<SinglePassIterator>::type
|
49
|
+
distance(SinglePassIterator first, SinglePassIterator last)
|
50
|
+
{
|
51
|
+
return detail::distance_impl(
|
52
|
+
first, last, typename iterator_traversal<SinglePassIterator>::type()
|
53
|
+
);
|
54
|
+
}
|
55
|
+
}
|
56
|
+
|
57
|
+
using namespace distance_adl_barrier;
|
58
|
+
|
59
|
+
} // namespace iterators
|
60
|
+
|
61
|
+
using namespace iterators::distance_adl_barrier;
|
62
|
+
|
63
|
+
} // namespace boost
|
64
|
+
|
65
|
+
#endif
|
@@ -1,6 +1,6 @@
|
|
1
1
|
// Copyright Kevlin Henney, 2000-2005.
|
2
2
|
// Copyright Alexander Nasonov, 2006-2010.
|
3
|
-
// Copyright Antony Polukhin, 2011-
|
3
|
+
// Copyright Antony Polukhin, 2011-2018.
|
4
4
|
//
|
5
5
|
// Distributed under the Boost Software License, Version 1.0. (See
|
6
6
|
// accompanying file LICENSE_1_0.txt or copy at
|