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
@@ -9,7 +9,7 @@
|
|
9
9
|
#if defined(_MSC_VER)
|
10
10
|
#define BOOST_ATTRIBUTE_NORETURN __declspec(noreturn)
|
11
11
|
#elif defined(__GNUC__)
|
12
|
-
#define BOOST_ATTRIBUTE_NORETURN __attribute__((
|
12
|
+
#define BOOST_ATTRIBUTE_NORETURN __attribute__((__noreturn__))
|
13
13
|
#else
|
14
14
|
#define BOOST_ATTRIBUTE_NORETURN
|
15
15
|
#endif
|
@@ -25,7 +25,7 @@
|
|
25
25
|
#include <stdexcept>
|
26
26
|
#include <new>
|
27
27
|
#include <ios>
|
28
|
-
#include <
|
28
|
+
#include <stdlib.h>
|
29
29
|
|
30
30
|
namespace
|
31
31
|
boost
|
@@ -457,7 +457,12 @@ boost
|
|
457
457
|
BOOST_ASSERT(p);
|
458
458
|
p.ptr_->rethrow();
|
459
459
|
BOOST_ASSERT(0);
|
460
|
-
|
460
|
+
#if defined(UNDER_CE)
|
461
|
+
// some CE platforms don't define ::abort()
|
462
|
+
exit(-1);
|
463
|
+
#else
|
464
|
+
abort();
|
465
|
+
#endif
|
461
466
|
}
|
462
467
|
|
463
468
|
inline
|
@@ -310,6 +310,11 @@ boost
|
|
310
310
|
namespace
|
311
311
|
exception_detail
|
312
312
|
{
|
313
|
+
#if defined(__GNUC__)
|
314
|
+
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
315
|
+
# pragma GCC visibility push (default)
|
316
|
+
# endif
|
317
|
+
#endif
|
313
318
|
template <class T>
|
314
319
|
struct
|
315
320
|
error_info_injector:
|
@@ -326,6 +331,11 @@ boost
|
|
326
331
|
{
|
327
332
|
}
|
328
333
|
};
|
334
|
+
#if defined(__GNUC__)
|
335
|
+
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
336
|
+
# pragma GCC visibility pop
|
337
|
+
# endif
|
338
|
+
#endif
|
329
339
|
|
330
340
|
struct large_size { char c[256]; };
|
331
341
|
large_size dispatch_boost_exception( exception const * );
|
@@ -373,6 +383,11 @@ boost
|
|
373
383
|
namespace
|
374
384
|
exception_detail
|
375
385
|
{
|
386
|
+
#if defined(__GNUC__)
|
387
|
+
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
388
|
+
# pragma GCC visibility push (default)
|
389
|
+
# endif
|
390
|
+
#endif
|
376
391
|
class
|
377
392
|
clone_base
|
378
393
|
{
|
@@ -386,6 +401,11 @@ boost
|
|
386
401
|
{
|
387
402
|
}
|
388
403
|
};
|
404
|
+
#if defined(__GNUC__)
|
405
|
+
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
406
|
+
# pragma GCC visibility pop
|
407
|
+
# endif
|
408
|
+
#endif
|
389
409
|
|
390
410
|
inline
|
391
411
|
void
|
@@ -410,8 +430,15 @@ boost
|
|
410
430
|
class
|
411
431
|
clone_impl:
|
412
432
|
public T,
|
413
|
-
public clone_base
|
433
|
+
public virtual clone_base
|
414
434
|
{
|
435
|
+
struct clone_tag { };
|
436
|
+
clone_impl( clone_impl const & x, clone_tag ):
|
437
|
+
T(x)
|
438
|
+
{
|
439
|
+
copy_boost_exception(this,&x);
|
440
|
+
}
|
441
|
+
|
415
442
|
public:
|
416
443
|
|
417
444
|
explicit
|
@@ -430,7 +457,7 @@ boost
|
|
430
457
|
clone_base const *
|
431
458
|
clone() const
|
432
459
|
{
|
433
|
-
return new clone_impl(*this);
|
460
|
+
return new clone_impl(*this,clone_tag());
|
434
461
|
}
|
435
462
|
|
436
463
|
void
|
@@ -97,7 +97,7 @@ boost
|
|
97
97
|
{
|
98
98
|
shared_ptr<error_info_base> const & p = i->second;
|
99
99
|
#ifndef BOOST_NO_RTTI
|
100
|
-
BOOST_ASSERT( BOOST_EXCEPTION_DYNAMIC_TYPEID(*p).type_
|
100
|
+
BOOST_ASSERT( *BOOST_EXCEPTION_DYNAMIC_TYPEID(*p).type_==*ti.type_ );
|
101
101
|
#endif
|
102
102
|
return p;
|
103
103
|
}
|
@@ -0,0 +1,1128 @@
|
|
1
|
+
///////////////////////////////////////////////////////////////////////////////
|
2
|
+
// foreach.hpp header file
|
3
|
+
//
|
4
|
+
// Copyright 2004 Eric Niebler.
|
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
|
+
// See http://www.boost.org/libs/foreach for documentation
|
9
|
+
//
|
10
|
+
// Credits:
|
11
|
+
// Anson Tsao - for the initial inspiration and several good suggestions.
|
12
|
+
// Thorsten Ottosen - for Boost.Range, and for suggesting a way to detect
|
13
|
+
// const-qualified rvalues at compile time on VC7.1+
|
14
|
+
// Russell Hind - For help porting to Borland
|
15
|
+
// Alisdair Meredith - For help porting to Borland
|
16
|
+
// Stefan Slapeta - For help porting to Intel
|
17
|
+
// David Jenkins - For help finding a Microsoft Code Analysis bug
|
18
|
+
// mimomorin@... - For a patch to use rvalue refs on supporting compilers
|
19
|
+
|
20
|
+
#ifndef BOOST_FOREACH
|
21
|
+
|
22
|
+
// MS compatible compilers support #pragma once
|
23
|
+
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
|
24
|
+
# pragma once
|
25
|
+
#endif
|
26
|
+
|
27
|
+
#include <cstddef>
|
28
|
+
#include <utility> // for std::pair
|
29
|
+
|
30
|
+
#include <boost/config.hpp>
|
31
|
+
#include <boost/detail/workaround.hpp>
|
32
|
+
|
33
|
+
// Some compilers let us detect even const-qualified rvalues at compile-time
|
34
|
+
#if !defined(BOOST_NO_RVALUE_REFERENCES) \
|
35
|
+
|| BOOST_WORKAROUND(BOOST_MSVC, >= 1310) && !defined(_PREFAST_) \
|
36
|
+
|| (BOOST_WORKAROUND(__GNUC__, == 4) && (__GNUC_MINOR__ <= 5) && !defined(BOOST_INTEL) && \
|
37
|
+
!defined(BOOST_CLANG)) \
|
38
|
+
|| (BOOST_WORKAROUND(__GNUC__, == 3) && (__GNUC_MINOR__ >= 4) && !defined(BOOST_INTEL) && \
|
39
|
+
!defined(BOOST_CLANG))
|
40
|
+
# define BOOST_FOREACH_COMPILE_TIME_CONST_RVALUE_DETECTION
|
41
|
+
#else
|
42
|
+
// Some compilers allow temporaries to be bound to non-const references.
|
43
|
+
// These compilers make it impossible to for BOOST_FOREACH to detect
|
44
|
+
// temporaries and avoid reevaluation of the collection expression.
|
45
|
+
# if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
|
46
|
+
|| BOOST_WORKAROUND(__BORLANDC__, < 0x593) \
|
47
|
+
|| (BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, <= 700) && defined(_MSC_VER)) \
|
48
|
+
|| BOOST_WORKAROUND(__SUNPRO_CC, < 0x5100) \
|
49
|
+
|| BOOST_WORKAROUND(__DECCXX_VER, <= 60590042)
|
50
|
+
# define BOOST_FOREACH_NO_RVALUE_DETECTION
|
51
|
+
# endif
|
52
|
+
// Some compilers do not correctly implement the lvalue/rvalue conversion
|
53
|
+
// rules of the ternary conditional operator.
|
54
|
+
# if defined(BOOST_FOREACH_NO_RVALUE_DETECTION) \
|
55
|
+
|| defined(BOOST_NO_SFINAE) \
|
56
|
+
|| BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \
|
57
|
+
|| BOOST_WORKAROUND(BOOST_INTEL_WIN, BOOST_TESTED_AT(1400)) \
|
58
|
+
|| BOOST_WORKAROUND(__GNUC__, < 3) \
|
59
|
+
|| (BOOST_WORKAROUND(__GNUC__, == 3) && (__GNUC_MINOR__ <= 2)) \
|
60
|
+
|| (BOOST_WORKAROUND(__GNUC__, == 3) && (__GNUC_MINOR__ <= 3) && defined(__APPLE_CC__)) \
|
61
|
+
|| BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) \
|
62
|
+
|| BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3206)) \
|
63
|
+
|| BOOST_WORKAROUND(__SUNPRO_CC, >= 0x5100) \
|
64
|
+
|| BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x590))
|
65
|
+
# define BOOST_FOREACH_NO_CONST_RVALUE_DETECTION
|
66
|
+
# else
|
67
|
+
# define BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION
|
68
|
+
# endif
|
69
|
+
#endif
|
70
|
+
|
71
|
+
#include <boost/mpl/if.hpp>
|
72
|
+
#include <boost/mpl/assert.hpp>
|
73
|
+
#include <boost/mpl/logical.hpp>
|
74
|
+
#include <boost/mpl/eval_if.hpp>
|
75
|
+
#include <boost/noncopyable.hpp>
|
76
|
+
#include <boost/range/end.hpp>
|
77
|
+
#include <boost/range/begin.hpp>
|
78
|
+
#include <boost/range/rend.hpp>
|
79
|
+
#include <boost/range/rbegin.hpp>
|
80
|
+
#include <boost/range/iterator.hpp>
|
81
|
+
#include <boost/range/reverse_iterator.hpp>
|
82
|
+
#include <boost/type_traits/is_array.hpp>
|
83
|
+
#include <boost/type_traits/is_const.hpp>
|
84
|
+
#include <boost/type_traits/is_abstract.hpp>
|
85
|
+
#include <boost/type_traits/is_base_and_derived.hpp>
|
86
|
+
#include <boost/type_traits/is_rvalue_reference.hpp>
|
87
|
+
#include <boost/iterator/iterator_traits.hpp>
|
88
|
+
#include <boost/utility/addressof.hpp>
|
89
|
+
#include <boost/foreach_fwd.hpp>
|
90
|
+
|
91
|
+
#ifdef BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION
|
92
|
+
# include <new>
|
93
|
+
# include <boost/aligned_storage.hpp>
|
94
|
+
# include <boost/utility/enable_if.hpp>
|
95
|
+
# include <boost/type_traits/remove_const.hpp>
|
96
|
+
#endif
|
97
|
+
|
98
|
+
namespace boost
|
99
|
+
{
|
100
|
+
|
101
|
+
// forward declarations for iterator_range
|
102
|
+
template<typename T>
|
103
|
+
class iterator_range;
|
104
|
+
|
105
|
+
// forward declarations for sub_range
|
106
|
+
template<typename T>
|
107
|
+
class sub_range;
|
108
|
+
|
109
|
+
namespace foreach
|
110
|
+
{
|
111
|
+
///////////////////////////////////////////////////////////////////////////////
|
112
|
+
// in_range
|
113
|
+
//
|
114
|
+
template<typename T>
|
115
|
+
inline std::pair<T, T> in_range(T begin, T end)
|
116
|
+
{
|
117
|
+
return std::make_pair(begin, end);
|
118
|
+
}
|
119
|
+
|
120
|
+
///////////////////////////////////////////////////////////////////////////////
|
121
|
+
// boost::foreach::is_lightweight_proxy
|
122
|
+
// Specialize this for user-defined collection types if they are inexpensive to copy.
|
123
|
+
// This tells BOOST_FOREACH it can avoid the rvalue/lvalue detection stuff.
|
124
|
+
template<typename T>
|
125
|
+
struct is_lightweight_proxy
|
126
|
+
: boost::mpl::false_
|
127
|
+
{
|
128
|
+
};
|
129
|
+
|
130
|
+
///////////////////////////////////////////////////////////////////////////////
|
131
|
+
// boost::foreach::is_noncopyable
|
132
|
+
// Specialize this for user-defined collection types if they cannot be copied.
|
133
|
+
// This also tells BOOST_FOREACH to avoid the rvalue/lvalue detection stuff.
|
134
|
+
template<typename T>
|
135
|
+
struct is_noncopyable
|
136
|
+
#if !defined(BOOST_BROKEN_IS_BASE_AND_DERIVED) && !defined(BOOST_NO_IS_ABSTRACT)
|
137
|
+
: boost::mpl::or_<
|
138
|
+
boost::is_abstract<T>
|
139
|
+
, boost::is_base_and_derived<boost::noncopyable, T>
|
140
|
+
>
|
141
|
+
#elif !defined(BOOST_BROKEN_IS_BASE_AND_DERIVED)
|
142
|
+
: boost::is_base_and_derived<boost::noncopyable, T>
|
143
|
+
#elif !defined(BOOST_NO_IS_ABSTRACT)
|
144
|
+
: boost::is_abstract<T>
|
145
|
+
#else
|
146
|
+
: boost::mpl::false_
|
147
|
+
#endif
|
148
|
+
{
|
149
|
+
};
|
150
|
+
|
151
|
+
} // namespace foreach
|
152
|
+
|
153
|
+
} // namespace boost
|
154
|
+
|
155
|
+
// vc6/7 needs help ordering the following overloads
|
156
|
+
#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
157
|
+
# define BOOST_FOREACH_TAG_DEFAULT ...
|
158
|
+
#else
|
159
|
+
# define BOOST_FOREACH_TAG_DEFAULT boost::foreach::tag
|
160
|
+
#endif
|
161
|
+
|
162
|
+
///////////////////////////////////////////////////////////////////////////////
|
163
|
+
// boost_foreach_is_lightweight_proxy
|
164
|
+
// Another customization point for the is_lightweight_proxy optimization,
|
165
|
+
// this one works on legacy compilers. Overload boost_foreach_is_lightweight_proxy
|
166
|
+
// at the global namespace for your type.
|
167
|
+
template<typename T>
|
168
|
+
inline boost::foreach::is_lightweight_proxy<T> *
|
169
|
+
boost_foreach_is_lightweight_proxy(T *&, BOOST_FOREACH_TAG_DEFAULT) { return 0; }
|
170
|
+
|
171
|
+
template<typename T>
|
172
|
+
inline boost::mpl::true_ *
|
173
|
+
boost_foreach_is_lightweight_proxy(std::pair<T, T> *&, boost::foreach::tag) { return 0; }
|
174
|
+
|
175
|
+
template<typename T>
|
176
|
+
inline boost::mpl::true_ *
|
177
|
+
boost_foreach_is_lightweight_proxy(boost::iterator_range<T> *&, boost::foreach::tag) { return 0; }
|
178
|
+
|
179
|
+
template<typename T>
|
180
|
+
inline boost::mpl::true_ *
|
181
|
+
boost_foreach_is_lightweight_proxy(boost::sub_range<T> *&, boost::foreach::tag) { return 0; }
|
182
|
+
|
183
|
+
template<typename T>
|
184
|
+
inline boost::mpl::true_ *
|
185
|
+
boost_foreach_is_lightweight_proxy(T **&, boost::foreach::tag) { return 0; }
|
186
|
+
|
187
|
+
///////////////////////////////////////////////////////////////////////////////
|
188
|
+
// boost_foreach_is_noncopyable
|
189
|
+
// Another customization point for the is_noncopyable trait,
|
190
|
+
// this one works on legacy compilers. Overload boost_foreach_is_noncopyable
|
191
|
+
// at the global namespace for your type.
|
192
|
+
template<typename T>
|
193
|
+
inline boost::foreach::is_noncopyable<T> *
|
194
|
+
boost_foreach_is_noncopyable(T *&, BOOST_FOREACH_TAG_DEFAULT) { return 0; }
|
195
|
+
|
196
|
+
namespace boost
|
197
|
+
{
|
198
|
+
|
199
|
+
namespace foreach_detail_
|
200
|
+
{
|
201
|
+
|
202
|
+
///////////////////////////////////////////////////////////////////////////////
|
203
|
+
// Define some utilities for assessing the properties of expressions
|
204
|
+
//
|
205
|
+
template<typename Bool1, typename Bool2>
|
206
|
+
inline boost::mpl::and_<Bool1, Bool2> *and_(Bool1 *, Bool2 *) { return 0; }
|
207
|
+
|
208
|
+
template<typename Bool1, typename Bool2, typename Bool3>
|
209
|
+
inline boost::mpl::and_<Bool1, Bool2, Bool3> *and_(Bool1 *, Bool2 *, Bool3 *) { return 0; }
|
210
|
+
|
211
|
+
template<typename Bool1, typename Bool2>
|
212
|
+
inline boost::mpl::or_<Bool1, Bool2> *or_(Bool1 *, Bool2 *) { return 0; }
|
213
|
+
|
214
|
+
template<typename Bool1, typename Bool2, typename Bool3>
|
215
|
+
inline boost::mpl::or_<Bool1, Bool2, Bool3> *or_(Bool1 *, Bool2 *, Bool3 *) { return 0; }
|
216
|
+
|
217
|
+
template<typename Bool1>
|
218
|
+
inline boost::mpl::not_<Bool1> *not_(Bool1 *) { return 0; }
|
219
|
+
|
220
|
+
template<typename T>
|
221
|
+
inline boost::is_array<T> *is_array_(T const &) { return 0; }
|
222
|
+
|
223
|
+
template<typename T>
|
224
|
+
inline boost::is_const<T> *is_const_(T &) { return 0; }
|
225
|
+
|
226
|
+
#ifndef BOOST_FOREACH_NO_RVALUE_DETECTION
|
227
|
+
template<typename T>
|
228
|
+
inline boost::mpl::true_ *is_const_(T const &) { return 0; }
|
229
|
+
#endif
|
230
|
+
|
231
|
+
#ifdef BOOST_NO_RVALUE_REFERENCES
|
232
|
+
template<typename T>
|
233
|
+
inline boost::mpl::false_ *is_rvalue_(T &, int) { return 0; }
|
234
|
+
|
235
|
+
template<typename T>
|
236
|
+
inline boost::mpl::true_ *is_rvalue_(T const &, ...) { return 0; }
|
237
|
+
#else
|
238
|
+
template<typename T>
|
239
|
+
inline boost::is_rvalue_reference<T &&> *is_rvalue_(T &&, int) { return 0; }
|
240
|
+
#endif
|
241
|
+
|
242
|
+
///////////////////////////////////////////////////////////////////////////////
|
243
|
+
// auto_any_t/auto_any
|
244
|
+
// General utility for putting an object of any type into automatic storage
|
245
|
+
struct auto_any_base
|
246
|
+
{
|
247
|
+
// auto_any_base must evaluate to false in boolean context so that
|
248
|
+
// they can be declared in if() statements.
|
249
|
+
operator bool() const
|
250
|
+
{
|
251
|
+
return false;
|
252
|
+
}
|
253
|
+
};
|
254
|
+
|
255
|
+
template<typename T>
|
256
|
+
struct auto_any : auto_any_base
|
257
|
+
{
|
258
|
+
explicit auto_any(T const &t)
|
259
|
+
: item(t)
|
260
|
+
{
|
261
|
+
}
|
262
|
+
|
263
|
+
// temporaries of type auto_any will be bound to const auto_any_base
|
264
|
+
// references, but we still want to be able to mutate the stored
|
265
|
+
// data, so declare it as mutable.
|
266
|
+
mutable T item;
|
267
|
+
};
|
268
|
+
|
269
|
+
typedef auto_any_base const &auto_any_t;
|
270
|
+
|
271
|
+
template<typename T, typename C>
|
272
|
+
inline BOOST_DEDUCED_TYPENAME boost::mpl::if_<C, T const, T>::type &auto_any_cast(auto_any_t a)
|
273
|
+
{
|
274
|
+
return static_cast<auto_any<T> const &>(a).item;
|
275
|
+
}
|
276
|
+
|
277
|
+
typedef boost::mpl::true_ const_;
|
278
|
+
|
279
|
+
///////////////////////////////////////////////////////////////////////////////
|
280
|
+
// type2type
|
281
|
+
//
|
282
|
+
template<typename T, typename C = boost::mpl::false_>
|
283
|
+
struct type2type
|
284
|
+
: boost::mpl::if_<C, T const, T>
|
285
|
+
{
|
286
|
+
};
|
287
|
+
|
288
|
+
template<typename T>
|
289
|
+
struct wrap_cstr
|
290
|
+
{
|
291
|
+
typedef T type;
|
292
|
+
};
|
293
|
+
|
294
|
+
template<>
|
295
|
+
struct wrap_cstr<char *>
|
296
|
+
{
|
297
|
+
typedef wrap_cstr<char *> type;
|
298
|
+
typedef char *iterator;
|
299
|
+
typedef char *const_iterator;
|
300
|
+
};
|
301
|
+
|
302
|
+
template<>
|
303
|
+
struct wrap_cstr<char const *>
|
304
|
+
{
|
305
|
+
typedef wrap_cstr<char const *> type;
|
306
|
+
typedef char const *iterator;
|
307
|
+
typedef char const *const_iterator;
|
308
|
+
};
|
309
|
+
|
310
|
+
template<>
|
311
|
+
struct wrap_cstr<wchar_t *>
|
312
|
+
{
|
313
|
+
typedef wrap_cstr<wchar_t *> type;
|
314
|
+
typedef wchar_t *iterator;
|
315
|
+
typedef wchar_t *const_iterator;
|
316
|
+
};
|
317
|
+
|
318
|
+
template<>
|
319
|
+
struct wrap_cstr<wchar_t const *>
|
320
|
+
{
|
321
|
+
typedef wrap_cstr<wchar_t const *> type;
|
322
|
+
typedef wchar_t const *iterator;
|
323
|
+
typedef wchar_t const *const_iterator;
|
324
|
+
};
|
325
|
+
|
326
|
+
template<typename T>
|
327
|
+
struct is_char_array
|
328
|
+
: mpl::and_<
|
329
|
+
is_array<T>
|
330
|
+
, mpl::or_<
|
331
|
+
is_convertible<T, char const *>
|
332
|
+
, is_convertible<T, wchar_t const *>
|
333
|
+
>
|
334
|
+
>
|
335
|
+
{};
|
336
|
+
|
337
|
+
template<typename T, typename C = boost::mpl::false_>
|
338
|
+
struct foreach_iterator
|
339
|
+
{
|
340
|
+
// **** READ THIS IF YOUR COMPILE BREAKS HERE ****
|
341
|
+
//
|
342
|
+
// There is an ambiguity about how to iterate over arrays of char and wchar_t.
|
343
|
+
// Should the last array element be treated as a null terminator to be skipped, or
|
344
|
+
// is it just like any other element in the array? To fix the problem, you must
|
345
|
+
// say which behavior you want.
|
346
|
+
//
|
347
|
+
// To treat the container as a null-terminated string, merely cast it to a
|
348
|
+
// char const *, as in BOOST_FOREACH( char ch, (char const *)"hello" ) ...
|
349
|
+
//
|
350
|
+
// To treat the container as an array, use boost::as_array() in <boost/range/as_array.hpp>,
|
351
|
+
// as in BOOST_FOREACH( char ch, boost::as_array("hello") ) ...
|
352
|
+
#if !defined(BOOST_MSVC) || BOOST_MSVC > 1300
|
353
|
+
BOOST_MPL_ASSERT_MSG( (!is_char_array<T>::value), IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING, (T&) );
|
354
|
+
#endif
|
355
|
+
|
356
|
+
// If the type is a pointer to a null terminated string (as opposed
|
357
|
+
// to an array type), there is no ambiguity.
|
358
|
+
typedef BOOST_DEDUCED_TYPENAME wrap_cstr<T>::type container;
|
359
|
+
|
360
|
+
typedef BOOST_DEDUCED_TYPENAME boost::mpl::eval_if<
|
361
|
+
C
|
362
|
+
, range_const_iterator<container>
|
363
|
+
, range_mutable_iterator<container>
|
364
|
+
>::type type;
|
365
|
+
};
|
366
|
+
|
367
|
+
|
368
|
+
template<typename T, typename C = boost::mpl::false_>
|
369
|
+
struct foreach_reverse_iterator
|
370
|
+
{
|
371
|
+
// **** READ THIS IF YOUR COMPILE BREAKS HERE ****
|
372
|
+
//
|
373
|
+
// There is an ambiguity about how to iterate over arrays of char and wchar_t.
|
374
|
+
// Should the last array element be treated as a null terminator to be skipped, or
|
375
|
+
// is it just like any other element in the array? To fix the problem, you must
|
376
|
+
// say which behavior you want.
|
377
|
+
//
|
378
|
+
// To treat the container as a null-terminated string, merely cast it to a
|
379
|
+
// char const *, as in BOOST_FOREACH( char ch, (char const *)"hello" ) ...
|
380
|
+
//
|
381
|
+
// To treat the container as an array, use boost::as_array() in <boost/range/as_array.hpp>,
|
382
|
+
// as in BOOST_FOREACH( char ch, boost::as_array("hello") ) ...
|
383
|
+
#if !defined(BOOST_MSVC) || BOOST_MSVC > 1300
|
384
|
+
BOOST_MPL_ASSERT_MSG( (!is_char_array<T>::value), IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING, (T&) );
|
385
|
+
#endif
|
386
|
+
|
387
|
+
// If the type is a pointer to a null terminated string (as opposed
|
388
|
+
// to an array type), there is no ambiguity.
|
389
|
+
typedef BOOST_DEDUCED_TYPENAME wrap_cstr<T>::type container;
|
390
|
+
|
391
|
+
typedef BOOST_DEDUCED_TYPENAME boost::mpl::eval_if<
|
392
|
+
C
|
393
|
+
, range_reverse_iterator<container const>
|
394
|
+
, range_reverse_iterator<container>
|
395
|
+
>::type type;
|
396
|
+
};
|
397
|
+
|
398
|
+
template<typename T, typename C = boost::mpl::false_>
|
399
|
+
struct foreach_reference
|
400
|
+
: iterator_reference<BOOST_DEDUCED_TYPENAME foreach_iterator<T, C>::type>
|
401
|
+
{
|
402
|
+
};
|
403
|
+
|
404
|
+
///////////////////////////////////////////////////////////////////////////////
|
405
|
+
// encode_type
|
406
|
+
//
|
407
|
+
template<typename T>
|
408
|
+
inline type2type<T> *encode_type(T &, boost::mpl::false_ *) { return 0; }
|
409
|
+
|
410
|
+
template<typename T>
|
411
|
+
inline type2type<T, const_> *encode_type(T const &, boost::mpl::true_ *) { return 0; }
|
412
|
+
|
413
|
+
///////////////////////////////////////////////////////////////////////////////
|
414
|
+
// set_false
|
415
|
+
//
|
416
|
+
inline bool set_false(bool &b)
|
417
|
+
{
|
418
|
+
b = false;
|
419
|
+
return false;
|
420
|
+
}
|
421
|
+
|
422
|
+
///////////////////////////////////////////////////////////////////////////////
|
423
|
+
// to_ptr
|
424
|
+
//
|
425
|
+
template<typename T>
|
426
|
+
inline T *&to_ptr(T const &)
|
427
|
+
{
|
428
|
+
static T *t = 0;
|
429
|
+
return t;
|
430
|
+
}
|
431
|
+
|
432
|
+
// Borland needs a little extra help with arrays
|
433
|
+
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
|
434
|
+
template<typename T,std::size_t N>
|
435
|
+
inline T (*&to_ptr(T (&)[N]))[N]
|
436
|
+
{
|
437
|
+
static T (*t)[N] = 0;
|
438
|
+
return t;
|
439
|
+
}
|
440
|
+
|
441
|
+
///////////////////////////////////////////////////////////////////////////////
|
442
|
+
// derefof
|
443
|
+
//
|
444
|
+
template<typename T>
|
445
|
+
inline T &derefof(T *t)
|
446
|
+
{
|
447
|
+
// This is a work-around for a compiler bug in Borland. If T* is a pointer to array type U(*)[N],
|
448
|
+
// then dereferencing it results in a U* instead of U(&)[N]. The cast forces the issue.
|
449
|
+
return reinterpret_cast<T &>(
|
450
|
+
*const_cast<char *>(
|
451
|
+
reinterpret_cast<char const volatile *>(t)
|
452
|
+
)
|
453
|
+
);
|
454
|
+
}
|
455
|
+
|
456
|
+
# define BOOST_FOREACH_DEREFOF(T) boost::foreach_detail_::derefof(*T)
|
457
|
+
#else
|
458
|
+
# define BOOST_FOREACH_DEREFOF(T) (*T)
|
459
|
+
#endif
|
460
|
+
|
461
|
+
#if defined(BOOST_FOREACH_COMPILE_TIME_CONST_RVALUE_DETECTION) \
|
462
|
+
&& !defined(BOOST_NO_RVALUE_REFERENCES)
|
463
|
+
///////////////////////////////////////////////////////////////////////////////
|
464
|
+
// Rvalue references makes it drop-dead simple to detect at compile time
|
465
|
+
// whether an expression is an rvalue.
|
466
|
+
///////////////////////////////////////////////////////////////////////////////
|
467
|
+
|
468
|
+
# define BOOST_FOREACH_IS_RVALUE(COL) \
|
469
|
+
boost::foreach_detail_::is_rvalue_((COL), 0)
|
470
|
+
|
471
|
+
#elif defined(BOOST_FOREACH_COMPILE_TIME_CONST_RVALUE_DETECTION) \
|
472
|
+
&& defined(BOOST_NO_RVALUE_REFERENCES)
|
473
|
+
///////////////////////////////////////////////////////////////////////////////
|
474
|
+
// Detect at compile-time whether an expression yields an rvalue or
|
475
|
+
// an lvalue. This is rather non-standard, but some popular compilers
|
476
|
+
// accept it.
|
477
|
+
///////////////////////////////////////////////////////////////////////////////
|
478
|
+
|
479
|
+
///////////////////////////////////////////////////////////////////////////////
|
480
|
+
// rvalue_probe
|
481
|
+
//
|
482
|
+
template<typename T>
|
483
|
+
struct rvalue_probe
|
484
|
+
{
|
485
|
+
struct private_type_ {};
|
486
|
+
// can't ever return an array by value
|
487
|
+
typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_<
|
488
|
+
boost::mpl::or_<boost::is_abstract<T>, boost::is_array<T> >, private_type_, T
|
489
|
+
>::type value_type;
|
490
|
+
operator value_type() { return *reinterpret_cast<value_type *>(this); } // never called
|
491
|
+
operator T &() const { return *reinterpret_cast<T *>(const_cast<rvalue_probe *>(this)); } // never called
|
492
|
+
};
|
493
|
+
|
494
|
+
template<typename T>
|
495
|
+
rvalue_probe<T> const make_probe(T const &)
|
496
|
+
{
|
497
|
+
return rvalue_probe<T>();
|
498
|
+
}
|
499
|
+
|
500
|
+
# define BOOST_FOREACH_IS_RVALUE(COL) \
|
501
|
+
boost::foreach_detail_::and_( \
|
502
|
+
boost::foreach_detail_::not_(boost::foreach_detail_::is_array_(COL)) \
|
503
|
+
, (true ? 0 : boost::foreach_detail_::is_rvalue_( \
|
504
|
+
(true ? boost::foreach_detail_::make_probe(COL) : (COL)), 0)))
|
505
|
+
|
506
|
+
#elif defined(BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION)
|
507
|
+
///////////////////////////////////////////////////////////////////////////////
|
508
|
+
// Detect at run-time whether an expression yields an rvalue
|
509
|
+
// or an lvalue. This is 100% standard C++, but not all compilers
|
510
|
+
// accept it. Also, it causes FOREACH to break when used with non-
|
511
|
+
// copyable collection types.
|
512
|
+
///////////////////////////////////////////////////////////////////////////////
|
513
|
+
|
514
|
+
///////////////////////////////////////////////////////////////////////////////
|
515
|
+
// rvalue_probe
|
516
|
+
//
|
517
|
+
template<typename T>
|
518
|
+
struct rvalue_probe
|
519
|
+
{
|
520
|
+
rvalue_probe(T &t, bool &b)
|
521
|
+
: value(t)
|
522
|
+
, is_rvalue(b)
|
523
|
+
{
|
524
|
+
}
|
525
|
+
|
526
|
+
struct private_type_ {};
|
527
|
+
// can't ever return an array or an abstract type by value
|
528
|
+
#ifdef BOOST_NO_IS_ABSTRACT
|
529
|
+
typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_<
|
530
|
+
boost::is_array<T>, private_type_, T
|
531
|
+
>::type value_type;
|
532
|
+
#else
|
533
|
+
typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_<
|
534
|
+
boost::mpl::or_<boost::is_abstract<T>, boost::is_array<T> >, private_type_, T
|
535
|
+
>::type value_type;
|
536
|
+
#endif
|
537
|
+
|
538
|
+
operator value_type()
|
539
|
+
{
|
540
|
+
this->is_rvalue = true;
|
541
|
+
return this->value;
|
542
|
+
}
|
543
|
+
|
544
|
+
operator T &() const
|
545
|
+
{
|
546
|
+
return this->value;
|
547
|
+
}
|
548
|
+
|
549
|
+
private:
|
550
|
+
T &value;
|
551
|
+
bool &is_rvalue;
|
552
|
+
};
|
553
|
+
|
554
|
+
template<typename T>
|
555
|
+
rvalue_probe<T> make_probe(T &t, bool &b) { return rvalue_probe<T>(t, b); }
|
556
|
+
|
557
|
+
template<typename T>
|
558
|
+
rvalue_probe<T const> make_probe(T const &t, bool &b) { return rvalue_probe<T const>(t, b); }
|
559
|
+
|
560
|
+
///////////////////////////////////////////////////////////////////////////////
|
561
|
+
// simple_variant
|
562
|
+
// holds either a T or a T const*
|
563
|
+
template<typename T>
|
564
|
+
struct simple_variant
|
565
|
+
{
|
566
|
+
simple_variant(T const *t)
|
567
|
+
: is_rvalue(false)
|
568
|
+
{
|
569
|
+
*static_cast<T const **>(this->data.address()) = t;
|
570
|
+
}
|
571
|
+
|
572
|
+
simple_variant(T const &t)
|
573
|
+
: is_rvalue(true)
|
574
|
+
{
|
575
|
+
::new(this->data.address()) T(t);
|
576
|
+
}
|
577
|
+
|
578
|
+
simple_variant(simple_variant const &that)
|
579
|
+
: is_rvalue(that.is_rvalue)
|
580
|
+
{
|
581
|
+
if(this->is_rvalue)
|
582
|
+
::new(this->data.address()) T(*that.get());
|
583
|
+
else
|
584
|
+
*static_cast<T const **>(this->data.address()) = that.get();
|
585
|
+
}
|
586
|
+
|
587
|
+
~simple_variant()
|
588
|
+
{
|
589
|
+
if(this->is_rvalue)
|
590
|
+
this->get()->~T();
|
591
|
+
}
|
592
|
+
|
593
|
+
T const *get() const
|
594
|
+
{
|
595
|
+
if(this->is_rvalue)
|
596
|
+
return static_cast<T const *>(this->data.address());
|
597
|
+
else
|
598
|
+
return *static_cast<T const * const *>(this->data.address());
|
599
|
+
}
|
600
|
+
|
601
|
+
private:
|
602
|
+
enum size_type { size = sizeof(T) > sizeof(T*) ? sizeof(T) : sizeof(T*) };
|
603
|
+
simple_variant &operator =(simple_variant const &);
|
604
|
+
bool const is_rvalue;
|
605
|
+
aligned_storage<size> data;
|
606
|
+
};
|
607
|
+
|
608
|
+
// If the collection is an array or is noncopyable, it must be an lvalue.
|
609
|
+
// If the collection is a lightweight proxy, treat it as an rvalue
|
610
|
+
// BUGBUG what about a noncopyable proxy?
|
611
|
+
template<typename LValue, typename IsProxy>
|
612
|
+
inline BOOST_DEDUCED_TYPENAME boost::enable_if<boost::mpl::or_<LValue, IsProxy>, IsProxy>::type *
|
613
|
+
should_copy_impl(LValue *, IsProxy *, bool *)
|
614
|
+
{
|
615
|
+
return 0;
|
616
|
+
}
|
617
|
+
|
618
|
+
// Otherwise, we must determine at runtime whether it's an lvalue or rvalue
|
619
|
+
inline bool *
|
620
|
+
should_copy_impl(boost::mpl::false_ *, boost::mpl::false_ *, bool *is_rvalue)
|
621
|
+
{
|
622
|
+
return is_rvalue;
|
623
|
+
}
|
624
|
+
|
625
|
+
#endif
|
626
|
+
|
627
|
+
///////////////////////////////////////////////////////////////////////////////
|
628
|
+
// contain
|
629
|
+
//
|
630
|
+
template<typename T>
|
631
|
+
inline auto_any<T> contain(T const &t, boost::mpl::true_ *) // rvalue
|
632
|
+
{
|
633
|
+
return auto_any<T>(t);
|
634
|
+
}
|
635
|
+
|
636
|
+
template<typename T>
|
637
|
+
inline auto_any<T *> contain(T &t, boost::mpl::false_ *) // lvalue
|
638
|
+
{
|
639
|
+
// Cannot seem to get sunpro to handle addressof() with array types.
|
640
|
+
#if BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x570))
|
641
|
+
return auto_any<T *>(&t);
|
642
|
+
#else
|
643
|
+
return auto_any<T *>(boost::addressof(t));
|
644
|
+
#endif
|
645
|
+
}
|
646
|
+
|
647
|
+
#ifdef BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION
|
648
|
+
template<typename T>
|
649
|
+
inline auto_any<simple_variant<T> >
|
650
|
+
contain(T const &t, bool *rvalue)
|
651
|
+
{
|
652
|
+
return auto_any<simple_variant<T> >(*rvalue ? simple_variant<T>(t) : simple_variant<T>(&t));
|
653
|
+
}
|
654
|
+
#endif
|
655
|
+
|
656
|
+
/////////////////////////////////////////////////////////////////////////////
|
657
|
+
// begin
|
658
|
+
//
|
659
|
+
template<typename T, typename C>
|
660
|
+
inline auto_any<BOOST_DEDUCED_TYPENAME foreach_iterator<T, C>::type>
|
661
|
+
begin(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
|
662
|
+
{
|
663
|
+
return auto_any<BOOST_DEDUCED_TYPENAME foreach_iterator<T, C>::type>(
|
664
|
+
boost::begin(auto_any_cast<T, C>(col)));
|
665
|
+
}
|
666
|
+
|
667
|
+
template<typename T, typename C>
|
668
|
+
inline auto_any<BOOST_DEDUCED_TYPENAME foreach_iterator<T, C>::type>
|
669
|
+
begin(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
|
670
|
+
{
|
671
|
+
typedef BOOST_DEDUCED_TYPENAME type2type<T, C>::type type;
|
672
|
+
typedef BOOST_DEDUCED_TYPENAME foreach_iterator<T, C>::type iterator;
|
673
|
+
return auto_any<BOOST_DEDUCED_TYPENAME foreach_iterator<T, C>::type>(
|
674
|
+
iterator(boost::begin(BOOST_FOREACH_DEREFOF((auto_any_cast<type *, boost::mpl::false_>(col))))));
|
675
|
+
}
|
676
|
+
|
677
|
+
#ifdef BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION
|
678
|
+
template<typename T>
|
679
|
+
inline auto_any<BOOST_DEDUCED_TYPENAME foreach_iterator<T, const_>::type>
|
680
|
+
begin(auto_any_t col, type2type<T, const_> *, bool *)
|
681
|
+
{
|
682
|
+
return auto_any<BOOST_DEDUCED_TYPENAME foreach_iterator<T, const_>::type>(
|
683
|
+
boost::begin(*auto_any_cast<simple_variant<T>, boost::mpl::false_>(col).get()));
|
684
|
+
}
|
685
|
+
#endif
|
686
|
+
|
687
|
+
#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
688
|
+
template<typename T, typename C>
|
689
|
+
inline auto_any<T *>
|
690
|
+
begin(auto_any_t col, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
|
691
|
+
{
|
692
|
+
return auto_any<T *>(auto_any_cast<T *, boost::mpl::false_>(col));
|
693
|
+
}
|
694
|
+
#endif
|
695
|
+
|
696
|
+
///////////////////////////////////////////////////////////////////////////////
|
697
|
+
// end
|
698
|
+
//
|
699
|
+
template<typename T, typename C>
|
700
|
+
inline auto_any<BOOST_DEDUCED_TYPENAME foreach_iterator<T, C>::type>
|
701
|
+
end(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
|
702
|
+
{
|
703
|
+
return auto_any<BOOST_DEDUCED_TYPENAME foreach_iterator<T, C>::type>(
|
704
|
+
boost::end(auto_any_cast<T, C>(col)));
|
705
|
+
}
|
706
|
+
|
707
|
+
template<typename T, typename C>
|
708
|
+
inline auto_any<BOOST_DEDUCED_TYPENAME foreach_iterator<T, C>::type>
|
709
|
+
end(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
|
710
|
+
{
|
711
|
+
typedef BOOST_DEDUCED_TYPENAME type2type<T, C>::type type;
|
712
|
+
typedef BOOST_DEDUCED_TYPENAME foreach_iterator<T, C>::type iterator;
|
713
|
+
return auto_any<BOOST_DEDUCED_TYPENAME foreach_iterator<T, C>::type>(
|
714
|
+
iterator(boost::end(BOOST_FOREACH_DEREFOF((auto_any_cast<type *, boost::mpl::false_>(col))))));
|
715
|
+
}
|
716
|
+
|
717
|
+
#ifdef BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION
|
718
|
+
template<typename T>
|
719
|
+
inline auto_any<BOOST_DEDUCED_TYPENAME foreach_iterator<T, const_>::type>
|
720
|
+
end(auto_any_t col, type2type<T, const_> *, bool *)
|
721
|
+
{
|
722
|
+
return auto_any<BOOST_DEDUCED_TYPENAME foreach_iterator<T, const_>::type>(
|
723
|
+
boost::end(*auto_any_cast<simple_variant<T>, boost::mpl::false_>(col).get()));
|
724
|
+
}
|
725
|
+
#endif
|
726
|
+
|
727
|
+
#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
728
|
+
template<typename T, typename C>
|
729
|
+
inline auto_any<int>
|
730
|
+
end(auto_any_t, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
|
731
|
+
{
|
732
|
+
return auto_any<int>(0); // not used
|
733
|
+
}
|
734
|
+
#endif
|
735
|
+
|
736
|
+
///////////////////////////////////////////////////////////////////////////////
|
737
|
+
// done
|
738
|
+
//
|
739
|
+
template<typename T, typename C>
|
740
|
+
inline bool done(auto_any_t cur, auto_any_t end, type2type<T, C> *)
|
741
|
+
{
|
742
|
+
typedef BOOST_DEDUCED_TYPENAME foreach_iterator<T, C>::type iter_t;
|
743
|
+
return auto_any_cast<iter_t, boost::mpl::false_>(cur) == auto_any_cast<iter_t, boost::mpl::false_>(end);
|
744
|
+
}
|
745
|
+
|
746
|
+
#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
747
|
+
template<typename T, typename C>
|
748
|
+
inline bool done(auto_any_t cur, auto_any_t, type2type<T *, C> *) // null-terminated C-style strings
|
749
|
+
{
|
750
|
+
return ! *auto_any_cast<T *, boost::mpl::false_>(cur);
|
751
|
+
}
|
752
|
+
#endif
|
753
|
+
|
754
|
+
///////////////////////////////////////////////////////////////////////////////
|
755
|
+
// next
|
756
|
+
//
|
757
|
+
template<typename T, typename C>
|
758
|
+
inline void next(auto_any_t cur, type2type<T, C> *)
|
759
|
+
{
|
760
|
+
typedef BOOST_DEDUCED_TYPENAME foreach_iterator<T, C>::type iter_t;
|
761
|
+
++auto_any_cast<iter_t, boost::mpl::false_>(cur);
|
762
|
+
}
|
763
|
+
|
764
|
+
///////////////////////////////////////////////////////////////////////////////
|
765
|
+
// deref
|
766
|
+
//
|
767
|
+
template<typename T, typename C>
|
768
|
+
inline BOOST_DEDUCED_TYPENAME foreach_reference<T, C>::type
|
769
|
+
deref(auto_any_t cur, type2type<T, C> *)
|
770
|
+
{
|
771
|
+
typedef BOOST_DEDUCED_TYPENAME foreach_iterator<T, C>::type iter_t;
|
772
|
+
return *auto_any_cast<iter_t, boost::mpl::false_>(cur);
|
773
|
+
}
|
774
|
+
|
775
|
+
/////////////////////////////////////////////////////////////////////////////
|
776
|
+
// rbegin
|
777
|
+
//
|
778
|
+
template<typename T, typename C>
|
779
|
+
inline auto_any<BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type>
|
780
|
+
rbegin(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
|
781
|
+
{
|
782
|
+
return auto_any<BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type>(
|
783
|
+
boost::rbegin(auto_any_cast<T, C>(col)));
|
784
|
+
}
|
785
|
+
|
786
|
+
template<typename T, typename C>
|
787
|
+
inline auto_any<BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type>
|
788
|
+
rbegin(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
|
789
|
+
{
|
790
|
+
typedef BOOST_DEDUCED_TYPENAME type2type<T, C>::type type;
|
791
|
+
typedef BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type iterator;
|
792
|
+
return auto_any<BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type>(
|
793
|
+
iterator(boost::rbegin(BOOST_FOREACH_DEREFOF((auto_any_cast<type *, boost::mpl::false_>(col))))));
|
794
|
+
}
|
795
|
+
|
796
|
+
#ifdef BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION
|
797
|
+
template<typename T>
|
798
|
+
inline auto_any<BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, const_>::type>
|
799
|
+
rbegin(auto_any_t col, type2type<T, const_> *, bool *)
|
800
|
+
{
|
801
|
+
return auto_any<BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, const_>::type>(
|
802
|
+
boost::rbegin(*auto_any_cast<simple_variant<T>, boost::mpl::false_>(col).get()));
|
803
|
+
}
|
804
|
+
#endif
|
805
|
+
|
806
|
+
#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
807
|
+
template<typename T, typename C>
|
808
|
+
inline auto_any<reverse_iterator<T *> >
|
809
|
+
rbegin(auto_any_t col, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
|
810
|
+
{
|
811
|
+
T *p = auto_any_cast<T *, boost::mpl::false_>(col);
|
812
|
+
while(0 != *p)
|
813
|
+
++p;
|
814
|
+
return auto_any<reverse_iterator<T *> >(reverse_iterator<T *>(p));
|
815
|
+
}
|
816
|
+
#endif
|
817
|
+
|
818
|
+
///////////////////////////////////////////////////////////////////////////////
|
819
|
+
// rend
|
820
|
+
//
|
821
|
+
template<typename T, typename C>
|
822
|
+
inline auto_any<BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type>
|
823
|
+
rend(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
|
824
|
+
{
|
825
|
+
return auto_any<BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type>(
|
826
|
+
boost::rend(auto_any_cast<T, C>(col)));
|
827
|
+
}
|
828
|
+
|
829
|
+
template<typename T, typename C>
|
830
|
+
inline auto_any<BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type>
|
831
|
+
rend(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
|
832
|
+
{
|
833
|
+
typedef BOOST_DEDUCED_TYPENAME type2type<T, C>::type type;
|
834
|
+
typedef BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type iterator;
|
835
|
+
return auto_any<BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type>(
|
836
|
+
iterator(boost::rend(BOOST_FOREACH_DEREFOF((auto_any_cast<type *, boost::mpl::false_>(col))))));
|
837
|
+
}
|
838
|
+
|
839
|
+
#ifdef BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION
|
840
|
+
template<typename T>
|
841
|
+
inline auto_any<BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, const_>::type>
|
842
|
+
rend(auto_any_t col, type2type<T, const_> *, bool *)
|
843
|
+
{
|
844
|
+
return auto_any<BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, const_>::type>(
|
845
|
+
boost::rend(*auto_any_cast<simple_variant<T>, boost::mpl::false_>(col).get()));
|
846
|
+
}
|
847
|
+
#endif
|
848
|
+
|
849
|
+
#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
850
|
+
template<typename T, typename C>
|
851
|
+
inline auto_any<reverse_iterator<T *> >
|
852
|
+
rend(auto_any_t col, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
|
853
|
+
{
|
854
|
+
return auto_any<reverse_iterator<T *> >(
|
855
|
+
reverse_iterator<T *>(auto_any_cast<T *, boost::mpl::false_>(col)));
|
856
|
+
}
|
857
|
+
#endif
|
858
|
+
|
859
|
+
///////////////////////////////////////////////////////////////////////////////
|
860
|
+
// rdone
|
861
|
+
//
|
862
|
+
template<typename T, typename C>
|
863
|
+
inline bool rdone(auto_any_t cur, auto_any_t end, type2type<T, C> *)
|
864
|
+
{
|
865
|
+
typedef BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type iter_t;
|
866
|
+
return auto_any_cast<iter_t, boost::mpl::false_>(cur) == auto_any_cast<iter_t, boost::mpl::false_>(end);
|
867
|
+
}
|
868
|
+
|
869
|
+
///////////////////////////////////////////////////////////////////////////////
|
870
|
+
// rnext
|
871
|
+
//
|
872
|
+
template<typename T, typename C>
|
873
|
+
inline void rnext(auto_any_t cur, type2type<T, C> *)
|
874
|
+
{
|
875
|
+
typedef BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type iter_t;
|
876
|
+
++auto_any_cast<iter_t, boost::mpl::false_>(cur);
|
877
|
+
}
|
878
|
+
|
879
|
+
///////////////////////////////////////////////////////////////////////////////
|
880
|
+
// rderef
|
881
|
+
//
|
882
|
+
template<typename T, typename C>
|
883
|
+
inline BOOST_DEDUCED_TYPENAME foreach_reference<T, C>::type
|
884
|
+
rderef(auto_any_t cur, type2type<T, C> *)
|
885
|
+
{
|
886
|
+
typedef BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type iter_t;
|
887
|
+
return *auto_any_cast<iter_t, boost::mpl::false_>(cur);
|
888
|
+
}
|
889
|
+
|
890
|
+
} // namespace foreach_detail_
|
891
|
+
} // namespace boost
|
892
|
+
|
893
|
+
// Suppress a bogus code analysis warning on vc8+
|
894
|
+
#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
|
895
|
+
# define BOOST_FOREACH_SUPPRESS_WARNINGS() __pragma(warning(suppress:6001))
|
896
|
+
#else
|
897
|
+
# define BOOST_FOREACH_SUPPRESS_WARNINGS()
|
898
|
+
#endif
|
899
|
+
|
900
|
+
///////////////////////////////////////////////////////////////////////////////
|
901
|
+
// Define a macro for giving hidden variables a unique name. Not strictly
|
902
|
+
// needed, but eliminates some warnings on some compilers.
|
903
|
+
#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500))
|
904
|
+
// With some versions of MSVC, use of __LINE__ to create unique identifiers
|
905
|
+
// can fail when the Edit-and-Continue debug flag is used.
|
906
|
+
# define BOOST_FOREACH_ID(x) x
|
907
|
+
#else
|
908
|
+
# define BOOST_FOREACH_ID(x) BOOST_PP_CAT(x, __LINE__)
|
909
|
+
#endif
|
910
|
+
|
911
|
+
// A sneaky way to get the type of the collection without evaluating the expression
|
912
|
+
#define BOOST_FOREACH_TYPEOF(COL) \
|
913
|
+
(true ? 0 : boost::foreach_detail_::encode_type(COL, boost::foreach_detail_::is_const_(COL)))
|
914
|
+
|
915
|
+
// returns true_* if the type is noncopyable
|
916
|
+
#define BOOST_FOREACH_IS_NONCOPYABLE(COL) \
|
917
|
+
boost_foreach_is_noncopyable( \
|
918
|
+
boost::foreach_detail_::to_ptr(COL) \
|
919
|
+
, boost_foreach_argument_dependent_lookup_hack_value)
|
920
|
+
|
921
|
+
// returns true_* if the type is a lightweight proxy (and is not noncopyable)
|
922
|
+
#define BOOST_FOREACH_IS_LIGHTWEIGHT_PROXY(COL) \
|
923
|
+
boost::foreach_detail_::and_( \
|
924
|
+
boost::foreach_detail_::not_(BOOST_FOREACH_IS_NONCOPYABLE(COL)) \
|
925
|
+
, boost_foreach_is_lightweight_proxy( \
|
926
|
+
boost::foreach_detail_::to_ptr(COL) \
|
927
|
+
, boost_foreach_argument_dependent_lookup_hack_value))
|
928
|
+
|
929
|
+
#if defined(BOOST_FOREACH_COMPILE_TIME_CONST_RVALUE_DETECTION)
|
930
|
+
///////////////////////////////////////////////////////////////////////////////
|
931
|
+
// R-values and const R-values supported here with zero runtime overhead
|
932
|
+
///////////////////////////////////////////////////////////////////////////////
|
933
|
+
|
934
|
+
// No variable is needed to track the rvalue-ness of the collection expression
|
935
|
+
# define BOOST_FOREACH_PREAMBLE() \
|
936
|
+
BOOST_FOREACH_SUPPRESS_WARNINGS()
|
937
|
+
|
938
|
+
// Evaluate the collection expression
|
939
|
+
# define BOOST_FOREACH_EVALUATE(COL) \
|
940
|
+
(COL)
|
941
|
+
|
942
|
+
# define BOOST_FOREACH_SHOULD_COPY(COL) \
|
943
|
+
(true ? 0 : boost::foreach_detail_::or_( \
|
944
|
+
BOOST_FOREACH_IS_RVALUE(COL) \
|
945
|
+
, BOOST_FOREACH_IS_LIGHTWEIGHT_PROXY(COL)))
|
946
|
+
|
947
|
+
#elif defined(BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION)
|
948
|
+
///////////////////////////////////////////////////////////////////////////////
|
949
|
+
// R-values and const R-values supported here
|
950
|
+
///////////////////////////////////////////////////////////////////////////////
|
951
|
+
|
952
|
+
// Declare a variable to track the rvalue-ness of the collection expression
|
953
|
+
# define BOOST_FOREACH_PREAMBLE() \
|
954
|
+
BOOST_FOREACH_SUPPRESS_WARNINGS() \
|
955
|
+
if (bool BOOST_FOREACH_ID(_foreach_is_rvalue) = false) {} else
|
956
|
+
|
957
|
+
// Evaluate the collection expression, and detect if it is an lvalue or and rvalue
|
958
|
+
# define BOOST_FOREACH_EVALUATE(COL) \
|
959
|
+
(true ? boost::foreach_detail_::make_probe((COL), BOOST_FOREACH_ID(_foreach_is_rvalue)) : (COL))
|
960
|
+
|
961
|
+
// The rvalue/lvalue-ness of the collection expression is determined dynamically, unless
|
962
|
+
// type type is an array or is noncopyable or is non-const, in which case we know it's an lvalue.
|
963
|
+
// If the type happens to be a lightweight proxy, always make a copy.
|
964
|
+
# define BOOST_FOREACH_SHOULD_COPY(COL) \
|
965
|
+
(boost::foreach_detail_::should_copy_impl( \
|
966
|
+
true ? 0 : boost::foreach_detail_::or_( \
|
967
|
+
boost::foreach_detail_::is_array_(COL) \
|
968
|
+
, BOOST_FOREACH_IS_NONCOPYABLE(COL) \
|
969
|
+
, boost::foreach_detail_::not_(boost::foreach_detail_::is_const_(COL))) \
|
970
|
+
, true ? 0 : BOOST_FOREACH_IS_LIGHTWEIGHT_PROXY(COL) \
|
971
|
+
, &BOOST_FOREACH_ID(_foreach_is_rvalue)))
|
972
|
+
|
973
|
+
#elif !defined(BOOST_FOREACH_NO_RVALUE_DETECTION)
|
974
|
+
///////////////////////////////////////////////////////////////////////////////
|
975
|
+
// R-values supported here, const R-values NOT supported here
|
976
|
+
///////////////////////////////////////////////////////////////////////////////
|
977
|
+
|
978
|
+
// No variable is needed to track the rvalue-ness of the collection expression
|
979
|
+
# define BOOST_FOREACH_PREAMBLE() \
|
980
|
+
BOOST_FOREACH_SUPPRESS_WARNINGS()
|
981
|
+
|
982
|
+
// Evaluate the collection expression
|
983
|
+
# define BOOST_FOREACH_EVALUATE(COL) \
|
984
|
+
(COL)
|
985
|
+
|
986
|
+
// Determine whether the collection expression is an lvalue or an rvalue.
|
987
|
+
// NOTE: this gets the answer wrong for const rvalues.
|
988
|
+
# define BOOST_FOREACH_SHOULD_COPY(COL) \
|
989
|
+
(true ? 0 : boost::foreach_detail_::or_( \
|
990
|
+
boost::foreach_detail_::is_rvalue_((COL), 0) \
|
991
|
+
, BOOST_FOREACH_IS_LIGHTWEIGHT_PROXY(COL)))
|
992
|
+
|
993
|
+
#else
|
994
|
+
///////////////////////////////////////////////////////////////////////////////
|
995
|
+
// R-values NOT supported here
|
996
|
+
///////////////////////////////////////////////////////////////////////////////
|
997
|
+
|
998
|
+
// No variable is needed to track the rvalue-ness of the collection expression
|
999
|
+
# define BOOST_FOREACH_PREAMBLE() \
|
1000
|
+
BOOST_FOREACH_SUPPRESS_WARNINGS()
|
1001
|
+
|
1002
|
+
// Evaluate the collection expression
|
1003
|
+
# define BOOST_FOREACH_EVALUATE(COL) \
|
1004
|
+
(COL)
|
1005
|
+
|
1006
|
+
// Can't use rvalues with BOOST_FOREACH (unless they are lightweight proxies)
|
1007
|
+
# define BOOST_FOREACH_SHOULD_COPY(COL) \
|
1008
|
+
(true ? 0 : BOOST_FOREACH_IS_LIGHTWEIGHT_PROXY(COL))
|
1009
|
+
|
1010
|
+
#endif
|
1011
|
+
|
1012
|
+
#define BOOST_FOREACH_CONTAIN(COL) \
|
1013
|
+
boost::foreach_detail_::contain( \
|
1014
|
+
BOOST_FOREACH_EVALUATE(COL) \
|
1015
|
+
, BOOST_FOREACH_SHOULD_COPY(COL))
|
1016
|
+
|
1017
|
+
#define BOOST_FOREACH_BEGIN(COL) \
|
1018
|
+
boost::foreach_detail_::begin( \
|
1019
|
+
BOOST_FOREACH_ID(_foreach_col) \
|
1020
|
+
, BOOST_FOREACH_TYPEOF(COL) \
|
1021
|
+
, BOOST_FOREACH_SHOULD_COPY(COL))
|
1022
|
+
|
1023
|
+
#define BOOST_FOREACH_END(COL) \
|
1024
|
+
boost::foreach_detail_::end( \
|
1025
|
+
BOOST_FOREACH_ID(_foreach_col) \
|
1026
|
+
, BOOST_FOREACH_TYPEOF(COL) \
|
1027
|
+
, BOOST_FOREACH_SHOULD_COPY(COL))
|
1028
|
+
|
1029
|
+
#define BOOST_FOREACH_DONE(COL) \
|
1030
|
+
boost::foreach_detail_::done( \
|
1031
|
+
BOOST_FOREACH_ID(_foreach_cur) \
|
1032
|
+
, BOOST_FOREACH_ID(_foreach_end) \
|
1033
|
+
, BOOST_FOREACH_TYPEOF(COL))
|
1034
|
+
|
1035
|
+
#define BOOST_FOREACH_NEXT(COL) \
|
1036
|
+
boost::foreach_detail_::next( \
|
1037
|
+
BOOST_FOREACH_ID(_foreach_cur) \
|
1038
|
+
, BOOST_FOREACH_TYPEOF(COL))
|
1039
|
+
|
1040
|
+
#define BOOST_FOREACH_DEREF(COL) \
|
1041
|
+
boost::foreach_detail_::deref( \
|
1042
|
+
BOOST_FOREACH_ID(_foreach_cur) \
|
1043
|
+
, BOOST_FOREACH_TYPEOF(COL))
|
1044
|
+
|
1045
|
+
#define BOOST_FOREACH_RBEGIN(COL) \
|
1046
|
+
boost::foreach_detail_::rbegin( \
|
1047
|
+
BOOST_FOREACH_ID(_foreach_col) \
|
1048
|
+
, BOOST_FOREACH_TYPEOF(COL) \
|
1049
|
+
, BOOST_FOREACH_SHOULD_COPY(COL))
|
1050
|
+
|
1051
|
+
#define BOOST_FOREACH_REND(COL) \
|
1052
|
+
boost::foreach_detail_::rend( \
|
1053
|
+
BOOST_FOREACH_ID(_foreach_col) \
|
1054
|
+
, BOOST_FOREACH_TYPEOF(COL) \
|
1055
|
+
, BOOST_FOREACH_SHOULD_COPY(COL))
|
1056
|
+
|
1057
|
+
#define BOOST_FOREACH_RDONE(COL) \
|
1058
|
+
boost::foreach_detail_::rdone( \
|
1059
|
+
BOOST_FOREACH_ID(_foreach_cur) \
|
1060
|
+
, BOOST_FOREACH_ID(_foreach_end) \
|
1061
|
+
, BOOST_FOREACH_TYPEOF(COL))
|
1062
|
+
|
1063
|
+
#define BOOST_FOREACH_RNEXT(COL) \
|
1064
|
+
boost::foreach_detail_::rnext( \
|
1065
|
+
BOOST_FOREACH_ID(_foreach_cur) \
|
1066
|
+
, BOOST_FOREACH_TYPEOF(COL))
|
1067
|
+
|
1068
|
+
#define BOOST_FOREACH_RDEREF(COL) \
|
1069
|
+
boost::foreach_detail_::rderef( \
|
1070
|
+
BOOST_FOREACH_ID(_foreach_cur) \
|
1071
|
+
, BOOST_FOREACH_TYPEOF(COL))
|
1072
|
+
|
1073
|
+
///////////////////////////////////////////////////////////////////////////////
|
1074
|
+
// BOOST_FOREACH
|
1075
|
+
//
|
1076
|
+
// For iterating over collections. Collections can be
|
1077
|
+
// arrays, null-terminated strings, or STL containers.
|
1078
|
+
// The loop variable can be a value or reference. For
|
1079
|
+
// example:
|
1080
|
+
//
|
1081
|
+
// std::list<int> int_list(/*stuff*/);
|
1082
|
+
// BOOST_FOREACH(int &i, int_list)
|
1083
|
+
// {
|
1084
|
+
// /*
|
1085
|
+
// * loop body goes here.
|
1086
|
+
// * i is a reference to the int in int_list.
|
1087
|
+
// */
|
1088
|
+
// }
|
1089
|
+
//
|
1090
|
+
// Alternately, you can declare the loop variable first,
|
1091
|
+
// so you can access it after the loop finishes. Obviously,
|
1092
|
+
// if you do it this way, then the loop variable cannot be
|
1093
|
+
// a reference.
|
1094
|
+
//
|
1095
|
+
// int i;
|
1096
|
+
// BOOST_FOREACH(i, int_list)
|
1097
|
+
// { ... }
|
1098
|
+
//
|
1099
|
+
#define BOOST_FOREACH(VAR, COL) \
|
1100
|
+
BOOST_FOREACH_PREAMBLE() \
|
1101
|
+
if (boost::foreach_detail_::auto_any_t BOOST_FOREACH_ID(_foreach_col) = BOOST_FOREACH_CONTAIN(COL)) {} else \
|
1102
|
+
if (boost::foreach_detail_::auto_any_t BOOST_FOREACH_ID(_foreach_cur) = BOOST_FOREACH_BEGIN(COL)) {} else \
|
1103
|
+
if (boost::foreach_detail_::auto_any_t BOOST_FOREACH_ID(_foreach_end) = BOOST_FOREACH_END(COL)) {} else \
|
1104
|
+
for (bool BOOST_FOREACH_ID(_foreach_continue) = true; \
|
1105
|
+
BOOST_FOREACH_ID(_foreach_continue) && !BOOST_FOREACH_DONE(COL); \
|
1106
|
+
BOOST_FOREACH_ID(_foreach_continue) ? BOOST_FOREACH_NEXT(COL) : (void)0) \
|
1107
|
+
if (boost::foreach_detail_::set_false(BOOST_FOREACH_ID(_foreach_continue))) {} else \
|
1108
|
+
for (VAR = BOOST_FOREACH_DEREF(COL); !BOOST_FOREACH_ID(_foreach_continue); BOOST_FOREACH_ID(_foreach_continue) = true)
|
1109
|
+
|
1110
|
+
///////////////////////////////////////////////////////////////////////////////
|
1111
|
+
// BOOST_REVERSE_FOREACH
|
1112
|
+
//
|
1113
|
+
// For iterating over collections in reverse order. In
|
1114
|
+
// all other respects, BOOST_REVERSE_FOREACH is like
|
1115
|
+
// BOOST_FOREACH.
|
1116
|
+
//
|
1117
|
+
#define BOOST_REVERSE_FOREACH(VAR, COL) \
|
1118
|
+
BOOST_FOREACH_PREAMBLE() \
|
1119
|
+
if (boost::foreach_detail_::auto_any_t BOOST_FOREACH_ID(_foreach_col) = BOOST_FOREACH_CONTAIN(COL)) {} else \
|
1120
|
+
if (boost::foreach_detail_::auto_any_t BOOST_FOREACH_ID(_foreach_cur) = BOOST_FOREACH_RBEGIN(COL)) {} else \
|
1121
|
+
if (boost::foreach_detail_::auto_any_t BOOST_FOREACH_ID(_foreach_end) = BOOST_FOREACH_REND(COL)) {} else \
|
1122
|
+
for (bool BOOST_FOREACH_ID(_foreach_continue) = true; \
|
1123
|
+
BOOST_FOREACH_ID(_foreach_continue) && !BOOST_FOREACH_RDONE(COL); \
|
1124
|
+
BOOST_FOREACH_ID(_foreach_continue) ? BOOST_FOREACH_RNEXT(COL) : (void)0) \
|
1125
|
+
if (boost::foreach_detail_::set_false(BOOST_FOREACH_ID(_foreach_continue))) {} else \
|
1126
|
+
for (VAR = BOOST_FOREACH_RDEREF(COL); !BOOST_FOREACH_ID(_foreach_continue); BOOST_FOREACH_ID(_foreach_continue) = true)
|
1127
|
+
|
1128
|
+
#endif
|