passenger 3.0.21 → 3.9.1.beta
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.
- data/DEVELOPERS.TXT +4 -10
- data/NEWS +19 -27
- data/Rakefile +20 -19
- data/bin/passenger +3 -2
- data/bin/passenger-config +35 -5
- data/bin/passenger-install-apache2-module +12 -12
- data/bin/passenger-install-nginx-module +55 -38
- data/bin/passenger-memory-stats +3 -1
- data/bin/passenger-status +7 -35
- data/build/agents.rb +107 -21
- data/build/apache2.rb +11 -46
- data/build/basics.rb +61 -9
- data/build/common_library.rb +59 -142
- data/build/cxx_tests.rb +111 -110
- data/build/documentation.rb +33 -0
- data/build/misc.rb +30 -12
- data/build/nginx.rb +10 -39
- data/build/oxt_tests.rb +1 -0
- data/build/ruby_extension.rb +1 -5
- data/build/test_basics.rb +3 -2
- data/dev/copy_boost_headers.rb +2 -1
- data/doc/Architectural overview.html +49 -90
- data/doc/DebuggingAndStressTesting.txt.md +49 -0
- data/doc/Packaging.txt.md +254 -0
- data/doc/Security of user switching support.html +35 -66
- data/doc/Users guide Apache.html +588 -758
- data/doc/Users guide Apache.idmap.txt +253 -136
- data/doc/Users guide Apache.txt +154 -109
- data/doc/Users guide Nginx.html +544 -660
- data/doc/Users guide Nginx.idmap.txt +179 -91
- data/doc/Users guide Nginx.txt +192 -118
- data/doc/Users guide Standalone.html +65 -48
- data/doc/Users guide Standalone.idmap.txt +10 -2
- data/doc/Users guide Standalone.txt +4 -0
- data/doc/images/glyphicons-halflings-white.png +0 -0
- data/doc/images/glyphicons-halflings.png +0 -0
- data/doc/images/phusion_banner_small.png +0 -0
- data/doc/images/{smart-lv2.png → smart.png} +0 -0
- data/doc/images/{smart-lv2.svg → smart.svg} +0 -0
- data/doc/templates/bootstrap.min.css +397 -0
- data/doc/templates/markdown.html.erb +117 -0
- data/doc/users_guide_snippets/analysis_and_system_maintenance.txt +2 -1
- data/doc/users_guide_snippets/appendix_c_spawning_methods.txt +26 -48
- data/doc/users_guide_snippets/passenger_spawn_method.txt +18 -30
- data/doc/users_guide_snippets/support_information.txt +30 -0
- data/ext/apache2/Bucket.cpp +9 -26
- data/ext/apache2/Bucket.h +13 -10
- data/ext/apache2/Configuration.cpp +70 -58
- data/ext/apache2/Configuration.hpp +19 -47
- data/ext/apache2/DirectoryMapper.h +7 -7
- data/ext/apache2/Hooks.cpp +150 -313
- data/ext/boost/algorithm/string/detail/case_conv.hpp +4 -2
- data/ext/boost/algorithm/string/detail/find_format.hpp +20 -20
- data/ext/boost/algorithm/string/detail/find_format_all.hpp +23 -23
- data/ext/boost/algorithm/string/detail/find_format_store.hpp +2 -2
- data/ext/boost/algorithm/string/detail/formatter.hpp +25 -0
- data/ext/boost/algorithm/string/formatter.hpp +20 -3
- data/ext/boost/assert.hpp +85 -4
- data/ext/boost/bind/bind.hpp +1 -1
- data/ext/boost/concept/detail/backward_compatibility.hpp +1 -1
- data/ext/boost/concept_check.hpp +140 -64
- data/ext/boost/config.hpp +1 -1
- data/ext/boost/config/auto_link.hpp +8 -6
- data/ext/boost/config/compiler/borland.hpp +12 -2
- data/ext/boost/config/compiler/clang.hpp +89 -30
- data/ext/boost/config/compiler/codegear.hpp +3 -2
- data/ext/boost/config/compiler/common_edg.hpp +7 -5
- data/ext/boost/config/compiler/cray.hpp +61 -0
- data/ext/boost/config/compiler/digitalmars.hpp +9 -1
- data/ext/boost/config/compiler/gcc.hpp +33 -24
- data/ext/boost/config/compiler/gcc_xml.hpp +4 -0
- data/ext/boost/config/compiler/hp_acc.hpp +12 -1
- data/ext/boost/config/compiler/intel.hpp +78 -4
- data/ext/boost/config/compiler/metrowerks.hpp +4 -1
- data/ext/boost/config/compiler/mpw.hpp +4 -1
- data/ext/boost/config/compiler/nvcc.hpp +8 -66
- data/ext/boost/config/compiler/pathscale.hpp +80 -0
- data/ext/boost/config/compiler/pgi.hpp +5 -5
- data/ext/boost/config/compiler/sunpro_cc.hpp +4 -1
- data/ext/boost/config/compiler/vacpp.hpp +37 -13
- data/ext/boost/config/compiler/visualc.hpp +24 -11
- data/ext/boost/config/platform/bsd.hpp +1 -1
- data/ext/boost/config/platform/cray.hpp +18 -0
- data/ext/boost/config/platform/cygwin.hpp +10 -0
- data/ext/boost/config/platform/linux.hpp +5 -0
- data/ext/boost/config/platform/macos.hpp +5 -4
- data/ext/boost/config/platform/symbian.hpp +5 -2
- data/ext/boost/config/platform/vms.hpp +25 -0
- data/ext/boost/config/platform/win32.hpp +7 -1
- data/ext/boost/config/select_compiler_config.hpp +8 -25
- data/ext/boost/config/select_platform_config.hpp +8 -1
- data/ext/boost/config/select_stdlib_config.hpp +9 -1
- data/ext/boost/config/stdlib/dinkumware.hpp +6 -9
- data/ext/boost/config/stdlib/libcomo.hpp +1 -4
- data/ext/boost/config/stdlib/libcpp.hpp +36 -0
- data/ext/boost/config/stdlib/libstdcpp3.hpp +37 -11
- data/ext/boost/config/stdlib/modena.hpp +1 -4
- data/ext/boost/config/stdlib/msl.hpp +1 -4
- data/ext/boost/config/stdlib/roguewave.hpp +9 -6
- data/ext/boost/config/stdlib/sgi.hpp +12 -4
- data/ext/boost/config/stdlib/stlport.hpp +11 -4
- data/ext/boost/config/stdlib/vacpp.hpp +11 -4
- data/ext/boost/config/suffix.hpp +71 -6
- data/ext/boost/config/warning_disable.hpp +1 -1
- data/ext/boost/container/container_fwd.hpp +177 -0
- data/ext/boost/cstdint.hpp +17 -12
- data/ext/boost/current_function.hpp +2 -1
- data/ext/boost/date_time/c_time.hpp +17 -1
- data/ext/boost/date_time/compiler_config.hpp +13 -15
- data/ext/boost/date_time/date_formatting.hpp +7 -1
- data/ext/boost/date_time/filetime_functions.hpp +4 -4
- data/ext/boost/date_time/gregorian_calendar.ipp +2 -2
- data/ext/boost/date_time/strings_from_facet.hpp +3 -3
- data/ext/boost/date_time/time_facet.hpp +101 -101
- data/ext/boost/detail/endian.hpp +4 -2
- data/ext/boost/detail/fenv.hpp +74 -0
- data/ext/boost/detail/sp_typeinfo.hpp +6 -0
- data/ext/boost/exception/detail/clone_current_exception.hpp +47 -0
- data/ext/boost/exception/detail/exception_ptr.hpp +194 -122
- data/ext/boost/exception/detail/type_info.hpp +3 -3
- data/ext/boost/exception/diagnostic_information.hpp +37 -21
- data/ext/boost/exception/exception.hpp +21 -1
- data/ext/boost/exception/info.hpp +0 -1
- data/ext/boost/function.hpp +2 -2
- data/ext/boost/function/function_base.hpp +15 -9
- data/ext/boost/function/function_template.hpp +26 -48
- data/ext/boost/integer_fwd.hpp +0 -16
- data/ext/boost/integer_traits.hpp +2 -2
- data/ext/boost/iterator.hpp +1 -1
- data/ext/boost/iterator/iterator_adaptor.hpp +1 -7
- data/ext/boost/iterator/iterator_facade.hpp +13 -13
- data/ext/boost/iterator/transform_iterator.hpp +5 -20
- data/ext/boost/lexical_cast.hpp +1655 -673
- data/ext/boost/math/policies/policy.hpp +982 -0
- data/ext/boost/math/special_functions/detail/fp_traits.hpp +570 -0
- data/ext/boost/math/special_functions/detail/round_fwd.hpp +80 -0
- data/ext/boost/math/special_functions/fpclassify.hpp +533 -0
- data/ext/boost/math/special_functions/math_fwd.hpp +1070 -0
- data/ext/boost/math/special_functions/sign.hpp +145 -0
- data/ext/boost/math/tools/config.hpp +321 -0
- data/ext/boost/math/tools/promotion.hpp +150 -0
- data/ext/boost/math/tools/real_cast.hpp +29 -0
- data/ext/boost/math/tools/user.hpp +97 -0
- data/ext/boost/move/move.hpp +1222 -0
- data/ext/boost/mpl/O1_size.hpp +40 -0
- data/ext/boost/mpl/O1_size_fwd.hpp +24 -0
- data/ext/boost/mpl/advance.hpp +76 -0
- data/ext/boost/mpl/advance_fwd.hpp +28 -0
- data/ext/boost/mpl/at.hpp +52 -0
- data/ext/boost/mpl/at_fwd.hpp +24 -0
- data/ext/boost/mpl/aux_/O1_size_impl.hpp +87 -0
- data/ext/boost/mpl/aux_/advance_backward.hpp +128 -0
- data/ext/boost/mpl/aux_/advance_forward.hpp +127 -0
- data/ext/boost/mpl/aux_/arithmetic_op.hpp +92 -0
- data/ext/boost/mpl/aux_/at_impl.hpp +45 -0
- data/ext/boost/mpl/aux_/begin_end_impl.hpp +101 -0
- data/ext/boost/mpl/aux_/clear_impl.hpp +35 -0
- data/ext/boost/mpl/aux_/comparison_op.hpp +83 -0
- data/ext/boost/mpl/aux_/config/forwarding.hpp +27 -0
- data/ext/boost/mpl/aux_/config/typeof.hpp +38 -0
- data/ext/boost/mpl/aux_/contains_impl.hpp +61 -0
- data/ext/boost/mpl/aux_/find_if_pred.hpp +31 -0
- data/ext/boost/mpl/aux_/fold_impl.hpp +43 -0
- data/ext/boost/mpl/aux_/has_begin.hpp +23 -0
- data/ext/boost/mpl/aux_/has_size.hpp +23 -0
- data/ext/boost/mpl/aux_/has_tag.hpp +23 -0
- data/ext/boost/mpl/aux_/inserter_algorithm.hpp +159 -0
- data/ext/boost/mpl/aux_/is_msvc_eti_arg.hpp +64 -0
- data/ext/boost/mpl/aux_/iter_apply.hpp +47 -0
- data/ext/boost/mpl/aux_/iter_fold_if_impl.hpp +210 -0
- data/ext/boost/mpl/aux_/iter_fold_impl.hpp +42 -0
- data/ext/boost/mpl/aux_/lambda_spec.hpp +49 -0
- data/ext/boost/mpl/aux_/largest_int.hpp +63 -0
- data/ext/boost/mpl/aux_/msvc_eti_base.hpp +77 -0
- data/ext/boost/mpl/aux_/msvc_type.hpp +62 -0
- data/ext/boost/mpl/aux_/numeric_cast_utils.hpp +77 -0
- data/ext/boost/mpl/aux_/numeric_op.hpp +315 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/greater.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/less.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/list.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/minus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/plus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/times.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/vector.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessor/default_params.hpp +67 -0
- data/ext/boost/mpl/aux_/push_back_impl.hpp +70 -0
- data/ext/boost/mpl/aux_/push_front_impl.hpp +71 -0
- data/ext/boost/mpl/aux_/reverse_fold_impl.hpp +44 -0
- data/ext/boost/mpl/aux_/size_impl.hpp +52 -0
- data/ext/boost/mpl/aux_/traits_lambda_spec.hpp +63 -0
- data/ext/boost/mpl/back_fwd.hpp +24 -0
- data/ext/boost/mpl/back_inserter.hpp +34 -0
- data/ext/boost/mpl/begin_end.hpp +57 -0
- data/ext/boost/mpl/begin_end_fwd.hpp +27 -0
- data/ext/boost/mpl/clear.hpp +39 -0
- data/ext/boost/mpl/clear_fwd.hpp +24 -0
- data/ext/boost/mpl/comparison.hpp +24 -0
- data/ext/boost/mpl/contains.hpp +41 -0
- data/ext/boost/mpl/contains_fwd.hpp +25 -0
- data/ext/boost/mpl/deref.hpp +41 -0
- data/ext/boost/mpl/distance.hpp +78 -0
- data/ext/boost/mpl/distance_fwd.hpp +28 -0
- data/ext/boost/mpl/empty_fwd.hpp +24 -0
- data/ext/boost/mpl/equal_to.hpp +21 -0
- data/ext/boost/mpl/find.hpp +38 -0
- data/ext/boost/mpl/find_if.hpp +50 -0
- data/ext/boost/mpl/fold.hpp +48 -0
- data/ext/boost/mpl/front_fwd.hpp +24 -0
- data/ext/boost/mpl/front_inserter.hpp +33 -0
- data/ext/boost/mpl/greater.hpp +21 -0
- data/ext/boost/mpl/greater_equal.hpp +21 -0
- data/ext/boost/mpl/inserter.hpp +32 -0
- data/ext/boost/mpl/iter_fold.hpp +49 -0
- data/ext/boost/mpl/iter_fold_if.hpp +117 -0
- data/ext/boost/mpl/iterator_range.hpp +42 -0
- data/ext/boost/mpl/iterator_tags.hpp +27 -0
- data/ext/boost/mpl/less.hpp +21 -0
- data/ext/boost/mpl/less_equal.hpp +21 -0
- data/ext/boost/mpl/limits/list.hpp +21 -0
- data/ext/boost/mpl/limits/vector.hpp +21 -0
- data/ext/boost/mpl/list.hpp +57 -0
- data/ext/boost/mpl/list/aux_/O1_size.hpp +33 -0
- data/ext/boost/mpl/list/aux_/begin_end.hpp +44 -0
- data/ext/boost/mpl/list/aux_/clear.hpp +34 -0
- data/ext/boost/mpl/list/aux_/empty.hpp +34 -0
- data/ext/boost/mpl/list/aux_/front.hpp +33 -0
- data/ext/boost/mpl/list/aux_/include_preprocessed.hpp +35 -0
- data/ext/boost/mpl/list/aux_/item.hpp +55 -0
- data/ext/boost/mpl/list/aux_/iterator.hpp +76 -0
- data/ext/boost/mpl/list/aux_/pop_front.hpp +34 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list10.hpp +149 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list20.hpp +169 -0
- data/ext/boost/mpl/list/aux_/push_back.hpp +36 -0
- data/ext/boost/mpl/list/aux_/push_front.hpp +39 -0
- data/ext/boost/mpl/list/aux_/size.hpp +33 -0
- data/ext/boost/mpl/list/aux_/tag.hpp +24 -0
- data/ext/boost/mpl/list/list0.hpp +42 -0
- data/ext/boost/mpl/list/list10.hpp +43 -0
- data/ext/boost/mpl/list/list20.hpp +43 -0
- data/ext/boost/mpl/long.hpp +22 -0
- data/ext/boost/mpl/long_fwd.hpp +27 -0
- data/ext/boost/mpl/minus.hpp +21 -0
- data/ext/boost/mpl/multiplies.hpp +53 -0
- data/ext/boost/mpl/negate.hpp +81 -0
- data/ext/boost/mpl/not_equal_to.hpp +21 -0
- data/ext/boost/mpl/numeric_cast.hpp +41 -0
- data/ext/boost/mpl/pair.hpp +70 -0
- data/ext/boost/mpl/plus.hpp +21 -0
- data/ext/boost/mpl/pop_back_fwd.hpp +24 -0
- data/ext/boost/mpl/pop_front_fwd.hpp +24 -0
- data/ext/boost/mpl/prior.hpp +19 -0
- data/ext/boost/mpl/push_back.hpp +53 -0
- data/ext/boost/mpl/push_back_fwd.hpp +24 -0
- data/ext/boost/mpl/push_front.hpp +52 -0
- data/ext/boost/mpl/push_front_fwd.hpp +24 -0
- data/ext/boost/mpl/remove_if.hpp +83 -0
- data/ext/boost/mpl/reverse_fold.hpp +50 -0
- data/ext/boost/mpl/same_as.hpp +55 -0
- data/ext/boost/mpl/sequence_tag.hpp +124 -0
- data/ext/boost/mpl/sequence_tag_fwd.hpp +26 -0
- data/ext/boost/mpl/size.hpp +42 -0
- data/ext/boost/mpl/size_fwd.hpp +24 -0
- data/ext/boost/mpl/tag.hpp +52 -0
- data/ext/boost/mpl/times.hpp +21 -0
- data/ext/boost/mpl/vector.hpp +57 -0
- data/ext/boost/mpl/vector/aux_/O1_size.hpp +56 -0
- data/ext/boost/mpl/vector/aux_/at.hpp +116 -0
- data/ext/boost/mpl/vector/aux_/back.hpp +59 -0
- data/ext/boost/mpl/vector/aux_/begin_end.hpp +49 -0
- data/ext/boost/mpl/vector/aux_/clear.hpp +55 -0
- data/ext/boost/mpl/vector/aux_/empty.hpp +68 -0
- data/ext/boost/mpl/vector/aux_/front.hpp +56 -0
- data/ext/boost/mpl/vector/aux_/include_preprocessed.hpp +55 -0
- data/ext/boost/mpl/vector/aux_/item.hpp +103 -0
- data/ext/boost/mpl/vector/aux_/iterator.hpp +130 -0
- data/ext/boost/mpl/vector/aux_/pop_back.hpp +40 -0
- data/ext/boost/mpl/vector/aux_/pop_front.hpp +40 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector10.hpp +829 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp +1144 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp +139 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp +159 -0
- data/ext/boost/mpl/vector/aux_/push_back.hpp +40 -0
- data/ext/boost/mpl/vector/aux_/push_front.hpp +40 -0
- data/ext/boost/mpl/vector/aux_/size.hpp +49 -0
- data/ext/boost/mpl/vector/aux_/tag.hpp +32 -0
- data/ext/boost/mpl/vector/aux_/vector0.hpp +52 -0
- data/ext/boost/mpl/vector/vector0.hpp +34 -0
- data/ext/boost/mpl/vector/vector10.hpp +45 -0
- data/ext/boost/mpl/vector/vector20.hpp +45 -0
- data/ext/boost/none.hpp +1 -1
- data/ext/boost/numeric/conversion/bounds.hpp +24 -0
- data/ext/boost/numeric/conversion/cast.hpp +61 -0
- data/ext/boost/numeric/conversion/conversion_traits.hpp +39 -0
- data/ext/boost/numeric/conversion/converter.hpp +68 -0
- data/ext/boost/numeric/conversion/converter_policies.hpp +186 -0
- data/ext/boost/numeric/conversion/detail/bounds.hpp +58 -0
- data/ext/boost/numeric/conversion/detail/conversion_traits.hpp +97 -0
- data/ext/boost/numeric/conversion/detail/converter.hpp +602 -0
- data/ext/boost/numeric/conversion/detail/int_float_mixture.hpp +72 -0
- data/ext/boost/numeric/conversion/detail/is_subranged.hpp +234 -0
- data/ext/boost/numeric/conversion/detail/meta.hpp +120 -0
- data/ext/boost/numeric/conversion/detail/numeric_cast_traits.hpp +138 -0
- data/ext/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp +1741 -0
- data/ext/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp +347 -0
- data/ext/boost/numeric/conversion/detail/sign_mixture.hpp +72 -0
- data/ext/boost/numeric/conversion/detail/udt_builtin_mixture.hpp +69 -0
- data/ext/boost/numeric/conversion/int_float_mixture_enum.hpp +29 -0
- data/ext/boost/numeric/conversion/numeric_cast_traits.hpp +31 -0
- data/ext/boost/numeric/conversion/sign_mixture_enum.hpp +29 -0
- data/ext/boost/numeric/conversion/udt_builtin_mixture_enum.hpp +26 -0
- data/ext/boost/operators.hpp +3 -1
- data/ext/boost/optional/optional.hpp +146 -79
- data/ext/boost/optional/optional_fwd.hpp +8 -1
- data/ext/boost/preprocessor/cat.hpp +2 -2
- data/ext/boost/preprocessor/config/config.hpp +39 -4
- data/ext/boost/preprocessor/facilities/intercept.hpp +277 -0
- data/ext/boost/preprocessor/facilities/overload.hpp +25 -0
- data/ext/boost/preprocessor/iteration/detail/iter/forward1.hpp +3 -3
- data/ext/boost/preprocessor/iteration/iterate.hpp +3 -3
- data/ext/boost/preprocessor/punctuation/paren.hpp +23 -0
- data/ext/boost/preprocessor/repetition/enum_shifted_params.hpp +44 -0
- data/ext/boost/preprocessor/seq/cat.hpp +5 -4
- data/ext/boost/preprocessor/seq/size.hpp +0 -1
- data/ext/boost/preprocessor/tuple/eat.hpp +83 -34
- data/ext/boost/preprocessor/tuple/elem.hpp +161 -355
- data/ext/boost/preprocessor/tuple/rem.hpp +110 -48
- data/ext/boost/preprocessor/tuple/to_list.hpp +90 -36
- data/ext/boost/preprocessor/variadic/elem.hpp +94 -0
- data/ext/boost/preprocessor/variadic/size.hpp +30 -0
- data/ext/boost/range/begin.hpp +17 -6
- data/ext/boost/range/concepts.hpp +37 -2
- data/ext/boost/range/detail/safe_bool.hpp +72 -0
- data/ext/boost/range/end.hpp +14 -9
- data/ext/boost/range/iterator_range_core.hpp +120 -12
- data/ext/boost/range/size.hpp +21 -5
- data/ext/boost/smart_ptr/detail/shared_count.hpp +88 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base.hpp +3 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_aix.hpp +142 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +9 -0
- data/ext/boost/smart_ptr/detail/sp_counted_impl.hpp +10 -2
- data/ext/boost/smart_ptr/detail/sp_has_sync.hpp +5 -1
- data/ext/boost/smart_ptr/detail/spinlock.hpp +4 -1
- data/ext/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +20 -3
- data/ext/boost/smart_ptr/detail/spinlock_pool.hpp +4 -0
- data/ext/boost/smart_ptr/make_shared.hpp +591 -22
- data/ext/boost/smart_ptr/shared_array.hpp +29 -1
- data/ext/boost/smart_ptr/shared_ptr.hpp +29 -13
- data/ext/boost/smart_ptr/weak_ptr.hpp +24 -12
- data/ext/boost/src/pthread/once.cpp +9 -7
- data/ext/boost/src/pthread/thread.cpp +32 -28
- data/ext/boost/src/pthread/timeconv.inl +4 -5
- data/ext/boost/src/tss_null.cpp +5 -1
- data/ext/boost/static_assert.hpp +8 -2
- data/ext/boost/thread/detail/config.hpp +19 -4
- data/ext/boost/thread/detail/move.hpp +11 -5
- data/ext/boost/thread/detail/thread.hpp +59 -43
- data/ext/boost/thread/exceptions.hpp +9 -9
- data/ext/boost/thread/future.hpp +150 -82
- data/ext/boost/thread/locks.hpp +101 -60
- data/ext/boost/thread/pthread/condition_variable.hpp +79 -32
- data/ext/boost/thread/pthread/condition_variable_fwd.hpp +12 -3
- data/ext/boost/thread/pthread/mutex.hpp +17 -14
- data/ext/boost/thread/pthread/once.hpp +3 -4
- data/ext/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +12 -2
- data/ext/boost/thread/pthread/recursive_mutex.hpp +19 -19
- data/ext/boost/thread/pthread/shared_mutex.hpp +13 -13
- data/ext/boost/thread/pthread/thread_data.hpp +40 -12
- data/ext/boost/thread/thread_time.hpp +5 -0
- data/ext/boost/throw_exception.hpp +1 -1
- data/ext/boost/token_functions.hpp +34 -10
- data/ext/boost/type_traits/add_rvalue_reference.hpp +66 -0
- data/ext/boost/type_traits/alignment_of.hpp +1 -1
- data/ext/boost/type_traits/detail/bool_trait_def.hpp +26 -3
- data/ext/boost/type_traits/detail/bool_trait_undef.hpp +3 -2
- data/ext/boost/type_traits/detail/cv_traits_impl.hpp +1 -1
- data/ext/boost/type_traits/detail/size_t_trait_def.hpp +6 -4
- data/ext/boost/type_traits/detail/type_trait_def.hpp +8 -2
- data/ext/boost/type_traits/function_traits.hpp +1 -1
- data/ext/boost/type_traits/has_nothrow_constructor.hpp +53 -0
- data/ext/boost/type_traits/has_nothrow_copy.hpp +19 -5
- data/ext/boost/type_traits/has_trivial_constructor.hpp +51 -0
- data/ext/boost/type_traits/has_trivial_copy.hpp +20 -5
- data/ext/boost/type_traits/has_trivial_destructor.hpp +12 -5
- data/ext/boost/type_traits/intrinsics.hpp +119 -71
- data/ext/boost/type_traits/is_const.hpp +5 -5
- data/ext/boost/type_traits/is_convertible.hpp +14 -13
- data/ext/boost/type_traits/is_enum.hpp +1 -1
- data/ext/boost/type_traits/is_floating_point.hpp +27 -0
- data/ext/boost/type_traits/is_function.hpp +3 -3
- data/ext/boost/type_traits/is_fundamental.hpp +1 -1
- data/ext/boost/type_traits/is_member_function_pointer.hpp +2 -2
- data/ext/boost/type_traits/is_member_pointer.hpp +2 -2
- data/ext/boost/type_traits/is_pod.hpp +11 -3
- data/ext/boost/type_traits/is_pointer.hpp +2 -2
- data/ext/boost/type_traits/is_signed.hpp +8 -3
- data/ext/boost/type_traits/is_union.hpp +8 -0
- data/ext/boost/type_traits/is_unsigned.hpp +9 -4
- data/ext/boost/type_traits/is_volatile.hpp +5 -5
- data/ext/boost/type_traits/remove_cv.hpp +4 -3
- data/ext/boost/type_traits/remove_pointer.hpp +51 -2
- data/ext/boost/type_traits/remove_reference.hpp +2 -2
- data/ext/boost/type_traits/type_with_alignment.hpp +8 -2
- data/ext/boost/utility/declval.hpp +44 -0
- data/ext/boost/utility/detail/in_place_factory_prefix.hpp +36 -0
- data/ext/boost/utility/detail/in_place_factory_suffix.hpp +23 -0
- data/ext/boost/utility/detail/result_of_iterate.hpp +142 -0
- data/ext/boost/utility/in_place_factory.hpp +88 -0
- data/ext/boost/utility/result_of.hpp +103 -0
- data/ext/boost/utility/swap.hpp +55 -0
- data/ext/common/AnsiColorConstants.h +36 -0
- data/ext/common/ApplicationPool2/Common.h +87 -0
- data/ext/common/ApplicationPool2/ComponentInfo.h +53 -0
- data/ext/common/ApplicationPool2/Group.h +648 -0
- data/ext/common/ApplicationPool2/Implementation.cpp +580 -0
- data/ext/common/ApplicationPool2/Options.h +576 -0
- data/ext/common/ApplicationPool2/PipeWatcher.h +61 -0
- data/ext/common/ApplicationPool2/Pool.h +1181 -0
- data/ext/common/ApplicationPool2/Process.h +425 -0
- data/ext/common/ApplicationPool2/README.md +96 -0
- data/ext/common/ApplicationPool2/Session.h +158 -0
- data/ext/common/ApplicationPool2/Socket.h +246 -0
- data/ext/common/ApplicationPool2/Spawner.h +2212 -0
- data/ext/common/ApplicationPool2/SuperGroup.h +749 -0
- data/ext/common/BackgroundEventLoop.cpp +129 -0
- data/ext/common/BackgroundEventLoop.h +61 -0
- data/ext/common/Constants.h +3 -1
- data/ext/common/EventedBufferedInput.h +331 -0
- data/ext/common/EventedMessageServer.h +17 -34
- data/ext/common/EventedServer.h +2 -2
- data/ext/common/Exceptions.h +71 -19
- data/ext/common/FileDescriptor.h +8 -6
- data/ext/common/HttpConstants.h +167 -0
- data/ext/common/IniFile.h +24 -0
- data/ext/common/Logging.h +62 -849
- data/ext/common/MessageReadersWriters.h +19 -0
- data/ext/common/MessageServer.h +11 -14
- data/ext/common/MultiLibeio.cpp +198 -0
- data/ext/common/MultiLibeio.h +67 -0
- data/ext/common/ResourceLocator.h +24 -41
- data/ext/common/SafeLibev.h +186 -14
- data/ext/common/StaticString.h +23 -3
- data/ext/common/UnionStation.h +972 -0
- data/ext/common/Utils.cpp +168 -24
- data/ext/common/Utils.h +25 -3
- data/ext/common/Utils/CachedFileStat.hpp +4 -3
- data/ext/common/Utils/FileChangeChecker.h +2 -2
- data/ext/common/Utils/HashMap.h +50 -0
- data/ext/common/Utils/IOUtils.cpp +229 -68
- data/ext/common/Utils/IOUtils.h +134 -3
- data/ext/common/Utils/Lock.h +28 -0
- data/ext/common/Utils/MemoryBarrier.h +52 -0
- data/ext/common/Utils/PriorityQueue.h +54 -0
- data/ext/common/Utils/ProcessMetricsCollector.h +9 -11
- data/ext/common/Utils/ScopeGuard.h +50 -1
- data/ext/common/Utils/SmallVector.h +653 -0
- data/ext/common/Utils/StrIntUtils.cpp +26 -2
- data/ext/common/Utils/StrIntUtils.h +18 -2
- data/ext/common/Utils/StringMap.h +125 -8
- data/ext/common/Utils/Template.h +212 -0
- data/ext/common/Utils/fib.c +699 -0
- data/ext/common/Utils/fib.h +101 -0
- data/ext/common/Utils/fibpriv.h +67 -0
- data/ext/common/Utils/json-forwards.h +249 -0
- data/ext/common/Utils/json.h +1855 -0
- data/ext/common/Utils/jsoncpp.cpp +4230 -0
- data/ext/common/agents/Base.cpp +1126 -0
- data/ext/common/{AgentBase.h → agents/Base.h} +5 -1
- data/ext/common/agents/EnvPrinter.c +16 -0
- data/ext/common/agents/HelperAgent/AgentOptions.h +81 -0
- data/ext/common/{HelperAgent → agents/HelperAgent}/BacktracesServer.h +3 -2
- data/ext/common/agents/HelperAgent/FileBackedPipe.h +732 -0
- data/ext/common/agents/HelperAgent/Main.cpp +497 -0
- data/ext/common/agents/HelperAgent/RequestHandler.cpp +283 -0
- data/ext/common/agents/HelperAgent/RequestHandler.h +2139 -0
- data/ext/common/agents/HelperAgent/ScgiRequestParser.h +451 -0
- data/ext/common/{LoggingAgent → agents/LoggingAgent}/DataStoreId.h +1 -1
- data/ext/common/{LoggingAgent → agents/LoggingAgent}/FilterSupport.cpp +1 -1
- data/ext/common/{LoggingAgent → agents/LoggingAgent}/FilterSupport.h +0 -0
- data/ext/common/{LoggingAgent → agents/LoggingAgent}/LoggingServer.h +18 -16
- data/ext/common/{LoggingAgent → agents/LoggingAgent}/Main.cpp +15 -13
- data/ext/common/{LoggingAgent → agents/LoggingAgent}/RemoteSender.h +6 -6
- data/ext/common/agents/SpawnPreparer.cpp +127 -0
- data/ext/common/{Watchdog.cpp → agents/Watchdog/Main.cpp} +63 -25
- data/ext/libeio/Changes +72 -0
- data/ext/{google/COPYING → libeio/LICENSE} +17 -9
- data/ext/libeio/Makefile.am +15 -0
- data/ext/libeio/Makefile.in +694 -0
- data/ext/libeio/aclocal.m4 +9418 -0
- data/ext/libeio/autogen.sh +3 -0
- data/ext/libeio/config.guess +1501 -0
- data/ext/libeio/config.h.in +136 -0
- data/ext/libeio/config.sub +1705 -0
- data/ext/libeio/configure +14822 -0
- data/ext/libeio/configure.ac +22 -0
- data/ext/libeio/demo.c +194 -0
- data/ext/libeio/ecb.h +457 -0
- data/ext/libeio/eio.c +2816 -0
- data/ext/libeio/eio.h +411 -0
- data/ext/libeio/install-sh +520 -0
- data/ext/libeio/libeio.m4 +211 -0
- data/ext/libeio/ltmain.sh +9636 -0
- data/ext/libeio/missing +376 -0
- data/ext/libeio/xthread.h +166 -0
- data/ext/libev/Changes +125 -7
- data/ext/libev/Makefile.am +5 -3
- data/ext/libev/Makefile.in +209 -120
- data/ext/libev/aclocal.m4 +6027 -4619
- data/ext/libev/autogen.sh +1 -4
- data/ext/libev/config.h.in +11 -7
- data/ext/libev/configure +7312 -14993
- data/ext/libev/configure.ac +12 -5
- data/ext/libev/depcomp +630 -0
- data/ext/libev/ev++.h +48 -32
- data/ext/libev/ev.c +1173 -391
- data/ext/libev/ev.h +315 -181
- data/ext/libev/ev_epoll.c +66 -15
- data/ext/libev/ev_kqueue.c +20 -18
- data/ext/libev/ev_poll.c +27 -23
- data/ext/libev/ev_port.c +39 -19
- data/ext/libev/ev_select.c +23 -17
- data/ext/libev/ev_vars.h +25 -8
- data/ext/libev/ev_win32.c +6 -6
- data/ext/libev/ev_wrap.h +22 -2
- data/ext/libev/event.c +18 -17
- data/ext/libev/event.h +16 -4
- data/ext/libev/libev.m4 +10 -6
- data/ext/libev/ltmain.sh +7353 -5811
- data/ext/nginx/Configuration.c +74 -42
- data/ext/nginx/Configuration.h +3 -5
- data/ext/nginx/ContentHandler.c +26 -83
- data/ext/nginx/ContentHandler.h +1 -1
- data/ext/nginx/config +13 -9
- data/ext/nginx/ngx_http_passenger_module.c +3 -7
- data/ext/oxt/detail/backtrace_enabled.hpp +5 -102
- data/ext/oxt/detail/context.hpp +90 -0
- data/ext/oxt/detail/spin_lock_darwin.hpp +4 -0
- data/ext/oxt/detail/spin_lock_gcc_x86.hpp +4 -0
- data/ext/oxt/detail/spin_lock_pthreads.hpp +14 -0
- data/ext/oxt/detail/tracable_exception_enabled.hpp +2 -2
- data/ext/oxt/dynamic_thread_group.hpp +27 -1
- data/ext/oxt/implementation.cpp +415 -0
- data/ext/oxt/{thread.cpp → initialize.hpp} +13 -6
- data/ext/oxt/macros.hpp +32 -1
- data/ext/oxt/spin_lock.hpp +6 -11
- data/ext/oxt/system_calls.cpp +204 -16
- data/ext/oxt/system_calls.hpp +85 -45
- data/ext/oxt/thread.hpp +13 -117
- data/ext/ruby/passenger_native_support.c +82 -237
- data/helper-scripts/backtrace-sanitizer.rb +114 -0
- data/helper-scripts/classic-rails-loader.rb +135 -0
- data/helper-scripts/classic-rails-preloader.rb +161 -0
- data/helper-scripts/node-loader.js +314 -0
- data/helper-scripts/rack-loader.rb +104 -0
- data/helper-scripts/rack-preloader.rb +132 -0
- data/helper-scripts/wsgi-loader.py +231 -0
- data/helper-scripts/wsgi-preloader.py +1 -0
- data/lib/phusion_passenger.rb +159 -61
- data/lib/phusion_passenger/abstract_installer.rb +182 -87
- data/lib/phusion_passenger/admin_tools/server_instance.rb +25 -19
- data/lib/phusion_passenger/analytics_logger.rb +5 -4
- data/lib/phusion_passenger/classic_rails/{request_handler.rb → thread_handler_extension.rb} +4 -40
- data/lib/phusion_passenger/classic_rails_extensions/init.rb +5 -3
- data/lib/phusion_passenger/common_library.rb +441 -0
- data/lib/phusion_passenger/console_text_template.rb +4 -16
- data/lib/phusion_passenger/constants.rb +1 -8
- data/lib/phusion_passenger/debug_logging.rb +5 -2
- data/lib/phusion_passenger/dependencies.rb +51 -13
- data/lib/phusion_passenger/loader_shared_helpers.rb +318 -0
- data/lib/phusion_passenger/message_channel.rb +3 -47
- data/lib/phusion_passenger/message_client.rb +2 -2
- data/lib/phusion_passenger/native_support.rb +36 -15
- data/lib/phusion_passenger/packaging.rb +8 -11
- data/lib/phusion_passenger/platform_info.rb +25 -17
- data/lib/phusion_passenger/platform_info/apache.rb +10 -7
- data/lib/phusion_passenger/platform_info/binary_compatibility.rb +10 -30
- data/lib/phusion_passenger/platform_info/compiler.rb +93 -34
- data/lib/phusion_passenger/platform_info/ruby.rb +37 -97
- data/lib/phusion_passenger/preloader_shared_helpers.rb +121 -0
- data/lib/phusion_passenger/public_api.rb +1 -4
- data/lib/phusion_passenger/rack/{request_handler.rb → thread_handler_extension.rb} +14 -63
- data/lib/phusion_passenger/rails3_extensions/init.rb +9 -8
- data/lib/phusion_passenger/request_handler.rb +500 -0
- data/lib/phusion_passenger/request_handler/thread_handler.rb +360 -0
- data/lib/phusion_passenger/ruby_core_enhancements.rb +142 -0
- data/lib/phusion_passenger/standalone/command.rb +36 -15
- data/lib/phusion_passenger/standalone/package_runtime_command.rb +16 -8
- data/lib/phusion_passenger/standalone/runtime_installer.rb +169 -72
- data/lib/phusion_passenger/standalone/start_command.rb +44 -39
- data/lib/phusion_passenger/standalone/utils.rb +5 -5
- data/lib/phusion_passenger/utils.rb +35 -914
- data/lib/phusion_passenger/utils/ansi_colors.rb +59 -0
- data/lib/phusion_passenger/utils/file_system_watcher.rb +1 -1
- data/lib/phusion_passenger/utils/robust_interruption.rb +134 -0
- data/lib/phusion_passenger/utils/tee_input.rb +174 -0
- data/lib/phusion_passenger/utils/tmpio.rb +33 -0
- data/lib/phusion_passenger/utils/unseekable_socket.rb +6 -0
- data/resources/mime.types +5 -1
- data/{lib/phusion_passenger/templates → resources}/standalone_default_root/index.html +0 -0
- data/{lib/phusion_passenger → resources}/templates/apache2/apache_must_be_compiled_with_compatible_mpm.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/apache2/config_snippets.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/apache2/deployment_example.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/apache2/no_write_permission_to_passenger_root.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/apache2/possible_solutions_for_compilation_and_installation_problems.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/apache2/run_installer_as_root.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/apache2/welcome.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/error_layout.css +6 -0
- data/resources/templates/error_layout.html.template +89 -0
- data/resources/templates/general_error.html.template +1 -0
- data/resources/templates/general_error_with_html.html.template +1 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/ask_for_extra_configure_flags.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/cannot_write_to_dir.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/config_snippets.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/config_snippets_inserted.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/confirm_extra_configure_flags.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/deployment_example.txt.erb +0 -0
- data/resources/templates/nginx/not_available_when_natively_packaged.txt.erb +8 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/pcre_could_not_be_downloaded.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/pcre_could_not_be_extracted.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/possible_solutions_for_compilation_and_installation_problems.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/possible_solutions_for_download_and_extraction_problems.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/query_download_and_install.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/run_installer_as_root.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/welcome.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/standalone/cannot_write_to_dir.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/standalone/config.erb +26 -5
- data/{lib/phusion_passenger → resources}/templates/standalone/possible_solutions_for_download_and_extraction_problems.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/standalone/run_installer_as_root.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/standalone/welcome.txt.erb +0 -0
- data/resources/templates/undisclosed_error.html.template +25 -0
- data/test/config.json.example +42 -0
- data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +86 -0
- data/test/cxx/ApplicationPool2/OptionsTest.cpp +44 -0
- data/test/cxx/ApplicationPool2/PoolTest.cpp +1234 -0
- data/test/cxx/ApplicationPool2/ProcessTest.cpp +131 -0
- data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +229 -0
- data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +744 -0
- data/test/cxx/BufferedIOTest.cpp +7 -7
- data/test/cxx/CxxTestMain.cpp +65 -2
- data/test/cxx/FileBackedPipeTest.cpp +626 -0
- data/test/cxx/FileChangeCheckerTest.cpp +20 -18
- data/test/cxx/FilterSupportTest.cpp +5 -5
- data/test/cxx/IOUtilsTest.cpp +11 -4
- data/test/cxx/MessageReadersWritersTest.cpp +1 -1
- data/test/cxx/MessageServerTest.cpp +31 -30
- data/test/cxx/RequestHandlerTest.cpp +777 -0
- data/test/cxx/ScgiRequestParserTest.cpp +36 -16
- data/test/cxx/ServerInstanceDirTest.cpp +1 -1
- data/test/cxx/StringMapTest.cpp +61 -0
- data/test/cxx/TemplateTest.cpp +118 -0
- data/test/cxx/TestSupport.cpp +25 -68
- data/test/cxx/TestSupport.h +81 -41
- data/test/cxx/{LoggingTest.cpp → UnionStationTest.cpp} +79 -74
- data/test/cxx/UtilsTest.cpp +59 -5
- data/test/integration_tests/apache2_tests.rb +2 -2
- data/test/integration_tests/nginx_tests.rb +1 -1
- data/test/integration_tests/spec_helper.rb +7 -5
- data/test/oxt/oxt_test_main.cpp +2 -0
- data/test/oxt/syscall_interruption_test.cpp +1 -0
- data/test/ruby/classic_rails/loader_spec.rb +48 -0
- data/test/ruby/classic_rails/preloader_spec.rb +54 -0
- data/test/ruby/rack/loader_spec.rb +62 -0
- data/test/ruby/rack/preloader_spec.rb +74 -0
- data/test/ruby/{abstract_request_handler_spec.rb → request_handler_spec.rb} +31 -68
- data/test/ruby/shared/loader_spec.rb +241 -0
- data/test/ruby/shared/rails/analytics_logging_extensions_spec.rb +141 -182
- data/test/ruby/shared/ruby_loader_spec.rb +55 -0
- data/test/ruby/spec_helper.rb +8 -53
- data/test/ruby/utils/file_system_watcher_spec.rb +9 -1
- data/test/ruby/utils_spec.rb +10 -683
- data/test/stub/rack/config.ru +28 -3
- data/test/stub/rack/start.rb +47 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/Rakefile +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/controllers/application_controller.rb +0 -2
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/controllers/bar_controller_1.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/controllers/bar_controller_2.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/controllers/foo_controller.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/helpers/application_helper.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/boot.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/database.yml +3 -3
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/environment.rb +5 -2
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/environments/development.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/environments/production.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/environments/staging.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/initializers/inflections.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/initializers/mime_types.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/routes.rb +1 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/about +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/console +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/dbconsole +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/destroy +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/generate +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/performance/benchmarker +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/performance/profiler +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/performance/request +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/plugin +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/process/inspector +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/process/reaper +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/process/spawner +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/runner +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/server +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/Gemfile +0 -0
- data/test/stub/rails3.0/Gemfile.lock +80 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/Rakefile +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/app/controllers/application_controller.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/app/helpers/application_helper.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/app/views/layouts/application.html.erb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config.ru +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/application.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/boot.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/database.yml +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/environment.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/environments/development.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/environments/production.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/environments/test.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/backtrace_silencers.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/inflections.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/mime_types.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/passenger.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/secret_token.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/session_store.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/locales/en.yml +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/routes.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/db/seeds.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/doc/README_FOR_APP +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/404.html +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/422.html +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/500.html +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/favicon.ico +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/index.html +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/robots.txt +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/script/rails +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/test/performance/browsing_test.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/test/test_helper.rb +0 -0
- data/test/stub/start_error.pl +24 -0
- data/test/stub/wsgi/passenger_wsgi.py +71 -3
- data/test/support/apache2_controller.rb +2 -2
- data/test/support/placebo-preloader.rb +88 -0
- data/test/support/test_helper.rb +1 -14
- data/test/tut/tut.h +11 -4
- metadata +590 -326
- data.tar.gz.asc +0 -12
- data/PACKAGING.TXT +0 -25
- data/build/config.rb +0 -46
- data/ext/apache2/HelperAgent.cpp +0 -364
- data/ext/boost/call_traits.hpp +0 -24
- data/ext/boost/detail/call_traits.hpp +0 -164
- data/ext/common/AbstractSpawnManager.h +0 -110
- data/ext/common/AgentBase.cpp +0 -432
- data/ext/common/ApplicationPool/Client.h +0 -788
- data/ext/common/ApplicationPool/Interface.h +0 -295
- data/ext/common/ApplicationPool/Pool.h +0 -1327
- data/ext/common/ApplicationPool/Server.h +0 -479
- data/ext/common/MessageChannel.h +0 -494
- data/ext/common/PoolOptions.h +0 -518
- data/ext/common/Process.h +0 -253
- data/ext/common/Session.h +0 -436
- data/ext/common/SpawnManager.h +0 -611
- data/ext/google/ChangeLog +0 -167
- data/ext/google/dense_hash_map +0 -310
- data/ext/google/dense_hash_set +0 -287
- data/ext/google/sparse_hash_map +0 -294
- data/ext/google/sparse_hash_set +0 -275
- data/ext/google/sparsehash/densehashtable.h +0 -1062
- data/ext/google/sparsehash/sparseconfig.h +0 -55
- data/ext/google/sparsehash/sparsehashtable.h +0 -1015
- data/ext/google/sparsetable +0 -1468
- data/ext/google/type_traits.h +0 -250
- data/ext/nginx/HelperAgent.cpp +0 -1355
- data/ext/nginx/ScgiRequestParser.h +0 -375
- data/ext/oxt/backtrace.cpp +0 -185
- data/ext/oxt/tracable_exception.cpp +0 -89
- data/helper-scripts/passenger-spawn-server +0 -106
- data/lib/phusion_passenger/abstract_request_handler.rb +0 -766
- data/lib/phusion_passenger/abstract_server.rb +0 -372
- data/lib/phusion_passenger/abstract_server_collection.rb +0 -335
- data/lib/phusion_passenger/app_process.rb +0 -174
- data/lib/phusion_passenger/classic_rails/application_spawner.rb +0 -344
- data/lib/phusion_passenger/classic_rails/framework_spawner.rb +0 -311
- data/lib/phusion_passenger/exceptions.rb +0 -103
- data/lib/phusion_passenger/html_template.rb +0 -107
- data/lib/phusion_passenger/rack/application_spawner.rb +0 -231
- data/lib/phusion_passenger/spawn_manager.rb +0 -359
- data/lib/phusion_passenger/templates/app_exited_during_initialization.html.erb +0 -38
- data/lib/phusion_passenger/templates/app_init_error.html.erb +0 -64
- data/lib/phusion_passenger/templates/database_error.html.erb +0 -66
- data/lib/phusion_passenger/templates/error_layout.html.erb +0 -39
- data/lib/phusion_passenger/templates/framework_init_error.html.erb +0 -39
- data/lib/phusion_passenger/templates/general_error.html.erb +0 -22
- data/lib/phusion_passenger/templates/load_error.html.erb +0 -46
- data/lib/phusion_passenger/templates/version_not_found.html.erb +0 -34
- data/lib/phusion_passenger/utils/rewindable_input.rb +0 -125
- data/lib/phusion_passenger/wsgi/application_spawner.rb +0 -108
- data/test/config.yml.example +0 -41
- data/test/cxx/ApplicationPool_PoolTest.cpp +0 -33
- data/test/cxx/ApplicationPool_PoolTestCases.cpp +0 -1029
- data/test/cxx/ApplicationPool_ServerTest.cpp +0 -308
- data/test/cxx/ApplicationPool_Server_PoolTest.cpp +0 -80
- data/test/cxx/MessageChannelTest.cpp +0 -557
- data/test/cxx/PoolOptionsTest.cpp +0 -116
- data/test/cxx/SpawnManagerTest.cpp +0 -161
- data/test/ruby/abstract_server_collection_spec.rb +0 -247
- data/test/ruby/abstract_server_spec.rb +0 -61
- data/test/ruby/app_process_spec.rb +0 -43
- data/test/ruby/classic_rails/application_spawner_spec.rb +0 -89
- data/test/ruby/classic_rails/framework_spawner_spec.rb +0 -92
- data/test/ruby/rack/application_spawner_spec.rb +0 -116
- data/test/ruby/shared/abstract_server_spec.rb +0 -23
- data/test/ruby/shared/spawners/classic_rails/framework_spawner_spec.rb +0 -38
- data/test/ruby/shared/spawners/classic_rails/lack_of_rails_gem_version_spec.rb +0 -19
- data/test/ruby/shared/spawners/classic_rails/spawner_spec.rb +0 -15
- data/test/ruby/shared/spawners/non_preloading_spawner_spec.rb +0 -27
- data/test/ruby/shared/spawners/preloading_spawner_spec.rb +0 -29
- data/test/ruby/shared/spawners/reload_all_spec.rb +0 -36
- data/test/ruby/shared/spawners/reload_single_spec.rb +0 -52
- data/test/ruby/shared/spawners/spawn_server_spec.rb +0 -28
- data/test/ruby/shared/spawners/spawner_spec.rb +0 -273
- data/test/ruby/shared/utils/pseudo_io_spec.rb +0 -60
- data/test/ruby/spawn_manager_spec.rb +0 -134
- data/test/ruby/wsgi/application_spawner_spec.rb +0 -50
- data/test/stub/message_channel.rb +0 -11
- data/test/stub/message_channel_2.rb +0 -12
- data/test/stub/message_channel_3.rb +0 -19
- data/test/stub/rails_apps/3.0/empty/Gemfile.lock +0 -73
- data/test/stub/spawn_server.rb +0 -22
- metadata.gz.asc +0 -12
@@ -0,0 +1,1741 @@
|
|
1
|
+
//
|
2
|
+
//! Copyright (c) 2011-2012
|
3
|
+
//! Brandon Kohn
|
4
|
+
//
|
5
|
+
// Distributed under the Boost Software License, Version 1.0. (See
|
6
|
+
// accompanying file LICENSE_1_0.txt or copy at
|
7
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
8
|
+
//
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
namespace boost { namespace numeric {
|
13
|
+
|
14
|
+
template <>
|
15
|
+
struct numeric_cast_traits
|
16
|
+
<
|
17
|
+
char
|
18
|
+
, char
|
19
|
+
>
|
20
|
+
{
|
21
|
+
typedef def_overflow_handler overflow_policy;
|
22
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
23
|
+
typedef Trunc<char> rounding_policy;
|
24
|
+
};
|
25
|
+
|
26
|
+
template <>
|
27
|
+
struct numeric_cast_traits
|
28
|
+
<
|
29
|
+
char
|
30
|
+
, signed char
|
31
|
+
>
|
32
|
+
{
|
33
|
+
typedef def_overflow_handler overflow_policy;
|
34
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
35
|
+
typedef Trunc<signed char> rounding_policy;
|
36
|
+
};
|
37
|
+
|
38
|
+
template <>
|
39
|
+
struct numeric_cast_traits
|
40
|
+
<
|
41
|
+
char
|
42
|
+
, unsigned char
|
43
|
+
>
|
44
|
+
{
|
45
|
+
typedef def_overflow_handler overflow_policy;
|
46
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
47
|
+
typedef Trunc<unsigned char> rounding_policy;
|
48
|
+
};
|
49
|
+
|
50
|
+
template <>
|
51
|
+
struct numeric_cast_traits
|
52
|
+
<
|
53
|
+
char
|
54
|
+
, short
|
55
|
+
>
|
56
|
+
{
|
57
|
+
typedef def_overflow_handler overflow_policy;
|
58
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
59
|
+
typedef Trunc<short> rounding_policy;
|
60
|
+
};
|
61
|
+
|
62
|
+
template <>
|
63
|
+
struct numeric_cast_traits
|
64
|
+
<
|
65
|
+
char
|
66
|
+
, unsigned short
|
67
|
+
>
|
68
|
+
{
|
69
|
+
typedef def_overflow_handler overflow_policy;
|
70
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
71
|
+
typedef Trunc<unsigned short> rounding_policy;
|
72
|
+
};
|
73
|
+
|
74
|
+
template <>
|
75
|
+
struct numeric_cast_traits
|
76
|
+
<
|
77
|
+
char
|
78
|
+
, int
|
79
|
+
>
|
80
|
+
{
|
81
|
+
typedef def_overflow_handler overflow_policy;
|
82
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
83
|
+
typedef Trunc<int> rounding_policy;
|
84
|
+
};
|
85
|
+
|
86
|
+
template <>
|
87
|
+
struct numeric_cast_traits
|
88
|
+
<
|
89
|
+
char
|
90
|
+
, unsigned int
|
91
|
+
>
|
92
|
+
{
|
93
|
+
typedef def_overflow_handler overflow_policy;
|
94
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
95
|
+
typedef Trunc<unsigned int> rounding_policy;
|
96
|
+
};
|
97
|
+
|
98
|
+
template <>
|
99
|
+
struct numeric_cast_traits
|
100
|
+
<
|
101
|
+
char
|
102
|
+
, long
|
103
|
+
>
|
104
|
+
{
|
105
|
+
typedef def_overflow_handler overflow_policy;
|
106
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
107
|
+
typedef Trunc<long> rounding_policy;
|
108
|
+
};
|
109
|
+
|
110
|
+
template <>
|
111
|
+
struct numeric_cast_traits
|
112
|
+
<
|
113
|
+
char
|
114
|
+
, unsigned long
|
115
|
+
>
|
116
|
+
{
|
117
|
+
typedef def_overflow_handler overflow_policy;
|
118
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
119
|
+
typedef Trunc<unsigned long> rounding_policy;
|
120
|
+
};
|
121
|
+
|
122
|
+
template <>
|
123
|
+
struct numeric_cast_traits
|
124
|
+
<
|
125
|
+
char
|
126
|
+
, float
|
127
|
+
>
|
128
|
+
{
|
129
|
+
typedef def_overflow_handler overflow_policy;
|
130
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
131
|
+
typedef Trunc<float> rounding_policy;
|
132
|
+
};
|
133
|
+
|
134
|
+
template <>
|
135
|
+
struct numeric_cast_traits
|
136
|
+
<
|
137
|
+
char
|
138
|
+
, double
|
139
|
+
>
|
140
|
+
{
|
141
|
+
typedef def_overflow_handler overflow_policy;
|
142
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
143
|
+
typedef Trunc<double> rounding_policy;
|
144
|
+
};
|
145
|
+
|
146
|
+
template <>
|
147
|
+
struct numeric_cast_traits
|
148
|
+
<
|
149
|
+
char
|
150
|
+
, long double
|
151
|
+
>
|
152
|
+
{
|
153
|
+
typedef def_overflow_handler overflow_policy;
|
154
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
155
|
+
typedef Trunc<long double> rounding_policy;
|
156
|
+
};
|
157
|
+
|
158
|
+
template <>
|
159
|
+
struct numeric_cast_traits
|
160
|
+
<
|
161
|
+
signed char
|
162
|
+
, char
|
163
|
+
>
|
164
|
+
{
|
165
|
+
typedef def_overflow_handler overflow_policy;
|
166
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
167
|
+
typedef Trunc<char> rounding_policy;
|
168
|
+
};
|
169
|
+
|
170
|
+
template <>
|
171
|
+
struct numeric_cast_traits
|
172
|
+
<
|
173
|
+
signed char
|
174
|
+
, signed char
|
175
|
+
>
|
176
|
+
{
|
177
|
+
typedef def_overflow_handler overflow_policy;
|
178
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
179
|
+
typedef Trunc<signed char> rounding_policy;
|
180
|
+
};
|
181
|
+
|
182
|
+
template <>
|
183
|
+
struct numeric_cast_traits
|
184
|
+
<
|
185
|
+
signed char
|
186
|
+
, unsigned char
|
187
|
+
>
|
188
|
+
{
|
189
|
+
typedef def_overflow_handler overflow_policy;
|
190
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
191
|
+
typedef Trunc<unsigned char> rounding_policy;
|
192
|
+
};
|
193
|
+
|
194
|
+
template <>
|
195
|
+
struct numeric_cast_traits
|
196
|
+
<
|
197
|
+
signed char
|
198
|
+
, short
|
199
|
+
>
|
200
|
+
{
|
201
|
+
typedef def_overflow_handler overflow_policy;
|
202
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
203
|
+
typedef Trunc<short> rounding_policy;
|
204
|
+
};
|
205
|
+
|
206
|
+
template <>
|
207
|
+
struct numeric_cast_traits
|
208
|
+
<
|
209
|
+
signed char
|
210
|
+
, unsigned short
|
211
|
+
>
|
212
|
+
{
|
213
|
+
typedef def_overflow_handler overflow_policy;
|
214
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
215
|
+
typedef Trunc<unsigned short> rounding_policy;
|
216
|
+
};
|
217
|
+
|
218
|
+
template <>
|
219
|
+
struct numeric_cast_traits
|
220
|
+
<
|
221
|
+
signed char
|
222
|
+
, int
|
223
|
+
>
|
224
|
+
{
|
225
|
+
typedef def_overflow_handler overflow_policy;
|
226
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
227
|
+
typedef Trunc<int> rounding_policy;
|
228
|
+
};
|
229
|
+
|
230
|
+
template <>
|
231
|
+
struct numeric_cast_traits
|
232
|
+
<
|
233
|
+
signed char
|
234
|
+
, unsigned int
|
235
|
+
>
|
236
|
+
{
|
237
|
+
typedef def_overflow_handler overflow_policy;
|
238
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
239
|
+
typedef Trunc<unsigned int> rounding_policy;
|
240
|
+
};
|
241
|
+
|
242
|
+
template <>
|
243
|
+
struct numeric_cast_traits
|
244
|
+
<
|
245
|
+
signed char
|
246
|
+
, long
|
247
|
+
>
|
248
|
+
{
|
249
|
+
typedef def_overflow_handler overflow_policy;
|
250
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
251
|
+
typedef Trunc<long> rounding_policy;
|
252
|
+
};
|
253
|
+
|
254
|
+
template <>
|
255
|
+
struct numeric_cast_traits
|
256
|
+
<
|
257
|
+
signed char
|
258
|
+
, unsigned long
|
259
|
+
>
|
260
|
+
{
|
261
|
+
typedef def_overflow_handler overflow_policy;
|
262
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
263
|
+
typedef Trunc<unsigned long> rounding_policy;
|
264
|
+
};
|
265
|
+
|
266
|
+
template <>
|
267
|
+
struct numeric_cast_traits
|
268
|
+
<
|
269
|
+
signed char
|
270
|
+
, float
|
271
|
+
>
|
272
|
+
{
|
273
|
+
typedef def_overflow_handler overflow_policy;
|
274
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
275
|
+
typedef Trunc<float> rounding_policy;
|
276
|
+
};
|
277
|
+
|
278
|
+
template <>
|
279
|
+
struct numeric_cast_traits
|
280
|
+
<
|
281
|
+
signed char
|
282
|
+
, double
|
283
|
+
>
|
284
|
+
{
|
285
|
+
typedef def_overflow_handler overflow_policy;
|
286
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
287
|
+
typedef Trunc<double> rounding_policy;
|
288
|
+
};
|
289
|
+
|
290
|
+
template <>
|
291
|
+
struct numeric_cast_traits
|
292
|
+
<
|
293
|
+
signed char
|
294
|
+
, long double
|
295
|
+
>
|
296
|
+
{
|
297
|
+
typedef def_overflow_handler overflow_policy;
|
298
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
299
|
+
typedef Trunc<long double> rounding_policy;
|
300
|
+
};
|
301
|
+
|
302
|
+
template <>
|
303
|
+
struct numeric_cast_traits
|
304
|
+
<
|
305
|
+
unsigned char
|
306
|
+
, char
|
307
|
+
>
|
308
|
+
{
|
309
|
+
typedef def_overflow_handler overflow_policy;
|
310
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
311
|
+
typedef Trunc<char> rounding_policy;
|
312
|
+
};
|
313
|
+
|
314
|
+
template <>
|
315
|
+
struct numeric_cast_traits
|
316
|
+
<
|
317
|
+
unsigned char
|
318
|
+
, signed char
|
319
|
+
>
|
320
|
+
{
|
321
|
+
typedef def_overflow_handler overflow_policy;
|
322
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
323
|
+
typedef Trunc<signed char> rounding_policy;
|
324
|
+
};
|
325
|
+
|
326
|
+
template <>
|
327
|
+
struct numeric_cast_traits
|
328
|
+
<
|
329
|
+
unsigned char
|
330
|
+
, unsigned char
|
331
|
+
>
|
332
|
+
{
|
333
|
+
typedef def_overflow_handler overflow_policy;
|
334
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
335
|
+
typedef Trunc<unsigned char> rounding_policy;
|
336
|
+
};
|
337
|
+
|
338
|
+
template <>
|
339
|
+
struct numeric_cast_traits
|
340
|
+
<
|
341
|
+
unsigned char
|
342
|
+
, short
|
343
|
+
>
|
344
|
+
{
|
345
|
+
typedef def_overflow_handler overflow_policy;
|
346
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
347
|
+
typedef Trunc<short> rounding_policy;
|
348
|
+
};
|
349
|
+
|
350
|
+
template <>
|
351
|
+
struct numeric_cast_traits
|
352
|
+
<
|
353
|
+
unsigned char
|
354
|
+
, unsigned short
|
355
|
+
>
|
356
|
+
{
|
357
|
+
typedef def_overflow_handler overflow_policy;
|
358
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
359
|
+
typedef Trunc<unsigned short> rounding_policy;
|
360
|
+
};
|
361
|
+
|
362
|
+
template <>
|
363
|
+
struct numeric_cast_traits
|
364
|
+
<
|
365
|
+
unsigned char
|
366
|
+
, int
|
367
|
+
>
|
368
|
+
{
|
369
|
+
typedef def_overflow_handler overflow_policy;
|
370
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
371
|
+
typedef Trunc<int> rounding_policy;
|
372
|
+
};
|
373
|
+
|
374
|
+
template <>
|
375
|
+
struct numeric_cast_traits
|
376
|
+
<
|
377
|
+
unsigned char
|
378
|
+
, unsigned int
|
379
|
+
>
|
380
|
+
{
|
381
|
+
typedef def_overflow_handler overflow_policy;
|
382
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
383
|
+
typedef Trunc<unsigned int> rounding_policy;
|
384
|
+
};
|
385
|
+
|
386
|
+
template <>
|
387
|
+
struct numeric_cast_traits
|
388
|
+
<
|
389
|
+
unsigned char
|
390
|
+
, long
|
391
|
+
>
|
392
|
+
{
|
393
|
+
typedef def_overflow_handler overflow_policy;
|
394
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
395
|
+
typedef Trunc<long> rounding_policy;
|
396
|
+
};
|
397
|
+
|
398
|
+
template <>
|
399
|
+
struct numeric_cast_traits
|
400
|
+
<
|
401
|
+
unsigned char
|
402
|
+
, unsigned long
|
403
|
+
>
|
404
|
+
{
|
405
|
+
typedef def_overflow_handler overflow_policy;
|
406
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
407
|
+
typedef Trunc<unsigned long> rounding_policy;
|
408
|
+
};
|
409
|
+
|
410
|
+
template <>
|
411
|
+
struct numeric_cast_traits
|
412
|
+
<
|
413
|
+
unsigned char
|
414
|
+
, float
|
415
|
+
>
|
416
|
+
{
|
417
|
+
typedef def_overflow_handler overflow_policy;
|
418
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
419
|
+
typedef Trunc<float> rounding_policy;
|
420
|
+
};
|
421
|
+
|
422
|
+
template <>
|
423
|
+
struct numeric_cast_traits
|
424
|
+
<
|
425
|
+
unsigned char
|
426
|
+
, double
|
427
|
+
>
|
428
|
+
{
|
429
|
+
typedef def_overflow_handler overflow_policy;
|
430
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
431
|
+
typedef Trunc<double> rounding_policy;
|
432
|
+
};
|
433
|
+
|
434
|
+
template <>
|
435
|
+
struct numeric_cast_traits
|
436
|
+
<
|
437
|
+
unsigned char
|
438
|
+
, long double
|
439
|
+
>
|
440
|
+
{
|
441
|
+
typedef def_overflow_handler overflow_policy;
|
442
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
443
|
+
typedef Trunc<long double> rounding_policy;
|
444
|
+
};
|
445
|
+
|
446
|
+
template <>
|
447
|
+
struct numeric_cast_traits
|
448
|
+
<
|
449
|
+
short
|
450
|
+
, char
|
451
|
+
>
|
452
|
+
{
|
453
|
+
typedef def_overflow_handler overflow_policy;
|
454
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
455
|
+
typedef Trunc<char> rounding_policy;
|
456
|
+
};
|
457
|
+
|
458
|
+
template <>
|
459
|
+
struct numeric_cast_traits
|
460
|
+
<
|
461
|
+
short
|
462
|
+
, signed char
|
463
|
+
>
|
464
|
+
{
|
465
|
+
typedef def_overflow_handler overflow_policy;
|
466
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
467
|
+
typedef Trunc<signed char> rounding_policy;
|
468
|
+
};
|
469
|
+
|
470
|
+
template <>
|
471
|
+
struct numeric_cast_traits
|
472
|
+
<
|
473
|
+
short
|
474
|
+
, unsigned char
|
475
|
+
>
|
476
|
+
{
|
477
|
+
typedef def_overflow_handler overflow_policy;
|
478
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
479
|
+
typedef Trunc<unsigned char> rounding_policy;
|
480
|
+
};
|
481
|
+
|
482
|
+
template <>
|
483
|
+
struct numeric_cast_traits
|
484
|
+
<
|
485
|
+
short
|
486
|
+
, short
|
487
|
+
>
|
488
|
+
{
|
489
|
+
typedef def_overflow_handler overflow_policy;
|
490
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
491
|
+
typedef Trunc<short> rounding_policy;
|
492
|
+
};
|
493
|
+
|
494
|
+
template <>
|
495
|
+
struct numeric_cast_traits
|
496
|
+
<
|
497
|
+
short
|
498
|
+
, unsigned short
|
499
|
+
>
|
500
|
+
{
|
501
|
+
typedef def_overflow_handler overflow_policy;
|
502
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
503
|
+
typedef Trunc<unsigned short> rounding_policy;
|
504
|
+
};
|
505
|
+
|
506
|
+
template <>
|
507
|
+
struct numeric_cast_traits
|
508
|
+
<
|
509
|
+
short
|
510
|
+
, int
|
511
|
+
>
|
512
|
+
{
|
513
|
+
typedef def_overflow_handler overflow_policy;
|
514
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
515
|
+
typedef Trunc<int> rounding_policy;
|
516
|
+
};
|
517
|
+
|
518
|
+
template <>
|
519
|
+
struct numeric_cast_traits
|
520
|
+
<
|
521
|
+
short
|
522
|
+
, unsigned int
|
523
|
+
>
|
524
|
+
{
|
525
|
+
typedef def_overflow_handler overflow_policy;
|
526
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
527
|
+
typedef Trunc<unsigned int> rounding_policy;
|
528
|
+
};
|
529
|
+
|
530
|
+
template <>
|
531
|
+
struct numeric_cast_traits
|
532
|
+
<
|
533
|
+
short
|
534
|
+
, long
|
535
|
+
>
|
536
|
+
{
|
537
|
+
typedef def_overflow_handler overflow_policy;
|
538
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
539
|
+
typedef Trunc<long> rounding_policy;
|
540
|
+
};
|
541
|
+
|
542
|
+
template <>
|
543
|
+
struct numeric_cast_traits
|
544
|
+
<
|
545
|
+
short
|
546
|
+
, unsigned long
|
547
|
+
>
|
548
|
+
{
|
549
|
+
typedef def_overflow_handler overflow_policy;
|
550
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
551
|
+
typedef Trunc<unsigned long> rounding_policy;
|
552
|
+
};
|
553
|
+
|
554
|
+
template <>
|
555
|
+
struct numeric_cast_traits
|
556
|
+
<
|
557
|
+
short
|
558
|
+
, float
|
559
|
+
>
|
560
|
+
{
|
561
|
+
typedef def_overflow_handler overflow_policy;
|
562
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
563
|
+
typedef Trunc<float> rounding_policy;
|
564
|
+
};
|
565
|
+
|
566
|
+
template <>
|
567
|
+
struct numeric_cast_traits
|
568
|
+
<
|
569
|
+
short
|
570
|
+
, double
|
571
|
+
>
|
572
|
+
{
|
573
|
+
typedef def_overflow_handler overflow_policy;
|
574
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
575
|
+
typedef Trunc<double> rounding_policy;
|
576
|
+
};
|
577
|
+
|
578
|
+
template <>
|
579
|
+
struct numeric_cast_traits
|
580
|
+
<
|
581
|
+
short
|
582
|
+
, long double
|
583
|
+
>
|
584
|
+
{
|
585
|
+
typedef def_overflow_handler overflow_policy;
|
586
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
587
|
+
typedef Trunc<long double> rounding_policy;
|
588
|
+
};
|
589
|
+
|
590
|
+
template <>
|
591
|
+
struct numeric_cast_traits
|
592
|
+
<
|
593
|
+
unsigned short
|
594
|
+
, char
|
595
|
+
>
|
596
|
+
{
|
597
|
+
typedef def_overflow_handler overflow_policy;
|
598
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
599
|
+
typedef Trunc<char> rounding_policy;
|
600
|
+
};
|
601
|
+
|
602
|
+
template <>
|
603
|
+
struct numeric_cast_traits
|
604
|
+
<
|
605
|
+
unsigned short
|
606
|
+
, signed char
|
607
|
+
>
|
608
|
+
{
|
609
|
+
typedef def_overflow_handler overflow_policy;
|
610
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
611
|
+
typedef Trunc<signed char> rounding_policy;
|
612
|
+
};
|
613
|
+
|
614
|
+
template <>
|
615
|
+
struct numeric_cast_traits
|
616
|
+
<
|
617
|
+
unsigned short
|
618
|
+
, unsigned char
|
619
|
+
>
|
620
|
+
{
|
621
|
+
typedef def_overflow_handler overflow_policy;
|
622
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
623
|
+
typedef Trunc<unsigned char> rounding_policy;
|
624
|
+
};
|
625
|
+
|
626
|
+
template <>
|
627
|
+
struct numeric_cast_traits
|
628
|
+
<
|
629
|
+
unsigned short
|
630
|
+
, short
|
631
|
+
>
|
632
|
+
{
|
633
|
+
typedef def_overflow_handler overflow_policy;
|
634
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
635
|
+
typedef Trunc<short> rounding_policy;
|
636
|
+
};
|
637
|
+
|
638
|
+
template <>
|
639
|
+
struct numeric_cast_traits
|
640
|
+
<
|
641
|
+
unsigned short
|
642
|
+
, unsigned short
|
643
|
+
>
|
644
|
+
{
|
645
|
+
typedef def_overflow_handler overflow_policy;
|
646
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
647
|
+
typedef Trunc<unsigned short> rounding_policy;
|
648
|
+
};
|
649
|
+
|
650
|
+
template <>
|
651
|
+
struct numeric_cast_traits
|
652
|
+
<
|
653
|
+
unsigned short
|
654
|
+
, int
|
655
|
+
>
|
656
|
+
{
|
657
|
+
typedef def_overflow_handler overflow_policy;
|
658
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
659
|
+
typedef Trunc<int> rounding_policy;
|
660
|
+
};
|
661
|
+
|
662
|
+
template <>
|
663
|
+
struct numeric_cast_traits
|
664
|
+
<
|
665
|
+
unsigned short
|
666
|
+
, unsigned int
|
667
|
+
>
|
668
|
+
{
|
669
|
+
typedef def_overflow_handler overflow_policy;
|
670
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
671
|
+
typedef Trunc<unsigned int> rounding_policy;
|
672
|
+
};
|
673
|
+
|
674
|
+
template <>
|
675
|
+
struct numeric_cast_traits
|
676
|
+
<
|
677
|
+
unsigned short
|
678
|
+
, long
|
679
|
+
>
|
680
|
+
{
|
681
|
+
typedef def_overflow_handler overflow_policy;
|
682
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
683
|
+
typedef Trunc<long> rounding_policy;
|
684
|
+
};
|
685
|
+
|
686
|
+
template <>
|
687
|
+
struct numeric_cast_traits
|
688
|
+
<
|
689
|
+
unsigned short
|
690
|
+
, unsigned long
|
691
|
+
>
|
692
|
+
{
|
693
|
+
typedef def_overflow_handler overflow_policy;
|
694
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
695
|
+
typedef Trunc<unsigned long> rounding_policy;
|
696
|
+
};
|
697
|
+
|
698
|
+
template <>
|
699
|
+
struct numeric_cast_traits
|
700
|
+
<
|
701
|
+
unsigned short
|
702
|
+
, float
|
703
|
+
>
|
704
|
+
{
|
705
|
+
typedef def_overflow_handler overflow_policy;
|
706
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
707
|
+
typedef Trunc<float> rounding_policy;
|
708
|
+
};
|
709
|
+
|
710
|
+
template <>
|
711
|
+
struct numeric_cast_traits
|
712
|
+
<
|
713
|
+
unsigned short
|
714
|
+
, double
|
715
|
+
>
|
716
|
+
{
|
717
|
+
typedef def_overflow_handler overflow_policy;
|
718
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
719
|
+
typedef Trunc<double> rounding_policy;
|
720
|
+
};
|
721
|
+
|
722
|
+
template <>
|
723
|
+
struct numeric_cast_traits
|
724
|
+
<
|
725
|
+
unsigned short
|
726
|
+
, long double
|
727
|
+
>
|
728
|
+
{
|
729
|
+
typedef def_overflow_handler overflow_policy;
|
730
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
731
|
+
typedef Trunc<long double> rounding_policy;
|
732
|
+
};
|
733
|
+
|
734
|
+
template <>
|
735
|
+
struct numeric_cast_traits
|
736
|
+
<
|
737
|
+
int
|
738
|
+
, char
|
739
|
+
>
|
740
|
+
{
|
741
|
+
typedef def_overflow_handler overflow_policy;
|
742
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
743
|
+
typedef Trunc<char> rounding_policy;
|
744
|
+
};
|
745
|
+
|
746
|
+
template <>
|
747
|
+
struct numeric_cast_traits
|
748
|
+
<
|
749
|
+
int
|
750
|
+
, signed char
|
751
|
+
>
|
752
|
+
{
|
753
|
+
typedef def_overflow_handler overflow_policy;
|
754
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
755
|
+
typedef Trunc<signed char> rounding_policy;
|
756
|
+
};
|
757
|
+
|
758
|
+
template <>
|
759
|
+
struct numeric_cast_traits
|
760
|
+
<
|
761
|
+
int
|
762
|
+
, unsigned char
|
763
|
+
>
|
764
|
+
{
|
765
|
+
typedef def_overflow_handler overflow_policy;
|
766
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
767
|
+
typedef Trunc<unsigned char> rounding_policy;
|
768
|
+
};
|
769
|
+
|
770
|
+
template <>
|
771
|
+
struct numeric_cast_traits
|
772
|
+
<
|
773
|
+
int
|
774
|
+
, short
|
775
|
+
>
|
776
|
+
{
|
777
|
+
typedef def_overflow_handler overflow_policy;
|
778
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
779
|
+
typedef Trunc<short> rounding_policy;
|
780
|
+
};
|
781
|
+
|
782
|
+
template <>
|
783
|
+
struct numeric_cast_traits
|
784
|
+
<
|
785
|
+
int
|
786
|
+
, unsigned short
|
787
|
+
>
|
788
|
+
{
|
789
|
+
typedef def_overflow_handler overflow_policy;
|
790
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
791
|
+
typedef Trunc<unsigned short> rounding_policy;
|
792
|
+
};
|
793
|
+
|
794
|
+
template <>
|
795
|
+
struct numeric_cast_traits
|
796
|
+
<
|
797
|
+
int
|
798
|
+
, int
|
799
|
+
>
|
800
|
+
{
|
801
|
+
typedef def_overflow_handler overflow_policy;
|
802
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
803
|
+
typedef Trunc<int> rounding_policy;
|
804
|
+
};
|
805
|
+
|
806
|
+
template <>
|
807
|
+
struct numeric_cast_traits
|
808
|
+
<
|
809
|
+
int
|
810
|
+
, unsigned int
|
811
|
+
>
|
812
|
+
{
|
813
|
+
typedef def_overflow_handler overflow_policy;
|
814
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
815
|
+
typedef Trunc<unsigned int> rounding_policy;
|
816
|
+
};
|
817
|
+
|
818
|
+
template <>
|
819
|
+
struct numeric_cast_traits
|
820
|
+
<
|
821
|
+
int
|
822
|
+
, long
|
823
|
+
>
|
824
|
+
{
|
825
|
+
typedef def_overflow_handler overflow_policy;
|
826
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
827
|
+
typedef Trunc<long> rounding_policy;
|
828
|
+
};
|
829
|
+
|
830
|
+
template <>
|
831
|
+
struct numeric_cast_traits
|
832
|
+
<
|
833
|
+
int
|
834
|
+
, unsigned long
|
835
|
+
>
|
836
|
+
{
|
837
|
+
typedef def_overflow_handler overflow_policy;
|
838
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
839
|
+
typedef Trunc<unsigned long> rounding_policy;
|
840
|
+
};
|
841
|
+
|
842
|
+
template <>
|
843
|
+
struct numeric_cast_traits
|
844
|
+
<
|
845
|
+
int
|
846
|
+
, float
|
847
|
+
>
|
848
|
+
{
|
849
|
+
typedef def_overflow_handler overflow_policy;
|
850
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
851
|
+
typedef Trunc<float> rounding_policy;
|
852
|
+
};
|
853
|
+
|
854
|
+
template <>
|
855
|
+
struct numeric_cast_traits
|
856
|
+
<
|
857
|
+
int
|
858
|
+
, double
|
859
|
+
>
|
860
|
+
{
|
861
|
+
typedef def_overflow_handler overflow_policy;
|
862
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
863
|
+
typedef Trunc<double> rounding_policy;
|
864
|
+
};
|
865
|
+
|
866
|
+
template <>
|
867
|
+
struct numeric_cast_traits
|
868
|
+
<
|
869
|
+
int
|
870
|
+
, long double
|
871
|
+
>
|
872
|
+
{
|
873
|
+
typedef def_overflow_handler overflow_policy;
|
874
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
875
|
+
typedef Trunc<long double> rounding_policy;
|
876
|
+
};
|
877
|
+
|
878
|
+
template <>
|
879
|
+
struct numeric_cast_traits
|
880
|
+
<
|
881
|
+
unsigned int
|
882
|
+
, char
|
883
|
+
>
|
884
|
+
{
|
885
|
+
typedef def_overflow_handler overflow_policy;
|
886
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
887
|
+
typedef Trunc<char> rounding_policy;
|
888
|
+
};
|
889
|
+
|
890
|
+
template <>
|
891
|
+
struct numeric_cast_traits
|
892
|
+
<
|
893
|
+
unsigned int
|
894
|
+
, signed char
|
895
|
+
>
|
896
|
+
{
|
897
|
+
typedef def_overflow_handler overflow_policy;
|
898
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
899
|
+
typedef Trunc<signed char> rounding_policy;
|
900
|
+
};
|
901
|
+
|
902
|
+
template <>
|
903
|
+
struct numeric_cast_traits
|
904
|
+
<
|
905
|
+
unsigned int
|
906
|
+
, unsigned char
|
907
|
+
>
|
908
|
+
{
|
909
|
+
typedef def_overflow_handler overflow_policy;
|
910
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
911
|
+
typedef Trunc<unsigned char> rounding_policy;
|
912
|
+
};
|
913
|
+
|
914
|
+
template <>
|
915
|
+
struct numeric_cast_traits
|
916
|
+
<
|
917
|
+
unsigned int
|
918
|
+
, short
|
919
|
+
>
|
920
|
+
{
|
921
|
+
typedef def_overflow_handler overflow_policy;
|
922
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
923
|
+
typedef Trunc<short> rounding_policy;
|
924
|
+
};
|
925
|
+
|
926
|
+
template <>
|
927
|
+
struct numeric_cast_traits
|
928
|
+
<
|
929
|
+
unsigned int
|
930
|
+
, unsigned short
|
931
|
+
>
|
932
|
+
{
|
933
|
+
typedef def_overflow_handler overflow_policy;
|
934
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
935
|
+
typedef Trunc<unsigned short> rounding_policy;
|
936
|
+
};
|
937
|
+
|
938
|
+
template <>
|
939
|
+
struct numeric_cast_traits
|
940
|
+
<
|
941
|
+
unsigned int
|
942
|
+
, int
|
943
|
+
>
|
944
|
+
{
|
945
|
+
typedef def_overflow_handler overflow_policy;
|
946
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
947
|
+
typedef Trunc<int> rounding_policy;
|
948
|
+
};
|
949
|
+
|
950
|
+
template <>
|
951
|
+
struct numeric_cast_traits
|
952
|
+
<
|
953
|
+
unsigned int
|
954
|
+
, unsigned int
|
955
|
+
>
|
956
|
+
{
|
957
|
+
typedef def_overflow_handler overflow_policy;
|
958
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
959
|
+
typedef Trunc<unsigned int> rounding_policy;
|
960
|
+
};
|
961
|
+
|
962
|
+
template <>
|
963
|
+
struct numeric_cast_traits
|
964
|
+
<
|
965
|
+
unsigned int
|
966
|
+
, long
|
967
|
+
>
|
968
|
+
{
|
969
|
+
typedef def_overflow_handler overflow_policy;
|
970
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
971
|
+
typedef Trunc<long> rounding_policy;
|
972
|
+
};
|
973
|
+
|
974
|
+
template <>
|
975
|
+
struct numeric_cast_traits
|
976
|
+
<
|
977
|
+
unsigned int
|
978
|
+
, unsigned long
|
979
|
+
>
|
980
|
+
{
|
981
|
+
typedef def_overflow_handler overflow_policy;
|
982
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
983
|
+
typedef Trunc<unsigned long> rounding_policy;
|
984
|
+
};
|
985
|
+
|
986
|
+
template <>
|
987
|
+
struct numeric_cast_traits
|
988
|
+
<
|
989
|
+
unsigned int
|
990
|
+
, float
|
991
|
+
>
|
992
|
+
{
|
993
|
+
typedef def_overflow_handler overflow_policy;
|
994
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
995
|
+
typedef Trunc<float> rounding_policy;
|
996
|
+
};
|
997
|
+
|
998
|
+
template <>
|
999
|
+
struct numeric_cast_traits
|
1000
|
+
<
|
1001
|
+
unsigned int
|
1002
|
+
, double
|
1003
|
+
>
|
1004
|
+
{
|
1005
|
+
typedef def_overflow_handler overflow_policy;
|
1006
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1007
|
+
typedef Trunc<double> rounding_policy;
|
1008
|
+
};
|
1009
|
+
|
1010
|
+
template <>
|
1011
|
+
struct numeric_cast_traits
|
1012
|
+
<
|
1013
|
+
unsigned int
|
1014
|
+
, long double
|
1015
|
+
>
|
1016
|
+
{
|
1017
|
+
typedef def_overflow_handler overflow_policy;
|
1018
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1019
|
+
typedef Trunc<long double> rounding_policy;
|
1020
|
+
};
|
1021
|
+
|
1022
|
+
template <>
|
1023
|
+
struct numeric_cast_traits
|
1024
|
+
<
|
1025
|
+
long
|
1026
|
+
, char
|
1027
|
+
>
|
1028
|
+
{
|
1029
|
+
typedef def_overflow_handler overflow_policy;
|
1030
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1031
|
+
typedef Trunc<char> rounding_policy;
|
1032
|
+
};
|
1033
|
+
|
1034
|
+
template <>
|
1035
|
+
struct numeric_cast_traits
|
1036
|
+
<
|
1037
|
+
long
|
1038
|
+
, signed char
|
1039
|
+
>
|
1040
|
+
{
|
1041
|
+
typedef def_overflow_handler overflow_policy;
|
1042
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1043
|
+
typedef Trunc<signed char> rounding_policy;
|
1044
|
+
};
|
1045
|
+
|
1046
|
+
template <>
|
1047
|
+
struct numeric_cast_traits
|
1048
|
+
<
|
1049
|
+
long
|
1050
|
+
, unsigned char
|
1051
|
+
>
|
1052
|
+
{
|
1053
|
+
typedef def_overflow_handler overflow_policy;
|
1054
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1055
|
+
typedef Trunc<unsigned char> rounding_policy;
|
1056
|
+
};
|
1057
|
+
|
1058
|
+
template <>
|
1059
|
+
struct numeric_cast_traits
|
1060
|
+
<
|
1061
|
+
long
|
1062
|
+
, short
|
1063
|
+
>
|
1064
|
+
{
|
1065
|
+
typedef def_overflow_handler overflow_policy;
|
1066
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1067
|
+
typedef Trunc<short> rounding_policy;
|
1068
|
+
};
|
1069
|
+
|
1070
|
+
template <>
|
1071
|
+
struct numeric_cast_traits
|
1072
|
+
<
|
1073
|
+
long
|
1074
|
+
, unsigned short
|
1075
|
+
>
|
1076
|
+
{
|
1077
|
+
typedef def_overflow_handler overflow_policy;
|
1078
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1079
|
+
typedef Trunc<unsigned short> rounding_policy;
|
1080
|
+
};
|
1081
|
+
|
1082
|
+
template <>
|
1083
|
+
struct numeric_cast_traits
|
1084
|
+
<
|
1085
|
+
long
|
1086
|
+
, int
|
1087
|
+
>
|
1088
|
+
{
|
1089
|
+
typedef def_overflow_handler overflow_policy;
|
1090
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1091
|
+
typedef Trunc<int> rounding_policy;
|
1092
|
+
};
|
1093
|
+
|
1094
|
+
template <>
|
1095
|
+
struct numeric_cast_traits
|
1096
|
+
<
|
1097
|
+
long
|
1098
|
+
, unsigned int
|
1099
|
+
>
|
1100
|
+
{
|
1101
|
+
typedef def_overflow_handler overflow_policy;
|
1102
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1103
|
+
typedef Trunc<unsigned int> rounding_policy;
|
1104
|
+
};
|
1105
|
+
|
1106
|
+
template <>
|
1107
|
+
struct numeric_cast_traits
|
1108
|
+
<
|
1109
|
+
long
|
1110
|
+
, long
|
1111
|
+
>
|
1112
|
+
{
|
1113
|
+
typedef def_overflow_handler overflow_policy;
|
1114
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1115
|
+
typedef Trunc<long> rounding_policy;
|
1116
|
+
};
|
1117
|
+
|
1118
|
+
template <>
|
1119
|
+
struct numeric_cast_traits
|
1120
|
+
<
|
1121
|
+
long
|
1122
|
+
, unsigned long
|
1123
|
+
>
|
1124
|
+
{
|
1125
|
+
typedef def_overflow_handler overflow_policy;
|
1126
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1127
|
+
typedef Trunc<unsigned long> rounding_policy;
|
1128
|
+
};
|
1129
|
+
|
1130
|
+
template <>
|
1131
|
+
struct numeric_cast_traits
|
1132
|
+
<
|
1133
|
+
long
|
1134
|
+
, float
|
1135
|
+
>
|
1136
|
+
{
|
1137
|
+
typedef def_overflow_handler overflow_policy;
|
1138
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1139
|
+
typedef Trunc<float> rounding_policy;
|
1140
|
+
};
|
1141
|
+
|
1142
|
+
template <>
|
1143
|
+
struct numeric_cast_traits
|
1144
|
+
<
|
1145
|
+
long
|
1146
|
+
, double
|
1147
|
+
>
|
1148
|
+
{
|
1149
|
+
typedef def_overflow_handler overflow_policy;
|
1150
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1151
|
+
typedef Trunc<double> rounding_policy;
|
1152
|
+
};
|
1153
|
+
|
1154
|
+
template <>
|
1155
|
+
struct numeric_cast_traits
|
1156
|
+
<
|
1157
|
+
long
|
1158
|
+
, long double
|
1159
|
+
>
|
1160
|
+
{
|
1161
|
+
typedef def_overflow_handler overflow_policy;
|
1162
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1163
|
+
typedef Trunc<long double> rounding_policy;
|
1164
|
+
};
|
1165
|
+
|
1166
|
+
template <>
|
1167
|
+
struct numeric_cast_traits
|
1168
|
+
<
|
1169
|
+
unsigned long
|
1170
|
+
, char
|
1171
|
+
>
|
1172
|
+
{
|
1173
|
+
typedef def_overflow_handler overflow_policy;
|
1174
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1175
|
+
typedef Trunc<char> rounding_policy;
|
1176
|
+
};
|
1177
|
+
|
1178
|
+
template <>
|
1179
|
+
struct numeric_cast_traits
|
1180
|
+
<
|
1181
|
+
unsigned long
|
1182
|
+
, signed char
|
1183
|
+
>
|
1184
|
+
{
|
1185
|
+
typedef def_overflow_handler overflow_policy;
|
1186
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1187
|
+
typedef Trunc<signed char> rounding_policy;
|
1188
|
+
};
|
1189
|
+
|
1190
|
+
template <>
|
1191
|
+
struct numeric_cast_traits
|
1192
|
+
<
|
1193
|
+
unsigned long
|
1194
|
+
, unsigned char
|
1195
|
+
>
|
1196
|
+
{
|
1197
|
+
typedef def_overflow_handler overflow_policy;
|
1198
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1199
|
+
typedef Trunc<unsigned char> rounding_policy;
|
1200
|
+
};
|
1201
|
+
|
1202
|
+
template <>
|
1203
|
+
struct numeric_cast_traits
|
1204
|
+
<
|
1205
|
+
unsigned long
|
1206
|
+
, short
|
1207
|
+
>
|
1208
|
+
{
|
1209
|
+
typedef def_overflow_handler overflow_policy;
|
1210
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1211
|
+
typedef Trunc<short> rounding_policy;
|
1212
|
+
};
|
1213
|
+
|
1214
|
+
template <>
|
1215
|
+
struct numeric_cast_traits
|
1216
|
+
<
|
1217
|
+
unsigned long
|
1218
|
+
, unsigned short
|
1219
|
+
>
|
1220
|
+
{
|
1221
|
+
typedef def_overflow_handler overflow_policy;
|
1222
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1223
|
+
typedef Trunc<unsigned short> rounding_policy;
|
1224
|
+
};
|
1225
|
+
|
1226
|
+
template <>
|
1227
|
+
struct numeric_cast_traits
|
1228
|
+
<
|
1229
|
+
unsigned long
|
1230
|
+
, int
|
1231
|
+
>
|
1232
|
+
{
|
1233
|
+
typedef def_overflow_handler overflow_policy;
|
1234
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1235
|
+
typedef Trunc<int> rounding_policy;
|
1236
|
+
};
|
1237
|
+
|
1238
|
+
template <>
|
1239
|
+
struct numeric_cast_traits
|
1240
|
+
<
|
1241
|
+
unsigned long
|
1242
|
+
, unsigned int
|
1243
|
+
>
|
1244
|
+
{
|
1245
|
+
typedef def_overflow_handler overflow_policy;
|
1246
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1247
|
+
typedef Trunc<unsigned int> rounding_policy;
|
1248
|
+
};
|
1249
|
+
|
1250
|
+
template <>
|
1251
|
+
struct numeric_cast_traits
|
1252
|
+
<
|
1253
|
+
unsigned long
|
1254
|
+
, long
|
1255
|
+
>
|
1256
|
+
{
|
1257
|
+
typedef def_overflow_handler overflow_policy;
|
1258
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1259
|
+
typedef Trunc<long> rounding_policy;
|
1260
|
+
};
|
1261
|
+
|
1262
|
+
template <>
|
1263
|
+
struct numeric_cast_traits
|
1264
|
+
<
|
1265
|
+
unsigned long
|
1266
|
+
, unsigned long
|
1267
|
+
>
|
1268
|
+
{
|
1269
|
+
typedef def_overflow_handler overflow_policy;
|
1270
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1271
|
+
typedef Trunc<unsigned long> rounding_policy;
|
1272
|
+
};
|
1273
|
+
|
1274
|
+
template <>
|
1275
|
+
struct numeric_cast_traits
|
1276
|
+
<
|
1277
|
+
unsigned long
|
1278
|
+
, float
|
1279
|
+
>
|
1280
|
+
{
|
1281
|
+
typedef def_overflow_handler overflow_policy;
|
1282
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1283
|
+
typedef Trunc<float> rounding_policy;
|
1284
|
+
};
|
1285
|
+
|
1286
|
+
template <>
|
1287
|
+
struct numeric_cast_traits
|
1288
|
+
<
|
1289
|
+
unsigned long
|
1290
|
+
, double
|
1291
|
+
>
|
1292
|
+
{
|
1293
|
+
typedef def_overflow_handler overflow_policy;
|
1294
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1295
|
+
typedef Trunc<double> rounding_policy;
|
1296
|
+
};
|
1297
|
+
|
1298
|
+
template <>
|
1299
|
+
struct numeric_cast_traits
|
1300
|
+
<
|
1301
|
+
unsigned long
|
1302
|
+
, long double
|
1303
|
+
>
|
1304
|
+
{
|
1305
|
+
typedef def_overflow_handler overflow_policy;
|
1306
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1307
|
+
typedef Trunc<long double> rounding_policy;
|
1308
|
+
};
|
1309
|
+
|
1310
|
+
template <>
|
1311
|
+
struct numeric_cast_traits
|
1312
|
+
<
|
1313
|
+
float
|
1314
|
+
, char
|
1315
|
+
>
|
1316
|
+
{
|
1317
|
+
typedef def_overflow_handler overflow_policy;
|
1318
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1319
|
+
typedef Trunc<char> rounding_policy;
|
1320
|
+
};
|
1321
|
+
|
1322
|
+
template <>
|
1323
|
+
struct numeric_cast_traits
|
1324
|
+
<
|
1325
|
+
float
|
1326
|
+
, signed char
|
1327
|
+
>
|
1328
|
+
{
|
1329
|
+
typedef def_overflow_handler overflow_policy;
|
1330
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1331
|
+
typedef Trunc<signed char> rounding_policy;
|
1332
|
+
};
|
1333
|
+
|
1334
|
+
template <>
|
1335
|
+
struct numeric_cast_traits
|
1336
|
+
<
|
1337
|
+
float
|
1338
|
+
, unsigned char
|
1339
|
+
>
|
1340
|
+
{
|
1341
|
+
typedef def_overflow_handler overflow_policy;
|
1342
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1343
|
+
typedef Trunc<unsigned char> rounding_policy;
|
1344
|
+
};
|
1345
|
+
|
1346
|
+
template <>
|
1347
|
+
struct numeric_cast_traits
|
1348
|
+
<
|
1349
|
+
float
|
1350
|
+
, short
|
1351
|
+
>
|
1352
|
+
{
|
1353
|
+
typedef def_overflow_handler overflow_policy;
|
1354
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1355
|
+
typedef Trunc<short> rounding_policy;
|
1356
|
+
};
|
1357
|
+
|
1358
|
+
template <>
|
1359
|
+
struct numeric_cast_traits
|
1360
|
+
<
|
1361
|
+
float
|
1362
|
+
, unsigned short
|
1363
|
+
>
|
1364
|
+
{
|
1365
|
+
typedef def_overflow_handler overflow_policy;
|
1366
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1367
|
+
typedef Trunc<unsigned short> rounding_policy;
|
1368
|
+
};
|
1369
|
+
|
1370
|
+
template <>
|
1371
|
+
struct numeric_cast_traits
|
1372
|
+
<
|
1373
|
+
float
|
1374
|
+
, int
|
1375
|
+
>
|
1376
|
+
{
|
1377
|
+
typedef def_overflow_handler overflow_policy;
|
1378
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1379
|
+
typedef Trunc<int> rounding_policy;
|
1380
|
+
};
|
1381
|
+
|
1382
|
+
template <>
|
1383
|
+
struct numeric_cast_traits
|
1384
|
+
<
|
1385
|
+
float
|
1386
|
+
, unsigned int
|
1387
|
+
>
|
1388
|
+
{
|
1389
|
+
typedef def_overflow_handler overflow_policy;
|
1390
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1391
|
+
typedef Trunc<unsigned int> rounding_policy;
|
1392
|
+
};
|
1393
|
+
|
1394
|
+
template <>
|
1395
|
+
struct numeric_cast_traits
|
1396
|
+
<
|
1397
|
+
float
|
1398
|
+
, long
|
1399
|
+
>
|
1400
|
+
{
|
1401
|
+
typedef def_overflow_handler overflow_policy;
|
1402
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1403
|
+
typedef Trunc<long> rounding_policy;
|
1404
|
+
};
|
1405
|
+
|
1406
|
+
template <>
|
1407
|
+
struct numeric_cast_traits
|
1408
|
+
<
|
1409
|
+
float
|
1410
|
+
, unsigned long
|
1411
|
+
>
|
1412
|
+
{
|
1413
|
+
typedef def_overflow_handler overflow_policy;
|
1414
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1415
|
+
typedef Trunc<unsigned long> rounding_policy;
|
1416
|
+
};
|
1417
|
+
|
1418
|
+
template <>
|
1419
|
+
struct numeric_cast_traits
|
1420
|
+
<
|
1421
|
+
float
|
1422
|
+
, float
|
1423
|
+
>
|
1424
|
+
{
|
1425
|
+
typedef def_overflow_handler overflow_policy;
|
1426
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1427
|
+
typedef Trunc<float> rounding_policy;
|
1428
|
+
};
|
1429
|
+
|
1430
|
+
template <>
|
1431
|
+
struct numeric_cast_traits
|
1432
|
+
<
|
1433
|
+
float
|
1434
|
+
, double
|
1435
|
+
>
|
1436
|
+
{
|
1437
|
+
typedef def_overflow_handler overflow_policy;
|
1438
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1439
|
+
typedef Trunc<double> rounding_policy;
|
1440
|
+
};
|
1441
|
+
|
1442
|
+
template <>
|
1443
|
+
struct numeric_cast_traits
|
1444
|
+
<
|
1445
|
+
float
|
1446
|
+
, long double
|
1447
|
+
>
|
1448
|
+
{
|
1449
|
+
typedef def_overflow_handler overflow_policy;
|
1450
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1451
|
+
typedef Trunc<long double> rounding_policy;
|
1452
|
+
};
|
1453
|
+
|
1454
|
+
template <>
|
1455
|
+
struct numeric_cast_traits
|
1456
|
+
<
|
1457
|
+
double
|
1458
|
+
, char
|
1459
|
+
>
|
1460
|
+
{
|
1461
|
+
typedef def_overflow_handler overflow_policy;
|
1462
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1463
|
+
typedef Trunc<char> rounding_policy;
|
1464
|
+
};
|
1465
|
+
|
1466
|
+
template <>
|
1467
|
+
struct numeric_cast_traits
|
1468
|
+
<
|
1469
|
+
double
|
1470
|
+
, signed char
|
1471
|
+
>
|
1472
|
+
{
|
1473
|
+
typedef def_overflow_handler overflow_policy;
|
1474
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1475
|
+
typedef Trunc<signed char> rounding_policy;
|
1476
|
+
};
|
1477
|
+
|
1478
|
+
template <>
|
1479
|
+
struct numeric_cast_traits
|
1480
|
+
<
|
1481
|
+
double
|
1482
|
+
, unsigned char
|
1483
|
+
>
|
1484
|
+
{
|
1485
|
+
typedef def_overflow_handler overflow_policy;
|
1486
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1487
|
+
typedef Trunc<unsigned char> rounding_policy;
|
1488
|
+
};
|
1489
|
+
|
1490
|
+
template <>
|
1491
|
+
struct numeric_cast_traits
|
1492
|
+
<
|
1493
|
+
double
|
1494
|
+
, short
|
1495
|
+
>
|
1496
|
+
{
|
1497
|
+
typedef def_overflow_handler overflow_policy;
|
1498
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1499
|
+
typedef Trunc<short> rounding_policy;
|
1500
|
+
};
|
1501
|
+
|
1502
|
+
template <>
|
1503
|
+
struct numeric_cast_traits
|
1504
|
+
<
|
1505
|
+
double
|
1506
|
+
, unsigned short
|
1507
|
+
>
|
1508
|
+
{
|
1509
|
+
typedef def_overflow_handler overflow_policy;
|
1510
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1511
|
+
typedef Trunc<unsigned short> rounding_policy;
|
1512
|
+
};
|
1513
|
+
|
1514
|
+
template <>
|
1515
|
+
struct numeric_cast_traits
|
1516
|
+
<
|
1517
|
+
double
|
1518
|
+
, int
|
1519
|
+
>
|
1520
|
+
{
|
1521
|
+
typedef def_overflow_handler overflow_policy;
|
1522
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1523
|
+
typedef Trunc<int> rounding_policy;
|
1524
|
+
};
|
1525
|
+
|
1526
|
+
template <>
|
1527
|
+
struct numeric_cast_traits
|
1528
|
+
<
|
1529
|
+
double
|
1530
|
+
, unsigned int
|
1531
|
+
>
|
1532
|
+
{
|
1533
|
+
typedef def_overflow_handler overflow_policy;
|
1534
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1535
|
+
typedef Trunc<unsigned int> rounding_policy;
|
1536
|
+
};
|
1537
|
+
|
1538
|
+
template <>
|
1539
|
+
struct numeric_cast_traits
|
1540
|
+
<
|
1541
|
+
double
|
1542
|
+
, long
|
1543
|
+
>
|
1544
|
+
{
|
1545
|
+
typedef def_overflow_handler overflow_policy;
|
1546
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1547
|
+
typedef Trunc<long> rounding_policy;
|
1548
|
+
};
|
1549
|
+
|
1550
|
+
template <>
|
1551
|
+
struct numeric_cast_traits
|
1552
|
+
<
|
1553
|
+
double
|
1554
|
+
, unsigned long
|
1555
|
+
>
|
1556
|
+
{
|
1557
|
+
typedef def_overflow_handler overflow_policy;
|
1558
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1559
|
+
typedef Trunc<unsigned long> rounding_policy;
|
1560
|
+
};
|
1561
|
+
|
1562
|
+
template <>
|
1563
|
+
struct numeric_cast_traits
|
1564
|
+
<
|
1565
|
+
double
|
1566
|
+
, float
|
1567
|
+
>
|
1568
|
+
{
|
1569
|
+
typedef def_overflow_handler overflow_policy;
|
1570
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1571
|
+
typedef Trunc<float> rounding_policy;
|
1572
|
+
};
|
1573
|
+
|
1574
|
+
template <>
|
1575
|
+
struct numeric_cast_traits
|
1576
|
+
<
|
1577
|
+
double
|
1578
|
+
, double
|
1579
|
+
>
|
1580
|
+
{
|
1581
|
+
typedef def_overflow_handler overflow_policy;
|
1582
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1583
|
+
typedef Trunc<double> rounding_policy;
|
1584
|
+
};
|
1585
|
+
|
1586
|
+
template <>
|
1587
|
+
struct numeric_cast_traits
|
1588
|
+
<
|
1589
|
+
double
|
1590
|
+
, long double
|
1591
|
+
>
|
1592
|
+
{
|
1593
|
+
typedef def_overflow_handler overflow_policy;
|
1594
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1595
|
+
typedef Trunc<long double> rounding_policy;
|
1596
|
+
};
|
1597
|
+
|
1598
|
+
template <>
|
1599
|
+
struct numeric_cast_traits
|
1600
|
+
<
|
1601
|
+
long double
|
1602
|
+
, char
|
1603
|
+
>
|
1604
|
+
{
|
1605
|
+
typedef def_overflow_handler overflow_policy;
|
1606
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1607
|
+
typedef Trunc<char> rounding_policy;
|
1608
|
+
};
|
1609
|
+
|
1610
|
+
template <>
|
1611
|
+
struct numeric_cast_traits
|
1612
|
+
<
|
1613
|
+
long double
|
1614
|
+
, signed char
|
1615
|
+
>
|
1616
|
+
{
|
1617
|
+
typedef def_overflow_handler overflow_policy;
|
1618
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1619
|
+
typedef Trunc<signed char> rounding_policy;
|
1620
|
+
};
|
1621
|
+
|
1622
|
+
template <>
|
1623
|
+
struct numeric_cast_traits
|
1624
|
+
<
|
1625
|
+
long double
|
1626
|
+
, unsigned char
|
1627
|
+
>
|
1628
|
+
{
|
1629
|
+
typedef def_overflow_handler overflow_policy;
|
1630
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1631
|
+
typedef Trunc<unsigned char> rounding_policy;
|
1632
|
+
};
|
1633
|
+
|
1634
|
+
template <>
|
1635
|
+
struct numeric_cast_traits
|
1636
|
+
<
|
1637
|
+
long double
|
1638
|
+
, short
|
1639
|
+
>
|
1640
|
+
{
|
1641
|
+
typedef def_overflow_handler overflow_policy;
|
1642
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1643
|
+
typedef Trunc<short> rounding_policy;
|
1644
|
+
};
|
1645
|
+
|
1646
|
+
template <>
|
1647
|
+
struct numeric_cast_traits
|
1648
|
+
<
|
1649
|
+
long double
|
1650
|
+
, unsigned short
|
1651
|
+
>
|
1652
|
+
{
|
1653
|
+
typedef def_overflow_handler overflow_policy;
|
1654
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1655
|
+
typedef Trunc<unsigned short> rounding_policy;
|
1656
|
+
};
|
1657
|
+
|
1658
|
+
template <>
|
1659
|
+
struct numeric_cast_traits
|
1660
|
+
<
|
1661
|
+
long double
|
1662
|
+
, int
|
1663
|
+
>
|
1664
|
+
{
|
1665
|
+
typedef def_overflow_handler overflow_policy;
|
1666
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1667
|
+
typedef Trunc<int> rounding_policy;
|
1668
|
+
};
|
1669
|
+
|
1670
|
+
template <>
|
1671
|
+
struct numeric_cast_traits
|
1672
|
+
<
|
1673
|
+
long double
|
1674
|
+
, unsigned int
|
1675
|
+
>
|
1676
|
+
{
|
1677
|
+
typedef def_overflow_handler overflow_policy;
|
1678
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1679
|
+
typedef Trunc<unsigned int> rounding_policy;
|
1680
|
+
};
|
1681
|
+
|
1682
|
+
template <>
|
1683
|
+
struct numeric_cast_traits
|
1684
|
+
<
|
1685
|
+
long double
|
1686
|
+
, long
|
1687
|
+
>
|
1688
|
+
{
|
1689
|
+
typedef def_overflow_handler overflow_policy;
|
1690
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1691
|
+
typedef Trunc<long> rounding_policy;
|
1692
|
+
};
|
1693
|
+
|
1694
|
+
template <>
|
1695
|
+
struct numeric_cast_traits
|
1696
|
+
<
|
1697
|
+
long double
|
1698
|
+
, unsigned long
|
1699
|
+
>
|
1700
|
+
{
|
1701
|
+
typedef def_overflow_handler overflow_policy;
|
1702
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1703
|
+
typedef Trunc<unsigned long> rounding_policy;
|
1704
|
+
};
|
1705
|
+
|
1706
|
+
template <>
|
1707
|
+
struct numeric_cast_traits
|
1708
|
+
<
|
1709
|
+
long double
|
1710
|
+
, float
|
1711
|
+
>
|
1712
|
+
{
|
1713
|
+
typedef def_overflow_handler overflow_policy;
|
1714
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1715
|
+
typedef Trunc<float> rounding_policy;
|
1716
|
+
};
|
1717
|
+
|
1718
|
+
template <>
|
1719
|
+
struct numeric_cast_traits
|
1720
|
+
<
|
1721
|
+
long double
|
1722
|
+
, double
|
1723
|
+
>
|
1724
|
+
{
|
1725
|
+
typedef def_overflow_handler overflow_policy;
|
1726
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1727
|
+
typedef Trunc<double> rounding_policy;
|
1728
|
+
};
|
1729
|
+
|
1730
|
+
template <>
|
1731
|
+
struct numeric_cast_traits
|
1732
|
+
<
|
1733
|
+
long double
|
1734
|
+
, long double
|
1735
|
+
>
|
1736
|
+
{
|
1737
|
+
typedef def_overflow_handler overflow_policy;
|
1738
|
+
typedef UseInternalRangeChecker range_checking_policy;
|
1739
|
+
typedef Trunc<long double> rounding_policy;
|
1740
|
+
};
|
1741
|
+
}}
|