passenger 3.9.1.beta → 3.9.2.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/.travis.yml +13 -0
- data/CONTRIBUTING.md +287 -0
- data/INSTALL.md +7 -0
- data/NEWS +32 -0
- data/README.md +46 -0
- data/Rakefile +2 -2
- data/bin/passenger +1 -1
- data/bin/passenger-config +1 -1
- data/bin/passenger-install-apache2-module +1 -1
- data/bin/passenger-install-nginx-module +1 -1
- data/bin/passenger-memory-stats +1 -1
- data/bin/passenger-status +1 -1
- data/build/agents.rb +7 -7
- data/build/apache2.rb +2 -2
- data/build/basics.rb +3 -7
- data/build/common_library.rb +14 -7
- data/build/cplusplus_support.rb +1 -1
- data/build/cxx_tests.rb +19 -7
- data/build/documentation.rb +1 -1
- data/build/integration_tests.rb +2 -2
- data/build/misc.rb +6 -6
- data/build/nginx.rb +1 -1
- data/build/oxt_tests.rb +1 -1
- data/build/packaging.rb +13 -23
- data/build/rake_extensions.rb +1 -1
- data/build/rpm.rb +1 -1
- data/build/ruby_extension.rb +2 -2
- data/build/ruby_tests.rb +4 -4
- data/build/test_basics.rb +15 -2
- data/dev/copy_boost_headers.rb +18 -8
- data/dev/find_owner_pipe_leaks.rb +1 -1
- data/dev/render_error_pages.rb +1 -1
- data/dev/run_travis.sh +39 -0
- data/doc/Architectural overview.html +55 -21
- data/doc/{DebuggingAndStressTesting.txt.md → DebuggingAndStressTesting.md} +12 -1
- data/doc/Security of user switching support.html +47 -16
- data/doc/Users guide Apache.html +802 -378
- data/doc/Users guide Apache.idmap.txt +85 -209
- data/doc/Users guide Apache.txt +65 -338
- data/doc/Users guide Nginx.html +715 -252
- data/doc/Users guide Nginx.idmap.txt +71 -147
- data/doc/Users guide Nginx.txt +29 -245
- data/doc/Users guide Standalone.html +45 -14
- data/doc/Users guide Standalone.idmap.txt +0 -2
- data/doc/users_guide_snippets/analysis_and_system_maintenance.txt +1 -1
- data/doc/users_guide_snippets/installation.txt +604 -0
- data/doc/users_guide_snippets/support_information.txt +5 -4
- data/doc/users_guide_snippets/tips.txt +54 -1
- data/ext/apache2/Bucket.cpp +1 -1
- data/ext/apache2/Bucket.h +1 -1
- data/ext/apache2/Configuration.cpp +2 -14
- data/ext/apache2/Configuration.h +1 -1
- data/ext/apache2/Configuration.hpp +3 -22
- data/ext/apache2/DirectoryMapper.h +1 -1
- data/ext/apache2/Hooks.cpp +5 -5
- data/ext/apache2/Hooks.h +1 -1
- data/ext/apache2/mod_passenger.c +1 -1
- data/ext/boost/aligned_storage.hpp +181 -0
- data/ext/boost/array.hpp +446 -0
- data/ext/boost/cerrno.hpp +331 -0
- data/ext/boost/chrono/ceil.hpp +36 -0
- data/ext/boost/chrono/clock_string.hpp +25 -0
- data/ext/boost/chrono/config.hpp +215 -0
- data/ext/boost/chrono/detail/is_evenly_divisible_by.hpp +31 -0
- data/ext/boost/chrono/detail/static_assert.hpp +30 -0
- data/ext/boost/chrono/detail/system.hpp +29 -0
- data/ext/boost/chrono/duration.hpp +795 -0
- data/ext/boost/chrono/system_clocks.hpp +233 -0
- data/ext/boost/chrono/time_point.hpp +379 -0
- data/ext/boost/concept_check.hpp +5 -5
- data/ext/boost/config/compiler/borland.hpp +29 -27
- data/ext/boost/config/compiler/clang.hpp +40 -26
- data/ext/boost/config/compiler/codegear.hpp +20 -19
- data/ext/boost/config/compiler/common_edg.hpp +27 -25
- data/ext/boost/config/compiler/cray.hpp +24 -22
- data/ext/boost/config/compiler/digitalmars.hpp +26 -24
- data/ext/boost/config/compiler/gcc.hpp +32 -30
- data/ext/boost/config/compiler/gcc_xml.hpp +26 -25
- data/ext/boost/config/compiler/hp_acc.hpp +26 -24
- data/ext/boost/config/compiler/intel.hpp +26 -24
- data/ext/boost/config/compiler/metrowerks.hpp +27 -25
- data/ext/boost/config/compiler/mpw.hpp +27 -25
- data/ext/boost/config/compiler/pathscale.hpp +41 -41
- data/ext/boost/config/compiler/pgi.hpp +70 -29
- data/ext/boost/config/compiler/sunpro_cc.hpp +27 -25
- data/ext/boost/config/compiler/vacpp.hpp +36 -26
- data/ext/boost/config/compiler/visualc.hpp +80 -57
- data/ext/boost/config/stdlib/dinkumware.hpp +25 -22
- data/ext/boost/config/stdlib/libcomo.hpp +23 -20
- data/ext/boost/config/stdlib/libcpp.hpp +5 -4
- data/ext/boost/config/stdlib/libstdcpp3.hpp +34 -25
- data/ext/boost/config/stdlib/modena.hpp +23 -20
- data/ext/boost/config/stdlib/msl.hpp +23 -20
- data/ext/boost/config/stdlib/roguewave.hpp +23 -20
- data/ext/boost/config/stdlib/sgi.hpp +23 -20
- data/ext/boost/config/stdlib/stlport.hpp +23 -24
- data/ext/boost/config/stdlib/vacpp.hpp +23 -20
- data/ext/boost/config/suffix.hpp +266 -75
- data/ext/boost/container/container_fwd.hpp +39 -43
- data/ext/boost/date_time/adjust_functors.hpp +1 -1
- data/ext/boost/date_time/c_time.hpp +1 -1
- data/ext/boost/date_time/compiler_config.hpp +1 -1
- data/ext/boost/date_time/constrained_value.hpp +1 -1
- data/ext/boost/date_time/date.hpp +3 -3
- data/ext/boost/date_time/date_clock_device.hpp +1 -1
- data/ext/boost/date_time/date_defs.hpp +1 -1
- data/ext/boost/date_time/date_duration.hpp +9 -9
- data/ext/boost/date_time/date_duration_types.hpp +1 -1
- data/ext/boost/date_time/date_facet.hpp +7 -4
- data/ext/boost/date_time/date_format_simple.hpp +1 -1
- data/ext/boost/date_time/date_formatting.hpp +4 -2
- data/ext/boost/date_time/date_formatting_limited.hpp +1 -1
- data/ext/boost/date_time/date_formatting_locales.hpp +1 -1
- data/ext/boost/date_time/date_generator_formatter.hpp +1 -1
- data/ext/boost/date_time/date_generator_parser.hpp +1 -1
- data/ext/boost/date_time/date_generators.hpp +35 -35
- data/ext/boost/date_time/date_iterator.hpp +15 -15
- data/ext/boost/date_time/date_names_put.hpp +26 -26
- data/ext/boost/date_time/date_parsing.hpp +3 -1
- data/ext/boost/date_time/dst_rules.hpp +2 -2
- data/ext/boost/date_time/filetime_functions.hpp +1 -1
- data/ext/boost/date_time/format_date_parser.hpp +1 -7
- data/ext/boost/date_time/gregorian/conversion.hpp +1 -1
- data/ext/boost/date_time/gregorian/formatters.hpp +1 -1
- data/ext/boost/date_time/gregorian/formatters_limited.hpp +1 -1
- data/ext/boost/date_time/gregorian/greg_calendar.hpp +1 -1
- data/ext/boost/date_time/gregorian/greg_date.hpp +1 -1
- data/ext/boost/date_time/gregorian/greg_day.hpp +1 -1
- data/ext/boost/date_time/gregorian/greg_day_of_year.hpp +1 -1
- data/ext/boost/date_time/gregorian/greg_duration.hpp +1 -1
- data/ext/boost/date_time/gregorian/greg_duration_types.hpp +1 -1
- data/ext/boost/date_time/gregorian/greg_month.hpp +1 -1
- data/ext/boost/date_time/gregorian/greg_weekday.hpp +1 -1
- data/ext/boost/date_time/gregorian/greg_year.hpp +1 -1
- data/ext/boost/date_time/gregorian/greg_ymd.hpp +1 -1
- data/ext/boost/date_time/gregorian/gregorian.hpp +1 -1
- data/ext/boost/date_time/gregorian/gregorian_io.hpp +1 -1
- data/ext/boost/date_time/gregorian/gregorian_types.hpp +1 -1
- data/ext/boost/date_time/gregorian/parsers.hpp +1 -1
- data/ext/boost/date_time/gregorian_calendar.hpp +1 -1
- data/ext/boost/date_time/gregorian_calendar.ipp +1 -1
- data/ext/boost/date_time/int_adapter.hpp +1 -1
- data/ext/boost/date_time/iso_format.hpp +1 -1
- data/ext/boost/date_time/locale_config.hpp +1 -1
- data/ext/boost/date_time/microsec_time_clock.hpp +1 -1
- data/ext/boost/date_time/parse_format_base.hpp +1 -1
- data/ext/boost/date_time/period.hpp +1 -1
- data/ext/boost/date_time/period_formatter.hpp +5 -5
- data/ext/boost/date_time/period_parser.hpp +1 -1
- data/ext/boost/date_time/posix_time/conversion.hpp +1 -1
- data/ext/boost/date_time/posix_time/date_duration_operators.hpp +1 -1
- data/ext/boost/date_time/posix_time/posix_time.hpp +1 -1
- data/ext/boost/date_time/posix_time/posix_time_config.hpp +2 -2
- data/ext/boost/date_time/posix_time/posix_time_duration.hpp +1 -1
- data/ext/boost/date_time/posix_time/posix_time_io.hpp +1 -1
- data/ext/boost/date_time/posix_time/posix_time_system.hpp +1 -1
- data/ext/boost/date_time/posix_time/ptime.hpp +1 -1
- data/ext/boost/date_time/posix_time/time_formatters.hpp +1 -1
- data/ext/boost/date_time/posix_time/time_parsers.hpp +1 -1
- data/ext/boost/date_time/posix_time/time_period.hpp +1 -1
- data/ext/boost/date_time/special_defs.hpp +1 -1
- data/ext/boost/date_time/special_values_formatter.hpp +1 -1
- data/ext/boost/date_time/string_convert.hpp +1 -1
- data/ext/boost/date_time/string_parse_tree.hpp +1 -1
- data/ext/boost/date_time/strings_from_facet.hpp +1 -1
- data/ext/boost/date_time/time.hpp +1 -1
- data/ext/boost/date_time/time_clock.hpp +1 -1
- data/ext/boost/date_time/time_defs.hpp +1 -1
- data/ext/boost/date_time/time_duration.hpp +17 -6
- data/ext/boost/date_time/time_facet.hpp +1 -1
- data/ext/boost/date_time/time_formatting_streams.hpp +1 -1
- data/ext/boost/date_time/time_iterator.hpp +17 -17
- data/ext/boost/date_time/time_parsing.hpp +6 -3
- data/ext/boost/date_time/time_resolution_traits.hpp +1 -1
- data/ext/boost/date_time/time_system_counted.hpp +1 -1
- data/ext/boost/date_time/time_system_split.hpp +1 -1
- data/ext/boost/date_time/wrapping_int.hpp +27 -27
- data/ext/boost/date_time/year_month_day.hpp +1 -1
- data/ext/boost/detail/container_fwd.hpp +162 -0
- data/ext/boost/detail/is_incrementable.hpp +134 -0
- data/ext/boost/detail/scoped_enum_emulation.hpp +337 -0
- data/ext/boost/exception/detail/attribute_noreturn.hpp +1 -1
- data/ext/boost/exception/detail/error_info_impl.hpp +2 -1
- data/ext/boost/exception/detail/exception_ptr.hpp +7 -2
- data/ext/boost/exception/exception.hpp +29 -2
- data/ext/boost/exception/info.hpp +1 -1
- data/ext/boost/foreach.hpp +1128 -0
- data/ext/boost/foreach_fwd.hpp +51 -0
- data/ext/boost/function/function_template.hpp +50 -1
- data/ext/boost/functional/hash.hpp +7 -0
- data/ext/boost/functional/hash/detail/container_fwd_0x.hpp +29 -0
- data/ext/boost/functional/hash/detail/float_functions.hpp +246 -0
- data/ext/boost/functional/hash/detail/hash_float.hpp +268 -0
- data/ext/boost/functional/hash/detail/limits.hpp +61 -0
- data/ext/boost/functional/hash/extensions.hpp +367 -0
- data/ext/boost/functional/hash/hash.hpp +509 -0
- data/ext/boost/functional/hash/hash_fwd.hpp +40 -0
- data/ext/boost/functional/hash_fwd.hpp +7 -0
- data/ext/boost/indirect_reference.hpp +43 -0
- data/ext/boost/integer.hpp +19 -15
- data/ext/boost/integer/static_log2.hpp +127 -0
- data/ext/boost/integer_traits.hpp +1 -1
- data/ext/boost/iterator/iterator_facade.hpp +32 -36
- data/ext/boost/iterator/reverse_iterator.hpp +1 -1
- data/ext/boost/iterator/transform_iterator.hpp +1 -1
- data/ext/boost/lambda/core.hpp +79 -0
- data/ext/boost/lambda/detail/actions.hpp +174 -0
- data/ext/boost/lambda/detail/arity_code.hpp +110 -0
- data/ext/boost/lambda/detail/function_adaptors.hpp +789 -0
- data/ext/boost/lambda/detail/is_instance_of.hpp +104 -0
- data/ext/boost/lambda/detail/lambda_config.hpp +48 -0
- data/ext/boost/lambda/detail/lambda_functor_base.hpp +615 -0
- data/ext/boost/lambda/detail/lambda_functors.hpp +324 -0
- data/ext/boost/lambda/detail/lambda_fwd.hpp +74 -0
- data/ext/boost/lambda/detail/lambda_traits.hpp +578 -0
- data/ext/boost/lambda/detail/member_ptr.hpp +737 -0
- data/ext/boost/lambda/detail/operator_actions.hpp +139 -0
- data/ext/boost/lambda/detail/operator_lambda_func_base.hpp +271 -0
- data/ext/boost/lambda/detail/operator_return_type_traits.hpp +917 -0
- data/ext/boost/lambda/detail/operators.hpp +370 -0
- data/ext/boost/lambda/detail/ret.hpp +325 -0
- data/ext/boost/lambda/detail/return_type_traits.hpp +282 -0
- data/ext/boost/lambda/detail/select_functions.hpp +74 -0
- data/ext/boost/lambda/lambda.hpp +34 -0
- data/ext/boost/lexical_cast.hpp +807 -497
- data/ext/boost/libs/system/src/error_code.cpp +430 -0
- data/ext/boost/libs/system/src/local_free_on_destruction.hpp +40 -0
- data/ext/boost/libs/thread/src/future.cpp +61 -0
- data/ext/boost/{src → libs/thread/src}/pthread/once.cpp +28 -9
- data/ext/boost/{src → libs/thread/src}/pthread/thread.cpp +139 -47
- data/ext/boost/{src → libs/thread/src}/pthread/timeconv.inl +0 -0
- data/ext/boost/{src → libs/thread/src}/tss_null.cpp +2 -2
- data/ext/boost/math/policies/policy.hpp +4 -4
- data/ext/boost/math/special_functions/fpclassify.hpp +10 -6
- data/ext/boost/math/special_functions/math_fwd.hpp +226 -0
- data/ext/boost/math/tools/config.hpp +10 -1
- data/ext/boost/move/move.hpp +70 -19
- data/ext/boost/mpl/O1_size.hpp +1 -1
- data/ext/boost/mpl/O1_size_fwd.hpp +1 -1
- data/ext/boost/mpl/accumulate.hpp +39 -0
- data/ext/boost/mpl/advance.hpp +1 -1
- data/ext/boost/mpl/advance_fwd.hpp +1 -1
- data/ext/boost/mpl/alias.hpp +21 -0
- data/ext/boost/mpl/always.hpp +1 -1
- data/ext/boost/mpl/and.hpp +1 -1
- data/ext/boost/mpl/apply.hpp +1 -1
- data/ext/boost/mpl/apply_fwd.hpp +1 -1
- data/ext/boost/mpl/apply_wrap.hpp +1 -1
- data/ext/boost/mpl/arg.hpp +1 -1
- data/ext/boost/mpl/arg_fwd.hpp +1 -1
- data/ext/boost/mpl/arithmetic.hpp +25 -0
- data/ext/boost/mpl/as_sequence.hpp +38 -0
- data/ext/boost/mpl/assert.hpp +1 -1
- data/ext/boost/mpl/at.hpp +1 -1
- data/ext/boost/mpl/at_fwd.hpp +1 -1
- data/ext/boost/mpl/aux_/O1_size_impl.hpp +1 -1
- data/ext/boost/mpl/aux_/adl_barrier.hpp +1 -1
- data/ext/boost/mpl/aux_/advance_backward.hpp +1 -1
- data/ext/boost/mpl/aux_/advance_forward.hpp +1 -1
- data/ext/boost/mpl/aux_/apply_1st.hpp +35 -0
- data/ext/boost/mpl/aux_/arg_typedef.hpp +1 -1
- data/ext/boost/mpl/aux_/arithmetic_op.hpp +1 -1
- data/ext/boost/mpl/aux_/arity.hpp +1 -1
- data/ext/boost/mpl/aux_/arity_spec.hpp +1 -1
- data/ext/boost/mpl/aux_/at_impl.hpp +1 -1
- data/ext/boost/mpl/aux_/back_impl.hpp +43 -0
- data/ext/boost/mpl/aux_/basic_bind.hpp +21 -0
- data/ext/boost/mpl/aux_/begin_end_impl.hpp +1 -1
- data/ext/boost/mpl/aux_/clear_impl.hpp +1 -1
- data/ext/boost/mpl/aux_/common_name_wknd.hpp +1 -1
- data/ext/boost/mpl/aux_/comparison_op.hpp +1 -1
- data/ext/boost/mpl/aux_/config/adl.hpp +1 -1
- data/ext/boost/mpl/aux_/config/arrays.hpp +1 -1
- data/ext/boost/mpl/aux_/config/bind.hpp +1 -1
- data/ext/boost/mpl/aux_/config/compiler.hpp +1 -1
- data/ext/boost/mpl/aux_/config/ctps.hpp +1 -1
- data/ext/boost/mpl/aux_/config/dependent_nttp.hpp +35 -0
- data/ext/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +27 -0
- data/ext/boost/mpl/aux_/config/dtp.hpp +1 -1
- data/ext/boost/mpl/aux_/config/eti.hpp +1 -1
- data/ext/boost/mpl/aux_/config/forwarding.hpp +1 -1
- data/ext/boost/mpl/aux_/config/gcc.hpp +1 -1
- data/ext/boost/mpl/aux_/config/has_apply.hpp +1 -1
- data/ext/boost/mpl/aux_/config/has_xxx.hpp +1 -1
- data/ext/boost/mpl/aux_/config/integral.hpp +1 -1
- data/ext/boost/mpl/aux_/config/intel.hpp +1 -1
- data/ext/boost/mpl/aux_/config/lambda.hpp +1 -1
- data/ext/boost/mpl/aux_/config/msvc.hpp +1 -1
- data/ext/boost/mpl/aux_/config/msvc_typename.hpp +1 -1
- data/ext/boost/mpl/aux_/config/nttp.hpp +1 -1
- data/ext/boost/mpl/aux_/config/operators.hpp +33 -0
- data/ext/boost/mpl/aux_/config/overload_resolution.hpp +1 -1
- data/ext/boost/mpl/aux_/config/pp_counter.hpp +1 -1
- data/ext/boost/mpl/aux_/config/preprocessor.hpp +1 -1
- data/ext/boost/mpl/aux_/config/static_constant.hpp +1 -1
- data/ext/boost/mpl/aux_/config/ttp.hpp +1 -1
- data/ext/boost/mpl/aux_/config/typeof.hpp +1 -1
- data/ext/boost/mpl/aux_/config/use_preprocessed.hpp +1 -1
- data/ext/boost/mpl/aux_/config/workaround.hpp +1 -1
- data/ext/boost/mpl/aux_/contains_impl.hpp +1 -1
- data/ext/boost/mpl/aux_/count_args.hpp +105 -0
- data/ext/boost/mpl/aux_/count_impl.hpp +44 -0
- data/ext/boost/mpl/aux_/empty_impl.hpp +43 -0
- data/ext/boost/mpl/aux_/erase_impl.hpp +69 -0
- data/ext/boost/mpl/aux_/erase_key_impl.hpp +32 -0
- data/ext/boost/mpl/aux_/filter_iter.hpp +140 -0
- data/ext/boost/mpl/aux_/fold_impl.hpp +1 -1
- data/ext/boost/mpl/aux_/fold_impl_body.hpp +365 -0
- data/ext/boost/mpl/aux_/fold_op.hpp +37 -0
- data/ext/boost/mpl/aux_/fold_pred.hpp +37 -0
- data/ext/boost/mpl/aux_/front_impl.hpp +41 -0
- data/ext/boost/mpl/aux_/full_lambda.hpp +1 -1
- data/ext/boost/mpl/aux_/has_apply.hpp +1 -1
- data/ext/boost/mpl/aux_/has_begin.hpp +1 -1
- data/ext/boost/mpl/aux_/has_key_impl.hpp +34 -0
- data/ext/boost/mpl/aux_/has_rebind.hpp +99 -0
- data/ext/boost/mpl/aux_/has_size.hpp +1 -1
- data/ext/boost/mpl/aux_/has_tag.hpp +1 -1
- data/ext/boost/mpl/aux_/has_type.hpp +1 -1
- data/ext/boost/mpl/aux_/include_preprocessed.hpp +1 -1
- data/ext/boost/mpl/aux_/insert_impl.hpp +68 -0
- data/ext/boost/mpl/aux_/insert_range_impl.hpp +77 -0
- data/ext/boost/mpl/aux_/inserter_algorithm.hpp +1 -1
- data/ext/boost/mpl/aux_/integral_wrapper.hpp +1 -1
- data/ext/boost/mpl/aux_/is_msvc_eti_arg.hpp +1 -1
- data/ext/boost/mpl/aux_/iter_apply.hpp +1 -1
- data/ext/boost/mpl/aux_/iter_fold_if_impl.hpp +1 -1
- data/ext/boost/mpl/aux_/iter_fold_impl.hpp +1 -1
- data/ext/boost/mpl/aux_/iter_push_front.hpp +36 -0
- data/ext/boost/mpl/aux_/joint_iter.hpp +120 -0
- data/ext/boost/mpl/aux_/lambda_arity_param.hpp +1 -1
- data/ext/boost/mpl/aux_/lambda_no_ctps.hpp +193 -0
- data/ext/boost/mpl/aux_/lambda_spec.hpp +1 -1
- data/ext/boost/mpl/aux_/lambda_support.hpp +1 -1
- data/ext/boost/mpl/aux_/largest_int.hpp +1 -1
- data/ext/boost/mpl/aux_/logical_op.hpp +165 -0
- data/ext/boost/mpl/aux_/msvc_dtw.hpp +68 -0
- data/ext/boost/mpl/aux_/msvc_eti_base.hpp +1 -1
- data/ext/boost/mpl/aux_/msvc_is_class.hpp +58 -0
- data/ext/boost/mpl/aux_/msvc_never_true.hpp +1 -1
- data/ext/boost/mpl/aux_/msvc_type.hpp +1 -1
- data/ext/boost/mpl/aux_/na.hpp +1 -1
- data/ext/boost/mpl/aux_/na_assert.hpp +1 -1
- data/ext/boost/mpl/aux_/na_fwd.hpp +1 -1
- data/ext/boost/mpl/aux_/na_spec.hpp +1 -1
- data/ext/boost/mpl/aux_/nested_type_wknd.hpp +1 -1
- data/ext/boost/mpl/aux_/nttp_decl.hpp +1 -1
- data/ext/boost/mpl/aux_/numeric_cast_utils.hpp +1 -1
- data/ext/boost/mpl/aux_/numeric_op.hpp +1 -1
- data/ext/boost/mpl/aux_/order_impl.hpp +76 -0
- data/ext/boost/mpl/aux_/overload_names.hpp +48 -0
- data/ext/boost/mpl/aux_/partition_op.hpp +58 -0
- data/ext/boost/mpl/aux_/pop_back_impl.hpp +34 -0
- data/ext/boost/mpl/aux_/pop_front_impl.hpp +44 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/and.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/apply.hpp +169 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp +461 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/arg.hpp +117 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp +300 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/bind.hpp +397 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp +46 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/bitand.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/bitor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/deque.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/divides.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp +558 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/greater.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/inherit.hpp +139 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp +229 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/less.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/list.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/list_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/map.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/minus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/modulus.hpp +101 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/or.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/plus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/quote.hpp +119 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp +295 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp +295 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/set.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/set_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp +40 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/times.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/vector.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp +309 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/and.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/apply.hpp +169 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp +456 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/arg.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp +306 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bind.hpp +403 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp +46 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/deque.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/divides.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp +558 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/greater.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp +141 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp +229 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/less.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/list.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/map.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/minus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp +101 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/or.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/plus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/quote.hpp +11 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp +295 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp +295 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/set.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp +40 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/times.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/vector.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp +309 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/advance_backward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/advance_forward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/and.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp +169 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/apply_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/apply_wrap.hpp +456 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp +117 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp +300 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp +397 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/bind_fwd.hpp +46 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/deque.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp +558 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp +139 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp +229 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/less.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/list.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/map.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp +101 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/or.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp +11 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp +295 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_iter_fold_impl.hpp +295 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/set.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp +40 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/times.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/bcc_pre590/vector_c.hpp +309 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/and.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/apply.hpp +169 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp +84 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/arg.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp +406 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/bind.hpp +515 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp +53 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/bitand.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/bitor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/deque.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/divides.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp +536 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/greater.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/inherit.hpp +141 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp +229 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/less.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/list.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/list_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/map.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/minus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/modulus.hpp +101 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/or.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/plus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/quote.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/set.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/set_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp +11 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/times.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/vector.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp +309 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp +440 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/bitand.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/bitor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/deque.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/divides.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/inherit.hpp +141 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp +229 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/list_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/map.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/modulus.hpp +101 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/set.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/set_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp +309 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp +132 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp +132 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/and.hpp +73 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/apply.hpp +166 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp +46 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp +247 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/arg.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bind.hpp +432 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp +46 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp +149 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp +149 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp +149 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/deque.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/divides.hpp +148 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp +293 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp +554 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/greater.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp +166 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp +293 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp +229 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/less.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/list.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp +534 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/map.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/minus.hpp +148 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp +115 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/or.hpp +73 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/plus.hpp +148 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/quote.hpp +11 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp +343 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp +343 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/set.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp +534 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp +114 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp +114 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp +46 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/times.hpp +148 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp +109 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/vector.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp +534 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/and.hpp +71 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/apply.hpp +160 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp +46 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp +138 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/arg.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bind.hpp +432 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp +46 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp +151 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp +151 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp +151 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/deque.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/divides.hpp +150 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp +245 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp +554 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/greater.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp +166 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp +245 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp +229 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/less.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/list.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp +534 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/map.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/minus.hpp +150 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp +115 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp +102 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/or.hpp +71 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/plus.hpp +150 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/quote.hpp +116 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp +295 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp +295 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/set.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/set_c.hpp +534 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp +114 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp +114 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp +46 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/times.hpp +150 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp +109 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/vector.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp +534 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/and.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/apply.hpp +169 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp +456 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/arg.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp +440 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bind.hpp +561 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp +147 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/deque.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/divides.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp +554 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/greater.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/inherit.hpp +141 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp +229 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/less.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/list.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/map.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/minus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp +101 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/or.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/placeholders.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/plus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/quote.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/set.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/set_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/template_arity.hpp +11 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/times.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/vector.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp +309 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/and.hpp +73 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp +268 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp +50 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp +78 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp +486 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp +590 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp +134 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp +134 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp +134 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/deque.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp +245 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp +554 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/inherit.hpp +166 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp +245 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp +229 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/less.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/list.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp +534 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/map.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp +101 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/or.hpp +73 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/quote.hpp +116 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp +295 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp +295 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/set.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/set_c.hpp +534 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp +40 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/times.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp +109 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp +556 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp +534 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/and.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/apply.hpp +169 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp +84 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/arg.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp +369 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp +466 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp +157 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp +157 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp +157 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/deque.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp +156 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp +98 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp +554 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp +98 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp +98 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/inherit.hpp +141 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp +229 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/less.hpp +98 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp +98 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/list.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/list_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/map.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp +156 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp +111 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp +98 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/or.hpp +69 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp +156 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp +11 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/set.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/set_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp +110 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp +110 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp +40 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/times.hpp +156 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/vector.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp +309 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/advance_backward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/advance_forward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/and.hpp +64 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/apply.hpp +139 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/apply_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp +84 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/arg.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp +440 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/bind.hpp +561 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/bind_fwd.hpp +52 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/bitand.hpp +142 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/bitor.hpp +142 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/bitxor.hpp +142 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/deque.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/divides.hpp +141 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/equal_to.hpp +92 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp +554 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/greater.hpp +92 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/greater_equal.hpp +92 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/inherit.hpp +125 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp +228 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/less.hpp +92 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/less_equal.hpp +92 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/list.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/list_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/map.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/minus.hpp +141 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/modulus.hpp +99 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/not_equal_to.hpp +92 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/or.hpp +64 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/placeholders.hpp +105 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/plus.hpp +141 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/quote.hpp +123 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/reverse_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/reverse_iter_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/set.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/set_c.hpp +328 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/shift_left.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/shift_right.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/template_arity.hpp +11 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/times.hpp +141 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/unpack_args.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/vector.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/plain/vector_c.hpp +309 -0
- data/ext/boost/mpl/aux_/preprocessor/add.hpp +65 -0
- data/ext/boost/mpl/aux_/preprocessor/def_params_tail.hpp +1 -1
- data/ext/boost/mpl/aux_/preprocessor/default_params.hpp +1 -1
- data/ext/boost/mpl/aux_/preprocessor/enum.hpp +1 -1
- data/ext/boost/mpl/aux_/preprocessor/ext_params.hpp +78 -0
- data/ext/boost/mpl/aux_/preprocessor/filter_params.hpp +1 -1
- data/ext/boost/mpl/aux_/preprocessor/is_seq.hpp +54 -0
- data/ext/boost/mpl/aux_/preprocessor/params.hpp +1 -1
- data/ext/boost/mpl/aux_/preprocessor/partial_spec_params.hpp +32 -0
- data/ext/boost/mpl/aux_/preprocessor/range.hpp +23 -0
- data/ext/boost/mpl/aux_/preprocessor/repeat.hpp +51 -0
- data/ext/boost/mpl/aux_/preprocessor/sub.hpp +1 -1
- data/ext/boost/mpl/aux_/preprocessor/token_equal.hpp +56 -0
- data/ext/boost/mpl/aux_/preprocessor/tuple.hpp +29 -0
- data/ext/boost/mpl/aux_/ptr_to_ref.hpp +46 -0
- data/ext/boost/mpl/aux_/push_back_impl.hpp +1 -1
- data/ext/boost/mpl/aux_/push_front_impl.hpp +1 -1
- data/ext/boost/mpl/aux_/range_c/O1_size.hpp +31 -0
- data/ext/boost/mpl/aux_/range_c/back.hpp +34 -0
- data/ext/boost/mpl/aux_/range_c/empty.hpp +37 -0
- data/ext/boost/mpl/aux_/range_c/front.hpp +33 -0
- data/ext/boost/mpl/aux_/range_c/iterator.hpp +106 -0
- data/ext/boost/mpl/aux_/range_c/size.hpp +37 -0
- data/ext/boost/mpl/aux_/range_c/tag.hpp +24 -0
- data/ext/boost/mpl/aux_/reverse_fold_impl.hpp +1 -1
- data/ext/boost/mpl/aux_/reverse_fold_impl_body.hpp +412 -0
- data/ext/boost/mpl/aux_/reverse_iter_fold_impl.hpp +43 -0
- data/ext/boost/mpl/aux_/sequence_wrapper.hpp +292 -0
- data/ext/boost/mpl/aux_/shift_op.hpp +87 -0
- data/ext/boost/mpl/aux_/single_element_iter.hpp +118 -0
- data/ext/boost/mpl/aux_/size_impl.hpp +1 -1
- data/ext/boost/mpl/aux_/sort_impl.hpp +121 -0
- data/ext/boost/mpl/aux_/static_cast.hpp +1 -1
- data/ext/boost/mpl/aux_/template_arity.hpp +1 -1
- data/ext/boost/mpl/aux_/template_arity_fwd.hpp +1 -1
- data/ext/boost/mpl/aux_/test.hpp +32 -0
- data/ext/boost/mpl/aux_/test/assert.hpp +29 -0
- data/ext/boost/mpl/aux_/test/data.hpp +25 -0
- data/ext/boost/mpl/aux_/test/test_case.hpp +21 -0
- data/ext/boost/mpl/aux_/traits_lambda_spec.hpp +1 -1
- data/ext/boost/mpl/aux_/transform_iter.hpp +123 -0
- data/ext/boost/mpl/aux_/type_wrapper.hpp +1 -1
- data/ext/boost/mpl/aux_/unwrap.hpp +47 -0
- data/ext/boost/mpl/aux_/value_wknd.hpp +1 -1
- data/ext/boost/mpl/aux_/yes_no.hpp +1 -1
- data/ext/boost/mpl/back.hpp +39 -0
- data/ext/boost/mpl/back_fwd.hpp +1 -1
- data/ext/boost/mpl/back_inserter.hpp +1 -1
- data/ext/boost/mpl/base.hpp +35 -0
- data/ext/boost/mpl/begin.hpp +19 -0
- data/ext/boost/mpl/begin_end.hpp +1 -1
- data/ext/boost/mpl/begin_end_fwd.hpp +1 -1
- data/ext/boost/mpl/bind.hpp +1 -1
- data/ext/boost/mpl/bind_fwd.hpp +1 -1
- data/ext/boost/mpl/bitand.hpp +45 -0
- data/ext/boost/mpl/bitor.hpp +45 -0
- data/ext/boost/mpl/bitwise.hpp +24 -0
- data/ext/boost/mpl/bitxor.hpp +23 -0
- data/ext/boost/mpl/bool.hpp +1 -1
- data/ext/boost/mpl/bool_fwd.hpp +1 -1
- data/ext/boost/mpl/char.hpp +22 -0
- data/ext/boost/mpl/char_fwd.hpp +27 -0
- data/ext/boost/mpl/clear.hpp +1 -1
- data/ext/boost/mpl/clear_fwd.hpp +1 -1
- data/ext/boost/mpl/comparison.hpp +1 -1
- data/ext/boost/mpl/contains.hpp +1 -1
- data/ext/boost/mpl/contains_fwd.hpp +1 -1
- data/ext/boost/mpl/copy.hpp +58 -0
- data/ext/boost/mpl/copy_if.hpp +96 -0
- data/ext/boost/mpl/count.hpp +40 -0
- data/ext/boost/mpl/count_fwd.hpp +24 -0
- data/ext/boost/mpl/count_if.hpp +79 -0
- data/ext/boost/mpl/deque.hpp +58 -0
- data/ext/boost/mpl/deref.hpp +1 -1
- data/ext/boost/mpl/distance.hpp +1 -1
- data/ext/boost/mpl/distance_fwd.hpp +1 -1
- data/ext/boost/mpl/divides.hpp +21 -0
- data/ext/boost/mpl/empty.hpp +39 -0
- data/ext/boost/mpl/empty_base.hpp +59 -0
- data/ext/boost/mpl/empty_fwd.hpp +1 -1
- data/ext/boost/mpl/empty_sequence.hpp +42 -0
- data/ext/boost/mpl/end.hpp +19 -0
- data/ext/boost/mpl/equal.hpp +112 -0
- data/ext/boost/mpl/equal_to.hpp +1 -1
- data/ext/boost/mpl/erase.hpp +42 -0
- data/ext/boost/mpl/erase_fwd.hpp +24 -0
- data/ext/boost/mpl/erase_key.hpp +41 -0
- data/ext/boost/mpl/erase_key_fwd.hpp +24 -0
- data/ext/boost/mpl/eval_if.hpp +1 -1
- data/ext/boost/mpl/filter_view.hpp +46 -0
- data/ext/boost/mpl/find.hpp +1 -1
- data/ext/boost/mpl/find_if.hpp +1 -1
- data/ext/boost/mpl/fold.hpp +1 -1
- data/ext/boost/mpl/for_each.hpp +116 -0
- data/ext/boost/mpl/front.hpp +39 -0
- data/ext/boost/mpl/front_fwd.hpp +1 -1
- data/ext/boost/mpl/front_inserter.hpp +1 -1
- data/ext/boost/mpl/greater.hpp +1 -1
- data/ext/boost/mpl/greater_equal.hpp +1 -1
- data/ext/boost/mpl/has_key.hpp +41 -0
- data/ext/boost/mpl/has_key_fwd.hpp +25 -0
- data/ext/boost/mpl/has_xxx.hpp +1 -1
- data/ext/boost/mpl/identity.hpp +1 -1
- data/ext/boost/mpl/if.hpp +1 -1
- data/ext/boost/mpl/index_if.hpp +60 -0
- data/ext/boost/mpl/index_of.hpp +39 -0
- data/ext/boost/mpl/inherit.hpp +229 -0
- data/ext/boost/mpl/inherit_linearly.hpp +39 -0
- data/ext/boost/mpl/insert.hpp +41 -0
- data/ext/boost/mpl/insert_fwd.hpp +24 -0
- data/ext/boost/mpl/insert_range.hpp +41 -0
- data/ext/boost/mpl/insert_range_fwd.hpp +24 -0
- data/ext/boost/mpl/inserter.hpp +1 -1
- data/ext/boost/mpl/int.hpp +1 -1
- data/ext/boost/mpl/int_fwd.hpp +1 -1
- data/ext/boost/mpl/integral_c.hpp +1 -1
- data/ext/boost/mpl/integral_c_fwd.hpp +1 -1
- data/ext/boost/mpl/integral_c_tag.hpp +1 -1
- data/ext/boost/mpl/is_placeholder.hpp +67 -0
- data/ext/boost/mpl/is_sequence.hpp +112 -0
- data/ext/boost/mpl/iter_fold.hpp +1 -1
- data/ext/boost/mpl/iter_fold_if.hpp +1 -1
- data/ext/boost/mpl/iterator_category.hpp +35 -0
- data/ext/boost/mpl/iterator_range.hpp +1 -1
- data/ext/boost/mpl/iterator_tags.hpp +1 -1
- data/ext/boost/mpl/joint_view.hpp +65 -0
- data/ext/boost/mpl/key_type.hpp +42 -0
- data/ext/boost/mpl/key_type_fwd.hpp +25 -0
- data/ext/boost/mpl/lambda.hpp +1 -1
- data/ext/boost/mpl/lambda_fwd.hpp +1 -1
- data/ext/boost/mpl/less.hpp +1 -1
- data/ext/boost/mpl/less_equal.hpp +1 -1
- data/ext/boost/mpl/limits/arity.hpp +1 -1
- data/ext/boost/mpl/limits/list.hpp +1 -1
- data/ext/boost/mpl/limits/map.hpp +21 -0
- data/ext/boost/mpl/limits/set.hpp +21 -0
- data/ext/boost/mpl/limits/string.hpp +21 -0
- data/ext/boost/mpl/limits/unrolling.hpp +21 -0
- data/ext/boost/mpl/limits/vector.hpp +1 -1
- data/ext/boost/mpl/list.hpp +1 -1
- data/ext/boost/mpl/list/aux_/O1_size.hpp +1 -1
- data/ext/boost/mpl/list/aux_/begin_end.hpp +1 -1
- data/ext/boost/mpl/list/aux_/clear.hpp +1 -1
- data/ext/boost/mpl/list/aux_/empty.hpp +1 -1
- data/ext/boost/mpl/list/aux_/front.hpp +1 -1
- data/ext/boost/mpl/list/aux_/include_preprocessed.hpp +1 -1
- data/ext/boost/mpl/list/aux_/item.hpp +1 -1
- data/ext/boost/mpl/list/aux_/iterator.hpp +1 -1
- data/ext/boost/mpl/list/aux_/numbered.hpp +68 -0
- data/ext/boost/mpl/list/aux_/numbered_c.hpp +71 -0
- data/ext/boost/mpl/list/aux_/pop_front.hpp +1 -1
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list10_c.hpp +164 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list20_c.hpp +173 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list30.hpp +189 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list30_c.hpp +183 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list40.hpp +209 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list40_c.hpp +193 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list50.hpp +229 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list50_c.hpp +203 -0
- data/ext/boost/mpl/list/aux_/push_back.hpp +1 -1
- data/ext/boost/mpl/list/aux_/push_front.hpp +1 -1
- data/ext/boost/mpl/list/aux_/size.hpp +1 -1
- data/ext/boost/mpl/list/aux_/tag.hpp +1 -1
- data/ext/boost/mpl/list/list0.hpp +1 -1
- data/ext/boost/mpl/list/list0_c.hpp +31 -0
- data/ext/boost/mpl/list/list10.hpp +1 -1
- data/ext/boost/mpl/list/list10_c.hpp +43 -0
- data/ext/boost/mpl/list/list20.hpp +1 -1
- data/ext/boost/mpl/list/list20_c.hpp +43 -0
- data/ext/boost/mpl/list/list30.hpp +43 -0
- data/ext/boost/mpl/list/list30_c.hpp +43 -0
- data/ext/boost/mpl/list/list40.hpp +43 -0
- data/ext/boost/mpl/list/list40_c.hpp +43 -0
- data/ext/boost/mpl/list/list50.hpp +43 -0
- data/ext/boost/mpl/list/list50_c.hpp +43 -0
- data/ext/boost/mpl/list_c.hpp +60 -0
- data/ext/boost/mpl/logical.hpp +1 -1
- data/ext/boost/mpl/long.hpp +1 -1
- data/ext/boost/mpl/long_fwd.hpp +1 -1
- data/ext/boost/mpl/lower_bound.hpp +143 -0
- data/ext/boost/mpl/map.hpp +57 -0
- data/ext/boost/mpl/map/aux_/at_impl.hpp +144 -0
- data/ext/boost/mpl/map/aux_/begin_end_impl.hpp +50 -0
- data/ext/boost/mpl/map/aux_/clear_impl.hpp +35 -0
- data/ext/boost/mpl/map/aux_/contains_impl.hpp +43 -0
- data/ext/boost/mpl/map/aux_/empty_impl.hpp +34 -0
- data/ext/boost/mpl/map/aux_/erase_impl.hpp +41 -0
- data/ext/boost/mpl/map/aux_/erase_key_impl.hpp +53 -0
- data/ext/boost/mpl/map/aux_/has_key_impl.hpp +44 -0
- data/ext/boost/mpl/map/aux_/include_preprocessed.hpp +53 -0
- data/ext/boost/mpl/map/aux_/insert_impl.hpp +72 -0
- data/ext/boost/mpl/map/aux_/item.hpp +138 -0
- data/ext/boost/mpl/map/aux_/iterator.hpp +169 -0
- data/ext/boost/mpl/map/aux_/key_type_impl.hpp +36 -0
- data/ext/boost/mpl/map/aux_/map0.hpp +74 -0
- data/ext/boost/mpl/map/aux_/numbered.hpp +110 -0
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map10.hpp +350 -0
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map20.hpp +370 -0
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map30.hpp +390 -0
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map40.hpp +410 -0
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map50.hpp +430 -0
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map10.hpp +290 -0
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map20.hpp +310 -0
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map30.hpp +330 -0
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map40.hpp +350 -0
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map50.hpp +370 -0
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map10.hpp +150 -0
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map20.hpp +170 -0
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map30.hpp +190 -0
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map40.hpp +210 -0
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map50.hpp +230 -0
- data/ext/boost/mpl/map/aux_/size_impl.hpp +33 -0
- data/ext/boost/mpl/map/aux_/tag.hpp +24 -0
- data/ext/boost/mpl/map/aux_/value_type_impl.hpp +36 -0
- data/ext/boost/mpl/map/map0.hpp +36 -0
- data/ext/boost/mpl/map/map10.hpp +44 -0
- data/ext/boost/mpl/map/map20.hpp +44 -0
- data/ext/boost/mpl/map/map30.hpp +44 -0
- data/ext/boost/mpl/map/map40.hpp +44 -0
- data/ext/boost/mpl/map/map50.hpp +44 -0
- data/ext/boost/mpl/math/fixed_c.hpp +36 -0
- data/ext/boost/mpl/math/is_even.hpp +54 -0
- data/ext/boost/mpl/math/rational_c.hpp +37 -0
- data/ext/boost/mpl/max.hpp +19 -0
- data/ext/boost/mpl/max_element.hpp +72 -0
- data/ext/boost/mpl/min.hpp +19 -0
- data/ext/boost/mpl/min_element.hpp +40 -0
- data/ext/boost/mpl/min_max.hpp +46 -0
- data/ext/boost/mpl/minus.hpp +1 -1
- data/ext/boost/mpl/modulus.hpp +22 -0
- data/ext/boost/mpl/multiplies.hpp +1 -1
- data/ext/boost/mpl/multiset/aux_/count_impl.hpp +82 -0
- data/ext/boost/mpl/multiset/aux_/insert_impl.hpp +34 -0
- data/ext/boost/mpl/multiset/aux_/item.hpp +114 -0
- data/ext/boost/mpl/multiset/aux_/multiset0.hpp +34 -0
- data/ext/boost/mpl/multiset/aux_/tag.hpp +23 -0
- data/ext/boost/mpl/multiset/multiset0.hpp +36 -0
- data/ext/boost/mpl/negate.hpp +1 -1
- data/ext/boost/mpl/next.hpp +1 -1
- data/ext/boost/mpl/next_prior.hpp +1 -1
- data/ext/boost/mpl/not.hpp +1 -1
- data/ext/boost/mpl/not_equal_to.hpp +1 -1
- data/ext/boost/mpl/numeric_cast.hpp +1 -1
- data/ext/boost/mpl/or.hpp +1 -1
- data/ext/boost/mpl/order.hpp +41 -0
- data/ext/boost/mpl/order_fwd.hpp +25 -0
- data/ext/boost/mpl/pair.hpp +1 -1
- data/ext/boost/mpl/pair_view.hpp +169 -0
- data/ext/boost/mpl/partition.hpp +53 -0
- data/ext/boost/mpl/placeholders.hpp +1 -1
- data/ext/boost/mpl/plus.hpp +1 -1
- data/ext/boost/mpl/pop_back.hpp +39 -0
- data/ext/boost/mpl/pop_back_fwd.hpp +1 -1
- data/ext/boost/mpl/pop_front.hpp +39 -0
- data/ext/boost/mpl/pop_front_fwd.hpp +1 -1
- data/ext/boost/mpl/print.hpp +74 -0
- data/ext/boost/mpl/prior.hpp +1 -1
- data/ext/boost/mpl/protect.hpp +1 -1
- data/ext/boost/mpl/push_back.hpp +1 -1
- data/ext/boost/mpl/push_back_fwd.hpp +1 -1
- data/ext/boost/mpl/push_front.hpp +1 -1
- data/ext/boost/mpl/push_front_fwd.hpp +1 -1
- data/ext/boost/mpl/quote.hpp +1 -1
- data/ext/boost/mpl/range_c.hpp +48 -0
- data/ext/boost/mpl/remove.hpp +52 -0
- data/ext/boost/mpl/remove_if.hpp +1 -1
- data/ext/boost/mpl/replace.hpp +55 -0
- data/ext/boost/mpl/replace_if.hpp +88 -0
- data/ext/boost/mpl/reverse.hpp +38 -0
- data/ext/boost/mpl/reverse_fold.hpp +1 -1
- data/ext/boost/mpl/reverse_iter_fold.hpp +56 -0
- data/ext/boost/mpl/same_as.hpp +1 -1
- data/ext/boost/mpl/sequence_tag.hpp +1 -1
- data/ext/boost/mpl/sequence_tag_fwd.hpp +1 -1
- data/ext/boost/mpl/set.hpp +57 -0
- data/ext/boost/mpl/set/aux_/at_impl.hpp +40 -0
- data/ext/boost/mpl/set/aux_/begin_end_impl.hpp +43 -0
- data/ext/boost/mpl/set/aux_/clear_impl.hpp +35 -0
- data/ext/boost/mpl/set/aux_/empty_impl.hpp +34 -0
- data/ext/boost/mpl/set/aux_/erase_impl.hpp +41 -0
- data/ext/boost/mpl/set/aux_/erase_key_impl.hpp +53 -0
- data/ext/boost/mpl/set/aux_/has_key_impl.hpp +60 -0
- data/ext/boost/mpl/set/aux_/include_preprocessed.hpp +42 -0
- data/ext/boost/mpl/set/aux_/insert_impl.hpp +65 -0
- data/ext/boost/mpl/set/aux_/item.hpp +80 -0
- data/ext/boost/mpl/set/aux_/iterator.hpp +98 -0
- data/ext/boost/mpl/set/aux_/key_type_impl.hpp +34 -0
- data/ext/boost/mpl/set/aux_/numbered.hpp +48 -0
- data/ext/boost/mpl/set/aux_/numbered_c.hpp +48 -0
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set10.hpp +140 -0
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set10_c.hpp +145 -0
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set20.hpp +168 -0
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set20_c.hpp +154 -0
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set30.hpp +195 -0
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set30_c.hpp +164 -0
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set40.hpp +221 -0
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set40_c.hpp +174 -0
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set50.hpp +250 -0
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set50_c.hpp +184 -0
- data/ext/boost/mpl/set/aux_/set0.hpp +69 -0
- data/ext/boost/mpl/set/aux_/size_impl.hpp +33 -0
- data/ext/boost/mpl/set/aux_/tag.hpp +24 -0
- data/ext/boost/mpl/set/aux_/value_type_impl.hpp +34 -0
- data/ext/boost/mpl/set/set0.hpp +35 -0
- data/ext/boost/mpl/set/set0_c.hpp +32 -0
- data/ext/boost/mpl/set/set10.hpp +44 -0
- data/ext/boost/mpl/set/set10_c.hpp +45 -0
- data/ext/boost/mpl/set/set20.hpp +44 -0
- data/ext/boost/mpl/set/set20_c.hpp +45 -0
- data/ext/boost/mpl/set/set30.hpp +44 -0
- data/ext/boost/mpl/set/set30_c.hpp +45 -0
- data/ext/boost/mpl/set/set40.hpp +44 -0
- data/ext/boost/mpl/set/set40_c.hpp +45 -0
- data/ext/boost/mpl/set/set50.hpp +44 -0
- data/ext/boost/mpl/set/set50_c.hpp +45 -0
- data/ext/boost/mpl/set_c.hpp +60 -0
- data/ext/boost/mpl/shift_left.hpp +22 -0
- data/ext/boost/mpl/shift_right.hpp +22 -0
- data/ext/boost/mpl/single_view.hpp +38 -0
- data/ext/boost/mpl/size.hpp +1 -1
- data/ext/boost/mpl/size_fwd.hpp +1 -1
- data/ext/boost/mpl/size_t.hpp +1 -1
- data/ext/boost/mpl/size_t_fwd.hpp +1 -1
- data/ext/boost/mpl/sizeof.hpp +36 -0
- data/ext/boost/mpl/sort.hpp +27 -0
- data/ext/boost/mpl/stable_partition.hpp +75 -0
- data/ext/boost/mpl/string.hpp +607 -0
- data/ext/boost/mpl/switch.hpp +49 -0
- data/ext/boost/mpl/tag.hpp +1 -1
- data/ext/boost/mpl/times.hpp +1 -1
- data/ext/boost/mpl/transform.hpp +145 -0
- data/ext/boost/mpl/transform_view.hpp +46 -0
- data/ext/boost/mpl/unique.hpp +85 -0
- data/ext/boost/mpl/unpack_args.hpp +150 -0
- data/ext/boost/mpl/upper_bound.hpp +141 -0
- data/ext/boost/mpl/value_type.hpp +42 -0
- data/ext/boost/mpl/value_type_fwd.hpp +25 -0
- data/ext/boost/mpl/vector.hpp +1 -1
- data/ext/boost/mpl/vector/aux_/O1_size.hpp +1 -1
- data/ext/boost/mpl/vector/aux_/at.hpp +1 -1
- data/ext/boost/mpl/vector/aux_/back.hpp +1 -1
- data/ext/boost/mpl/vector/aux_/begin_end.hpp +1 -1
- data/ext/boost/mpl/vector/aux_/clear.hpp +1 -1
- data/ext/boost/mpl/vector/aux_/empty.hpp +1 -1
- data/ext/boost/mpl/vector/aux_/front.hpp +1 -1
- data/ext/boost/mpl/vector/aux_/include_preprocessed.hpp +1 -1
- data/ext/boost/mpl/vector/aux_/item.hpp +1 -1
- data/ext/boost/mpl/vector/aux_/iterator.hpp +1 -1
- data/ext/boost/mpl/vector/aux_/numbered.hpp +218 -0
- data/ext/boost/mpl/vector/aux_/numbered_c.hpp +77 -0
- data/ext/boost/mpl/vector/aux_/pop_back.hpp +1 -1
- data/ext/boost/mpl/vector/aux_/pop_front.hpp +1 -1
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp +1528 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp +149 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp +1804 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp +195 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp +2124 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp +238 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp +2444 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp +281 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp +2764 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp +325 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp +149 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp +195 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector30.hpp +1464 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp +238 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector40.hpp +1784 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp +281 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector50.hpp +2104 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp +325 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp +154 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp +163 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp +179 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp +173 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40.hpp +199 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp +183 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50.hpp +219 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp +193 -0
- data/ext/boost/mpl/vector/aux_/push_back.hpp +1 -1
- data/ext/boost/mpl/vector/aux_/push_front.hpp +1 -1
- data/ext/boost/mpl/vector/aux_/size.hpp +1 -1
- data/ext/boost/mpl/vector/aux_/tag.hpp +1 -1
- data/ext/boost/mpl/vector/aux_/vector0.hpp +1 -1
- data/ext/boost/mpl/vector/vector0.hpp +1 -1
- data/ext/boost/mpl/vector/vector0_c.hpp +31 -0
- data/ext/boost/mpl/vector/vector10.hpp +1 -1
- data/ext/boost/mpl/vector/vector10_c.hpp +46 -0
- data/ext/boost/mpl/vector/vector20.hpp +1 -1
- data/ext/boost/mpl/vector/vector20_c.hpp +46 -0
- data/ext/boost/mpl/vector/vector30.hpp +45 -0
- data/ext/boost/mpl/vector/vector30_c.hpp +47 -0
- data/ext/boost/mpl/vector/vector40.hpp +45 -0
- data/ext/boost/mpl/vector/vector40_c.hpp +46 -0
- data/ext/boost/mpl/vector/vector50.hpp +45 -0
- data/ext/boost/mpl/vector/vector50_c.hpp +46 -0
- data/ext/boost/mpl/vector_c.hpp +61 -0
- data/ext/boost/mpl/void.hpp +1 -1
- data/ext/boost/mpl/void_fwd.hpp +1 -1
- data/ext/boost/mpl/zip_view.hpp +65 -0
- data/ext/boost/numeric/conversion/converter_policies.hpp +8 -0
- data/ext/boost/optional/optional.hpp +2 -2
- data/ext/boost/pointee.hpp +74 -0
- data/ext/boost/preprocessor/{control/deduce_d.hpp → dec.hpp} +3 -8
- data/ext/boost/preprocessor/enum_params_with_a_default.hpp +17 -0
- data/ext/boost/preprocessor/enum_shifted_params.hpp +17 -0
- data/ext/boost/preprocessor/iteration/detail/bounds/lower2.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/bounds/upper2.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/iter/forward2.hpp +1338 -0
- data/ext/boost/preprocessor/iteration/detail/iter/reverse1.hpp +1296 -0
- data/ext/boost/preprocessor/repeat_2nd.hpp +17 -0
- data/ext/boost/preprocessor/repetition/enum_params_with_a_default.hpp +25 -0
- data/ext/boost/range/algorithm/equal.hpp +15 -5
- data/ext/boost/range/as_literal.hpp +1 -1
- data/ext/boost/range/size.hpp +3 -3
- data/ext/boost/range/size_type.hpp +33 -23
- data/ext/boost/ratio/config.hpp +86 -0
- data/ext/boost/ratio/detail/mpl/abs.hpp +89 -0
- data/ext/boost/ratio/detail/mpl/gcd.hpp +124 -0
- data/ext/boost/ratio/detail/mpl/lcm.hpp +126 -0
- data/ext/boost/ratio/detail/mpl/sign.hpp +89 -0
- data/ext/boost/ratio/detail/overflow_helpers.hpp +367 -0
- data/ext/boost/ratio/ratio.hpp +233 -0
- data/ext/boost/ratio/ratio_fwd.hpp +84 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base.hpp +3 -3
- data/ext/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +150 -0
- data/ext/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +27 -2
- data/ext/boost/swap.hpp +12 -0
- data/ext/boost/system/api_config.hpp +42 -0
- data/ext/boost/system/config.hpp +69 -0
- data/ext/boost/system/error_code.hpp +513 -0
- data/ext/boost/system/system_error.hpp +80 -0
- data/ext/boost/thread/barrier.hpp +4 -4
- data/ext/boost/thread/cv_status.hpp +26 -0
- data/ext/boost/thread/detail/config.hpp +119 -5
- data/ext/boost/thread/detail/delete.hpp +45 -0
- data/ext/boost/thread/detail/memory.hpp +156 -0
- data/ext/boost/thread/detail/move.hpp +181 -1
- data/ext/boost/thread/detail/platform.hpp +3 -1
- data/ext/boost/thread/detail/thread.hpp +254 -157
- data/ext/boost/thread/detail/thread_interruption.hpp +12 -11
- data/ext/boost/thread/exceptions.hpp +125 -136
- data/ext/boost/thread/future.hpp +778 -353
- data/ext/boost/thread/locks.hpp +548 -347
- data/ext/boost/thread/once.hpp +3 -1
- data/ext/boost/thread/pthread/condition_variable.hpp +140 -31
- data/ext/boost/thread/pthread/condition_variable_fwd.hpp +143 -15
- data/ext/boost/thread/pthread/mutex.hpp +76 -24
- data/ext/boost/thread/pthread/once.hpp +53 -22
- data/ext/boost/thread/pthread/recursive_mutex.hpp +74 -27
- data/ext/boost/thread/pthread/shared_mutex.hpp +250 -2
- data/ext/boost/thread/pthread/thread_data.hpp +109 -6
- data/ext/boost/thread/pthread/thread_heap_alloc.hpp +4 -4
- data/ext/boost/thread/reverse_lock.hpp +58 -0
- data/ext/boost/thread/shared_lock_guard.hpp +52 -0
- data/ext/boost/thread/shared_mutex.hpp +7 -2
- data/ext/boost/thread/thread.hpp +2 -1
- data/ext/boost/thread/v2/thread.hpp +56 -0
- data/ext/boost/thread/xtime.hpp +4 -4
- data/ext/boost/throw_exception.hpp +13 -4
- data/ext/boost/tuple/detail/tuple_basic.hpp +980 -0
- data/ext/boost/tuple/tuple.hpp +90 -0
- data/ext/boost/type_traits/add_cv.hpp +48 -0
- data/ext/boost/type_traits/common_type.hpp +158 -0
- data/ext/boost/type_traits/cv_traits.hpp +24 -0
- data/ext/boost/type_traits/decay.hpp +44 -0
- data/ext/boost/type_traits/detail/bool_trait_def.hpp +1 -1
- data/ext/boost/type_traits/detail/bool_trait_undef.hpp +1 -1
- data/ext/boost/type_traits/detail/size_t_trait_def.hpp +1 -1
- data/ext/boost/type_traits/detail/size_t_trait_undef.hpp +1 -1
- data/ext/boost/type_traits/detail/type_trait_def.hpp +1 -1
- data/ext/boost/type_traits/detail/type_trait_undef.hpp +1 -1
- data/ext/boost/type_traits/has_nothrow_assign.hpp +44 -0
- data/ext/boost/type_traits/has_trivial_assign.hpp +57 -0
- data/ext/boost/type_traits/intrinsics.hpp +4 -3
- data/ext/boost/type_traits/is_compound.hpp +46 -0
- data/ext/boost/type_traits/is_empty.hpp +229 -0
- data/ext/boost/type_traits/is_object.hpp +53 -0
- data/ext/boost/type_traits/is_stateless.hpp +48 -0
- data/ext/boost/type_traits/object_traits.hpp +33 -0
- data/ext/boost/type_traits/remove_bounds.hpp +48 -0
- data/ext/boost/type_traits/remove_volatile.hpp +88 -0
- data/ext/boost/type_traits/same_traits.hpp +15 -0
- data/ext/boost/type_traits/transform_traits.hpp +21 -0
- data/ext/boost/typeof/message.hpp +8 -0
- data/ext/boost/typeof/native.hpp +60 -0
- data/ext/boost/typeof/typeof.hpp +218 -0
- data/ext/boost/utility/declval.hpp +7 -2
- data/ext/boost/utility/detail/result_of_iterate.hpp +98 -32
- data/ext/boost/utility/result_of.hpp +92 -8
- data/ext/boost/version.hpp +32 -0
- data/ext/common/Account.h +1 -1
- data/ext/common/AccountsDatabase.cpp +1 -1
- data/ext/common/AccountsDatabase.h +1 -1
- data/ext/common/AgentsStarter.cpp +5 -6
- data/ext/common/AgentsStarter.h +4 -4
- data/ext/common/AgentsStarter.hpp +4 -6
- data/ext/common/AnsiColorConstants.h +1 -1
- data/ext/common/ApplicationPool2/Common.h +62 -2
- data/ext/common/ApplicationPool2/ComponentInfo.h +1 -1
- data/ext/common/ApplicationPool2/Group.h +411 -150
- data/ext/common/ApplicationPool2/Implementation.cpp +367 -86
- data/ext/common/ApplicationPool2/Options.h +6 -2
- data/ext/common/ApplicationPool2/PipeWatcher.h +1 -1
- data/ext/common/ApplicationPool2/Pool.h +260 -137
- data/ext/common/ApplicationPool2/Process.h +28 -27
- data/ext/common/ApplicationPool2/Session.h +4 -2
- data/ext/common/ApplicationPool2/Socket.h +1 -1
- data/ext/common/ApplicationPool2/Spawner.h +133 -77
- data/ext/common/ApplicationPool2/SuperGroup.h +16 -15
- data/ext/common/BackgroundEventLoop.cpp +1 -1
- data/ext/common/BackgroundEventLoop.h +1 -1
- data/ext/common/Constants.h +2 -2
- data/ext/common/EventedBufferedInput.h +1 -1
- data/ext/common/EventedClient.h +1 -1
- data/ext/common/EventedMessageServer.h +1 -1
- data/ext/common/EventedServer.h +1 -1
- data/ext/common/Exceptions.h +1 -1
- data/ext/common/FileDescriptor.h +1 -1
- data/ext/common/HttpConstants.h +8 -8
- data/ext/common/IniFile.h +1 -1
- data/ext/common/Logging.cpp +45 -20
- data/ext/common/Logging.h +16 -65
- data/ext/common/MessageClient.h +1 -1
- data/ext/common/MessageReadersWriters.h +1 -1
- data/ext/common/MessageServer.h +1 -1
- data/ext/common/MultiLibeio.cpp +1 -1
- data/ext/common/MultiLibeio.h +1 -1
- data/ext/common/RandomGenerator.h +1 -1
- data/ext/common/ResourceLocator.h +1 -1
- data/ext/common/SafeLibev.h +1 -1
- data/ext/common/ServerInstanceDir.h +1 -1
- data/ext/common/StaticString.h +1 -1
- data/ext/common/StringListCreator.h +1 -1
- data/ext/common/UnionStation.h +1 -1
- data/ext/common/Utils.cpp +6 -1
- data/ext/common/Utils.h +9 -1
- data/ext/common/Utils/BlockingQueue.h +1 -1
- data/ext/common/Utils/CachedFileStat.cpp +1 -1
- data/ext/common/Utils/CachedFileStat.h +1 -1
- data/ext/common/Utils/CachedFileStat.hpp +1 -1
- data/ext/common/Utils/FileChangeChecker.h +1 -1
- data/ext/common/Utils/HashMap.h +1 -1
- data/ext/common/Utils/HttpHeaderBufferer.h +1 -1
- data/ext/common/Utils/IOUtils.cpp +3 -3
- data/ext/common/Utils/IOUtils.h +1 -1
- data/ext/common/Utils/MemZeroGuard.h +1 -1
- data/ext/common/Utils/MemoryBarrier.h +1 -1
- data/ext/common/Utils/MessageIO.h +1 -1
- data/ext/common/Utils/MessagePassing.h +304 -0
- data/ext/common/Utils/ProcessMetricsCollector.h +1 -1
- data/ext/common/Utils/ScopeGuard.h +1 -1
- data/ext/common/Utils/StrIntUtils.cpp +40 -1
- data/ext/common/Utils/StrIntUtils.h +7 -1
- data/ext/common/Utils/StringMap.h +1 -1
- data/ext/common/Utils/SystemTime.cpp +1 -1
- data/ext/common/Utils/SystemTime.h +1 -1
- data/ext/common/Utils/Timer.h +1 -1
- data/ext/common/Utils/VariantMap.h +1 -1
- data/ext/common/agents/Base.cpp +182 -10
- data/ext/common/agents/Base.h +1 -1
- data/ext/common/agents/HelperAgent/AgentOptions.h +1 -1
- data/ext/common/agents/HelperAgent/BacktracesServer.h +1 -1
- data/ext/common/agents/HelperAgent/FileBackedPipe.h +1 -1
- data/ext/common/agents/HelperAgent/Main.cpp +13 -5
- data/ext/common/agents/HelperAgent/RequestHandler.cpp +1 -1
- data/ext/common/agents/HelperAgent/RequestHandler.h +23 -9
- data/ext/common/agents/HelperAgent/ScgiRequestParser.h +1 -1
- data/ext/common/agents/LoggingAgent/DataStoreId.h +1 -1
- data/ext/common/agents/LoggingAgent/FilterSupport.cpp +1 -1
- data/ext/common/agents/LoggingAgent/FilterSupport.h +1 -1
- data/ext/common/agents/LoggingAgent/LoggingServer.h +89 -214
- data/ext/common/agents/LoggingAgent/Main.cpp +9 -19
- data/ext/common/agents/LoggingAgent/RemoteSender.h +9 -2
- data/ext/common/agents/SpawnPreparer.cpp +70 -30
- data/ext/common/agents/Watchdog/Main.cpp +1 -1
- data/ext/libeio/Changes +4 -0
- data/ext/libeio/ecb.h +281 -24
- data/ext/libeio/eio.c +48 -63
- data/ext/libeio/eio.h +7 -6
- data/ext/libeio/libeio.m4 +0 -16
- data/ext/libeio/xthread.h +2 -2
- data/ext/libev/configure +299 -271
- data/ext/nginx/Configuration.c +15 -52
- data/ext/nginx/Configuration.h +0 -2
- data/ext/nginx/ContentHandler.c +13 -2
- data/ext/nginx/ngx_http_passenger_module.c +2 -19
- data/ext/oxt/detail/spin_lock_pthreads.hpp +1 -1
- data/ext/oxt/dynamic_thread_group.hpp +2 -2
- data/ext/oxt/spin_lock.hpp +1 -1
- data/ext/oxt/system_calls.cpp +36 -13
- data/ext/oxt/thread.hpp +11 -5
- data/ext/ruby/extconf.rb +1 -1
- data/ext/ruby/passenger_native_support.c +3 -2
- data/helper-scripts/classic-rails-loader.rb +3 -1
- data/helper-scripts/classic-rails-preloader.rb +4 -1
- data/helper-scripts/node-loader.js +1 -1
- data/helper-scripts/prespawn +1 -1
- data/helper-scripts/rack-loader.rb +3 -1
- data/helper-scripts/rack-preloader.rb +4 -1
- data/helper-scripts/system-memory-stats.py +185 -0
- data/helper-scripts/wsgi-loader.py +1 -1
- data/lib/phusion_passenger.rb +3 -3
- data/lib/phusion_passenger/abstract_installer.rb +1 -1
- data/lib/phusion_passenger/admin_tools.rb +1 -1
- data/lib/phusion_passenger/admin_tools/memory_stats.rb +1 -1
- data/lib/phusion_passenger/admin_tools/server_instance.rb +1 -1
- data/lib/phusion_passenger/analytics_logger.rb +10 -4
- data/lib/phusion_passenger/classic_rails/thread_handler_extension.rb +3 -2
- data/lib/phusion_passenger/common_library.rb +1 -1
- data/lib/phusion_passenger/console_text_template.rb +1 -1
- data/lib/phusion_passenger/constants.rb +6 -5
- data/lib/phusion_passenger/debug_logging.rb +5 -1
- data/lib/phusion_passenger/dependencies.rb +3 -3
- data/lib/phusion_passenger/loader_shared_helpers.rb +12 -7
- data/lib/phusion_passenger/message_channel.rb +1 -1
- data/lib/phusion_passenger/message_client.rb +1 -1
- data/lib/phusion_passenger/native_support.rb +1 -1
- data/lib/phusion_passenger/packaging.rb +7 -4
- data/lib/phusion_passenger/platform_info.rb +1 -1
- data/lib/phusion_passenger/platform_info/apache.rb +2 -2
- data/lib/phusion_passenger/platform_info/binary_compatibility.rb +14 -5
- data/lib/phusion_passenger/platform_info/compiler.rb +8 -1
- data/lib/phusion_passenger/platform_info/curl.rb +1 -1
- data/lib/phusion_passenger/platform_info/linux.rb +1 -1
- data/lib/phusion_passenger/platform_info/operating_system.rb +1 -1
- data/lib/phusion_passenger/platform_info/ruby.rb +2 -2
- data/lib/phusion_passenger/platform_info/zlib.rb +1 -1
- data/lib/phusion_passenger/plugin.rb +2 -2
- data/lib/phusion_passenger/preloader_shared_helpers.rb +14 -1
- data/lib/phusion_passenger/public_api.rb +8 -2
- data/lib/phusion_passenger/{classic_rails_extensions/analytics_logging/ar_abstract_adapter_extension.rb → rack/out_of_band_gc.rb} +35 -28
- data/lib/phusion_passenger/rack/thread_handler_extension.rb +31 -6
- data/lib/phusion_passenger/rails3_extensions/init.rb +15 -9
- data/lib/phusion_passenger/request_handler.rb +104 -47
- data/lib/phusion_passenger/request_handler/thread_handler.rb +28 -7
- data/lib/phusion_passenger/ruby_core_enhancements.rb +34 -5
- data/lib/phusion_passenger/simple_benchmarking.rb +1 -1
- data/lib/phusion_passenger/standalone/app_finder.rb +1 -1
- data/lib/phusion_passenger/standalone/command.rb +5 -5
- data/lib/phusion_passenger/standalone/config_file.rb +1 -1
- data/lib/phusion_passenger/standalone/help_command.rb +1 -1
- data/lib/phusion_passenger/standalone/main.rb +1 -1
- data/lib/phusion_passenger/standalone/package_runtime_command.rb +1 -1
- data/lib/phusion_passenger/standalone/runtime_installer.rb +1 -1
- data/lib/phusion_passenger/standalone/start_command.rb +73 -21
- data/lib/phusion_passenger/standalone/status_command.rb +1 -1
- data/lib/phusion_passenger/standalone/stop_command.rb +1 -1
- data/lib/phusion_passenger/standalone/utils.rb +2 -2
- data/lib/phusion_passenger/standalone/version_command.rb +1 -1
- data/lib/phusion_passenger/utils.rb +1 -1
- data/lib/phusion_passenger/utils/ansi_colors.rb +2 -2
- data/lib/phusion_passenger/utils/file_system_watcher.rb +1 -1
- data/lib/phusion_passenger/utils/hosts_file_parser.rb +2 -2
- data/lib/phusion_passenger/utils/robust_interruption.rb +10 -6
- data/lib/phusion_passenger/utils/tmpdir.rb +2 -2
- data/lib/phusion_passenger/utils/unseekable_socket.rb +1 -1
- data/lib/phusion_passenger/wsgi/request_handler.py +1 -1
- data/resources/templates/error_layout.html.template +4 -0
- data/resources/templates/nginx/not_available_when_natively_packaged.txt.erb +1 -1
- data/resources/templates/standalone/config.erb +1 -0
- data/test/.rspec +3 -0
- data/test/config.json.travis +15 -0
- data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +3 -2
- data/test/cxx/ApplicationPool2/PoolTest.cpp +349 -128
- data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +21 -18
- data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +141 -118
- data/test/cxx/BufferedIOTest.cpp +11 -11
- data/test/cxx/CxxTestMain.cpp +40 -11
- data/test/cxx/EventedClientTest.cpp +18 -18
- data/test/cxx/FilterSupportTest.cpp +1 -1
- data/test/cxx/IOUtilsTest.cpp +18 -10
- data/test/cxx/MessageIOTest.cpp +9 -9
- data/test/cxx/MessagePassingTest.cpp +81 -0
- data/test/cxx/MessageReadersWritersTest.cpp +3 -4
- data/test/cxx/RequestHandlerTest.cpp +69 -9
- data/test/cxx/TestSupport.h +3 -1
- data/test/cxx/UnionStationTest.cpp +43 -82
- data/test/gdbinit.example +31 -0
- data/test/integration_tests/nginx_tests.rb +48 -0
- data/test/integration_tests/spec_helper.rb +1 -0
- data/test/ruby/analytics_logger_spec.rb +11 -19
- data/test/ruby/classic_rails/loader_spec.rb +3 -4
- data/test/ruby/classic_rails/preloader_spec.rb +3 -4
- data/test/ruby/rack/loader_spec.rb +2 -22
- data/test/ruby/rack/preloader_spec.rb +2 -28
- data/test/ruby/rails3.0/loader_spec.rb +26 -0
- data/test/ruby/rails3.0/preloader_spec.rb +32 -0
- data/test/ruby/rails3.1/loader_spec.rb +26 -0
- data/test/ruby/rails3.1/preloader_spec.rb +32 -0
- data/test/ruby/rails3.2/loader_spec.rb +26 -0
- data/test/ruby/rails3.2/preloader_spec.rb +32 -0
- data/test/ruby/request_handler_spec.rb +104 -13
- data/test/ruby/shared/{loader_spec.rb → loader_sharedspec.rb} +1 -1
- data/test/ruby/shared/rails/{analytics_logging_extensions_spec.rb → analytics_logging_extensions_sharedspec.rb} +26 -27
- data/test/ruby/shared/{ruby_loader_spec.rb → ruby_loader_sharedspec.rb} +1 -1
- data/test/ruby/spec_helper.rb +3 -3
- data/test/stub/rails2.3/app/helpers/bar_helper.rb +2 -0
- data/test/stub/rails2.3/app/helpers/foo_helper.rb +2 -0
- data/test/stub/rails3.0/config/environments/production.rb +1 -1
- data/test/stub/rails3.1/Gemfile +37 -0
- data/test/stub/rails3.1/Gemfile.lock +115 -0
- data/test/stub/rails3.1/README +261 -0
- data/test/stub/rails3.1/Rakefile +7 -0
- data/test/stub/rails3.1/app/assets/images/rails.png +0 -0
- data/test/stub/rails3.1/app/assets/javascripts/application.js +9 -0
- data/test/stub/rails3.1/app/assets/stylesheets/application.css +7 -0
- data/test/stub/rails3.1/app/controllers/application_controller.rb +3 -0
- data/test/stub/rails3.1/app/helpers/application_helper.rb +2 -0
- data/test/stub/rails3.1/app/views/layouts/application.html.erb +14 -0
- data/test/stub/rails3.1/config.ru +4 -0
- data/test/stub/rails3.1/config/application.rb +48 -0
- data/test/stub/rails3.1/config/boot.rb +6 -0
- data/test/stub/rails3.1/config/database.yml +25 -0
- data/test/stub/rails3.1/config/environment.rb +5 -0
- data/test/stub/rails3.1/config/environments/development.rb +30 -0
- data/test/stub/rails3.1/config/environments/production.rb +60 -0
- data/test/stub/rails3.1/config/environments/test.rb +39 -0
- data/test/stub/rails3.1/config/initializers/backtrace_silencers.rb +7 -0
- data/test/stub/rails3.1/config/initializers/inflections.rb +10 -0
- data/test/stub/rails3.1/config/initializers/mime_types.rb +5 -0
- data/test/stub/rails3.1/config/initializers/passenger.rb +1 -0
- data/test/stub/rails3.1/config/initializers/secret_token.rb +7 -0
- data/test/stub/rails3.1/config/initializers/session_store.rb +8 -0
- data/test/stub/rails3.1/config/initializers/wrap_parameters.rb +14 -0
- data/test/stub/rails3.1/config/locales/en.yml +5 -0
- data/test/stub/rails3.1/config/routes.rb +58 -0
- data/test/stub/rails3.1/db/seeds.rb +7 -0
- data/test/stub/rails3.1/doc/README_FOR_APP +2 -0
- data/test/stub/rails3.1/public/404.html +26 -0
- data/test/stub/rails3.1/public/422.html +26 -0
- data/test/stub/rails3.1/public/500.html +26 -0
- data/test/stub/rails3.1/public/favicon.ico +0 -0
- data/test/stub/rails3.1/public/index.html +241 -0
- data/test/stub/rails3.1/public/robots.txt +5 -0
- data/test/stub/rails3.1/script/rails +6 -0
- data/test/stub/rails3.1/test/performance/browsing_test.rb +12 -0
- data/test/stub/rails3.1/test/test_helper.rb +13 -0
- data/test/stub/rails3.2/Gemfile +39 -0
- data/test/stub/rails3.2/Gemfile.lock +113 -0
- data/test/stub/rails3.2/Rakefile +7 -0
- data/test/stub/rails3.2/app/assets/images/rails.png +0 -0
- data/test/stub/rails3.2/app/assets/javascripts/application.js +15 -0
- data/test/stub/rails3.2/app/assets/stylesheets/application.css +13 -0
- data/test/stub/rails3.2/app/controllers/application_controller.rb +3 -0
- data/test/stub/rails3.2/app/helpers/application_helper.rb +2 -0
- data/test/stub/rails3.2/app/views/layouts/application.html.erb +14 -0
- data/test/stub/rails3.2/config.ru +4 -0
- data/test/stub/rails3.2/config/application.rb +62 -0
- data/test/stub/rails3.2/config/boot.rb +6 -0
- data/test/stub/rails3.2/config/database.yml +25 -0
- data/test/stub/rails3.2/config/environment.rb +5 -0
- data/test/stub/rails3.2/config/environments/development.rb +37 -0
- data/test/stub/rails3.2/config/environments/production.rb +67 -0
- data/test/stub/rails3.2/config/environments/test.rb +37 -0
- data/test/stub/rails3.2/config/initializers/backtrace_silencers.rb +7 -0
- data/test/stub/rails3.2/config/initializers/inflections.rb +15 -0
- data/test/stub/rails3.2/config/initializers/mime_types.rb +5 -0
- data/test/stub/rails3.2/config/initializers/passenger.rb +1 -0
- data/test/stub/rails3.2/config/initializers/secret_token.rb +7 -0
- data/test/stub/rails3.2/config/initializers/session_store.rb +8 -0
- data/test/stub/rails3.2/config/initializers/wrap_parameters.rb +14 -0
- data/test/stub/rails3.2/config/locales/en.yml +5 -0
- data/test/stub/rails3.2/config/routes.rb +58 -0
- data/test/stub/rails3.2/db/seeds.rb +7 -0
- data/test/stub/rails3.2/doc/README_FOR_APP +2 -0
- data/test/stub/rails3.2/public/404.html +26 -0
- data/test/stub/rails3.2/public/422.html +26 -0
- data/test/stub/rails3.2/public/500.html +25 -0
- data/test/stub/rails3.2/public/favicon.ico +0 -0
- data/test/stub/rails3.2/public/index.html +241 -0
- data/test/stub/rails3.2/public/robots.txt +5 -0
- data/test/stub/rails3.2/script/rails +6 -0
- data/test/stub/rails3.2/test/performance/browsing_test.rb +12 -0
- data/test/stub/rails3.2/test/test_helper.rb +13 -0
- data/test/stub/wsgi/passenger_wsgi.py +12 -3
- data/test/support/test_helper.rb +5 -3
- data/test/tut/tut.h +61 -0
- metadata +1173 -236
- data/DEVELOPERS.TXT +0 -108
- data/INSTALL +0 -6
- data/README +0 -45
- data/ext/boost/config/platform/win32.hpp +0 -71
- data/ext/boost/implicit_cast.hpp +0 -29
- data/ext/boost/preprocessor/arithmetic/detail/div_base.hpp +0 -61
- data/ext/boost/preprocessor/arithmetic/mod.hpp +0 -39
- data/ext/boost/preprocessor/comparison/less_equal.hpp +0 -39
- data/ext/boost/preprocessor/logical/not.hpp +0 -30
- data/ext/boost/preprocessor/seq/cat.hpp +0 -49
- data/ext/boost/preprocessor/seq/fold_left.hpp +0 -1070
- data/ext/boost/preprocessor/seq/transform.hpp +0 -48
- data/ext/boost/smart_ptr/detail/atomic_count_win32.hpp +0 -63
- data/ext/boost/smart_ptr/detail/sp_counted_base_w32.hpp +0 -130
- data/ext/boost/utility.hpp +0 -20
- data/ext/boost/utility/base_from_member.hpp +0 -87
- data/ext/boost/utility/binary.hpp +0 -708
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_base_extension.rb +0 -67
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_benchmarking_extension.rb +0 -48
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_rescue_extension.rb +0 -59
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/as_cache_extension.rb +0 -130
- data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/av_benchmark_helper_extension.rb +0 -47
- data/lib/phusion_passenger/classic_rails_extensions/init.rb +0 -125
@@ -0,0 +1,282 @@
|
|
1
|
+
// return_type_traits.hpp -- Boost Lambda Library ---------------------------
|
2
|
+
|
3
|
+
// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
|
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
|
+
// For more information, see www.boost.org
|
10
|
+
|
11
|
+
|
12
|
+
#ifndef BOOST_LAMBDA_RETURN_TYPE_TRAITS_HPP
|
13
|
+
#define BOOST_LAMBDA_RETURN_TYPE_TRAITS_HPP
|
14
|
+
|
15
|
+
#include "boost/mpl/has_xxx.hpp"
|
16
|
+
|
17
|
+
#include <cstddef> // needed for the ptrdiff_t
|
18
|
+
|
19
|
+
namespace boost {
|
20
|
+
namespace lambda {
|
21
|
+
|
22
|
+
using ::boost::type_traits::ice_and;
|
23
|
+
using ::boost::type_traits::ice_or;
|
24
|
+
using ::boost::type_traits::ice_not;
|
25
|
+
|
26
|
+
// Much of the type deduction code for standard arithmetic types
|
27
|
+
// from Gary Powell
|
28
|
+
|
29
|
+
// different arities:
|
30
|
+
template <class Act, class A1> struct return_type_1; // 1-ary actions
|
31
|
+
template <class Act, class A1, class A2> struct return_type_2; // 2-ary
|
32
|
+
template <class Act, class Args> struct return_type_N; // >3- ary
|
33
|
+
|
34
|
+
template <class Act, class A1> struct return_type_1_prot;
|
35
|
+
template <class Act, class A1, class A2> struct return_type_2_prot; // 2-ary
|
36
|
+
template <class Act, class A1> struct return_type_N_prot; // >3-ary
|
37
|
+
|
38
|
+
|
39
|
+
namespace detail {
|
40
|
+
|
41
|
+
template<class> class return_type_deduction_failure {};
|
42
|
+
|
43
|
+
// In some cases return type deduction should fail (an invalid lambda
|
44
|
+
// expression). Sometimes the lambda expression can be ok, the return type
|
45
|
+
// just is not deducible (user defined operators). Then return type deduction
|
46
|
+
// should never be entered at all, and the use of ret<> does this.
|
47
|
+
// However, for nullary lambda functors, return type deduction is always
|
48
|
+
// entered, and there seems to be no way around this.
|
49
|
+
|
50
|
+
// (the return type is part of the prototype of the non-template
|
51
|
+
// operator()(). The prototype is instantiated, even though the body
|
52
|
+
// is not.)
|
53
|
+
|
54
|
+
// So, in the case the return type deduction should fail, it should not
|
55
|
+
// fail directly, but rather result in a valid but wrong return type,
|
56
|
+
// causing a compile time error only if the function is really called.
|
57
|
+
|
58
|
+
|
59
|
+
|
60
|
+
} // end detail
|
61
|
+
|
62
|
+
|
63
|
+
|
64
|
+
// return_type_X_prot classes --------------------------------------------
|
65
|
+
// These classes are the first layer that gets instantiated from the
|
66
|
+
// lambda_functor_base sig templates. It will check whether
|
67
|
+
// the action is protectable and one of arguments is "protected" or its
|
68
|
+
// evaluation will otherwise result in another lambda functor.
|
69
|
+
// If this is a case, the result type will be another lambda functor.
|
70
|
+
|
71
|
+
// The arguments are always non-reference types, except for comma action
|
72
|
+
// where the right argument can be a reference too. This is because it
|
73
|
+
// matters (in the builtin case) whether the argument is an lvalue or
|
74
|
+
// rvalue: int i; i, 1 -> rvalue; 1, i -> lvalue
|
75
|
+
|
76
|
+
template <class Act, class A> struct return_type_1_prot {
|
77
|
+
public:
|
78
|
+
typedef typename
|
79
|
+
detail::IF<
|
80
|
+
// is_protectable<Act>::value && is_lambda_functor<A>::value,
|
81
|
+
ice_and<is_protectable<Act>::value, is_lambda_functor<A>::value>::value,
|
82
|
+
lambda_functor<
|
83
|
+
lambda_functor_base<
|
84
|
+
Act,
|
85
|
+
tuple<typename detail::remove_reference_and_cv<A>::type>
|
86
|
+
>
|
87
|
+
>,
|
88
|
+
typename return_type_1<Act, A>::type
|
89
|
+
>::RET type;
|
90
|
+
};
|
91
|
+
|
92
|
+
// take care of the unavoidable instantiation for nullary case
|
93
|
+
template<class Act> struct return_type_1_prot<Act, null_type> {
|
94
|
+
typedef null_type type;
|
95
|
+
};
|
96
|
+
|
97
|
+
// Unary actions (result from unary operators)
|
98
|
+
// do not have a default return type.
|
99
|
+
template<class Act, class A> struct return_type_1 {
|
100
|
+
typedef typename
|
101
|
+
detail::return_type_deduction_failure<return_type_1> type;
|
102
|
+
};
|
103
|
+
|
104
|
+
|
105
|
+
namespace detail {
|
106
|
+
|
107
|
+
template <class T>
|
108
|
+
class protect_conversion {
|
109
|
+
typedef typename boost::remove_reference<T>::type non_ref_T;
|
110
|
+
public:
|
111
|
+
|
112
|
+
// add const to rvalues, so that all rvalues are stored as const in
|
113
|
+
// the args tuple
|
114
|
+
typedef typename detail::IF_type<
|
115
|
+
// boost::is_reference<T>::value && !boost::is_const<non_ref_T>::value,
|
116
|
+
ice_and<boost::is_reference<T>::value,
|
117
|
+
ice_not<boost::is_const<non_ref_T>::value>::value>::value,
|
118
|
+
detail::identity_mapping<T>,
|
119
|
+
const_copy_argument<non_ref_T> // handles funtion and array
|
120
|
+
>::type type; // types correctly
|
121
|
+
};
|
122
|
+
|
123
|
+
} // end detail
|
124
|
+
|
125
|
+
template <class Act, class A, class B> struct return_type_2_prot {
|
126
|
+
|
127
|
+
// experimental feature
|
128
|
+
// We may have a lambda functor as a result type of a subexpression
|
129
|
+
// (if protect) has been used.
|
130
|
+
// Thus, if one of the parameter types is a lambda functor, the result
|
131
|
+
// is a lambda functor as well.
|
132
|
+
// We need to make a conservative choise here.
|
133
|
+
// The resulting lambda functor stores all const reference arguments as
|
134
|
+
// const copies. References to non-const are stored as such.
|
135
|
+
// So if the source of the argument is a const open argument, a bound
|
136
|
+
// argument stored as a const reference, or a function returning a
|
137
|
+
// const reference, that information is lost. There is no way of
|
138
|
+
// telling apart 'real const references' from just 'LL internal
|
139
|
+
// const references' (or it would be really hard)
|
140
|
+
|
141
|
+
// The return type is a subclass of lambda_functor, which has a converting
|
142
|
+
// copy constructor. It can copy any lambda functor, that has the same
|
143
|
+
// action type and code, and a copy compatible argument tuple.
|
144
|
+
|
145
|
+
|
146
|
+
typedef typename boost::remove_reference<A>::type non_ref_A;
|
147
|
+
typedef typename boost::remove_reference<B>::type non_ref_B;
|
148
|
+
|
149
|
+
typedef typename
|
150
|
+
detail::IF<
|
151
|
+
// is_protectable<Act>::value &&
|
152
|
+
// (is_lambda_functor<A>::value || is_lambda_functor<B>::value),
|
153
|
+
ice_and<is_protectable<Act>::value,
|
154
|
+
ice_or<is_lambda_functor<A>::value,
|
155
|
+
is_lambda_functor<B>::value>::value>::value,
|
156
|
+
lambda_functor<
|
157
|
+
lambda_functor_base<
|
158
|
+
Act,
|
159
|
+
tuple<typename detail::protect_conversion<A>::type,
|
160
|
+
typename detail::protect_conversion<B>::type>
|
161
|
+
>
|
162
|
+
>,
|
163
|
+
typename return_type_2<Act, non_ref_A, non_ref_B>::type
|
164
|
+
>::RET type;
|
165
|
+
};
|
166
|
+
|
167
|
+
// take care of the unavoidable instantiation for nullary case
|
168
|
+
template<class Act> struct return_type_2_prot<Act, null_type, null_type> {
|
169
|
+
typedef null_type type;
|
170
|
+
};
|
171
|
+
// take care of the unavoidable instantiation for nullary case
|
172
|
+
template<class Act, class Other> struct return_type_2_prot<Act, Other, null_type> {
|
173
|
+
typedef null_type type;
|
174
|
+
};
|
175
|
+
// take care of the unavoidable instantiation for nullary case
|
176
|
+
template<class Act, class Other> struct return_type_2_prot<Act, null_type, Other> {
|
177
|
+
typedef null_type type;
|
178
|
+
};
|
179
|
+
|
180
|
+
// comma is a special case, as the user defined operator can return
|
181
|
+
// an lvalue (reference) too, hence it must be handled at this level.
|
182
|
+
template<class A, class B>
|
183
|
+
struct return_type_2_comma
|
184
|
+
{
|
185
|
+
typedef typename boost::remove_reference<A>::type non_ref_A;
|
186
|
+
typedef typename boost::remove_reference<B>::type non_ref_B;
|
187
|
+
|
188
|
+
typedef typename
|
189
|
+
detail::IF<
|
190
|
+
// is_protectable<other_action<comma_action> >::value && // it is protectable
|
191
|
+
// (is_lambda_functor<A>::value || is_lambda_functor<B>::value),
|
192
|
+
ice_and<is_protectable<other_action<comma_action> >::value, // it is protectable
|
193
|
+
ice_or<is_lambda_functor<A>::value,
|
194
|
+
is_lambda_functor<B>::value>::value>::value,
|
195
|
+
lambda_functor<
|
196
|
+
lambda_functor_base<
|
197
|
+
other_action<comma_action>,
|
198
|
+
tuple<typename detail::protect_conversion<A>::type,
|
199
|
+
typename detail::protect_conversion<B>::type>
|
200
|
+
>
|
201
|
+
>,
|
202
|
+
typename
|
203
|
+
return_type_2<other_action<comma_action>, non_ref_A, non_ref_B>::type
|
204
|
+
>::RET type1;
|
205
|
+
|
206
|
+
// if no user defined return_type_2 (or plain_return_type_2) specialization
|
207
|
+
// matches, then return the righthand argument
|
208
|
+
typedef typename
|
209
|
+
detail::IF<
|
210
|
+
boost::is_same<type1, detail::unspecified>::value,
|
211
|
+
B,
|
212
|
+
type1
|
213
|
+
>::RET type;
|
214
|
+
|
215
|
+
};
|
216
|
+
|
217
|
+
|
218
|
+
// currently there are no protectable actions with > 2 args
|
219
|
+
|
220
|
+
template<class Act, class Args> struct return_type_N_prot {
|
221
|
+
typedef typename return_type_N<Act, Args>::type type;
|
222
|
+
};
|
223
|
+
|
224
|
+
// take care of the unavoidable instantiation for nullary case
|
225
|
+
template<class Act> struct return_type_N_prot<Act, null_type> {
|
226
|
+
typedef null_type type;
|
227
|
+
};
|
228
|
+
|
229
|
+
// handle different kind of actions ------------------------
|
230
|
+
|
231
|
+
// use the return type given in the bind invocation as bind<Ret>(...)
|
232
|
+
template<int I, class Args, class Ret>
|
233
|
+
struct return_type_N<function_action<I, Ret>, Args> {
|
234
|
+
typedef Ret type;
|
235
|
+
};
|
236
|
+
|
237
|
+
// ::result_type support
|
238
|
+
|
239
|
+
namespace detail
|
240
|
+
{
|
241
|
+
|
242
|
+
BOOST_MPL_HAS_XXX_TRAIT_DEF(result_type)
|
243
|
+
|
244
|
+
template<class F> struct get_result_type
|
245
|
+
{
|
246
|
+
typedef typename F::result_type type;
|
247
|
+
};
|
248
|
+
|
249
|
+
template<class F, class A> struct get_sig
|
250
|
+
{
|
251
|
+
typedef typename function_adaptor<F>::template sig<A>::type type;
|
252
|
+
};
|
253
|
+
|
254
|
+
} // namespace detail
|
255
|
+
|
256
|
+
// Ret is detail::unspecified, so try to deduce return type
|
257
|
+
template<int I, class Args>
|
258
|
+
struct return_type_N<function_action<I, detail::unspecified>, Args > {
|
259
|
+
|
260
|
+
// in the case of function action, the first element in Args is
|
261
|
+
// some type of function
|
262
|
+
typedef typename Args::head_type Func;
|
263
|
+
typedef typename detail::remove_reference_and_cv<Func>::type plain_Func;
|
264
|
+
|
265
|
+
public:
|
266
|
+
// pass the function to function_adaptor, and get the return type from
|
267
|
+
// that
|
268
|
+
typedef typename detail::IF<
|
269
|
+
detail::has_result_type<plain_Func>::value,
|
270
|
+
detail::get_result_type<plain_Func>,
|
271
|
+
detail::get_sig<plain_Func, Args>
|
272
|
+
>::RET::type type;
|
273
|
+
};
|
274
|
+
|
275
|
+
|
276
|
+
} // namespace lambda
|
277
|
+
} // namespace boost
|
278
|
+
|
279
|
+
#endif
|
280
|
+
|
281
|
+
|
282
|
+
|
@@ -0,0 +1,74 @@
|
|
1
|
+
// -- select_functions.hpp -- Boost Lambda Library --------------------------
|
2
|
+
|
3
|
+
// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
|
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
|
+
// For more information, see http://www.boost.org
|
10
|
+
|
11
|
+
|
12
|
+
#ifndef BOOST_LAMBDA_SELECT_FUNCTIONS_HPP
|
13
|
+
#define BOOST_LAMBDA_SELECT_FUNCTIONS_HPP
|
14
|
+
|
15
|
+
namespace boost {
|
16
|
+
namespace lambda {
|
17
|
+
namespace detail {
|
18
|
+
|
19
|
+
|
20
|
+
// select functions -------------------------------
|
21
|
+
template<class Any, CALL_TEMPLATE_ARGS>
|
22
|
+
inline Any& select(Any& any, CALL_FORMAL_ARGS) { CALL_USE_ARGS; return any; }
|
23
|
+
|
24
|
+
|
25
|
+
template<class Arg, CALL_TEMPLATE_ARGS>
|
26
|
+
inline typename Arg::template sig<tuple<CALL_REFERENCE_TYPES> >::type
|
27
|
+
select ( const lambda_functor<Arg>& op, CALL_FORMAL_ARGS ) {
|
28
|
+
return op.template call<
|
29
|
+
typename Arg::template sig<tuple<CALL_REFERENCE_TYPES> >::type
|
30
|
+
>(CALL_ACTUAL_ARGS);
|
31
|
+
}
|
32
|
+
template<class Arg, CALL_TEMPLATE_ARGS>
|
33
|
+
inline typename Arg::template sig<tuple<CALL_REFERENCE_TYPES> >::type
|
34
|
+
select ( lambda_functor<Arg>& op, CALL_FORMAL_ARGS) {
|
35
|
+
return op.template call<
|
36
|
+
typename Arg::template sig<tuple<CALL_REFERENCE_TYPES> >::type
|
37
|
+
>(CALL_ACTUAL_ARGS);
|
38
|
+
}
|
39
|
+
|
40
|
+
// ------------------------------------------------------------------------
|
41
|
+
// select functions where the return type is explicitly given
|
42
|
+
// Note: on many functions, this return type is just discarded.
|
43
|
+
// The select functions are inside a class template, and the return type
|
44
|
+
// is a class template argument.
|
45
|
+
// The first implementation used function templates with an explicitly
|
46
|
+
// specified template parameter.
|
47
|
+
// However, this resulted in ambiguous calls (at least with gcc 2.95.2
|
48
|
+
// and edg 2.44). Not sure whether the compilers were right or wrong.
|
49
|
+
|
50
|
+
template<class RET> struct r_select {
|
51
|
+
|
52
|
+
// Any == RET
|
53
|
+
template<class Any, CALL_TEMPLATE_ARGS>
|
54
|
+
static
|
55
|
+
inline RET go (Any& any, CALL_FORMAL_ARGS) { CALL_USE_ARGS; return any; }
|
56
|
+
|
57
|
+
|
58
|
+
template<class Arg, CALL_TEMPLATE_ARGS>
|
59
|
+
static
|
60
|
+
inline RET go (const lambda_functor<Arg>& op, CALL_FORMAL_ARGS ) {
|
61
|
+
return op.template call<RET>(CALL_ACTUAL_ARGS);
|
62
|
+
}
|
63
|
+
template<class Arg, CALL_TEMPLATE_ARGS>
|
64
|
+
static
|
65
|
+
inline RET go (lambda_functor<Arg>& op, CALL_FORMAL_ARGS ) {
|
66
|
+
return op.template call<RET>(CALL_ACTUAL_ARGS);
|
67
|
+
}
|
68
|
+
};
|
69
|
+
|
70
|
+
} // namespace detail
|
71
|
+
} // namespace lambda
|
72
|
+
} // namespace boost
|
73
|
+
|
74
|
+
#endif
|
@@ -0,0 +1,34 @@
|
|
1
|
+
// -- lambda.hpp -- Boost Lambda Library -----------------------------------
|
2
|
+
// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
|
3
|
+
//
|
4
|
+
// Distributed under the Boost Software License, Version 1.0. (See
|
5
|
+
// accompanying file LICENSE_1_0.txt or copy at
|
6
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
7
|
+
//
|
8
|
+
// For more information, see http://lambda.cs.utu.fi
|
9
|
+
|
10
|
+
#ifndef BOOST_LAMBDA_LAMBDA_HPP
|
11
|
+
#define BOOST_LAMBDA_LAMBDA_HPP
|
12
|
+
|
13
|
+
|
14
|
+
#include "boost/lambda/core.hpp"
|
15
|
+
|
16
|
+
#ifdef BOOST_NO_FDECL_TEMPLATES_AS_TEMPLATE_TEMPLATE_PARAMS
|
17
|
+
#include <istream>
|
18
|
+
#include <ostream>
|
19
|
+
#endif
|
20
|
+
|
21
|
+
#include "boost/lambda/detail/operator_actions.hpp"
|
22
|
+
#include "boost/lambda/detail/operator_lambda_func_base.hpp"
|
23
|
+
#include "boost/lambda/detail/operator_return_type_traits.hpp"
|
24
|
+
|
25
|
+
|
26
|
+
#include "boost/lambda/detail/operators.hpp"
|
27
|
+
|
28
|
+
#ifndef BOOST_LAMBDA_FAILS_IN_TEMPLATE_KEYWORD_AFTER_SCOPE_OPER
|
29
|
+
// sorry, member ptr does not work with gcc2.95
|
30
|
+
#include "boost/lambda/detail/member_ptr.hpp"
|
31
|
+
#endif
|
32
|
+
|
33
|
+
|
34
|
+
#endif
|
data/ext/boost/lexical_cast.hpp
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
// with additional fixes and suggestions from Gennaro Prota,
|
19
19
|
// Beman Dawes, Dave Abrahams, Daryle Walker, Peter Dimov,
|
20
20
|
// Alexander Nasonov, Antony Polukhin, Justin Viiret, Michael Hofmann,
|
21
|
-
// Cheng Yang, Matthew Bradbury, David W. Birdsall and other Boosters
|
21
|
+
// Cheng Yang, Matthew Bradbury, David W. Birdsall, Pavel Korzh and other Boosters
|
22
22
|
// when: November 2000, March 2003, June 2005, June 2006, March 2011 - 2012
|
23
23
|
|
24
24
|
#include <boost/config.hpp>
|
@@ -26,65 +26,33 @@
|
|
26
26
|
#define BOOST_LCAST_NO_WCHAR_T
|
27
27
|
#endif
|
28
28
|
|
29
|
-
#if (defined(__MINGW32__) || defined(__MINGW64__)) && (__GNUC__ == 4) \
|
30
|
-
&& ((__GNUC_MINOR__ == 4) || (__GNUC_MINOR__ == 5)) && defined(__STRICT_ANSI__) \
|
31
|
-
&& !defined(BOOST_LCAST_NO_WCHAR_T)
|
32
|
-
|
33
|
-
// workaround for a mingw bug
|
34
|
-
// http://sourceforge.net/tracker/index.php?func=detail&aid=2373234&group_id=2435&atid=102435
|
35
|
-
#include <_mingw.h>
|
36
|
-
#if (__GNUC_MINOR__ == 4)
|
37
|
-
extern "C" {
|
38
|
-
_CRTIMP int __cdecl swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...);
|
39
|
-
_CRTIMP int __cdecl vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...);
|
40
|
-
}
|
41
|
-
#endif
|
42
|
-
#if (__GNUC_MINOR__ == 5)
|
43
|
-
extern "C" {
|
44
|
-
_CRTIMP int __cdecl swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...);
|
45
|
-
_CRTIMP int __cdecl vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , va_list);
|
46
|
-
}
|
47
|
-
#endif
|
48
|
-
#endif
|
49
|
-
|
50
29
|
#include <climits>
|
51
30
|
#include <cstddef>
|
52
|
-
#include <istream>
|
53
31
|
#include <string>
|
54
32
|
#include <cstring>
|
55
33
|
#include <cstdio>
|
56
34
|
#include <typeinfo>
|
57
35
|
#include <exception>
|
58
|
-
#include <cmath>
|
59
36
|
#include <boost/limits.hpp>
|
60
37
|
#include <boost/mpl/if.hpp>
|
61
38
|
#include <boost/throw_exception.hpp>
|
62
|
-
#include <boost/type_traits/is_pointer.hpp>
|
63
|
-
#include <boost/type_traits/is_integral.hpp>
|
64
|
-
#include <boost/type_traits/is_arithmetic.hpp>
|
65
|
-
#include <boost/type_traits/remove_pointer.hpp>
|
66
|
-
#include <boost/numeric/conversion/cast.hpp>
|
67
39
|
#include <boost/type_traits/ice.hpp>
|
68
|
-
#include <boost/type_traits/
|
69
|
-
#include <boost/type_traits/is_signed.hpp>
|
70
|
-
#include <boost/math/special_functions/sign.hpp>
|
71
|
-
#include <boost/math/special_functions/fpclassify.hpp>
|
40
|
+
#include <boost/type_traits/is_pointer.hpp>
|
72
41
|
#include <boost/static_assert.hpp>
|
73
42
|
#include <boost/detail/lcast_precision.hpp>
|
74
43
|
#include <boost/detail/workaround.hpp>
|
75
|
-
|
76
|
-
#include <boost/container/container_fwd.hpp>
|
77
|
-
#endif // !defined(__SUNPRO_CC)
|
78
|
-
#ifndef BOOST_NO_CWCHAR
|
79
|
-
# include <cwchar>
|
80
|
-
#endif
|
44
|
+
|
81
45
|
|
82
46
|
#ifndef BOOST_NO_STD_LOCALE
|
83
47
|
# include <locale>
|
84
48
|
#else
|
85
49
|
# ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE
|
86
|
-
|
87
|
-
|
50
|
+
// Getting error at this point means, that your STL library is old/lame/misconfigured.
|
51
|
+
// If nothing can be done with STL library, define BOOST_LEXICAL_CAST_ASSUME_C_LOCALE,
|
52
|
+
// but beware: lexical_cast will understand only 'C' locale delimeters and thousands
|
53
|
+
// separators.
|
54
|
+
# error "Unable to use <locale> header. Define BOOST_LEXICAL_CAST_ASSUME_C_LOCALE to force "
|
55
|
+
# error "boost::lexical_cast to use only 'C' locale during conversions."
|
88
56
|
# endif
|
89
57
|
#endif
|
90
58
|
|
@@ -104,7 +72,7 @@ _CRTIMP int __cdecl vswprintf(wchar_t * __restrict__ , const wchar_t * __restric
|
|
104
72
|
namespace boost
|
105
73
|
{
|
106
74
|
// exception used to indicate runtime lexical_cast failure
|
107
|
-
class bad_lexical_cast :
|
75
|
+
class BOOST_SYMBOL_VISIBLE bad_lexical_cast :
|
108
76
|
// workaround MSVC bug with std::bad_cast when _HAS_EXCEPTIONS == 0
|
109
77
|
#if defined(BOOST_MSVC) && defined(_HAS_EXCEPTIONS) && !_HAS_EXCEPTIONS
|
110
78
|
public std::exception
|
@@ -119,7 +87,7 @@ namespace boost
|
|
119
87
|
|
120
88
|
{
|
121
89
|
public:
|
122
|
-
bad_lexical_cast() :
|
90
|
+
bad_lexical_cast() BOOST_NOEXCEPT :
|
123
91
|
#ifndef BOOST_NO_TYPEID
|
124
92
|
source(&typeid(void)), target(&typeid(void))
|
125
93
|
#else
|
@@ -130,7 +98,7 @@ namespace boost
|
|
130
98
|
|
131
99
|
bad_lexical_cast(
|
132
100
|
const std::type_info &source_type_arg,
|
133
|
-
const std::type_info &target_type_arg) :
|
101
|
+
const std::type_info &target_type_arg) BOOST_NOEXCEPT :
|
134
102
|
source(&source_type_arg), target(&target_type_arg)
|
135
103
|
{
|
136
104
|
}
|
@@ -144,131 +112,222 @@ namespace boost
|
|
144
112
|
return *target;
|
145
113
|
}
|
146
114
|
|
115
|
+
#ifndef BOOST_NO_NOEXCEPT
|
116
|
+
virtual const char *what() const noexcept
|
117
|
+
#else
|
147
118
|
virtual const char *what() const throw()
|
119
|
+
#endif
|
148
120
|
{
|
149
121
|
return "bad lexical cast: "
|
150
122
|
"source type value could not be interpreted as target";
|
151
123
|
}
|
124
|
+
|
125
|
+
#ifndef BOOST_NO_NOEXCEPT
|
126
|
+
virtual ~bad_lexical_cast() BOOST_NOEXCEPT
|
127
|
+
#else
|
152
128
|
virtual ~bad_lexical_cast() throw()
|
153
|
-
|
154
|
-
}
|
129
|
+
#endif
|
130
|
+
{}
|
155
131
|
private:
|
156
132
|
const std::type_info *source;
|
157
133
|
const std::type_info *target;
|
158
134
|
};
|
159
135
|
|
160
|
-
namespace detail //
|
136
|
+
namespace detail // widest_char
|
161
137
|
{
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
138
|
+
template <typename TargetChar, typename SourceChar>
|
139
|
+
struct widest_char
|
140
|
+
{
|
141
|
+
typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c<
|
142
|
+
(sizeof(TargetChar) > sizeof(SourceChar))
|
143
|
+
, TargetChar
|
144
|
+
, SourceChar >::type type;
|
145
|
+
};
|
146
|
+
}
|
147
|
+
} // namespace boost
|
167
148
|
|
168
|
-
#
|
169
|
-
template<class CharT, class Traits, class Alloc>
|
170
|
-
struct stream_char< std::basic_string<CharT,Traits,Alloc> >
|
171
|
-
{
|
172
|
-
typedef CharT type;
|
173
|
-
};
|
149
|
+
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(__SUNPRO_CC) && !defined(__PGIC__)
|
174
150
|
|
175
|
-
#
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
};
|
181
|
-
#endif // !defined(__SUNPRO_CC)
|
151
|
+
#include <cmath>
|
152
|
+
#include <istream>
|
153
|
+
|
154
|
+
#if !defined(BOOST_NO_CXX11_HDR_ARRAY) && defined(BOOST_HAS_TR1_ARRAY)
|
155
|
+
#include <array>
|
182
156
|
#endif
|
183
157
|
|
184
|
-
#
|
185
|
-
#
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
158
|
+
#include <boost/array.hpp>
|
159
|
+
#include <boost/numeric/conversion/cast.hpp>
|
160
|
+
#include <boost/type_traits/make_unsigned.hpp>
|
161
|
+
#include <boost/type_traits/is_signed.hpp>
|
162
|
+
#include <boost/type_traits/is_integral.hpp>
|
163
|
+
#include <boost/type_traits/is_arithmetic.hpp>
|
164
|
+
#include <boost/type_traits/remove_pointer.hpp>
|
165
|
+
#include <boost/math/special_functions/sign.hpp>
|
166
|
+
#include <boost/math/special_functions/fpclassify.hpp>
|
167
|
+
#include <boost/range/iterator_range_core.hpp>
|
168
|
+
#include <boost/container/container_fwd.hpp>
|
169
|
+
#ifndef BOOST_NO_CWCHAR
|
170
|
+
# include <cwchar>
|
191
171
|
#endif
|
192
172
|
|
193
|
-
|
194
|
-
|
173
|
+
namespace boost {
|
174
|
+
namespace detail // widest_char<...> (continuation)
|
195
175
|
{
|
196
|
-
|
197
|
-
};
|
176
|
+
struct not_a_character_type{};
|
198
177
|
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
178
|
+
template <typename CharT>
|
179
|
+
struct widest_char<not_a_character_type, CharT >
|
180
|
+
{
|
181
|
+
typedef CharT type;
|
182
|
+
};
|
183
|
+
|
184
|
+
template <typename CharT>
|
185
|
+
struct widest_char< CharT, not_a_character_type >
|
186
|
+
{
|
187
|
+
typedef CharT type;
|
188
|
+
};
|
189
|
+
|
190
|
+
template <>
|
191
|
+
struct widest_char< not_a_character_type, not_a_character_type >
|
192
|
+
{
|
193
|
+
typedef char type;
|
194
|
+
};
|
195
|
+
}
|
204
196
|
|
205
|
-
|
206
|
-
template<>
|
207
|
-
struct stream_char<std::wstring>
|
197
|
+
namespace detail // is_char_or_wchar<...> and stream_char<...> templates
|
208
198
|
{
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
199
|
+
// returns true, if T is one of the character types
|
200
|
+
template <typename T>
|
201
|
+
struct is_char_or_wchar
|
202
|
+
{
|
203
|
+
typedef ::boost::type_traits::ice_or<
|
204
|
+
::boost::is_same< T, char >::value,
|
205
|
+
#ifndef BOOST_LCAST_NO_WCHAR_T
|
206
|
+
::boost::is_same< T, wchar_t >::value,
|
207
|
+
#endif
|
208
|
+
#ifndef BOOST_NO_CHAR16_T
|
209
|
+
::boost::is_same< T, char16_t >::value,
|
210
|
+
#endif
|
211
|
+
#ifndef BOOST_NO_CHAR32_T
|
212
|
+
::boost::is_same< T, char32_t >::value,
|
213
|
+
#endif
|
214
|
+
::boost::is_same< T, unsigned char >::value,
|
215
|
+
::boost::is_same< T, signed char >::value
|
216
|
+
> result_type;
|
217
|
+
|
218
|
+
BOOST_STATIC_CONSTANT(bool, value = (result_type::value) );
|
219
|
+
};
|
213
220
|
|
221
|
+
// selectors for choosing stream character type
|
222
|
+
// returns one of char, wchar_t, char16_t, char32_t or not_a_character_type types
|
223
|
+
template <typename Type>
|
224
|
+
struct stream_char
|
225
|
+
{
|
226
|
+
typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c<
|
227
|
+
is_char_or_wchar<Type >::value,
|
228
|
+
Type,
|
229
|
+
boost::detail::not_a_character_type
|
230
|
+
>::type type;
|
231
|
+
};
|
214
232
|
|
215
|
-
|
233
|
+
template <>
|
234
|
+
struct stream_char<unsigned char>
|
235
|
+
{
|
236
|
+
typedef char type;
|
237
|
+
};
|
216
238
|
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
239
|
+
template <>
|
240
|
+
struct stream_char<signed char>
|
241
|
+
{
|
242
|
+
typedef char type;
|
243
|
+
};
|
222
244
|
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
245
|
+
template <typename CharT>
|
246
|
+
struct stream_char<CharT*>
|
247
|
+
{
|
248
|
+
typedef BOOST_DEDUCED_TYPENAME stream_char<CharT>::type type;
|
249
|
+
};
|
228
250
|
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
251
|
+
template <typename CharT>
|
252
|
+
struct stream_char<const CharT*>
|
253
|
+
{
|
254
|
+
typedef BOOST_DEDUCED_TYPENAME stream_char<CharT>::type type;
|
255
|
+
};
|
234
256
|
|
235
|
-
|
257
|
+
template <typename CharT>
|
258
|
+
struct stream_char<iterator_range<CharT*> >
|
259
|
+
{
|
260
|
+
typedef BOOST_DEDUCED_TYPENAME stream_char<CharT*>::type type;
|
261
|
+
};
|
262
|
+
|
263
|
+
template <typename CharT>
|
264
|
+
struct stream_char<iterator_range<const CharT*> >
|
265
|
+
{
|
266
|
+
typedef BOOST_DEDUCED_TYPENAME stream_char<const CharT*>::type type;
|
267
|
+
};
|
236
268
|
|
237
|
-
|
269
|
+
template <class CharT, class Traits, class Alloc>
|
270
|
+
struct stream_char< std::basic_string<CharT, Traits, Alloc> >
|
271
|
+
{
|
272
|
+
typedef CharT type;
|
273
|
+
};
|
238
274
|
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
275
|
+
template <class CharT, class Traits, class Alloc>
|
276
|
+
struct stream_char< ::boost::container::basic_string<CharT, Traits, Alloc> >
|
277
|
+
{
|
278
|
+
typedef CharT type;
|
279
|
+
};
|
244
280
|
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
281
|
+
template<typename CharT, std::size_t N>
|
282
|
+
struct stream_char<boost::array<CharT, N> >
|
283
|
+
{
|
284
|
+
typedef BOOST_DEDUCED_TYPENAME stream_char<CharT>::type type;
|
285
|
+
};
|
250
286
|
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
287
|
+
template<typename CharT, std::size_t N>
|
288
|
+
struct stream_char<boost::array<const CharT, N> >
|
289
|
+
{
|
290
|
+
typedef BOOST_DEDUCED_TYPENAME stream_char<CharT>::type type;
|
291
|
+
};
|
256
292
|
|
257
|
-
#
|
293
|
+
#if !defined(BOOST_NO_CXX11_HDR_ARRAY) && defined(BOOST_HAS_TR1_ARRAY)
|
294
|
+
template <typename CharT, std::size_t N>
|
295
|
+
struct stream_char<std::array<CharT, N> >
|
296
|
+
{
|
297
|
+
typedef BOOST_DEDUCED_TYPENAME stream_char<CharT>::type type;
|
298
|
+
};
|
258
299
|
|
259
|
-
template<typename
|
260
|
-
struct
|
300
|
+
template <typename CharT, std::size_t N>
|
301
|
+
struct stream_char<std::array<const CharT, N> >
|
261
302
|
{
|
262
|
-
typedef BOOST_DEDUCED_TYPENAME
|
263
|
-
(sizeof(TargetChar) > sizeof(SourceChar))
|
264
|
-
, TargetChar
|
265
|
-
, SourceChar >::type type;
|
303
|
+
typedef BOOST_DEDUCED_TYPENAME stream_char<CharT>::type type;
|
266
304
|
};
|
305
|
+
#endif // !defined(BOOST_NO_CXX11_HDR_ARRAY) && defined(BOOST_HAS_TR1_ARRAY)
|
306
|
+
|
307
|
+
#if !defined(BOOST_LCAST_NO_WCHAR_T) && defined(BOOST_NO_INTRINSIC_WCHAR_T)
|
308
|
+
template<>
|
309
|
+
struct stream_char<wchar_t>
|
310
|
+
{
|
311
|
+
typedef boost::detail::not_a_character_type type;
|
312
|
+
};
|
313
|
+
|
314
|
+
template<>
|
315
|
+
struct stream_char<wchar_t*>
|
316
|
+
{
|
317
|
+
typedef wchar_t type;
|
318
|
+
};
|
319
|
+
|
320
|
+
template<>
|
321
|
+
struct stream_char<const wchar_t*>
|
322
|
+
{
|
323
|
+
typedef wchar_t type;
|
324
|
+
};
|
325
|
+
#endif
|
267
326
|
}
|
268
327
|
|
269
328
|
namespace detail // deduce_char_traits template
|
270
329
|
{
|
271
|
-
|
330
|
+
|
272
331
|
template<class CharT, class Target, class Source>
|
273
332
|
struct deduce_char_traits
|
274
333
|
{
|
@@ -293,7 +352,6 @@ namespace boost
|
|
293
352
|
typedef Traits type;
|
294
353
|
};
|
295
354
|
|
296
|
-
#if !defined(__SUNPRO_CC)
|
297
355
|
template<class CharT, class Traits, class Alloc, class Source>
|
298
356
|
struct deduce_char_traits< CharT
|
299
357
|
, ::boost::container::basic_string<CharT,Traits,Alloc>
|
@@ -333,7 +391,7 @@ namespace boost
|
|
333
391
|
template<class CharT, class Traits, class Alloc1, class Alloc2>
|
334
392
|
struct deduce_char_traits< CharT
|
335
393
|
, ::boost::container::basic_string<CharT,Traits,Alloc1>
|
336
|
-
, std::basic_string<CharT,Traits,Alloc2>
|
394
|
+
, ::std::basic_string<CharT,Traits,Alloc2>
|
337
395
|
>
|
338
396
|
{
|
339
397
|
typedef Traits type;
|
@@ -341,14 +399,12 @@ namespace boost
|
|
341
399
|
|
342
400
|
template<class CharT, class Traits, class Alloc1, class Alloc2>
|
343
401
|
struct deduce_char_traits< CharT
|
344
|
-
, std::basic_string<CharT,Traits,Alloc1>
|
402
|
+
, ::std::basic_string<CharT,Traits,Alloc1>
|
345
403
|
, ::boost::container::basic_string<CharT,Traits,Alloc2>
|
346
404
|
>
|
347
405
|
{
|
348
406
|
typedef Traits type;
|
349
407
|
};
|
350
|
-
#endif // !defined(__SUNPRO_CC)
|
351
|
-
#endif
|
352
408
|
}
|
353
409
|
|
354
410
|
namespace detail // lcast_src_length
|
@@ -391,7 +447,7 @@ namespace boost
|
|
391
447
|
BOOST_STATIC_ASSERT(sizeof(Source) * CHAR_BIT <= 256);
|
392
448
|
#endif
|
393
449
|
};
|
394
|
-
|
450
|
+
|
395
451
|
#define BOOST_LCAST_DEF(T) \
|
396
452
|
template<> struct lcast_src_length<T> \
|
397
453
|
: lcast_src_length_integral<T> \
|
@@ -488,7 +544,7 @@ namespace boost
|
|
488
544
|
};
|
489
545
|
#endif
|
490
546
|
|
491
|
-
#
|
547
|
+
#if !defined(BOOST_NO_CHAR16_T) && !defined(BOOST_NO_UNICODE_LITERALS)
|
492
548
|
template<>
|
493
549
|
struct lcast_char_constants<char16_t>
|
494
550
|
{
|
@@ -501,7 +557,7 @@ namespace boost
|
|
501
557
|
};
|
502
558
|
#endif
|
503
559
|
|
504
|
-
#
|
560
|
+
#if !defined(BOOST_NO_CHAR32_T) && !defined(BOOST_NO_UNICODE_LITERALS)
|
505
561
|
template<>
|
506
562
|
struct lcast_char_constants<char32_t>
|
507
563
|
{
|
@@ -526,10 +582,10 @@ namespace boost
|
|
526
582
|
#endif
|
527
583
|
template<class T>
|
528
584
|
inline
|
529
|
-
BOOST_DEDUCED_TYPENAME make_unsigned<T>::type lcast_to_unsigned(T value)
|
585
|
+
BOOST_DEDUCED_TYPENAME make_unsigned<T>::type lcast_to_unsigned(T value) BOOST_NOEXCEPT
|
530
586
|
{
|
531
587
|
typedef BOOST_DEDUCED_TYPENAME make_unsigned<T>::type result_type;
|
532
|
-
result_type uvalue = static_cast<result_type>(value);
|
588
|
+
const result_type uvalue = static_cast<result_type>(value);
|
533
589
|
return value < 0 ? -uvalue : uvalue;
|
534
590
|
}
|
535
591
|
#if (defined _MSC_VER)
|
@@ -732,12 +788,21 @@ namespace boost
|
|
732
788
|
|
733
789
|
namespace detail
|
734
790
|
{
|
791
|
+
template <class CharT>
|
792
|
+
bool lc_iequal(const CharT* val, const CharT* lcase, const CharT* ucase, unsigned int len) BOOST_NOEXCEPT {
|
793
|
+
for( unsigned int i=0; i < len; ++i ) {
|
794
|
+
if ( val[i] != lcase[i] && val[i] != ucase[i] ) return false;
|
795
|
+
}
|
796
|
+
|
797
|
+
return true;
|
798
|
+
}
|
799
|
+
|
735
800
|
/* Returns true and sets the correct value if found NaN or Inf. */
|
736
801
|
template <class CharT, class T>
|
737
802
|
inline bool parse_inf_nan_impl(const CharT* begin, const CharT* end, T& value
|
738
803
|
, const CharT* lc_NAN, const CharT* lc_nan
|
739
804
|
, const CharT* lc_INFINITY, const CharT* lc_infinity
|
740
|
-
, const CharT opening_brace, const CharT closing_brace)
|
805
|
+
, const CharT opening_brace, const CharT closing_brace) BOOST_NOEXCEPT
|
741
806
|
{
|
742
807
|
using namespace std;
|
743
808
|
if (begin == end) return false;
|
@@ -755,7 +820,7 @@ namespace boost
|
|
755
820
|
else if( *begin == plus ) ++begin;
|
756
821
|
|
757
822
|
if( end-begin < 3 ) return false;
|
758
|
-
if(
|
823
|
+
if( lc_iequal(begin, lc_nan, lc_NAN, 3) )
|
759
824
|
{
|
760
825
|
begin += 3;
|
761
826
|
if (end != begin) /* It is 'nan(...)' or some bad input*/
|
@@ -772,13 +837,13 @@ namespace boost
|
|
772
837
|
if (( /* 'INF' or 'inf' */
|
773
838
|
end-begin==3
|
774
839
|
&&
|
775
|
-
(
|
840
|
+
lc_iequal(begin, lc_infinity, lc_INFINITY, 3)
|
776
841
|
)
|
777
842
|
||
|
778
843
|
( /* 'INFINITY' or 'infinity' */
|
779
844
|
end-begin==inifinity_size
|
780
845
|
&&
|
781
|
-
(
|
846
|
+
lc_iequal(begin, lc_infinity, lc_INFINITY, inifinity_size)
|
782
847
|
)
|
783
848
|
)
|
784
849
|
{
|
@@ -790,112 +855,105 @@ namespace boost
|
|
790
855
|
return false;
|
791
856
|
}
|
792
857
|
|
858
|
+
template <class CharT, class T>
|
859
|
+
bool put_inf_nan_impl(CharT* begin, CharT*& end, const T& value
|
860
|
+
, const CharT* lc_nan
|
861
|
+
, const CharT* lc_infinity) BOOST_NOEXCEPT
|
862
|
+
{
|
863
|
+
using namespace std;
|
864
|
+
const CharT minus = lcast_char_constants<CharT>::minus;
|
865
|
+
if ( (boost::math::isnan)(value) )
|
866
|
+
{
|
867
|
+
if ( (boost::math::signbit)(value) )
|
868
|
+
{
|
869
|
+
*begin = minus;
|
870
|
+
++ begin;
|
871
|
+
}
|
872
|
+
|
873
|
+
memcpy(begin, lc_nan, 3 * sizeof(CharT));
|
874
|
+
end = begin + 3;
|
875
|
+
return true;
|
876
|
+
} else if ( (boost::math::isinf)(value) )
|
877
|
+
{
|
878
|
+
if ( (boost::math::signbit)(value) )
|
879
|
+
{
|
880
|
+
*begin = minus;
|
881
|
+
++ begin;
|
882
|
+
}
|
883
|
+
|
884
|
+
memcpy(begin, lc_infinity, 3 * sizeof(CharT));
|
885
|
+
end = begin + 3;
|
886
|
+
return true;
|
887
|
+
}
|
888
|
+
|
889
|
+
return false;
|
890
|
+
}
|
891
|
+
|
892
|
+
|
793
893
|
#ifndef BOOST_LCAST_NO_WCHAR_T
|
794
894
|
template <class T>
|
795
|
-
bool parse_inf_nan(const wchar_t* begin, const wchar_t* end, T& value)
|
895
|
+
bool parse_inf_nan(const wchar_t* begin, const wchar_t* end, T& value) BOOST_NOEXCEPT
|
796
896
|
{
|
797
897
|
return parse_inf_nan_impl(begin, end, value
|
798
898
|
, L"NAN", L"nan"
|
799
899
|
, L"INFINITY", L"infinity"
|
800
900
|
, L'(', L')');
|
801
901
|
}
|
902
|
+
|
903
|
+
template <class T>
|
904
|
+
bool put_inf_nan(wchar_t* begin, wchar_t*& end, const T& value) BOOST_NOEXCEPT
|
905
|
+
{
|
906
|
+
return put_inf_nan_impl(begin, end, value, L"nan", L"infinity");
|
907
|
+
}
|
908
|
+
|
802
909
|
#endif
|
803
|
-
#
|
910
|
+
#if !defined(BOOST_NO_CHAR16_T) && !defined(BOOST_NO_UNICODE_LITERALS)
|
804
911
|
template <class T>
|
805
|
-
bool parse_inf_nan(const char16_t* begin, const char16_t* end, T& value)
|
912
|
+
bool parse_inf_nan(const char16_t* begin, const char16_t* end, T& value) BOOST_NOEXCEPT
|
806
913
|
{
|
807
914
|
return parse_inf_nan_impl(begin, end, value
|
808
915
|
, u"NAN", u"nan"
|
809
916
|
, u"INFINITY", u"infinity"
|
810
917
|
, u'(', u')');
|
811
918
|
}
|
919
|
+
|
920
|
+
template <class T>
|
921
|
+
bool put_inf_nan(char16_t* begin, char16_t*& end, const T& value) BOOST_NOEXCEPT
|
922
|
+
{
|
923
|
+
return put_inf_nan_impl(begin, end, value, u"nan", u"infinity");
|
924
|
+
}
|
812
925
|
#endif
|
813
|
-
#
|
926
|
+
#if !defined(BOOST_NO_CHAR32_T) && !defined(BOOST_NO_UNICODE_LITERALS)
|
814
927
|
template <class T>
|
815
|
-
bool parse_inf_nan(const char32_t* begin, const char32_t* end, T& value)
|
928
|
+
bool parse_inf_nan(const char32_t* begin, const char32_t* end, T& value) BOOST_NOEXCEPT
|
816
929
|
{
|
817
930
|
return parse_inf_nan_impl(begin, end, value
|
818
931
|
, U"NAN", U"nan"
|
819
932
|
, U"INFINITY", U"infinity"
|
820
933
|
, U'(', U')');
|
821
934
|
}
|
935
|
+
|
936
|
+
template <class T>
|
937
|
+
bool put_inf_nan(char32_t* begin, char32_t*& end, const T& value) BOOST_NOEXCEPT
|
938
|
+
{
|
939
|
+
return put_inf_nan_impl(begin, end, value, U"nan", U"infinity");
|
940
|
+
}
|
822
941
|
#endif
|
823
942
|
|
824
943
|
template <class CharT, class T>
|
825
|
-
bool parse_inf_nan(const CharT* begin, const CharT* end, T& value)
|
944
|
+
bool parse_inf_nan(const CharT* begin, const CharT* end, T& value) BOOST_NOEXCEPT
|
826
945
|
{
|
827
946
|
return parse_inf_nan_impl(begin, end, value
|
828
947
|
, "NAN", "nan"
|
829
948
|
, "INFINITY", "infinity"
|
830
949
|
, '(', ')');
|
831
950
|
}
|
832
|
-
#ifndef BOOST_LCAST_NO_WCHAR_T
|
833
|
-
template <class T>
|
834
|
-
bool put_inf_nan(wchar_t* begin, wchar_t*& end, const T& value)
|
835
|
-
{
|
836
|
-
using namespace std;
|
837
|
-
if ( (boost::math::isnan)(value) )
|
838
|
-
{
|
839
|
-
if ( (boost::math::signbit)(value) )
|
840
|
-
{
|
841
|
-
memcpy(begin,L"-nan", sizeof(L"-nan"));
|
842
|
-
end = begin + 4;
|
843
|
-
} else
|
844
|
-
{
|
845
|
-
memcpy(begin,L"nan", sizeof(L"nan"));
|
846
|
-
end = begin + 3;
|
847
|
-
}
|
848
|
-
return true;
|
849
|
-
} else if ( (boost::math::isinf)(value) )
|
850
|
-
{
|
851
|
-
if ( (boost::math::signbit)(value) )
|
852
|
-
{
|
853
|
-
memcpy(begin,L"-inf", sizeof(L"-inf"));
|
854
|
-
end = begin + 4;
|
855
|
-
} else
|
856
|
-
{
|
857
|
-
memcpy(begin,L"inf", sizeof(L"inf"));
|
858
|
-
end = begin + 3;
|
859
|
-
}
|
860
|
-
return true;
|
861
|
-
}
|
862
951
|
|
863
|
-
return false;
|
864
|
-
}
|
865
|
-
#endif
|
866
952
|
template <class CharT, class T>
|
867
|
-
bool put_inf_nan(CharT* begin, CharT*& end, const T& value)
|
953
|
+
bool put_inf_nan(CharT* begin, CharT*& end, const T& value) BOOST_NOEXCEPT
|
868
954
|
{
|
869
|
-
|
870
|
-
if ( (boost::math::isnan)(value) )
|
871
|
-
{
|
872
|
-
if ( (boost::math::signbit)(value) )
|
873
|
-
{
|
874
|
-
memcpy(begin,"-nan", sizeof("-nan"));
|
875
|
-
end = begin + 4;
|
876
|
-
} else
|
877
|
-
{
|
878
|
-
memcpy(begin,"nan", sizeof("nan"));
|
879
|
-
end = begin + 3;
|
880
|
-
}
|
881
|
-
return true;
|
882
|
-
} else if ( (boost::math::isinf)(value) )
|
883
|
-
{
|
884
|
-
if ( (boost::math::signbit)(value) )
|
885
|
-
{
|
886
|
-
memcpy(begin,"-inf", sizeof("-inf"));
|
887
|
-
end = begin + 4;
|
888
|
-
} else
|
889
|
-
{
|
890
|
-
memcpy(begin,"inf", sizeof("inf"));
|
891
|
-
end = begin + 3;
|
892
|
-
}
|
893
|
-
return true;
|
894
|
-
}
|
895
|
-
|
896
|
-
return false;
|
955
|
+
return put_inf_nan_impl(begin, end, value, "nan", "infinity");
|
897
956
|
}
|
898
|
-
|
899
957
|
}
|
900
958
|
|
901
959
|
|
@@ -951,7 +1009,7 @@ namespace boost
|
|
951
1009
|
CharT const capital_e = lcast_char_constants<CharT>::capital_e;
|
952
1010
|
CharT const lowercase_e = lcast_char_constants<CharT>::lowercase_e;
|
953
1011
|
|
954
|
-
value = 0
|
1012
|
+
value = static_cast<T>(0);
|
955
1013
|
|
956
1014
|
if (parse_inf_nan(begin, end, value)) return true;
|
957
1015
|
|
@@ -962,11 +1020,11 @@ namespace boost
|
|
962
1020
|
|
963
1021
|
/* Getting the plus/minus sign */
|
964
1022
|
bool has_minus = false;
|
965
|
-
if (
|
1023
|
+
if (Traits::eq(*begin, minus) ) {
|
966
1024
|
++ begin;
|
967
1025
|
has_minus = true;
|
968
1026
|
if (begin == end) return false;
|
969
|
-
} else if (
|
1027
|
+
} else if (Traits::eq(*begin, plus) ) {
|
970
1028
|
++begin;
|
971
1029
|
if (begin == end) return false;
|
972
1030
|
}
|
@@ -985,7 +1043,7 @@ namespace boost
|
|
985
1043
|
/* We allow no thousand_separators after decimal point */
|
986
1044
|
|
987
1045
|
mantissa_type tmp_mantissa = mantissa * 10u;
|
988
|
-
if (
|
1046
|
+
if (Traits::eq(*begin, lowercase_e) || Traits::eq(*begin, capital_e)) break;
|
989
1047
|
if ( *begin < czero || *begin >= czero + 10 ) return false;
|
990
1048
|
if ( is_mantissa_full
|
991
1049
|
|| tmp_mantissa / 10u != mantissa
|
@@ -1024,7 +1082,7 @@ namespace boost
|
|
1024
1082
|
|
1025
1083
|
found_number_before_exp = true;
|
1026
1084
|
++ length_since_last_delim;
|
1027
|
-
} else if (
|
1085
|
+
} else if (Traits::eq(*begin, decimal_point) || Traits::eq(*begin, lowercase_e) || Traits::eq(*begin, capital_e)) {
|
1028
1086
|
#ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE
|
1029
1087
|
/* If ( we need to check grouping
|
1030
1088
|
* and ( grouping missmatches
|
@@ -1042,9 +1100,10 @@ namespace boost
|
|
1042
1100
|
) return false;
|
1043
1101
|
#endif
|
1044
1102
|
|
1045
|
-
if(*begin
|
1103
|
+
if(Traits::eq(*begin, decimal_point)) {
|
1046
1104
|
++ begin;
|
1047
1105
|
found_decimal = true;
|
1106
|
+
if (!found_number_before_exp && begin==end) return false;
|
1048
1107
|
continue;
|
1049
1108
|
}else {
|
1050
1109
|
if (!found_number_before_exp) return false;
|
@@ -1052,7 +1111,7 @@ namespace boost
|
|
1052
1111
|
}
|
1053
1112
|
}
|
1054
1113
|
#ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE
|
1055
|
-
else if (grouping_size && *begin
|
1114
|
+
else if (grouping_size && Traits::eq(*begin, thousands_sep)){
|
1056
1115
|
if(found_grouping)
|
1057
1116
|
{
|
1058
1117
|
/* It is not he first time, when we find thousands separator,
|
@@ -1094,16 +1153,16 @@ namespace boost
|
|
1094
1153
|
}
|
1095
1154
|
|
1096
1155
|
// Exponent found
|
1097
|
-
if ( begin != end && (
|
1156
|
+
if ( begin != end && (Traits::eq(*begin, lowercase_e) || Traits::eq(*begin, capital_e)) ) {
|
1098
1157
|
++ begin;
|
1099
1158
|
if ( begin == end ) return false;
|
1100
1159
|
|
1101
1160
|
bool exp_has_minus = false;
|
1102
|
-
if(
|
1161
|
+
if(Traits::eq(*begin, minus)) {
|
1103
1162
|
exp_has_minus = true;
|
1104
1163
|
++ begin;
|
1105
1164
|
if ( begin == end ) return false;
|
1106
|
-
} else if (*begin
|
1165
|
+
} else if (Traits::eq(*begin, plus)) {
|
1107
1166
|
++ begin;
|
1108
1167
|
if ( begin == end ) return false;
|
1109
1168
|
}
|
@@ -1165,7 +1224,7 @@ namespace boost
|
|
1165
1224
|
|
1166
1225
|
namespace detail
|
1167
1226
|
{
|
1168
|
-
struct
|
1227
|
+
struct do_not_construct_out_stream_t{};
|
1169
1228
|
}
|
1170
1229
|
|
1171
1230
|
namespace detail // optimized stream wrapper
|
@@ -1177,25 +1236,27 @@ namespace boost
|
|
1177
1236
|
>
|
1178
1237
|
class lexical_stream_limited_src
|
1179
1238
|
{
|
1180
|
-
typedef stl_buf_unlocker<std::basic_streambuf<CharT, Traits>, CharT > local_streambuffer_t;
|
1181
1239
|
|
1182
1240
|
#if defined(BOOST_NO_STRINGSTREAM)
|
1183
|
-
typedef
|
1241
|
+
typedef std::ostrstream out_stream_t;
|
1242
|
+
typedef stl_buf_unlocker<std::strstreambuf, char> unlocked_but_t;
|
1184
1243
|
#elif defined(BOOST_NO_STD_LOCALE)
|
1185
|
-
typedef
|
1244
|
+
typedef std::ostringstream out_stream_t;
|
1245
|
+
typedef stl_buf_unlocker<std::stringbuf, char> unlocked_but_t;
|
1186
1246
|
#else
|
1187
|
-
typedef
|
1247
|
+
typedef std::basic_ostringstream<CharT, Traits> out_stream_t;
|
1248
|
+
typedef stl_buf_unlocker<std::basic_stringbuf<CharT, Traits>, CharT> unlocked_but_t;
|
1188
1249
|
#endif
|
1189
1250
|
typedef BOOST_DEDUCED_TYPENAME ::boost::mpl::if_c<
|
1190
1251
|
RequiresStringbuffer,
|
1191
|
-
|
1192
|
-
|
1193
|
-
>::type
|
1252
|
+
out_stream_t,
|
1253
|
+
do_not_construct_out_stream_t
|
1254
|
+
>::type deduced_out_stream_t;
|
1194
1255
|
|
1195
1256
|
// A string representation of Source is written to [start, finish).
|
1196
1257
|
CharT* start;
|
1197
1258
|
CharT* finish;
|
1198
|
-
|
1259
|
+
deduced_out_stream_t out_stream;
|
1199
1260
|
|
1200
1261
|
public:
|
1201
1262
|
lexical_stream_limited_src(CharT* sta, CharT* fin)
|
@@ -1209,7 +1270,7 @@ namespace boost
|
|
1209
1270
|
void operator=(lexical_stream_limited_src const&);
|
1210
1271
|
|
1211
1272
|
/************************************ HELPER FUNCTIONS FOR OPERATORS << ( ... ) ********************************/
|
1212
|
-
bool shl_char(CharT ch)
|
1273
|
+
bool shl_char(CharT ch) BOOST_NOEXCEPT
|
1213
1274
|
{
|
1214
1275
|
Traits::assign(*start, ch);
|
1215
1276
|
finish = start + 1;
|
@@ -1221,13 +1282,13 @@ namespace boost
|
|
1221
1282
|
bool shl_char(T ch)
|
1222
1283
|
{
|
1223
1284
|
BOOST_STATIC_ASSERT_MSG(( sizeof(T) <= sizeof(CharT)) ,
|
1224
|
-
"boost::lexical_cast does not support
|
1285
|
+
"boost::lexical_cast does not support narrowing of char types."
|
1225
1286
|
"Use boost::locale instead" );
|
1226
1287
|
#ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE
|
1227
1288
|
std::locale loc;
|
1228
|
-
|
1289
|
+
CharT const w = BOOST_USE_FACET(std::ctype<CharT>, loc).widen(ch);
|
1229
1290
|
#else
|
1230
|
-
|
1291
|
+
CharT const w = ch;
|
1231
1292
|
#endif
|
1232
1293
|
Traits::assign(*start, w);
|
1233
1294
|
finish = start + 1;
|
@@ -1235,31 +1296,42 @@ namespace boost
|
|
1235
1296
|
}
|
1236
1297
|
#endif
|
1237
1298
|
|
1238
|
-
bool shl_char_array(CharT const* str)
|
1299
|
+
bool shl_char_array(CharT const* str) BOOST_NOEXCEPT
|
1239
1300
|
{
|
1240
1301
|
start = const_cast<CharT*>(str);
|
1241
1302
|
finish = start + Traits::length(str);
|
1242
1303
|
return true;
|
1243
1304
|
}
|
1244
1305
|
|
1245
|
-
#ifndef BOOST_LCAST_NO_WCHAR_T
|
1246
1306
|
template <class T>
|
1247
1307
|
bool shl_char_array(T const* str)
|
1248
1308
|
{
|
1249
1309
|
BOOST_STATIC_ASSERT_MSG(( sizeof(T) <= sizeof(CharT)),
|
1250
|
-
"boost::lexical_cast does not support
|
1310
|
+
"boost::lexical_cast does not support narrowing of char types."
|
1251
1311
|
"Use boost::locale instead" );
|
1252
1312
|
return shl_input_streamable(str);
|
1253
1313
|
}
|
1254
|
-
|
1314
|
+
|
1315
|
+
bool shl_char_array_limited(CharT const* str, std::size_t max_size) BOOST_NOEXCEPT
|
1316
|
+
{
|
1317
|
+
start = const_cast<CharT*>(str);
|
1318
|
+
finish = std::find(start, start + max_size, Traits::to_char_type(0));
|
1319
|
+
return true;
|
1320
|
+
}
|
1255
1321
|
|
1256
1322
|
template<typename InputStreamable>
|
1257
1323
|
bool shl_input_streamable(InputStreamable& input)
|
1258
1324
|
{
|
1259
|
-
|
1260
|
-
|
1261
|
-
|
1262
|
-
|
1325
|
+
#if defined(BOOST_NO_STRINGSTREAM) || defined(BOOST_NO_STD_LOCALE)
|
1326
|
+
// If you have compilation error at this point, than your STL library
|
1327
|
+
// does not support such conversions. Try updating it.
|
1328
|
+
BOOST_STATIC_ASSERT((boost::is_same<char, CharT>::value));
|
1329
|
+
#endif
|
1330
|
+
bool const result = !(out_stream << input).fail();
|
1331
|
+
const unlocked_but_t* const p
|
1332
|
+
= static_cast<unlocked_but_t*>(out_stream.rdbuf()) ;
|
1333
|
+
start = p->pbase();
|
1334
|
+
finish = p->pptr();
|
1263
1335
|
return result;
|
1264
1336
|
}
|
1265
1337
|
|
@@ -1276,110 +1348,105 @@ namespace boost
|
|
1276
1348
|
return true;
|
1277
1349
|
}
|
1278
1350
|
|
1279
|
-
|
1280
|
-
|
1281
|
-
|
1282
|
-
|
1283
|
-
|
1351
|
+
template <class T, class SomeCharT>
|
1352
|
+
bool shl_real_type(const T& val, SomeCharT* begin, SomeCharT*& end)
|
1353
|
+
{
|
1354
|
+
if (put_inf_nan(begin, end, val)) return true;
|
1355
|
+
lcast_set_precision(out_stream, &val);
|
1356
|
+
return shl_input_streamable(val);
|
1357
|
+
}
|
1284
1358
|
|
1285
|
-
|
1286
|
-
bool shl_float(float val,T* out)
|
1359
|
+
static bool shl_real_type(float val, char* begin, char*& end)
|
1287
1360
|
{ using namespace std;
|
1288
|
-
if (put_inf_nan(
|
1289
|
-
|
1290
|
-
|
1361
|
+
if (put_inf_nan(begin, end, val)) return true;
|
1362
|
+
const double val_as_double = val;
|
1363
|
+
end = begin +
|
1364
|
+
#if defined(_MSC_VER) && (_MSC_VER >= 1400) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
|
1365
|
+
sprintf_s(begin, end-begin,
|
1366
|
+
#else
|
1367
|
+
sprintf(begin,
|
1368
|
+
#endif
|
1369
|
+
"%.*g", static_cast<int>(boost::detail::lcast_get_precision<float>()), val_as_double);
|
1370
|
+
return end > begin;
|
1291
1371
|
}
|
1292
1372
|
|
1293
|
-
|
1294
|
-
bool shl_double(double val,T* out)
|
1373
|
+
static bool shl_real_type(double val, char* begin, char*& end)
|
1295
1374
|
{ using namespace std;
|
1296
|
-
if (put_inf_nan(
|
1297
|
-
|
1298
|
-
|
1375
|
+
if (put_inf_nan(begin, end, val)) return true;
|
1376
|
+
end = begin +
|
1377
|
+
#if defined(_MSC_VER) && (_MSC_VER >= 1400) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
|
1378
|
+
sprintf_s(begin, end-begin,
|
1379
|
+
#else
|
1380
|
+
sprintf(begin,
|
1381
|
+
#endif
|
1382
|
+
"%.*g", static_cast<int>(boost::detail::lcast_get_precision<double>()), val);
|
1383
|
+
return end > begin;
|
1299
1384
|
}
|
1385
|
+
|
1300
1386
|
#ifndef __MINGW32__
|
1301
|
-
|
1302
|
-
bool shl_long_double(long double val,T* out)
|
1387
|
+
static bool shl_real_type(long double val, char* begin, char*& end)
|
1303
1388
|
{ using namespace std;
|
1304
|
-
if (put_inf_nan(
|
1305
|
-
|
1306
|
-
|
1307
|
-
|
1389
|
+
if (put_inf_nan(begin, end, val)) return true;
|
1390
|
+
end = begin +
|
1391
|
+
#if defined(_MSC_VER) && (_MSC_VER >= 1400) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
|
1392
|
+
sprintf_s(begin, end-begin,
|
1393
|
+
#else
|
1394
|
+
sprintf(begin,
|
1308
1395
|
#endif
|
1309
|
-
|
1310
|
-
|
1311
|
-
|
1396
|
+
"%.*Lg", static_cast<int>(boost::detail::lcast_get_precision<long double>()), val );
|
1397
|
+
return end > begin;
|
1398
|
+
}
|
1312
1399
|
#endif
|
1313
1400
|
|
1314
1401
|
|
1315
|
-
#
|
1316
|
-
bool
|
1402
|
+
#if !defined(BOOST_LCAST_NO_WCHAR_T) && !defined(BOOST_NO_SWPRINTF) && !defined(__MINGW32__)
|
1403
|
+
static bool shl_real_type(float val, wchar_t* begin, wchar_t*& end)
|
1317
1404
|
{ using namespace std;
|
1318
|
-
if (put_inf_nan(
|
1319
|
-
|
1320
|
-
|
1321
|
-
|
1322
|
-
|
1323
|
-
|
1324
|
-
|
1325
|
-
return finish > start;
|
1405
|
+
if (put_inf_nan(begin, end, val)) return true;
|
1406
|
+
const double val_as_double = val;
|
1407
|
+
end = begin + swprintf(begin, end-begin,
|
1408
|
+
L"%.*g",
|
1409
|
+
static_cast<int>(boost::detail::lcast_get_precision<float >()),
|
1410
|
+
val_as_double );
|
1411
|
+
return end > begin;
|
1326
1412
|
}
|
1327
1413
|
|
1328
|
-
|
1329
|
-
bool shl_double(double val,wchar_t* out)
|
1414
|
+
static bool shl_real_type(double val, wchar_t* begin, wchar_t*& end)
|
1330
1415
|
{ using namespace std;
|
1331
|
-
if (put_inf_nan(
|
1332
|
-
|
1333
|
-
|
1334
|
-
|
1335
|
-
*
|
1336
|
-
* swprintf realization in MinGW and under WinCE does not conform
|
1337
|
-
* to the ISO C
|
1338
|
-
* Standard.
|
1339
|
-
*/
|
1340
|
-
finish = start + swprintf(out,
|
1341
|
-
#if !defined(__MINGW32__) && !defined(UNDER_CE)
|
1342
|
-
finish-start,
|
1343
|
-
#endif
|
1344
|
-
L"%.*lg", static_cast<int>(boost::detail::lcast_get_precision<double >()), val );
|
1345
|
-
return finish > start;
|
1416
|
+
if (put_inf_nan(begin, end, val)) return true;
|
1417
|
+
end = begin + swprintf(begin, end-begin,
|
1418
|
+
L"%.*g", static_cast<int>(boost::detail::lcast_get_precision<double >()), val );
|
1419
|
+
return end > begin;
|
1346
1420
|
}
|
1347
1421
|
|
1348
|
-
|
1349
|
-
bool shl_long_double(long double val,wchar_t* out)
|
1422
|
+
static bool shl_real_type(long double val, wchar_t* begin, wchar_t*& end)
|
1350
1423
|
{ using namespace std;
|
1351
|
-
if (put_inf_nan(
|
1352
|
-
|
1353
|
-
#if !defined(UNDER_CE)
|
1354
|
-
finish-start,
|
1355
|
-
#endif
|
1424
|
+
if (put_inf_nan(begin, end, val)) return true;
|
1425
|
+
end = begin + swprintf(begin, end-begin,
|
1356
1426
|
L"%.*Lg", static_cast<int>(boost::detail::lcast_get_precision<long double >()), val );
|
1357
|
-
return
|
1427
|
+
return end > begin;
|
1358
1428
|
}
|
1359
1429
|
#endif
|
1360
1430
|
|
1361
|
-
#endif
|
1362
|
-
|
1363
1431
|
/************************************ OPERATORS << ( ... ) ********************************/
|
1364
1432
|
public:
|
1365
1433
|
template<class Alloc>
|
1366
|
-
bool operator<<(std::basic_string<CharT,Traits,Alloc> const& str)
|
1434
|
+
bool operator<<(std::basic_string<CharT,Traits,Alloc> const& str) BOOST_NOEXCEPT
|
1367
1435
|
{
|
1368
1436
|
start = const_cast<CharT*>(str.data());
|
1369
1437
|
finish = start + str.length();
|
1370
1438
|
return true;
|
1371
1439
|
}
|
1372
1440
|
|
1373
|
-
#if !defined(__SUNPRO_CC)
|
1374
1441
|
template<class Alloc>
|
1375
|
-
bool operator<<(::boost::container::basic_string<CharT,Traits,Alloc> const& str)
|
1442
|
+
bool operator<<(::boost::container::basic_string<CharT,Traits,Alloc> const& str) BOOST_NOEXCEPT
|
1376
1443
|
{
|
1377
1444
|
start = const_cast<CharT*>(str.data());
|
1378
1445
|
finish = start + str.length();
|
1379
1446
|
return true;
|
1380
1447
|
}
|
1381
|
-
|
1382
|
-
bool operator<<(bool value)
|
1448
|
+
|
1449
|
+
bool operator<<(bool value) BOOST_NOEXCEPT
|
1383
1450
|
{
|
1384
1451
|
CharT const czero = lcast_char_constants<CharT>::zero;
|
1385
1452
|
Traits::assign(*start, Traits::to_char_type(czero + value));
|
@@ -1387,6 +1454,52 @@ namespace boost
|
|
1387
1454
|
return true;
|
1388
1455
|
}
|
1389
1456
|
|
1457
|
+
bool operator<<(const iterator_range<CharT*>& rng) BOOST_NOEXCEPT
|
1458
|
+
{
|
1459
|
+
start = rng.begin();
|
1460
|
+
finish = rng.end();
|
1461
|
+
return true;
|
1462
|
+
}
|
1463
|
+
|
1464
|
+
bool operator<<(const iterator_range<const CharT*>& rng) BOOST_NOEXCEPT
|
1465
|
+
{
|
1466
|
+
start = const_cast<CharT*>(rng.begin());
|
1467
|
+
finish = const_cast<CharT*>(rng.end());
|
1468
|
+
return true;
|
1469
|
+
}
|
1470
|
+
|
1471
|
+
bool operator<<(const iterator_range<const signed char*>& rng) BOOST_NOEXCEPT
|
1472
|
+
{
|
1473
|
+
return (*this) << iterator_range<char*>(
|
1474
|
+
const_cast<char*>(reinterpret_cast<const char*>(rng.begin())),
|
1475
|
+
const_cast<char*>(reinterpret_cast<const char*>(rng.end()))
|
1476
|
+
);
|
1477
|
+
}
|
1478
|
+
|
1479
|
+
bool operator<<(const iterator_range<const unsigned char*>& rng) BOOST_NOEXCEPT
|
1480
|
+
{
|
1481
|
+
return (*this) << iterator_range<char*>(
|
1482
|
+
const_cast<char*>(reinterpret_cast<const char*>(rng.begin())),
|
1483
|
+
const_cast<char*>(reinterpret_cast<const char*>(rng.end()))
|
1484
|
+
);
|
1485
|
+
}
|
1486
|
+
|
1487
|
+
bool operator<<(const iterator_range<signed char*>& rng) BOOST_NOEXCEPT
|
1488
|
+
{
|
1489
|
+
return (*this) << iterator_range<char*>(
|
1490
|
+
reinterpret_cast<char*>(rng.begin()),
|
1491
|
+
reinterpret_cast<char*>(rng.end())
|
1492
|
+
);
|
1493
|
+
}
|
1494
|
+
|
1495
|
+
bool operator<<(const iterator_range<unsigned char*>& rng) BOOST_NOEXCEPT
|
1496
|
+
{
|
1497
|
+
return (*this) << iterator_range<char*>(
|
1498
|
+
reinterpret_cast<char*>(rng.begin()),
|
1499
|
+
reinterpret_cast<char*>(rng.end())
|
1500
|
+
);
|
1501
|
+
}
|
1502
|
+
|
1390
1503
|
bool operator<<(char ch) { return shl_char(ch); }
|
1391
1504
|
bool operator<<(unsigned char ch) { return ((*this) << static_cast<char>(ch)); }
|
1392
1505
|
bool operator<<(signed char ch) { return ((*this) << static_cast<char>(ch)); }
|
@@ -1396,6 +1509,16 @@ namespace boost
|
|
1396
1509
|
#ifndef BOOST_NO_INTRINSIC_WCHAR_T
|
1397
1510
|
bool operator<<(wchar_t ch) { return shl_char(ch); }
|
1398
1511
|
#endif
|
1512
|
+
#endif
|
1513
|
+
#if !defined(BOOST_NO_CHAR16_T) && !defined(BOOST_NO_UNICODE_LITERALS)
|
1514
|
+
bool operator<<(char16_t ch) { return shl_char(ch); }
|
1515
|
+
bool operator<<(char16_t * str) { return shl_char_array(str); }
|
1516
|
+
bool operator<<(char16_t const * str) { return shl_char_array(str); }
|
1517
|
+
#endif
|
1518
|
+
#if !defined(BOOST_NO_CHAR32_T) && !defined(BOOST_NO_UNICODE_LITERALS)
|
1519
|
+
bool operator<<(char32_t ch) { return shl_char(ch); }
|
1520
|
+
bool operator<<(char32_t * str) { return shl_char_array(str); }
|
1521
|
+
bool operator<<(char32_t const * str) { return shl_char_array(str); }
|
1399
1522
|
#endif
|
1400
1523
|
bool operator<<(unsigned char const* ch) { return ((*this) << reinterpret_cast<char const*>(ch)); }
|
1401
1524
|
bool operator<<(unsigned char * ch) { return ((*this) << reinterpret_cast<char *>(ch)); }
|
@@ -1417,17 +1540,67 @@ namespace boost
|
|
1417
1540
|
bool operator<<(unsigned __int64 n) { start = lcast_put_unsigned<Traits>(n, finish); return true; }
|
1418
1541
|
bool operator<<( __int64 n) { return shl_signed(n); }
|
1419
1542
|
#endif
|
1420
|
-
bool operator<<(float val) { return
|
1421
|
-
bool operator<<(double val) { return
|
1543
|
+
bool operator<<(float val) { return shl_real_type(val, start, finish); }
|
1544
|
+
bool operator<<(double val) { return shl_real_type(val, start, finish); }
|
1422
1545
|
bool operator<<(long double val) {
|
1423
1546
|
#ifndef __MINGW32__
|
1424
|
-
return
|
1547
|
+
return shl_real_type(val, start, finish);
|
1425
1548
|
#else
|
1426
|
-
return
|
1549
|
+
return shl_real_type(static_cast<double>(val), start, finish);
|
1427
1550
|
#endif
|
1428
1551
|
}
|
1429
|
-
|
1430
|
-
template<
|
1552
|
+
|
1553
|
+
template <std::size_t N>
|
1554
|
+
bool operator<<(boost::array<CharT, N> const& input) BOOST_NOEXCEPT
|
1555
|
+
{ return shl_char_array_limited(input.begin(), N); }
|
1556
|
+
|
1557
|
+
template <std::size_t N>
|
1558
|
+
bool operator<<(boost::array<unsigned char, N> const& input) BOOST_NOEXCEPT
|
1559
|
+
{ return ((*this) << reinterpret_cast<boost::array<char, N> const& >(input)); }
|
1560
|
+
|
1561
|
+
template <std::size_t N>
|
1562
|
+
bool operator<<(boost::array<signed char, N> const& input) BOOST_NOEXCEPT
|
1563
|
+
{ return ((*this) << reinterpret_cast<boost::array<char, N> const& >(input)); }
|
1564
|
+
|
1565
|
+
template <std::size_t N>
|
1566
|
+
bool operator<<(boost::array<const CharT, N> const& input) BOOST_NOEXCEPT
|
1567
|
+
{ return shl_char_array_limited(input.begin(), N); }
|
1568
|
+
|
1569
|
+
template <std::size_t N>
|
1570
|
+
bool operator<<(boost::array<const unsigned char, N> const& input) BOOST_NOEXCEPT
|
1571
|
+
{ return ((*this) << reinterpret_cast<boost::array<const char, N> const& >(input)); }
|
1572
|
+
|
1573
|
+
template <std::size_t N>
|
1574
|
+
bool operator<<(boost::array<const signed char, N> const& input) BOOST_NOEXCEPT
|
1575
|
+
{ return ((*this) << reinterpret_cast<boost::array<const char, N> const& >(input)); }
|
1576
|
+
|
1577
|
+
#if !defined(BOOST_NO_CXX11_HDR_ARRAY) && defined(BOOST_HAS_TR1_ARRAY)
|
1578
|
+
template <std::size_t N>
|
1579
|
+
bool operator<<(std::array<CharT, N> const& input) BOOST_NOEXCEPT
|
1580
|
+
{ return shl_char_array_limited(input.begin(), N); }
|
1581
|
+
|
1582
|
+
template <std::size_t N>
|
1583
|
+
bool operator<<(std::array<unsigned char, N> const& input) BOOST_NOEXCEPT
|
1584
|
+
{ return ((*this) << reinterpret_cast<boost::array<char, N> const& >(input)); }
|
1585
|
+
|
1586
|
+
template <std::size_t N>
|
1587
|
+
bool operator<<(std::array<signed char, N> const& input) BOOST_NOEXCEPT
|
1588
|
+
{ return ((*this) << reinterpret_cast<boost::array<char, N> const& >(input)); }
|
1589
|
+
|
1590
|
+
template <std::size_t N>
|
1591
|
+
bool operator<<(std::array<const CharT, N> const& input) BOOST_NOEXCEPT
|
1592
|
+
{ return shl_char_array_limited(input.begin(), N); }
|
1593
|
+
|
1594
|
+
template <std::size_t N>
|
1595
|
+
bool operator<<(std::array<const unsigned char, N> const& input) BOOST_NOEXCEPT
|
1596
|
+
{ return ((*this) << reinterpret_cast<boost::array<const char, N> const& >(input)); }
|
1597
|
+
|
1598
|
+
template <std::size_t N>
|
1599
|
+
bool operator<<(std::array<const signed char, N> const& input) BOOST_NOEXCEPT
|
1600
|
+
{ return ((*this) << reinterpret_cast<boost::array<const char, N> const& >(input)); }
|
1601
|
+
#endif // !defined(BOOST_NO_CXX11_HDR_ARRAY) && defined(BOOST_HAS_TR1_ARRAY)
|
1602
|
+
|
1603
|
+
template <class InStreamable>
|
1431
1604
|
bool operator<<(const InStreamable& input) { return shl_input_streamable(input); }
|
1432
1605
|
|
1433
1606
|
/************************************ HELPER FUNCTIONS FOR OPERATORS >> ( ... ) ********************************/
|
@@ -1524,9 +1697,22 @@ namespace boost
|
|
1524
1697
|
if(is_pointer<InputStreamable>::value)
|
1525
1698
|
return false;
|
1526
1699
|
|
1527
|
-
|
1528
|
-
|
1529
|
-
|
1700
|
+
#if defined(BOOST_NO_STRINGSTREAM) || defined(BOOST_NO_STD_LOCALE)
|
1701
|
+
// If you have compilation error at this point, than your STL library
|
1702
|
+
// unsupports such conversions. Try updating it.
|
1703
|
+
BOOST_STATIC_ASSERT((boost::is_same<char, CharT>::value));
|
1704
|
+
#endif
|
1705
|
+
|
1706
|
+
#if defined(BOOST_NO_STRINGSTREAM)
|
1707
|
+
std::istrstream stream(start, finish - start);
|
1708
|
+
#elif defined(BOOST_NO_STD_LOCALE)
|
1709
|
+
std::istringstream stream;
|
1710
|
+
#else
|
1711
|
+
std::basic_istringstream<CharT, Traits> stream;
|
1712
|
+
#endif
|
1713
|
+
static_cast<unlocked_but_t*>(stream.rdbuf())
|
1714
|
+
->setg(start, start, finish);
|
1715
|
+
|
1530
1716
|
stream.unsetf(std::ios::skipws);
|
1531
1717
|
lcast_set_precision(stream, static_cast<InputStreamable*>(0));
|
1532
1718
|
#if (defined _MSC_VER)
|
@@ -1549,10 +1735,10 @@ namespace boost
|
|
1549
1735
|
inline bool shr_xchar(T& output)
|
1550
1736
|
{
|
1551
1737
|
BOOST_STATIC_ASSERT_MSG(( sizeof(CharT) == sizeof(T) ),
|
1552
|
-
"boost::lexical_cast does not support
|
1738
|
+
"boost::lexical_cast does not support narrowing of character types."
|
1553
1739
|
"Use boost::locale instead" );
|
1554
1740
|
bool const ok = (finish - start == 1);
|
1555
|
-
if(ok) {
|
1741
|
+
if (ok) {
|
1556
1742
|
CharT out;
|
1557
1743
|
Traits::assign(out, *start);
|
1558
1744
|
output = static_cast<T>(out);
|
@@ -1581,31 +1767,81 @@ namespace boost
|
|
1581
1767
|
#if !defined(BOOST_LCAST_NO_WCHAR_T) && !defined(BOOST_NO_INTRINSIC_WCHAR_T)
|
1582
1768
|
bool operator>>(wchar_t& output) { return shr_xchar(output); }
|
1583
1769
|
#endif
|
1584
|
-
#
|
1770
|
+
#if !defined(BOOST_NO_CHAR16_T) && !defined(BOOST_NO_UNICODE_LITERALS)
|
1585
1771
|
bool operator>>(char16_t& output) { return shr_xchar(output); }
|
1586
1772
|
#endif
|
1587
|
-
#
|
1773
|
+
#if !defined(BOOST_NO_CHAR32_T) && !defined(BOOST_NO_UNICODE_LITERALS)
|
1588
1774
|
bool operator>>(char32_t& output) { return shr_xchar(output); }
|
1589
1775
|
#endif
|
1590
|
-
#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
1591
|
-
bool operator>>(std::string& str) { str.assign(start, finish); return true; }
|
1592
|
-
# ifndef BOOST_LCAST_NO_WCHAR_T
|
1593
|
-
bool operator>>(std::wstring& str) { str.assign(start, finish); return true; }
|
1594
|
-
# endif
|
1595
|
-
#else
|
1596
1776
|
template<class Alloc>
|
1597
1777
|
bool operator>>(std::basic_string<CharT,Traits,Alloc>& str) { str.assign(start, finish); return true; }
|
1598
|
-
|
1778
|
+
|
1599
1779
|
template<class Alloc>
|
1600
1780
|
bool operator>>(::boost::container::basic_string<CharT,Traits,Alloc>& str) { str.assign(start, finish); return true; }
|
1601
|
-
|
1602
|
-
|
1781
|
+
|
1782
|
+
|
1783
|
+
private:
|
1784
|
+
template <std::size_t N, class ArrayT>
|
1785
|
+
bool shr_std_array(ArrayT& output) BOOST_NOEXCEPT
|
1786
|
+
{
|
1787
|
+
using namespace std;
|
1788
|
+
const std::size_t size = finish - start;
|
1789
|
+
if (size > N - 1) { // `-1` because we need to store \0 at the end
|
1790
|
+
return false;
|
1791
|
+
}
|
1792
|
+
|
1793
|
+
memcpy(output.begin(), start, size * sizeof(CharT));
|
1794
|
+
*(output.begin() + size) = Traits::to_char_type(0);
|
1795
|
+
return true;
|
1796
|
+
}
|
1797
|
+
|
1798
|
+
public:
|
1799
|
+
|
1800
|
+
template <std::size_t N>
|
1801
|
+
bool operator>>(boost::array<CharT, N>& output) BOOST_NOEXCEPT
|
1802
|
+
{
|
1803
|
+
return shr_std_array<N>(output);
|
1804
|
+
}
|
1805
|
+
|
1806
|
+
template <std::size_t N>
|
1807
|
+
bool operator>>(boost::array<unsigned char, N>& output)
|
1808
|
+
{
|
1809
|
+
return ((*this) >> reinterpret_cast<boost::array<char, N>& >(output));
|
1810
|
+
}
|
1811
|
+
|
1812
|
+
template <std::size_t N>
|
1813
|
+
bool operator>>(boost::array<signed char, N>& output)
|
1814
|
+
{
|
1815
|
+
return ((*this) >> reinterpret_cast<boost::array<char, N>& >(output));
|
1816
|
+
}
|
1817
|
+
|
1818
|
+
#if !defined(BOOST_NO_CXX11_HDR_ARRAY) && defined(BOOST_HAS_TR1_ARRAY)
|
1819
|
+
template <std::size_t N>
|
1820
|
+
bool operator>>(std::array<CharT, N>& output) BOOST_NOEXCEPT
|
1821
|
+
{
|
1822
|
+
return shr_std_array<N>(output);
|
1823
|
+
}
|
1824
|
+
|
1825
|
+
template <std::size_t N>
|
1826
|
+
bool operator>>(std::array<unsigned char, N>& output)
|
1827
|
+
{
|
1828
|
+
return ((*this) >> reinterpret_cast<std::array<char, N>& >(output));
|
1829
|
+
}
|
1830
|
+
|
1831
|
+
template <std::size_t N>
|
1832
|
+
bool operator>>(std::array<signed char, N>& in)
|
1833
|
+
{
|
1834
|
+
return ((*this) >> reinterpret_cast<std::array<char, N>& >(output));
|
1835
|
+
}
|
1836
|
+
#endif // !defined(BOOST_NO_CXX11_HDR_ARRAY) && defined(BOOST_HAS_TR1_ARRAY)
|
1837
|
+
|
1838
|
+
|
1603
1839
|
/*
|
1604
1840
|
* case "-0" || "0" || "+0" : output = false; return true;
|
1605
1841
|
* case "1" || "+1": output = true; return true;
|
1606
1842
|
* default: return false;
|
1607
1843
|
*/
|
1608
|
-
bool operator>>(bool& output)
|
1844
|
+
bool operator>>(bool& output) BOOST_NOEXCEPT
|
1609
1845
|
{
|
1610
1846
|
CharT const zero = lcast_char_constants<CharT>::zero;
|
1611
1847
|
CharT const plus = lcast_char_constants<CharT>::plus;
|
@@ -1655,10 +1891,10 @@ namespace boost
|
|
1655
1891
|
CharT const lowercase_e = lcast_char_constants<CharT>::lowercase_e;
|
1656
1892
|
if ( return_value &&
|
1657
1893
|
(
|
1658
|
-
*(finish-1)
|
1659
|
-
|| *(finish-1)
|
1660
|
-
|| *(finish-1)
|
1661
|
-
|| *(finish-1)
|
1894
|
+
Traits::eq(*(finish-1), lowercase_e) // 1.0e
|
1895
|
+
|| Traits::eq(*(finish-1), capital_e) // 1.0E
|
1896
|
+
|| Traits::eq(*(finish-1), minus) // 1.0e- or 1.0E-
|
1897
|
+
|| Traits::eq(*(finish-1), plus) // 1.0e+ or 1.0E+
|
1662
1898
|
)
|
1663
1899
|
) return false;
|
1664
1900
|
|
@@ -1705,10 +1941,6 @@ namespace boost
|
|
1705
1941
|
};
|
1706
1942
|
}
|
1707
1943
|
|
1708
|
-
#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
1709
|
-
|
1710
|
-
// call-by-const reference version
|
1711
|
-
|
1712
1944
|
namespace detail
|
1713
1945
|
{
|
1714
1946
|
template<class T>
|
@@ -1734,49 +1966,12 @@ namespace boost
|
|
1734
1966
|
{
|
1735
1967
|
BOOST_STATIC_CONSTANT(bool, value = true );
|
1736
1968
|
};
|
1737
|
-
|
1969
|
+
|
1738
1970
|
template<typename CharT, typename Traits, typename Alloc>
|
1739
1971
|
struct is_stdstring< ::boost::container::basic_string<CharT, Traits, Alloc> >
|
1740
1972
|
{
|
1741
1973
|
BOOST_STATIC_CONSTANT(bool, value = true );
|
1742
1974
|
};
|
1743
|
-
#endif // !defined(__SUNPRO_CC)
|
1744
|
-
template<typename T>
|
1745
|
-
struct is_char_or_wchar
|
1746
|
-
{
|
1747
|
-
private:
|
1748
|
-
#ifndef BOOST_LCAST_NO_WCHAR_T
|
1749
|
-
typedef wchar_t wchar_t_if_supported;
|
1750
|
-
#else
|
1751
|
-
typedef char wchar_t_if_supported;
|
1752
|
-
#endif
|
1753
|
-
|
1754
|
-
#ifndef BOOST_NO_CHAR16_T
|
1755
|
-
typedef char16_t char16_t_if_supported;
|
1756
|
-
#else
|
1757
|
-
typedef char char16_t_if_supported;
|
1758
|
-
#endif
|
1759
|
-
|
1760
|
-
#ifndef BOOST_NO_CHAR32_T
|
1761
|
-
typedef char32_t char32_t_if_supported;
|
1762
|
-
#else
|
1763
|
-
typedef char char32_t_if_supported;
|
1764
|
-
#endif
|
1765
|
-
public:
|
1766
|
-
|
1767
|
-
BOOST_STATIC_CONSTANT(bool, value =
|
1768
|
-
(
|
1769
|
-
::boost::type_traits::ice_or<
|
1770
|
-
is_same< T, char >::value,
|
1771
|
-
is_same< T, wchar_t_if_supported >::value,
|
1772
|
-
is_same< T, char16_t_if_supported >::value,
|
1773
|
-
is_same< T, char32_t_if_supported >::value,
|
1774
|
-
is_same< T, unsigned char >::value,
|
1775
|
-
is_same< T, signed char >::value
|
1776
|
-
>::value
|
1777
|
-
)
|
1778
|
-
);
|
1779
|
-
};
|
1780
1975
|
|
1781
1976
|
template<typename Target, typename Source>
|
1782
1977
|
struct is_arithmetic_and_not_xchars
|
@@ -1784,8 +1979,8 @@ namespace boost
|
|
1784
1979
|
BOOST_STATIC_CONSTANT(bool, value =
|
1785
1980
|
(
|
1786
1981
|
::boost::type_traits::ice_and<
|
1787
|
-
is_arithmetic<Source>::value,
|
1788
|
-
is_arithmetic<Target>::value,
|
1982
|
+
::boost::is_arithmetic<Source>::value,
|
1983
|
+
::boost::is_arithmetic<Target>::value,
|
1789
1984
|
::boost::type_traits::ice_not<
|
1790
1985
|
detail::is_char_or_wchar<Target>::value
|
1791
1986
|
>::value,
|
@@ -1823,6 +2018,28 @@ namespace boost
|
|
1823
2018
|
);
|
1824
2019
|
};
|
1825
2020
|
|
2021
|
+
|
2022
|
+
// this metafunction evaluates to true, if we have optimized comnversion
|
2023
|
+
// from Float type to Char array.
|
2024
|
+
// Must be in sync with lexical_stream_limited_src<Char, ...>::shl_real_type(...)
|
2025
|
+
template <typename Float, typename Char>
|
2026
|
+
struct is_this_float_conversion_optimized
|
2027
|
+
{
|
2028
|
+
typedef ::boost::type_traits::ice_and<
|
2029
|
+
::boost::is_float<Float>::value,
|
2030
|
+
#if !defined(BOOST_LCAST_NO_WCHAR_T) && !defined(BOOST_NO_SWPRINTF) && !defined(__MINGW32__)
|
2031
|
+
::boost::type_traits::ice_or<
|
2032
|
+
::boost::type_traits::ice_eq<sizeof(Char), sizeof(char) >::value,
|
2033
|
+
::boost::is_same<Char, wchar_t>::value
|
2034
|
+
>::value
|
2035
|
+
#else
|
2036
|
+
::boost::type_traits::ice_eq<sizeof(Char), sizeof(char) >::value
|
2037
|
+
#endif
|
2038
|
+
> result_type;
|
2039
|
+
|
2040
|
+
BOOST_STATIC_CONSTANT(bool, value = (result_type::value) );
|
2041
|
+
};
|
2042
|
+
|
1826
2043
|
template<typename Target, typename Source>
|
1827
2044
|
struct is_char_array_to_stdstring
|
1828
2045
|
{
|
@@ -1840,7 +2057,7 @@ namespace boost
|
|
1840
2057
|
{
|
1841
2058
|
BOOST_STATIC_CONSTANT(bool, value = true );
|
1842
2059
|
};
|
1843
|
-
|
2060
|
+
|
1844
2061
|
template<typename CharT, typename Traits, typename Alloc>
|
1845
2062
|
struct is_char_array_to_stdstring< ::boost::container::basic_string<CharT, Traits, Alloc>, CharT* >
|
1846
2063
|
{
|
@@ -1852,7 +2069,6 @@ namespace boost
|
|
1852
2069
|
{
|
1853
2070
|
BOOST_STATIC_CONSTANT(bool, value = true );
|
1854
2071
|
};
|
1855
|
-
#endif // !defined(__SUNPRO_CC)
|
1856
2072
|
|
1857
2073
|
#if (defined _MSC_VER)
|
1858
2074
|
# pragma warning( push )
|
@@ -1866,59 +2082,64 @@ namespace boost
|
|
1866
2082
|
static inline Target lexical_cast_impl(const Source& arg)
|
1867
2083
|
{
|
1868
2084
|
typedef BOOST_DEDUCED_TYPENAME detail::array_to_pointer_decay<Source>::type src;
|
1869
|
-
|
2085
|
+
typedef BOOST_DEDUCED_TYPENAME ::boost::remove_cv<src>::type no_cv_src;
|
2086
|
+
typedef BOOST_DEDUCED_TYPENAME detail::stream_char<Target>::type target_char_t;
|
2087
|
+
typedef BOOST_DEDUCED_TYPENAME detail::stream_char<no_cv_src>::type src_char_type;
|
1870
2088
|
typedef BOOST_DEDUCED_TYPENAME detail::widest_char<
|
1871
|
-
|
1872
|
-
, BOOST_DEDUCED_TYPENAME detail::stream_char<src>::type
|
2089
|
+
target_char_t, src_char_type
|
1873
2090
|
>::type char_type;
|
1874
2091
|
|
1875
|
-
|
1876
|
-
|
1877
|
-
|
1878
|
-
|
2092
|
+
#if !defined(BOOST_NO_CHAR16_T) && defined(BOOST_NO_UNICODE_LITERALS)
|
2093
|
+
BOOST_STATIC_ASSERT_MSG(( !::boost::is_same<char16_t, src_char_type>::value
|
2094
|
+
&& !::boost::is_same<char16_t, target_char_t>::value),
|
2095
|
+
"Your compiler does not have full support for char16_t" );
|
2096
|
+
#endif
|
2097
|
+
#if !defined(BOOST_NO_CHAR32_T) && defined(BOOST_NO_UNICODE_LITERALS)
|
2098
|
+
BOOST_STATIC_ASSERT_MSG(( !::boost::is_same<char32_t, src_char_type>::value
|
2099
|
+
&& !::boost::is_same<char32_t, target_char_t>::value),
|
2100
|
+
"Your compiler does not have full support for char32_t" );
|
2101
|
+
#endif
|
1879
2102
|
|
1880
|
-
typedef BOOST_DEDUCED_TYPENAME
|
1881
|
-
|
2103
|
+
typedef BOOST_DEDUCED_TYPENAME ::boost::detail::deduce_char_traits<
|
2104
|
+
char_type, Target, no_cv_src
|
2105
|
+
>::type traits;
|
1882
2106
|
|
1883
|
-
typedef
|
2107
|
+
typedef ::boost::type_traits::ice_and<
|
2108
|
+
::boost::detail::is_char_or_wchar<src_char_type>::value, // source is lexical type
|
2109
|
+
::boost::detail::is_char_or_wchar<target_char_t>::value, // target is a lexical type
|
2110
|
+
::boost::is_same<char, src_char_type>::value, // source is not a wide character based type
|
2111
|
+
::boost::type_traits::ice_ne<sizeof(char), sizeof(target_char_t) >::value // target type is based on wide character
|
2112
|
+
> is_string_widening_required_t;
|
1884
2113
|
|
1885
|
-
|
1886
|
-
|
1887
|
-
|
1888
|
-
|
1889
|
-
|
1890
|
-
(::boost::type_traits::ice_or<
|
1891
|
-
::boost::type_traits::ice_and<
|
1892
|
-
::boost::type_traits::ice_eq<sizeof(char_type), sizeof(char) >::value,
|
1893
|
-
::boost::type_traits::ice_or<
|
1894
|
-
::boost::is_same<char, removed_ptr_t>::value,
|
1895
|
-
::boost::is_same<unsigned char, removed_ptr_t>::value,
|
1896
|
-
::boost::is_same<signed char, removed_ptr_t>::value
|
1897
|
-
>::value
|
1898
|
-
>::value,
|
1899
|
-
is_same<char_type, removed_ptr_t>::value
|
1900
|
-
>::value);
|
1901
|
-
|
1902
|
-
const bool requires_stringbuf =
|
1903
|
-
!(
|
1904
|
-
::boost::type_traits::ice_or<
|
1905
|
-
is_stdstring<src >::value,
|
1906
|
-
is_arithmetic<src >::value,
|
1907
|
-
::boost::type_traits::ice_and<
|
1908
|
-
is_pointer<src >::value,
|
1909
|
-
is_char_or_wchar<removed_ptr_t >::value,
|
1910
|
-
is_char_types_match
|
1911
|
-
>::value
|
1912
|
-
>::value
|
1913
|
-
);
|
1914
|
-
|
1915
|
-
detail::lexical_stream_limited_src<char_type,traits, requires_stringbuf >
|
1916
|
-
interpreter(buf, buf + src_len);
|
2114
|
+
typedef ::boost::type_traits::ice_or<
|
2115
|
+
::boost::is_integral<no_cv_src>::value,
|
2116
|
+
::boost::detail::is_this_float_conversion_optimized<no_cv_src, char_type >::value,
|
2117
|
+
::boost::detail::is_char_or_wchar<src_char_type >::value
|
2118
|
+
> is_source_input_optimized_t;
|
1917
2119
|
|
2120
|
+
// Target type must be default constructible
|
1918
2121
|
Target result;
|
2122
|
+
|
2123
|
+
// If we have an optimized conversion for
|
2124
|
+
// Source, we do not need to construct stringbuf.
|
2125
|
+
const bool requires_stringbuf = ::boost::type_traits::ice_or<
|
2126
|
+
is_string_widening_required_t::value,
|
2127
|
+
::boost::type_traits::ice_not< is_source_input_optimized_t::value >::value
|
2128
|
+
>::value;
|
2129
|
+
|
2130
|
+
typedef detail::lexical_stream_limited_src<char_type, traits, requires_stringbuf > interpreter_type;
|
2131
|
+
|
2132
|
+
typedef detail::lcast_src_length<no_cv_src> lcast_src_length;
|
2133
|
+
std::size_t const src_len = lcast_src_length::value;
|
2134
|
+
char_type buf[src_len + 1];
|
2135
|
+
lcast_src_length::check_coverage();
|
2136
|
+
|
2137
|
+
interpreter_type interpreter(buf, buf + src_len);
|
2138
|
+
|
1919
2139
|
// Disabling ADL, by directly specifying operators.
|
1920
2140
|
if(!(interpreter.operator <<(arg) && interpreter.operator >>(result)))
|
1921
2141
|
BOOST_LCAST_THROW_BAD_CAST(Source, Target);
|
2142
|
+
|
1922
2143
|
return result;
|
1923
2144
|
}
|
1924
2145
|
};
|
@@ -1926,88 +2147,80 @@ namespace boost
|
|
1926
2147
|
# pragma warning( pop )
|
1927
2148
|
#endif
|
1928
2149
|
|
1929
|
-
template<typename Source>
|
2150
|
+
template <typename Source>
|
1930
2151
|
struct lexical_cast_copy
|
1931
2152
|
{
|
1932
|
-
static inline Source lexical_cast_impl(const Source &arg)
|
2153
|
+
static inline const Source& lexical_cast_impl(const Source &arg) BOOST_NOEXCEPT
|
1933
2154
|
{
|
1934
2155
|
return arg;
|
1935
2156
|
}
|
1936
2157
|
};
|
1937
2158
|
|
1938
|
-
class
|
2159
|
+
template <class Source, class Target >
|
2160
|
+
struct detect_precision_loss
|
1939
2161
|
{
|
1940
|
-
|
1941
|
-
|
1942
|
-
{ return "bad numeric conversion: precision loss error"; }
|
1943
|
-
};
|
1944
|
-
|
1945
|
-
template<class S >
|
1946
|
-
struct throw_on_precision_loss
|
1947
|
-
{
|
1948
|
-
typedef boost::numeric::Trunc<S> Rounder;
|
1949
|
-
typedef S source_type ;
|
2162
|
+
typedef boost::numeric::Trunc<Source> Rounder;
|
2163
|
+
typedef Source source_type ;
|
1950
2164
|
|
1951
|
-
typedef
|
2165
|
+
typedef BOOST_DEDUCED_TYPENAME mpl::if_<
|
2166
|
+
::boost::is_arithmetic<Source>, Source, Source const&
|
2167
|
+
>::type argument_type ;
|
1952
2168
|
|
1953
2169
|
static source_type nearbyint ( argument_type s )
|
1954
2170
|
{
|
1955
|
-
source_type orig_div_round = s / Rounder::nearbyint(s);
|
2171
|
+
const source_type orig_div_round = s / Rounder::nearbyint(s);
|
2172
|
+
const source_type eps = std::numeric_limits<source_type>::epsilon();
|
2173
|
+
|
2174
|
+
if ((orig_div_round > 1 ? orig_div_round - 1 : 1 - orig_div_round) > eps)
|
2175
|
+
BOOST_LCAST_THROW_BAD_CAST(Source, Target);
|
1956
2176
|
|
1957
|
-
if ( (orig_div_round > 1 ? orig_div_round - 1 : 1 - orig_div_round) > std::numeric_limits<source_type>::epsilon() )
|
1958
|
-
BOOST_THROW_EXCEPTION( precision_loss_error() );
|
1959
2177
|
return s ;
|
1960
2178
|
}
|
1961
2179
|
|
1962
2180
|
typedef typename Rounder::round_style round_style;
|
1963
2181
|
} ;
|
1964
2182
|
|
1965
|
-
template<
|
2183
|
+
template <class Source, class Target >
|
2184
|
+
struct nothrow_overflow_handler
|
2185
|
+
{
|
2186
|
+
void operator() ( boost::numeric::range_check_result r )
|
2187
|
+
{
|
2188
|
+
if (r != boost::numeric::cInRange)
|
2189
|
+
BOOST_LCAST_THROW_BAD_CAST(Source, Target);
|
2190
|
+
}
|
2191
|
+
} ;
|
2192
|
+
|
2193
|
+
template <typename Target, typename Source>
|
1966
2194
|
struct lexical_cast_dynamic_num_not_ignoring_minus
|
1967
2195
|
{
|
1968
2196
|
static inline Target lexical_cast_impl(const Source &arg)
|
1969
2197
|
{
|
1970
|
-
|
1971
|
-
|
1972
|
-
|
1973
|
-
|
1974
|
-
|
1975
|
-
|
1976
|
-
|
1977
|
-
> Converter ;
|
1978
|
-
|
1979
|
-
return Converter::convert(arg);
|
1980
|
-
} catch( ::boost::numeric::bad_numeric_cast const& ) {
|
1981
|
-
BOOST_LCAST_THROW_BAD_CAST(Source, Target);
|
1982
|
-
}
|
1983
|
-
BOOST_UNREACHABLE_RETURN(static_cast<Target>(0));
|
2198
|
+
return boost::numeric::converter<
|
2199
|
+
Target,
|
2200
|
+
Source,
|
2201
|
+
boost::numeric::conversion_traits<Target,Source>,
|
2202
|
+
nothrow_overflow_handler<Source, Target>,
|
2203
|
+
detect_precision_loss<Source, Target>
|
2204
|
+
>::convert(arg);
|
1984
2205
|
}
|
1985
2206
|
};
|
1986
2207
|
|
1987
|
-
template<typename Target, typename Source>
|
2208
|
+
template <typename Target, typename Source>
|
1988
2209
|
struct lexical_cast_dynamic_num_ignoring_minus
|
1989
2210
|
{
|
1990
2211
|
static inline Target lexical_cast_impl(const Source &arg)
|
1991
2212
|
{
|
1992
|
-
|
1993
|
-
|
1994
|
-
|
1995
|
-
|
1996
|
-
|
1997
|
-
|
1998
|
-
|
1999
|
-
|
2000
|
-
|
2001
|
-
|
2002
|
-
|
2003
|
-
return static_cast<Target>(-Converter::convert(-arg));
|
2004
|
-
} else {
|
2005
|
-
return Converter::convert(arg);
|
2006
|
-
}
|
2007
|
-
} catch( ::boost::numeric::bad_numeric_cast const& ) {
|
2008
|
-
BOOST_LCAST_THROW_BAD_CAST(Source, Target);
|
2009
|
-
}
|
2010
|
-
BOOST_UNREACHABLE_RETURN(static_cast<Target>(0));
|
2213
|
+
typedef boost::numeric::converter<
|
2214
|
+
Target,
|
2215
|
+
Source,
|
2216
|
+
boost::numeric::conversion_traits<Target,Source>,
|
2217
|
+
nothrow_overflow_handler<Source, Target>,
|
2218
|
+
detect_precision_loss<Source, Target>
|
2219
|
+
> converter_t;
|
2220
|
+
|
2221
|
+
return (
|
2222
|
+
arg < 0 ? -converter_t::convert(-arg) : converter_t::convert(arg)
|
2223
|
+
);
|
2011
2224
|
}
|
2012
2225
|
};
|
2013
2226
|
|
@@ -2029,7 +2242,7 @@ namespace boost
|
|
2029
2242
|
* optional, so if a negative number is read, no errors will arise
|
2030
2243
|
* and the result will be the two's complement.
|
2031
2244
|
*/
|
2032
|
-
template<typename Target, typename Source>
|
2245
|
+
template <typename Target, typename Source>
|
2033
2246
|
struct lexical_cast_dynamic_num
|
2034
2247
|
{
|
2035
2248
|
static inline Target lexical_cast_impl(const Source &arg)
|
@@ -2041,10 +2254,10 @@ namespace boost
|
|
2041
2254
|
::boost::is_float<Source>::value
|
2042
2255
|
>::value,
|
2043
2256
|
::boost::type_traits::ice_not<
|
2044
|
-
is_same<Source, bool>::value
|
2257
|
+
::boost::is_same<Source, bool>::value
|
2045
2258
|
>::value,
|
2046
2259
|
::boost::type_traits::ice_not<
|
2047
|
-
is_same<Target, bool>::value
|
2260
|
+
::boost::is_same<Target, bool>::value
|
2048
2261
|
>::value,
|
2049
2262
|
::boost::is_unsigned<Target>::value
|
2050
2263
|
>::value,
|
@@ -2057,40 +2270,133 @@ namespace boost
|
|
2057
2270
|
};
|
2058
2271
|
}
|
2059
2272
|
|
2060
|
-
template<typename Target, typename Source>
|
2273
|
+
template <typename Target, typename Source>
|
2061
2274
|
inline Target lexical_cast(const Source &arg)
|
2062
2275
|
{
|
2063
|
-
typedef BOOST_DEDUCED_TYPENAME detail::array_to_pointer_decay<Source>::type src;
|
2276
|
+
typedef BOOST_DEDUCED_TYPENAME ::boost::detail::array_to_pointer_decay<Source>::type src;
|
2064
2277
|
|
2065
2278
|
typedef BOOST_DEDUCED_TYPENAME ::boost::type_traits::ice_or<
|
2066
|
-
detail::is_xchar_to_xchar<Target, src>::value,
|
2067
|
-
detail::is_char_array_to_stdstring<Target,src>::value,
|
2279
|
+
::boost::detail::is_xchar_to_xchar<Target, src >::value,
|
2280
|
+
::boost::detail::is_char_array_to_stdstring<Target, src >::value,
|
2068
2281
|
::boost::type_traits::ice_and<
|
2069
|
-
is_same<Target, src>::value,
|
2070
|
-
detail::is_stdstring<Target>::value
|
2282
|
+
::boost::is_same<Target, src >::value,
|
2283
|
+
::boost::detail::is_stdstring<Target >::value
|
2071
2284
|
>::value
|
2072
|
-
>
|
2285
|
+
> shall_we_copy_t;
|
2073
2286
|
|
2074
2287
|
typedef BOOST_DEDUCED_TYPENAME
|
2075
|
-
detail::is_arithmetic_and_not_xchars<Target, src>
|
2288
|
+
::boost::detail::is_arithmetic_and_not_xchars<Target, src > shall_we_copy_with_dynamic_check_t;
|
2076
2289
|
|
2077
2290
|
typedef BOOST_DEDUCED_TYPENAME ::boost::mpl::if_c<
|
2078
|
-
|
2079
|
-
detail::lexical_cast_copy<src>,
|
2291
|
+
shall_we_copy_t::value,
|
2292
|
+
::boost::detail::lexical_cast_copy<src >,
|
2080
2293
|
BOOST_DEDUCED_TYPENAME ::boost::mpl::if_c<
|
2081
|
-
|
2082
|
-
detail::lexical_cast_dynamic_num<Target, src>,
|
2083
|
-
detail::lexical_cast_do_cast<Target, src>
|
2294
|
+
shall_we_copy_with_dynamic_check_t::value,
|
2295
|
+
::boost::detail::lexical_cast_dynamic_num<Target, src >,
|
2296
|
+
::boost::detail::lexical_cast_do_cast<Target, src >
|
2084
2297
|
>::type
|
2085
2298
|
>::type caster_type;
|
2086
2299
|
|
2087
2300
|
return caster_type::lexical_cast_impl(arg);
|
2088
2301
|
}
|
2089
2302
|
|
2090
|
-
|
2303
|
+
template <typename Target>
|
2304
|
+
inline Target lexical_cast(const char* chars, std::size_t count)
|
2305
|
+
{
|
2306
|
+
return ::boost::lexical_cast<Target>(
|
2307
|
+
::boost::iterator_range<const char*>(chars, chars + count)
|
2308
|
+
);
|
2309
|
+
}
|
2310
|
+
|
2311
|
+
|
2312
|
+
template <typename Target>
|
2313
|
+
inline Target lexical_cast(const unsigned char* chars, std::size_t count)
|
2314
|
+
{
|
2315
|
+
return ::boost::lexical_cast<Target>(
|
2316
|
+
::boost::iterator_range<const unsigned char*>(chars, chars + count)
|
2317
|
+
);
|
2318
|
+
}
|
2319
|
+
|
2320
|
+
template <typename Target>
|
2321
|
+
inline Target lexical_cast(const signed char* chars, std::size_t count)
|
2322
|
+
{
|
2323
|
+
return ::boost::lexical_cast<Target>(
|
2324
|
+
::boost::iterator_range<const signed char*>(chars, chars + count)
|
2325
|
+
);
|
2326
|
+
}
|
2327
|
+
|
2328
|
+
#ifndef BOOST_LCAST_NO_WCHAR_T
|
2329
|
+
template <typename Target>
|
2330
|
+
inline Target lexical_cast(const wchar_t* chars, std::size_t count)
|
2331
|
+
{
|
2332
|
+
return ::boost::lexical_cast<Target>(
|
2333
|
+
::boost::iterator_range<const wchar_t*>(chars, chars + count)
|
2334
|
+
);
|
2335
|
+
}
|
2336
|
+
#endif
|
2337
|
+
#ifndef BOOST_NO_CHAR16_T
|
2338
|
+
template <typename Target>
|
2339
|
+
inline Target lexical_cast(const char16_t* chars, std::size_t count)
|
2340
|
+
{
|
2341
|
+
return ::boost::lexical_cast<Target>(
|
2342
|
+
::boost::iterator_range<const char16_t*>(chars, chars + count)
|
2343
|
+
);
|
2344
|
+
}
|
2345
|
+
#endif
|
2346
|
+
#ifndef BOOST_NO_CHAR32_T
|
2347
|
+
template <typename Target>
|
2348
|
+
inline Target lexical_cast(const char32_t* chars, std::size_t count)
|
2349
|
+
{
|
2350
|
+
return ::boost::lexical_cast<Target>(
|
2351
|
+
::boost::iterator_range<const char32_t*>(chars, chars + count)
|
2352
|
+
);
|
2353
|
+
}
|
2354
|
+
#endif
|
2355
|
+
|
2356
|
+
} // namespace boost
|
2091
2357
|
|
2092
|
-
|
2358
|
+
#else // #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
2359
|
+
|
2360
|
+
namespace boost {
|
2361
|
+
namespace detail
|
2093
2362
|
{
|
2363
|
+
|
2364
|
+
// selectors for choosing stream character type
|
2365
|
+
template<typename Type>
|
2366
|
+
struct stream_char
|
2367
|
+
{
|
2368
|
+
typedef char type;
|
2369
|
+
};
|
2370
|
+
|
2371
|
+
#ifndef BOOST_LCAST_NO_WCHAR_T
|
2372
|
+
#ifndef BOOST_NO_INTRINSIC_WCHAR_T
|
2373
|
+
template<>
|
2374
|
+
struct stream_char<wchar_t>
|
2375
|
+
{
|
2376
|
+
typedef wchar_t type;
|
2377
|
+
};
|
2378
|
+
#endif
|
2379
|
+
|
2380
|
+
template<>
|
2381
|
+
struct stream_char<wchar_t *>
|
2382
|
+
{
|
2383
|
+
typedef wchar_t type;
|
2384
|
+
};
|
2385
|
+
|
2386
|
+
template<>
|
2387
|
+
struct stream_char<const wchar_t *>
|
2388
|
+
{
|
2389
|
+
typedef wchar_t type;
|
2390
|
+
};
|
2391
|
+
|
2392
|
+
template<>
|
2393
|
+
struct stream_char<std::wstring>
|
2394
|
+
{
|
2395
|
+
typedef wchar_t type;
|
2396
|
+
};
|
2397
|
+
#endif
|
2398
|
+
|
2399
|
+
// stream wrapper for handling lexical conversions
|
2094
2400
|
template<typename Target, typename Source, typename Traits>
|
2095
2401
|
class lexical_stream
|
2096
2402
|
{
|
@@ -2180,8 +2486,9 @@ namespace boost
|
|
2180
2486
|
return result;
|
2181
2487
|
}
|
2182
2488
|
|
2183
|
-
|
2184
|
-
|
2489
|
+
} // namespace boost
|
2490
|
+
|
2491
|
+
#endif
|
2185
2492
|
|
2186
2493
|
// Copyright Kevlin Henney, 2000-2005.
|
2187
2494
|
// Copyright Alexander Nasonov, 2006-2010.
|
@@ -2191,5 +2498,8 @@ namespace boost
|
|
2191
2498
|
// accompanying file LICENSE_1_0.txt or copy at
|
2192
2499
|
// http://www.boost.org/LICENSE_1_0.txt)
|
2193
2500
|
|
2501
|
+
#undef BOOST_LCAST_THROW_BAD_CAST
|
2194
2502
|
#undef BOOST_LCAST_NO_WCHAR_T
|
2195
|
-
|
2503
|
+
|
2504
|
+
#endif // BOOST_LEXICAL_CAST_INCLUDED
|
2505
|
+
|