From 8183fc511464bc3cada9dbbbfec173cd98a3171b Mon Sep 17 00:00:00 2001 From: Antonio SJ Musumeci Date: Tue, 12 Mar 2024 18:54:02 -0500 Subject: [PATCH] policy_cache.hpp --- src/boost/bind/arg.hpp | 69 + src/boost/bind/bind.hpp | 2346 +++++++++++ src/boost/bind/bind_cc.hpp | 117 + src/boost/bind/bind_mf2_cc.hpp | 228 ++ src/boost/bind/bind_mf_cc.hpp | 441 ++ src/boost/bind/bind_template.hpp | 345 ++ src/boost/bind/detail/is_same.hpp | 36 + src/boost/bind/detail/requires_cxx11.hpp | 22 + src/boost/bind/detail/result_traits.hpp | 165 + src/boost/bind/mem_fn.hpp | 404 ++ src/boost/bind/mem_fn_cc.hpp | 103 + src/boost/bind/mem_fn_template.hpp | 1047 +++++ src/boost/bind/mem_fn_vw.hpp | 130 + src/boost/bind/placeholders.hpp | 74 + src/boost/bind/std_placeholders.hpp | 40 + src/boost/bind/storage.hpp | 476 +++ src/boost/call_traits.hpp | 20 + src/boost/container/allocator_traits.hpp | 502 +++ src/boost/container/container_fwd.hpp | 388 ++ src/boost/container/detail/addressof.hpp | 33 + .../container/detail/advanced_insert_int.hpp | 542 +++ src/boost/container/detail/algorithm.hpp | 185 + src/boost/container/detail/alloc_helpers.hpp | 60 + .../container/detail/allocation_type.hpp | 58 + .../detail/allocator_version_traits.hpp | 162 + .../container/detail/compare_functors.hpp | 134 + src/boost/container/detail/config_begin.hpp | 61 + src/boost/container/detail/config_end.hpp | 16 + .../container/detail/construct_in_place.hpp | 98 + .../detail/container_or_allocator_rebind.hpp | 53 + .../container/detail/container_rebind.hpp | 163 + src/boost/container/detail/copy_move_algo.hpp | 1982 +++++++++ src/boost/container/detail/destroyers.hpp | 502 +++ src/boost/container/detail/flat_tree.hpp | 1711 ++++++++ src/boost/container/detail/is_container.hpp | 72 + .../detail/is_contiguous_container.hpp | 82 + src/boost/container/detail/is_pair.hpp | 91 + src/boost/container/detail/is_sorted.hpp | 57 + src/boost/container/detail/iterator.hpp | 94 + src/boost/container/detail/iterators.hpp | 910 +++++ src/boost/container/detail/min_max.hpp | 37 + .../detail/minimal_char_traits_header.hpp | 32 + src/boost/container/detail/mpl.hpp | 144 + .../detail/multiallocation_chain.hpp | 307 ++ src/boost/container/detail/next_capacity.hpp | 98 + .../container/detail/node_alloc_holder.hpp | 604 +++ src/boost/container/detail/pair.hpp | 607 +++ .../detail/pair_key_mapped_of_value.hpp | 55 + src/boost/container/detail/placement_new.hpp | 24 + src/boost/container/detail/std_fwd.hpp | 62 + .../container/detail/transform_iterator.hpp | 180 + src/boost/container/detail/tree.hpp | 1437 +++++++ src/boost/container/detail/type_traits.hpp | 75 + src/boost/container/detail/value_functors.hpp | 32 + src/boost/container/detail/value_init.hpp | 51 + .../detail/variadic_templates_tools.hpp | 163 + src/boost/container/detail/version_type.hpp | 101 + src/boost/container/detail/workaround.hpp | 190 + src/boost/container/flat_map.hpp | 3067 ++++++++++++++ src/boost/container/map.hpp | 2315 +++++++++++ src/boost/container/new_allocator.hpp | 201 + src/boost/container/node_handle.hpp | 445 ++ src/boost/container/options.hpp | 671 +++ src/boost/container/string.hpp | 3625 +++++++++++++++++ src/boost/container/throw_exception.hpp | 295 ++ src/boost/container/vector.hpp | 3188 +++++++++++++++ src/boost/core/demangle.hpp | 126 + src/boost/core/enable_if.hpp | 128 + src/boost/core/invoke_swap.hpp | 93 + src/boost/core/ref.hpp | 345 ++ src/boost/core/typeinfo.hpp | 167 + src/boost/core/use_default.hpp | 17 + src/boost/detail/allocator_utilities.hpp | 193 + src/boost/detail/atomic_count.hpp | 21 + src/boost/detail/call_traits.hpp | 172 + src/boost/detail/indirect_traits.hpp | 195 + src/boost/detail/interlocked.hpp | 273 ++ src/boost/detail/lightweight_mutex.hpp | 22 + src/boost/detail/select_type.hpp | 36 + src/boost/detail/templated_streams.hpp | 74 + .../flyweight/assoc_container_factory.hpp | 116 + .../flyweight/assoc_container_factory_fwd.hpp | 35 + .../flyweight/detail/archive_constructed.hpp | 79 + .../flyweight/detail/default_value_policy.hpp | 84 + .../flyweight/detail/dyn_perfect_fwd.hpp | 114 + src/boost/flyweight/detail/flyweight_core.hpp | 312 ++ .../flyweight/detail/is_placeholder_expr.hpp | 65 + .../flyweight/detail/nested_xxx_if_not_ph.hpp | 39 + .../flyweight/detail/not_placeholder_expr.hpp | 63 + src/boost/flyweight/detail/perfect_fwd.hpp | 90 + src/boost/flyweight/detail/pp_perfect_fwd.hpp | 172 + .../flyweight/detail/recursive_lw_mutex.hpp | 148 + .../flyweight/detail/serialization_helper.hpp | 98 + src/boost/flyweight/detail/value_tag.hpp | 50 + src/boost/flyweight/factory_tag.hpp | 44 + src/boost/flyweight/flyweight.hpp | 501 +++ src/boost/flyweight/flyweight_fwd.hpp | 215 + src/boost/flyweight/hashed_factory.hpp | 125 + src/boost/flyweight/hashed_factory_fwd.hpp | 40 + src/boost/flyweight/holder_tag.hpp | 44 + src/boost/flyweight/intermodule_holder.hpp | 54 + .../flyweight/intermodule_holder_fwd.hpp | 29 + src/boost/flyweight/key_value.hpp | 301 ++ src/boost/flyweight/key_value_fwd.hpp | 29 + src/boost/flyweight/locking_tag.hpp | 44 + src/boost/flyweight/no_locking.hpp | 36 + src/boost/flyweight/no_locking_fwd.hpp | 26 + src/boost/flyweight/no_tracking.hpp | 46 + src/boost/flyweight/no_tracking_fwd.hpp | 26 + src/boost/flyweight/refcounted.hpp | 204 + src/boost/flyweight/refcounted_fwd.hpp | 26 + src/boost/flyweight/serialize.hpp | 97 + src/boost/flyweight/set_factory.hpp | 82 + src/boost/flyweight/set_factory_fwd.hpp | 40 + src/boost/flyweight/simple_locking.hpp | 37 + src/boost/flyweight/simple_locking_fwd.hpp | 26 + src/boost/flyweight/static_holder.hpp | 56 + src/boost/flyweight/static_holder_fwd.hpp | 29 + src/boost/flyweight/tag.hpp | 46 + src/boost/flyweight/tracking_tag.hpp | 44 + src/boost/function.hpp | 76 + src/boost/function/detail/epilogue.hpp | 39 + .../function/detail/function_iterate.hpp | 16 + .../function/detail/gen_maybe_include.pl | 39 + src/boost/function/detail/maybe_include.hpp | 369 ++ src/boost/function/detail/prologue.hpp | 27 + src/boost/function/detail/requires_cxx11.hpp | 22 + src/boost/function/function0.hpp | 12 + src/boost/function/function1.hpp | 12 + src/boost/function/function10.hpp | 12 + src/boost/function/function2.hpp | 12 + src/boost/function/function3.hpp | 12 + src/boost/function/function4.hpp | 12 + src/boost/function/function5.hpp | 12 + src/boost/function/function6.hpp | 12 + src/boost/function/function7.hpp | 12 + src/boost/function/function8.hpp | 12 + src/boost/function/function9.hpp | 12 + src/boost/function/function_base.hpp | 898 ++++ src/boost/function/function_fwd.hpp | 69 + src/boost/function/function_template.hpp | 1227 ++++++ src/boost/function_equal.hpp | 28 + src/boost/functional/hash_fwd.hpp | 6 + src/boost/fusion/adapted/mpl.hpp | 23 + .../fusion/adapted/mpl/detail/at_impl.hpp | 42 + .../fusion/adapted/mpl/detail/begin_impl.hpp | 47 + .../adapted/mpl/detail/category_of_impl.hpp | 55 + .../fusion/adapted/mpl/detail/empty_impl.hpp | 32 + .../fusion/adapted/mpl/detail/end_impl.hpp | 47 + .../adapted/mpl/detail/has_key_impl.hpp | 32 + .../adapted/mpl/detail/is_sequence_impl.hpp | 32 + .../adapted/mpl/detail/is_view_impl.hpp | 33 + .../fusion/adapted/mpl/detail/size_impl.hpp | 32 + .../adapted/mpl/detail/value_at_impl.hpp | 32 + src/boost/fusion/adapted/mpl/mpl_iterator.hpp | 128 + .../fusion/algorithm/query/detail/find_if.hpp | 251 ++ .../algorithm/query/detail/segmented_find.hpp | 95 + src/boost/fusion/algorithm/query/find.hpp | 72 + src/boost/fusion/algorithm/query/find_fwd.hpp | 37 + .../fusion/algorithm/query/find_if_fwd.hpp | 38 + .../fusion/algorithm/transformation/erase.hpp | 140 + .../algorithm/transformation/erase_key.hpp | 36 + .../algorithm/transformation/insert.hpp | 69 + .../algorithm/transformation/insert_range.hpp | 56 + .../algorithm/transformation/pop_back.hpp | 181 + .../algorithm/transformation/pop_front.hpp | 45 + .../algorithm/transformation/push_back.hpp | 47 + .../algorithm/transformation/push_front.hpp | 47 + src/boost/fusion/container/deque.hpp | 17 + .../container/deque/back_extended_deque.hpp | 53 + src/boost/fusion/container/deque/convert.hpp | 61 + src/boost/fusion/container/deque/deque.hpp | 189 + .../fusion/container/deque/deque_fwd.hpp | 49 + .../fusion/container/deque/deque_iterator.hpp | 135 + .../fusion/container/deque/detail/at_impl.hpp | 67 + .../container/deque/detail/begin_impl.hpp | 43 + .../container/deque/detail/build_deque.hpp | 78 + .../container/deque/detail/convert_impl.hpp | 56 + .../container/deque/detail/cpp03/as_deque.hpp | 146 + .../deque/detail/cpp03/build_deque.hpp | 55 + .../container/deque/detail/cpp03/deque.hpp | 207 + .../deque/detail/cpp03/deque_forward_ctor.hpp | 69 + .../deque/detail/cpp03/deque_fwd.hpp | 54 + .../deque/detail/cpp03/deque_initial_size.hpp | 64 + .../deque/detail/cpp03/deque_keyed_values.hpp | 112 + .../detail/cpp03/deque_keyed_values_call.hpp | 72 + .../container/deque/detail/cpp03/limits.hpp | 32 + .../detail/cpp03/preprocessed/as_deque.hpp | 22 + .../detail/cpp03/preprocessed/as_deque10.hpp | 223 + .../detail/cpp03/preprocessed/as_deque20.hpp | 433 ++ .../detail/cpp03/preprocessed/as_deque30.hpp | 643 +++ .../detail/cpp03/preprocessed/as_deque40.hpp | 853 ++++ .../detail/cpp03/preprocessed/as_deque50.hpp | 1063 +++++ .../deque/detail/cpp03/preprocessed/deque.hpp | 22 + .../detail/cpp03/preprocessed/deque10.hpp | 280 ++ .../detail/cpp03/preprocessed/deque10_fwd.hpp | 15 + .../detail/cpp03/preprocessed/deque20.hpp | 460 +++ .../detail/cpp03/preprocessed/deque20_fwd.hpp | 15 + .../detail/cpp03/preprocessed/deque30.hpp | 640 +++ .../detail/cpp03/preprocessed/deque30_fwd.hpp | 15 + .../detail/cpp03/preprocessed/deque40.hpp | 820 ++++ .../detail/cpp03/preprocessed/deque40_fwd.hpp | 15 + .../detail/cpp03/preprocessed/deque50.hpp | 1000 +++++ .../detail/cpp03/preprocessed/deque50_fwd.hpp | 15 + .../detail/cpp03/preprocessed/deque_fwd.hpp | 22 + .../cpp03/preprocessed/deque_initial_size.hpp | 22 + .../preprocessed/deque_initial_size10.hpp | 18 + .../preprocessed/deque_initial_size20.hpp | 18 + .../preprocessed/deque_initial_size30.hpp | 18 + .../preprocessed/deque_initial_size40.hpp | 18 + .../preprocessed/deque_initial_size50.hpp | 18 + .../cpp03/preprocessed/deque_keyed_values.hpp | 22 + .../preprocessed/deque_keyed_values10.hpp | 252 ++ .../preprocessed/deque_keyed_values20.hpp | 462 +++ .../preprocessed/deque_keyed_values30.hpp | 672 +++ .../preprocessed/deque_keyed_values40.hpp | 882 ++++ .../preprocessed/deque_keyed_values50.hpp | 1092 +++++ .../deque/detail/deque_keyed_values.hpp | 76 + .../container/deque/detail/end_impl.hpp | 43 + .../deque/detail/is_sequence_impl.hpp | 32 + .../container/deque/detail/keyed_element.hpp | 181 + .../container/deque/detail/value_at_impl.hpp | 46 + .../container/deque/front_extended_deque.hpp | 51 + src/boost/fusion/container/list.hpp | 17 + src/boost/fusion/container/list/cons.hpp | 148 + src/boost/fusion/container/list/cons_fwd.hpp | 23 + .../fusion/container/list/cons_iterator.hpp | 114 + src/boost/fusion/container/list/convert.hpp | 60 + .../fusion/container/list/detail/at_impl.hpp | 136 + .../container/list/detail/begin_impl.hpp | 51 + .../container/list/detail/build_cons.hpp | 61 + .../container/list/detail/convert_impl.hpp | 53 + .../container/list/detail/cpp03/limits.hpp | 23 + .../container/list/detail/cpp03/list.hpp | 104 + .../list/detail/cpp03/list_forward_ctor.hpp | 48 + .../container/list/detail/cpp03/list_fwd.hpp | 51 + .../list/detail/cpp03/list_to_cons.hpp | 76 + .../list/detail/cpp03/list_to_cons_call.hpp | 44 + .../list/detail/cpp03/preprocessed/list.hpp | 22 + .../list/detail/cpp03/preprocessed/list10.hpp | 100 + .../detail/cpp03/preprocessed/list10_fwd.hpp | 16 + .../list/detail/cpp03/preprocessed/list20.hpp | 140 + .../detail/cpp03/preprocessed/list20_fwd.hpp | 16 + .../list/detail/cpp03/preprocessed/list30.hpp | 180 + .../detail/cpp03/preprocessed/list30_fwd.hpp | 16 + .../list/detail/cpp03/preprocessed/list40.hpp | 220 + .../detail/cpp03/preprocessed/list40_fwd.hpp | 16 + .../list/detail/cpp03/preprocessed/list50.hpp | 260 ++ .../detail/cpp03/preprocessed/list50_fwd.hpp | 16 + .../detail/cpp03/preprocessed/list_fwd.hpp | 22 + .../cpp03/preprocessed/list_to_cons.hpp | 22 + .../cpp03/preprocessed/list_to_cons10.hpp | 96 + .../cpp03/preprocessed/list_to_cons20.hpp | 166 + .../cpp03/preprocessed/list_to_cons30.hpp | 236 ++ .../cpp03/preprocessed/list_to_cons40.hpp | 306 ++ .../cpp03/preprocessed/list_to_cons50.hpp | 376 ++ .../container/list/detail/deref_impl.hpp | 54 + .../container/list/detail/empty_impl.hpp | 39 + .../fusion/container/list/detail/end_impl.hpp | 53 + .../container/list/detail/equal_to_impl.hpp | 40 + .../container/list/detail/list_to_cons.hpp | 61 + .../container/list/detail/next_impl.hpp | 61 + .../container/list/detail/reverse_cons.hpp | 46 + .../container/list/detail/value_at_impl.hpp | 43 + .../container/list/detail/value_of_impl.hpp | 36 + src/boost/fusion/container/list/list.hpp | 127 + src/boost/fusion/container/list/list_fwd.hpp | 43 + src/boost/fusion/container/list/nil.hpp | 51 + .../container/map/detail/cpp03/limits.hpp | 28 + .../container/map/detail/cpp03/map_fwd.hpp | 53 + .../detail/cpp03/preprocessed/map10_fwd.hpp | 18 + .../detail/cpp03/preprocessed/map20_fwd.hpp | 18 + .../detail/cpp03/preprocessed/map30_fwd.hpp | 18 + .../detail/cpp03/preprocessed/map40_fwd.hpp | 18 + .../detail/cpp03/preprocessed/map50_fwd.hpp | 18 + .../map/detail/cpp03/preprocessed/map_fwd.hpp | 22 + src/boost/fusion/container/map/map_fwd.hpp | 49 + .../container/set/detail/cpp03/limits.hpp | 28 + .../detail/cpp03/preprocessed/set10_fwd.hpp | 18 + .../detail/cpp03/preprocessed/set20_fwd.hpp | 18 + .../detail/cpp03/preprocessed/set30_fwd.hpp | 18 + .../detail/cpp03/preprocessed/set40_fwd.hpp | 18 + .../detail/cpp03/preprocessed/set50_fwd.hpp | 18 + .../set/detail/cpp03/preprocessed/set_fwd.hpp | 22 + .../container/set/detail/cpp03/set_fwd.hpp | 53 + src/boost/fusion/container/set/set_fwd.hpp | 46 + .../container/vector/detail/advance_impl.hpp | 43 + .../container/vector/detail/at_impl.hpp | 60 + .../container/vector/detail/begin_impl.hpp | 41 + .../fusion/container/vector/detail/config.hpp | 37 + .../container/vector/detail/cpp03/limits.hpp | 25 + .../detail/cpp03/preprocessed/vector10.hpp | 1830 +++++++++ .../cpp03/preprocessed/vector10_fwd.hpp | 33 + .../detail/cpp03/preprocessed/vector20.hpp | 1824 +++++++++ .../cpp03/preprocessed/vector20_fwd.hpp | 33 + .../detail/cpp03/preprocessed/vector30.hpp | 1824 +++++++++ .../cpp03/preprocessed/vector30_fwd.hpp | 33 + .../detail/cpp03/preprocessed/vector40.hpp | 1824 +++++++++ .../cpp03/preprocessed/vector40_fwd.hpp | 33 + .../detail/cpp03/preprocessed/vector50.hpp | 1824 +++++++++ .../cpp03/preprocessed/vector50_fwd.hpp | 33 + .../detail/cpp03/preprocessed/vector_fwd.hpp | 22 + .../cpp03/preprocessed/vvector10_fwd.hpp | 16 + .../cpp03/preprocessed/vvector20_fwd.hpp | 16 + .../cpp03/preprocessed/vvector30_fwd.hpp | 16 + .../cpp03/preprocessed/vvector40_fwd.hpp | 16 + .../cpp03/preprocessed/vvector50_fwd.hpp | 16 + .../vector/detail/cpp03/value_at_impl.hpp | 34 + .../vector/detail/cpp03/vector10.hpp | 105 + .../vector/detail/cpp03/vector10_fwd.hpp | 64 + .../vector/detail/cpp03/vector20.hpp | 81 + .../vector/detail/cpp03/vector20_fwd.hpp | 59 + .../vector/detail/cpp03/vector30.hpp | 80 + .../vector/detail/cpp03/vector30_fwd.hpp | 59 + .../vector/detail/cpp03/vector40.hpp | 81 + .../vector/detail/cpp03/vector40_fwd.hpp | 59 + .../vector/detail/cpp03/vector50.hpp | 80 + .../vector/detail/cpp03/vector50_fwd.hpp | 59 + .../vector/detail/cpp03/vector_fwd.hpp | 66 + .../vector/detail/cpp03/vector_n.hpp | 354 ++ .../container/vector/detail/deref_impl.hpp | 54 + .../container/vector/detail/distance_impl.hpp | 43 + .../container/vector/detail/end_impl.hpp | 42 + .../container/vector/detail/equal_to_impl.hpp | 40 + .../container/vector/detail/next_impl.hpp | 45 + .../container/vector/detail/prior_impl.hpp | 45 + .../container/vector/detail/value_at_impl.hpp | 60 + .../container/vector/detail/value_of_impl.hpp | 36 + .../fusion/container/vector/vector_fwd.hpp | 43 + .../container/vector/vector_iterator.hpp | 67 + src/boost/fusion/iterator/advance.hpp | 95 + src/boost/fusion/iterator/deref.hpp | 75 + src/boost/fusion/iterator/deref_data.hpp | 51 + .../iterator/detail/adapt_deref_traits.hpp | 36 + .../iterator/detail/adapt_value_traits.hpp | 29 + src/boost/fusion/iterator/detail/advance.hpp | 107 + src/boost/fusion/iterator/detail/distance.hpp | 66 + .../iterator/detail/segment_sequence.hpp | 82 + .../iterator/detail/segmented_equal_to.hpp | 42 + .../iterator/detail/segmented_iterator.hpp | 148 + .../iterator/detail/segmented_next_impl.hpp | 265 ++ src/boost/fusion/iterator/distance.hpp | 80 + src/boost/fusion/iterator/equal_to.hpp | 106 + .../fusion/iterator/iterator_adapter.hpp | 156 + src/boost/fusion/iterator/iterator_facade.hpp | 68 + src/boost/fusion/iterator/key_of.hpp | 43 + src/boost/fusion/iterator/mpl.hpp | 14 + .../fusion/iterator/mpl/convert_iterator.hpp | 62 + .../fusion/iterator/mpl/fusion_iterator.hpp | 80 + src/boost/fusion/iterator/next.hpp | 65 + src/boost/fusion/iterator/prior.hpp | 65 + .../fusion/iterator/segmented_iterator.hpp | 16 + src/boost/fusion/iterator/value_of.hpp | 58 + src/boost/fusion/iterator/value_of_data.hpp | 43 + src/boost/fusion/mpl.hpp | 32 + src/boost/fusion/mpl/at.hpp | 34 + src/boost/fusion/mpl/back.hpp | 33 + src/boost/fusion/mpl/begin.hpp | 32 + src/boost/fusion/mpl/clear.hpp | 34 + src/boost/fusion/mpl/detail/clear.hpp | 47 + src/boost/fusion/mpl/empty.hpp | 27 + src/boost/fusion/mpl/end.hpp | 32 + src/boost/fusion/mpl/erase.hpp | 40 + src/boost/fusion/mpl/erase_key.hpp | 40 + src/boost/fusion/mpl/front.hpp | 29 + src/boost/fusion/mpl/has_key.hpp | 28 + src/boost/fusion/mpl/insert.hpp | 40 + src/boost/fusion/mpl/insert_range.hpp | 40 + src/boost/fusion/mpl/pop_back.hpp | 40 + src/boost/fusion/mpl/pop_front.hpp | 40 + src/boost/fusion/mpl/push_back.hpp | 40 + src/boost/fusion/mpl/push_front.hpp | 40 + src/boost/fusion/mpl/size.hpp | 27 + src/boost/fusion/sequence/convert.hpp | 61 + src/boost/fusion/sequence/intrinsic/begin.hpp | 98 + .../intrinsic/detail/segmented_begin.hpp | 45 + .../intrinsic/detail/segmented_begin_impl.hpp | 96 + .../intrinsic/detail/segmented_end.hpp | 41 + .../intrinsic/detail/segmented_end_impl.hpp | 68 + .../intrinsic/detail/segmented_size.hpp | 55 + src/boost/fusion/sequence/intrinsic/empty.hpp | 63 + src/boost/fusion/sequence/intrinsic/end.hpp | 98 + .../fusion/sequence/intrinsic/has_key.hpp | 81 + .../fusion/sequence/intrinsic/segments.hpp | 79 + src/boost/fusion/sequence/intrinsic/size.hpp | 86 + .../fusion/sequence/intrinsic/value_at.hpp | 88 + src/boost/fusion/sequence/intrinsic_fwd.hpp | 223 + src/boost/fusion/support/category_of.hpp | 124 + src/boost/fusion/support/config.hpp | 140 + src/boost/fusion/support/detail/access.hpp | 65 + .../support/detail/as_fusion_element.hpp | 60 + src/boost/fusion/support/detail/enabler.hpp | 22 + .../fusion/support/detail/is_mpl_sequence.hpp | 27 + .../detail/is_native_fusion_sequence.hpp | 27 + .../support/detail/mpl_iterator_category.hpp | 66 + src/boost/fusion/support/detail/pp_round.hpp | 72 + .../detail/segmented_fold_until_impl.hpp | 401 ++ src/boost/fusion/support/is_iterator.hpp | 21 + src/boost/fusion/support/is_segmented.hpp | 55 + src/boost/fusion/support/is_sequence.hpp | 73 + src/boost/fusion/support/is_view.hpp | 75 + src/boost/fusion/support/iterator_base.hpp | 36 + .../fusion/support/segmented_fold_until.hpp | 71 + src/boost/fusion/support/sequence_base.hpp | 59 + src/boost/fusion/support/tag_of.hpp | 89 + src/boost/fusion/support/tag_of_fwd.hpp | 20 + src/boost/fusion/support/void.hpp | 15 + src/boost/fusion/view/iterator_range.hpp | 13 + .../view/iterator_range/detail/at_impl.hpp | 46 + .../view/iterator_range/detail/begin_impl.hpp | 42 + .../view/iterator_range/detail/end_impl.hpp | 42 + .../detail/is_segmented_impl.hpp | 67 + .../detail/segmented_iterator_range.hpp | 556 +++ .../iterator_range/detail/segments_impl.hpp | 54 + .../view/iterator_range/detail/size_impl.hpp | 38 + .../iterator_range/detail/value_at_impl.hpp | 39 + .../view/iterator_range/iterator_range.hpp | 63 + .../view/joint_view/detail/begin_impl.hpp | 71 + .../joint_view/detail/deref_data_impl.hpp | 39 + .../view/joint_view/detail/deref_impl.hpp | 30 + .../view/joint_view/detail/end_impl.hpp | 42 + .../view/joint_view/detail/key_of_impl.hpp | 29 + .../view/joint_view/detail/next_impl.hpp | 75 + .../joint_view/detail/value_of_data_impl.hpp | 29 + .../view/joint_view/detail/value_of_impl.hpp | 30 + .../fusion/view/joint_view/joint_view.hpp | 89 + .../fusion/view/joint_view/joint_view_fwd.hpp | 18 + .../view/joint_view/joint_view_iterator.hpp | 75 + .../view/single_view/detail/advance_impl.hpp | 49 + .../view/single_view/detail/at_impl.hpp | 46 + .../view/single_view/detail/begin_impl.hpp | 47 + .../view/single_view/detail/deref_impl.hpp | 47 + .../view/single_view/detail/distance_impl.hpp | 45 + .../view/single_view/detail/end_impl.hpp | 47 + .../view/single_view/detail/equal_to_impl.hpp | 40 + .../view/single_view/detail/next_impl.hpp | 55 + .../view/single_view/detail/prior_impl.hpp | 48 + .../view/single_view/detail/size_impl.hpp | 33 + .../view/single_view/detail/value_at_impl.hpp | 40 + .../view/single_view/detail/value_of_impl.hpp | 40 + .../fusion/view/single_view/single_view.hpp | 72 + .../view/single_view/single_view_iterator.hpp | 66 + src/boost/get_pointer.hpp | 76 + src/boost/integer/common_factor_rt.hpp | 580 +++ .../interprocess/allocators/allocator.hpp | 307 ++ .../allocators/detail/allocator_common.hpp | 857 ++++ .../containers/allocation_type.hpp | 44 + .../interprocess/containers/version_type.hpp | 37 + src/boost/interprocess/creation_tags.hpp | 85 + src/boost/interprocess/detail/atomic.hpp | 674 +++ src/boost/interprocess/detail/cast_tags.hpp | 31 + .../interprocess/detail/char_wchar_holder.hpp | 127 + .../interprocess/detail/config_begin.hpp | 50 + src/boost/interprocess/detail/config_end.hpp | 16 + .../detail/config_external_begin.hpp | 23 + .../detail/config_external_end.hpp | 12 + .../detail/file_locking_helpers.hpp | 302 ++ .../detail/in_place_interface.hpp | 77 + .../detail/intermodule_singleton.hpp | 53 + .../detail/intermodule_singleton_common.hpp | 505 +++ .../detail/interprocess_tester.hpp | 39 + .../detail/managed_global_memory.hpp | 119 + .../detail/managed_memory_impl.hpp | 775 ++++ .../detail/managed_open_or_create_impl.hpp | 533 +++ .../interprocess/detail/math_functions.hpp | 118 + src/boost/interprocess/detail/min_max.hpp | 44 + src/boost/interprocess/detail/mpl.hpp | 122 + src/boost/interprocess/detail/named_proxy.hpp | 316 ++ src/boost/interprocess/detail/nothrow.hpp | 42 + .../interprocess/detail/os_file_functions.hpp | 856 ++++ .../detail/os_thread_functions.hpp | 630 +++ .../detail/portable_intermodule_singleton.hpp | 361 ++ .../detail/segment_manager_helper.hpp | 518 +++ .../detail/shared_dir_helpers.hpp | 258 ++ src/boost/interprocess/detail/simple_swap.hpp | 29 + src/boost/interprocess/detail/std_fwd.hpp | 57 + src/boost/interprocess/detail/timed_utils.hpp | 388 ++ .../detail/transform_iterator.hpp | 44 + src/boost/interprocess/detail/type_traits.hpp | 162 + src/boost/interprocess/detail/utilities.hpp | 213 + .../detail/variadic_templates_tools.hpp | 35 + src/boost/interprocess/detail/win32_api.hpp | 1891 +++++++++ .../detail/windows_intermodule_singleton.hpp | 315 ++ src/boost/interprocess/detail/workaround.hpp | 262 ++ src/boost/interprocess/errors.hpp | 246 ++ src/boost/interprocess/exceptions.hpp | 111 + src/boost/interprocess/indexes/iset_index.hpp | 158 + src/boost/interprocess/interprocess_fwd.hpp | 516 +++ src/boost/interprocess/mapped_region.hpp | 922 +++++ .../mem_algo/detail/mem_algo_common.hpp | 599 +++ .../interprocess/mem_algo/rbtree_best_fit.hpp | 1359 ++++++ src/boost/interprocess/offset_ptr.hpp | 776 ++++ src/boost/interprocess/permissions.hpp | 136 + src/boost/interprocess/segment_manager.hpp | 1359 ++++++ .../interprocess/shared_memory_object.hpp | 514 +++ src/boost/interprocess/smart_ptr/deleter.hpp | 68 + .../interprocess/streams/bufferstream.hpp | 491 +++ .../sync/detail/common_algorithms.hpp | 98 + src/boost/interprocess/sync/lock_options.hpp | 55 + src/boost/interprocess/sync/scoped_lock.hpp | 410 ++ src/boost/interprocess/sync/spin/mutex.hpp | 116 + .../sync/spin/recursive_mutex.hpp | 184 + src/boost/interprocess/sync/spin/wait.hpp | 185 + .../interprocess/sync/windows/sync_utils.hpp | 275 ++ .../sync/windows/winapi_mutex_wrapper.hpp | 135 + .../sync/windows/winapi_semaphore_wrapper.hpp | 169 + .../sync/windows/winapi_wrapper_common.hpp | 87 + src/boost/intrusive/avl_set_hook.hpp | 293 ++ src/boost/intrusive/avltree.hpp | 588 +++ src/boost/intrusive/avltree_algorithms.hpp | 727 ++++ src/boost/intrusive/bs_set_hook.hpp | 288 ++ src/boost/intrusive/bstree.hpp | 2238 ++++++++++ src/boost/intrusive/bstree_algorithms.hpp | 2103 ++++++++++ .../intrusive/circular_slist_algorithms.hpp | 475 +++ src/boost/intrusive/detail/algo_type.hpp | 53 + src/boost/intrusive/detail/algorithm.hpp | 90 + .../intrusive/detail/array_initializer.hpp | 97 + src/boost/intrusive/detail/assert.hpp | 45 + src/boost/intrusive/detail/avltree_node.hpp | 193 + .../detail/bstree_algorithms_base.hpp | 182 + .../detail/common_slist_algorithms.hpp | 267 ++ src/boost/intrusive/detail/config_begin.hpp | 44 + src/boost/intrusive/detail/config_end.hpp | 15 + .../detail/default_header_holder.hpp | 70 + .../intrusive/detail/ebo_functor_holder.hpp | 292 ++ .../intrusive/detail/empty_node_checker.hpp | 44 + src/boost/intrusive/detail/equal_to_value.hpp | 50 + .../intrusive/detail/exception_disposer.hpp | 59 + .../intrusive/detail/function_detector.hpp | 92 + src/boost/intrusive/detail/generic_hook.hpp | 223 + .../intrusive/detail/get_value_traits.hpp | 222 + .../has_member_function_callable_with.hpp | 366 ++ src/boost/intrusive/detail/hash_combine.hpp | 92 + src/boost/intrusive/detail/hook_traits.hpp | 196 + src/boost/intrusive/detail/iiterator.hpp | 122 + .../detail/is_stateful_value_traits.hpp | 81 + src/boost/intrusive/detail/iterator.hpp | 308 ++ .../intrusive/detail/key_nodeptr_comp.hpp | 125 + src/boost/intrusive/detail/math.hpp | 242 ++ .../detail/minimal_less_equal_header.hpp | 30 + .../intrusive/detail/minimal_pair_header.hpp | 30 + src/boost/intrusive/detail/mpl.hpp | 217 + .../intrusive/detail/node_cloner_disposer.hpp | 105 + src/boost/intrusive/detail/node_holder.hpp | 35 + .../intrusive/detail/parent_from_member.hpp | 121 + src/boost/intrusive/detail/rbtree_node.hpp | 205 + .../intrusive/detail/reverse_iterator.hpp | 28 + .../intrusive/detail/simple_disposers.hpp | 52 + src/boost/intrusive/detail/size_holder.hpp | 91 + src/boost/intrusive/detail/slist_iterator.hpp | 145 + src/boost/intrusive/detail/slist_node.hpp | 64 + src/boost/intrusive/detail/std_fwd.hpp | 43 + src/boost/intrusive/detail/tree_iterator.hpp | 184 + src/boost/intrusive/detail/tree_node.hpp | 80 + .../intrusive/detail/tree_value_compare.hpp | 186 + src/boost/intrusive/detail/twin.hpp | 49 + src/boost/intrusive/detail/uncast.hpp | 55 + src/boost/intrusive/detail/value_functors.hpp | 52 + src/boost/intrusive/detail/workaround.hpp | 84 + src/boost/intrusive/intrusive_fwd.hpp | 768 ++++ .../intrusive/linear_slist_algorithms.hpp | 422 ++ src/boost/intrusive/link_mode.hpp | 63 + src/boost/intrusive/options.hpp | 278 ++ src/boost/intrusive/pack_options.hpp | 384 ++ src/boost/intrusive/parent_from_member.hpp | 49 + src/boost/intrusive/pointer_plus_bits.hpp | 112 + src/boost/intrusive/pointer_rebind.hpp | 188 + src/boost/intrusive/pointer_traits.hpp | 326 ++ src/boost/intrusive/rbtree.hpp | 591 +++ src/boost/intrusive/rbtree_algorithms.hpp | 622 +++ src/boost/intrusive/set.hpp | 1073 +++++ src/boost/intrusive/set_hook.hpp | 296 ++ src/boost/intrusive/sgtree.hpp | 1073 +++++ src/boost/intrusive/sgtree_algorithms.hpp | 420 ++ src/boost/intrusive/slist.hpp | 2247 ++++++++++ src/boost/intrusive/slist_hook.hpp | 298 ++ src/boost/intrusive/splaytree.hpp | 666 +++ src/boost/intrusive/splaytree_algorithms.hpp | 756 ++++ src/boost/is_placeholder.hpp | 31 + src/boost/iterator/detail/config_def.hpp | 128 + src/boost/iterator/detail/config_undef.hpp | 24 + src/boost/iterator/detail/enable_if.hpp | 83 + .../detail/facade_iterator_category.hpp | 193 + src/boost/iterator/interoperable.hpp | 54 + src/boost/iterator/iterator_adaptor.hpp | 358 ++ src/boost/iterator/iterator_categories.hpp | 216 + src/boost/iterator/iterator_facade.hpp | 1062 +++++ src/boost/iterator/iterator_traits.hpp | 61 + src/boost/iterator/reverse_iterator.hpp | 77 + src/boost/mem_fn.hpp | 24 + src/boost/move/adl_move_swap.hpp | 272 ++ src/boost/move/algo/adaptive_merge.hpp | 364 ++ src/boost/move/algo/adaptive_sort.hpp | 654 +++ .../move/algo/detail/adaptive_sort_merge.hpp | 1537 +++++++ src/boost/move/algo/detail/basic_op.hpp | 122 + src/boost/move/algo/detail/heap_sort.hpp | 122 + src/boost/move/algo/detail/insertion_sort.hpp | 137 + src/boost/move/algo/detail/is_sorted.hpp | 55 + src/boost/move/algo/detail/merge.hpp | 896 ++++ src/boost/move/algo/detail/merge_sort.hpp | 216 + src/boost/move/algo/detail/pdqsort.hpp | 345 ++ src/boost/move/algo/detail/search.hpp | 79 + src/boost/move/algo/detail/set_difference.hpp | 213 + src/boost/move/algo/move.hpp | 159 + src/boost/move/algo/predicate.hpp | 101 + src/boost/move/algo/unique.hpp | 55 + src/boost/move/algorithm.hpp | 166 + src/boost/move/core.hpp | 515 +++ src/boost/move/default_delete.hpp | 243 ++ src/boost/move/detail/addressof.hpp | 61 + src/boost/move/detail/config_begin.hpp | 22 + src/boost/move/detail/config_end.hpp | 12 + src/boost/move/detail/destruct_n.hpp | 66 + src/boost/move/detail/force_ptr.hpp | 36 + src/boost/move/detail/fwd_macros.hpp | 893 ++++ .../move/detail/iterator_to_raw_pointer.hpp | 59 + src/boost/move/detail/iterator_traits.hpp | 177 + src/boost/move/detail/meta_utils.hpp | 563 +++ src/boost/move/detail/meta_utils_core.hpp | 137 + src/boost/move/detail/move_helpers.hpp | 256 ++ src/boost/move/detail/placement_new.hpp | 30 + src/boost/move/detail/pointer_element.hpp | 168 + src/boost/move/detail/reverse_iterator.hpp | 178 + src/boost/move/detail/std_ns_begin.hpp | 34 + src/boost/move/detail/std_ns_end.hpp | 16 + src/boost/move/detail/to_raw_pointer.hpp | 45 + src/boost/move/detail/type_traits.hpp | 1299 ++++++ .../move/detail/unique_ptr_meta_utils.hpp | 565 +++ src/boost/move/detail/workaround.hpp | 148 + src/boost/move/iterator.hpp | 311 ++ src/boost/move/make_unique.hpp | 248 ++ src/boost/move/move.hpp | 35 + src/boost/move/traits.hpp | 77 + src/boost/move/unique_ptr.hpp | 870 ++++ src/boost/move/utility.hpp | 150 + src/boost/move/utility_core.hpp | 323 ++ src/boost/mpl/O1_size.hpp | 40 + src/boost/mpl/O1_size_fwd.hpp | 24 + src/boost/mpl/advance.hpp | 76 + src/boost/mpl/advance_fwd.hpp | 28 + src/boost/mpl/always.hpp | 38 + src/boost/mpl/and.hpp | 60 + src/boost/mpl/apply.hpp | 229 ++ src/boost/mpl/apply_fwd.hpp | 107 + src/boost/mpl/apply_wrap.hpp | 234 ++ src/boost/mpl/arg.hpp | 131 + src/boost/mpl/arg_fwd.hpp | 28 + src/boost/mpl/assert.hpp | 459 +++ src/boost/mpl/at.hpp | 52 + src/boost/mpl/at_fwd.hpp | 24 + src/boost/mpl/aux_/O1_size_impl.hpp | 87 + src/boost/mpl/aux_/adl_barrier.hpp | 48 + src/boost/mpl/aux_/advance_backward.hpp | 128 + src/boost/mpl/aux_/advance_forward.hpp | 127 + src/boost/mpl/aux_/arg_typedef.hpp | 31 + src/boost/mpl/aux_/arithmetic_op.hpp | 92 + src/boost/mpl/aux_/arity.hpp | 39 + src/boost/mpl/aux_/arity_spec.hpp | 67 + src/boost/mpl/aux_/at_impl.hpp | 45 + src/boost/mpl/aux_/back_impl.hpp | 43 + src/boost/mpl/aux_/begin_end_impl.hpp | 101 + src/boost/mpl/aux_/clear_impl.hpp | 35 + src/boost/mpl/aux_/common_name_wknd.hpp | 34 + src/boost/mpl/aux_/comparison_op.hpp | 83 + src/boost/mpl/aux_/config/adl.hpp | 40 + src/boost/mpl/aux_/config/arrays.hpp | 30 + src/boost/mpl/aux_/config/bcc.hpp | 28 + src/boost/mpl/aux_/config/bind.hpp | 33 + src/boost/mpl/aux_/config/compiler.hpp | 66 + src/boost/mpl/aux_/config/ctps.hpp | 30 + .../mpl/aux_/config/dmc_ambiguous_ctps.hpp | 27 + src/boost/mpl/aux_/config/dtp.hpp | 46 + src/boost/mpl/aux_/config/eti.hpp | 47 + src/boost/mpl/aux_/config/forwarding.hpp | 27 + src/boost/mpl/aux_/config/gcc.hpp | 23 + src/boost/mpl/aux_/config/gpu.hpp | 35 + src/boost/mpl/aux_/config/has_apply.hpp | 32 + src/boost/mpl/aux_/config/has_xxx.hpp | 34 + src/boost/mpl/aux_/config/integral.hpp | 38 + src/boost/mpl/aux_/config/intel.hpp | 21 + src/boost/mpl/aux_/config/lambda.hpp | 32 + src/boost/mpl/aux_/config/msvc.hpp | 21 + src/boost/mpl/aux_/config/msvc_typename.hpp | 26 + src/boost/mpl/aux_/config/nttp.hpp | 41 + src/boost/mpl/aux_/config/operators.hpp | 34 + .../mpl/aux_/config/overload_resolution.hpp | 29 + src/boost/mpl/aux_/config/pp_counter.hpp | 26 + src/boost/mpl/aux_/config/preprocessor.hpp | 39 + src/boost/mpl/aux_/config/static_constant.hpp | 25 + src/boost/mpl/aux_/config/ttp.hpp | 41 + src/boost/mpl/aux_/config/typeof.hpp | 38 + .../mpl/aux_/config/use_preprocessed.hpp | 19 + src/boost/mpl/aux_/config/workaround.hpp | 19 + src/boost/mpl/aux_/contains_impl.hpp | 61 + src/boost/mpl/aux_/count_args.hpp | 105 + src/boost/mpl/aux_/empty_impl.hpp | 43 + src/boost/mpl/aux_/erase_impl.hpp | 69 + src/boost/mpl/aux_/erase_key_impl.hpp | 32 + src/boost/mpl/aux_/find_if_pred.hpp | 31 + src/boost/mpl/aux_/fold_impl.hpp | 43 + src/boost/mpl/aux_/fold_impl_body.hpp | 365 ++ src/boost/mpl/aux_/front_impl.hpp | 41 + src/boost/mpl/aux_/full_lambda.hpp | 354 ++ src/boost/mpl/aux_/has_apply.hpp | 32 + src/boost/mpl/aux_/has_begin.hpp | 23 + src/boost/mpl/aux_/has_key_impl.hpp | 34 + src/boost/mpl/aux_/has_rebind.hpp | 99 + src/boost/mpl/aux_/has_size.hpp | 23 + src/boost/mpl/aux_/has_tag.hpp | 23 + src/boost/mpl/aux_/has_type.hpp | 23 + src/boost/mpl/aux_/include_preprocessed.hpp | 42 + src/boost/mpl/aux_/insert_impl.hpp | 68 + src/boost/mpl/aux_/insert_range_impl.hpp | 80 + src/boost/mpl/aux_/inserter_algorithm.hpp | 159 + src/boost/mpl/aux_/integral_wrapper.hpp | 93 + src/boost/mpl/aux_/is_msvc_eti_arg.hpp | 64 + src/boost/mpl/aux_/iter_apply.hpp | 47 + src/boost/mpl/aux_/iter_fold_if_impl.hpp | 210 + src/boost/mpl/aux_/iter_fold_impl.hpp | 42 + src/boost/mpl/aux_/iter_push_front.hpp | 36 + src/boost/mpl/aux_/joint_iter.hpp | 120 + src/boost/mpl/aux_/lambda_arity_param.hpp | 25 + src/boost/mpl/aux_/lambda_no_ctps.hpp | 193 + src/boost/mpl/aux_/lambda_spec.hpp | 49 + src/boost/mpl/aux_/lambda_support.hpp | 169 + src/boost/mpl/aux_/largest_int.hpp | 63 + src/boost/mpl/aux_/logical_op.hpp | 165 + src/boost/mpl/aux_/msvc_dtw.hpp | 68 + src/boost/mpl/aux_/msvc_eti_base.hpp | 77 + src/boost/mpl/aux_/msvc_is_class.hpp | 58 + src/boost/mpl/aux_/msvc_never_true.hpp | 34 + src/boost/mpl/aux_/msvc_type.hpp | 62 + src/boost/mpl/aux_/na.hpp | 95 + src/boost/mpl/aux_/na_assert.hpp | 34 + src/boost/mpl/aux_/na_fwd.hpp | 31 + src/boost/mpl/aux_/na_spec.hpp | 175 + src/boost/mpl/aux_/nested_type_wknd.hpp | 48 + src/boost/mpl/aux_/nttp_decl.hpp | 35 + src/boost/mpl/aux_/numeric_cast_utils.hpp | 77 + src/boost/mpl/aux_/numeric_op.hpp | 315 ++ src/boost/mpl/aux_/overload_names.hpp | 48 + src/boost/mpl/aux_/pop_back_impl.hpp | 34 + src/boost/mpl/aux_/pop_front_impl.hpp | 44 + .../preprocessed/bcc/advance_backward.hpp | 97 + .../aux_/preprocessed/bcc/advance_forward.hpp | 97 + src/boost/mpl/aux_/preprocessed/bcc/and.hpp | 69 + src/boost/mpl/aux_/preprocessed/bcc/apply.hpp | 169 + .../mpl/aux_/preprocessed/bcc/apply_fwd.hpp | 52 + .../mpl/aux_/preprocessed/bcc/apply_wrap.hpp | 461 +++ src/boost/mpl/aux_/preprocessed/bcc/arg.hpp | 117 + .../mpl/aux_/preprocessed/bcc/basic_bind.hpp | 300 ++ src/boost/mpl/aux_/preprocessed/bcc/bind.hpp | 397 ++ .../mpl/aux_/preprocessed/bcc/bind_fwd.hpp | 46 + .../mpl/aux_/preprocessed/bcc/bitand.hpp | 147 + src/boost/mpl/aux_/preprocessed/bcc/bitor.hpp | 147 + .../mpl/aux_/preprocessed/bcc/bitxor.hpp | 147 + src/boost/mpl/aux_/preprocessed/bcc/deque.hpp | 323 ++ .../mpl/aux_/preprocessed/bcc/divides.hpp | 146 + .../mpl/aux_/preprocessed/bcc/equal_to.hpp | 94 + .../mpl/aux_/preprocessed/bcc/fold_impl.hpp | 180 + .../mpl/aux_/preprocessed/bcc/full_lambda.hpp | 558 +++ .../mpl/aux_/preprocessed/bcc/greater.hpp | 94 + .../aux_/preprocessed/bcc/greater_equal.hpp | 94 + .../mpl/aux_/preprocessed/bcc/inherit.hpp | 139 + .../preprocessed/bcc/iter_fold_if_impl.hpp | 133 + .../aux_/preprocessed/bcc/iter_fold_impl.hpp | 180 + .../aux_/preprocessed/bcc/lambda_no_ctps.hpp | 229 ++ src/boost/mpl/aux_/preprocessed/bcc/less.hpp | 94 + .../mpl/aux_/preprocessed/bcc/less_equal.hpp | 94 + src/boost/mpl/aux_/preprocessed/bcc/list.hpp | 323 ++ .../mpl/aux_/preprocessed/bcc/list_c.hpp | 328 ++ src/boost/mpl/aux_/preprocessed/bcc/map.hpp | 323 ++ src/boost/mpl/aux_/preprocessed/bcc/minus.hpp | 146 + .../mpl/aux_/preprocessed/bcc/modulus.hpp | 101 + .../aux_/preprocessed/bcc/not_equal_to.hpp | 94 + src/boost/mpl/aux_/preprocessed/bcc/or.hpp | 69 + .../aux_/preprocessed/bcc/placeholders.hpp | 105 + src/boost/mpl/aux_/preprocessed/bcc/plus.hpp | 146 + src/boost/mpl/aux_/preprocessed/bcc/quote.hpp | 119 + .../preprocessed/bcc/reverse_fold_impl.hpp | 295 ++ .../bcc/reverse_iter_fold_impl.hpp | 295 ++ src/boost/mpl/aux_/preprocessed/bcc/set.hpp | 323 ++ src/boost/mpl/aux_/preprocessed/bcc/set_c.hpp | 328 ++ .../mpl/aux_/preprocessed/bcc/shift_left.hpp | 99 + .../mpl/aux_/preprocessed/bcc/shift_right.hpp | 99 + .../aux_/preprocessed/bcc/template_arity.hpp | 40 + src/boost/mpl/aux_/preprocessed/bcc/times.hpp | 146 + .../mpl/aux_/preprocessed/bcc/unpack_args.hpp | 97 + .../mpl/aux_/preprocessed/bcc/vector.hpp | 323 ++ .../mpl/aux_/preprocessed/bcc/vector_c.hpp | 309 ++ .../preprocessed/bcc551/advance_backward.hpp | 97 + .../preprocessed/bcc551/advance_forward.hpp | 97 + .../mpl/aux_/preprocessed/bcc551/and.hpp | 69 + .../mpl/aux_/preprocessed/bcc551/apply.hpp | 169 + .../aux_/preprocessed/bcc551/apply_fwd.hpp | 52 + .../aux_/preprocessed/bcc551/apply_wrap.hpp | 456 +++ .../mpl/aux_/preprocessed/bcc551/arg.hpp | 123 + .../aux_/preprocessed/bcc551/basic_bind.hpp | 306 ++ .../mpl/aux_/preprocessed/bcc551/bind.hpp | 403 ++ .../mpl/aux_/preprocessed/bcc551/bind_fwd.hpp | 46 + .../mpl/aux_/preprocessed/bcc551/bitand.hpp | 147 + .../mpl/aux_/preprocessed/bcc551/bitor.hpp | 147 + .../mpl/aux_/preprocessed/bcc551/bitxor.hpp | 147 + .../mpl/aux_/preprocessed/bcc551/deque.hpp | 323 ++ .../mpl/aux_/preprocessed/bcc551/divides.hpp | 146 + .../mpl/aux_/preprocessed/bcc551/equal_to.hpp | 94 + .../aux_/preprocessed/bcc551/fold_impl.hpp | 180 + .../aux_/preprocessed/bcc551/full_lambda.hpp | 558 +++ .../mpl/aux_/preprocessed/bcc551/greater.hpp | 94 + .../preprocessed/bcc551/greater_equal.hpp | 94 + .../mpl/aux_/preprocessed/bcc551/inherit.hpp | 141 + .../preprocessed/bcc551/iter_fold_if_impl.hpp | 133 + .../preprocessed/bcc551/iter_fold_impl.hpp | 180 + .../preprocessed/bcc551/lambda_no_ctps.hpp | 229 ++ .../mpl/aux_/preprocessed/bcc551/less.hpp | 94 + .../aux_/preprocessed/bcc551/less_equal.hpp | 94 + .../mpl/aux_/preprocessed/bcc551/list.hpp | 323 ++ .../mpl/aux_/preprocessed/bcc551/list_c.hpp | 328 ++ .../mpl/aux_/preprocessed/bcc551/map.hpp | 323 ++ .../mpl/aux_/preprocessed/bcc551/minus.hpp | 146 + .../mpl/aux_/preprocessed/bcc551/modulus.hpp | 101 + .../aux_/preprocessed/bcc551/not_equal_to.hpp | 94 + src/boost/mpl/aux_/preprocessed/bcc551/or.hpp | 69 + .../aux_/preprocessed/bcc551/placeholders.hpp | 105 + .../mpl/aux_/preprocessed/bcc551/plus.hpp | 146 + .../mpl/aux_/preprocessed/bcc551/quote.hpp | 11 + .../preprocessed/bcc551/reverse_fold_impl.hpp | 295 ++ .../bcc551/reverse_iter_fold_impl.hpp | 295 ++ .../mpl/aux_/preprocessed/bcc551/set.hpp | 323 ++ .../mpl/aux_/preprocessed/bcc551/set_c.hpp | 328 ++ .../aux_/preprocessed/bcc551/shift_left.hpp | 99 + .../aux_/preprocessed/bcc551/shift_right.hpp | 99 + .../preprocessed/bcc551/template_arity.hpp | 40 + .../mpl/aux_/preprocessed/bcc551/times.hpp | 146 + .../aux_/preprocessed/bcc551/unpack_args.hpp | 97 + .../mpl/aux_/preprocessed/bcc551/vector.hpp | 323 ++ .../mpl/aux_/preprocessed/bcc551/vector_c.hpp | 309 ++ .../bcc_pre590/advance_backward.hpp | 97 + .../bcc_pre590/advance_forward.hpp | 97 + .../mpl/aux_/preprocessed/bcc_pre590/and.hpp | 69 + .../aux_/preprocessed/bcc_pre590/apply.hpp | 169 + .../preprocessed/bcc_pre590/apply_fwd.hpp | 52 + .../preprocessed/bcc_pre590/apply_wrap.hpp | 456 +++ .../mpl/aux_/preprocessed/bcc_pre590/arg.hpp | 117 + .../preprocessed/bcc_pre590/basic_bind.hpp | 300 ++ .../mpl/aux_/preprocessed/bcc_pre590/bind.hpp | 397 ++ .../aux_/preprocessed/bcc_pre590/bind_fwd.hpp | 46 + .../aux_/preprocessed/bcc_pre590/bitand.hpp | 147 + .../aux_/preprocessed/bcc_pre590/bitor.hpp | 147 + .../aux_/preprocessed/bcc_pre590/bitxor.hpp | 147 + .../aux_/preprocessed/bcc_pre590/deque.hpp | 323 ++ .../aux_/preprocessed/bcc_pre590/divides.hpp | 146 + .../aux_/preprocessed/bcc_pre590/equal_to.hpp | 94 + .../preprocessed/bcc_pre590/fold_impl.hpp | 180 + .../preprocessed/bcc_pre590/full_lambda.hpp | 558 +++ .../aux_/preprocessed/bcc_pre590/greater.hpp | 94 + .../preprocessed/bcc_pre590/greater_equal.hpp | 94 + .../aux_/preprocessed/bcc_pre590/inherit.hpp | 139 + .../bcc_pre590/iter_fold_if_impl.hpp | 133 + .../bcc_pre590/iter_fold_impl.hpp | 180 + .../bcc_pre590/lambda_no_ctps.hpp | 229 ++ .../mpl/aux_/preprocessed/bcc_pre590/less.hpp | 94 + .../preprocessed/bcc_pre590/less_equal.hpp | 94 + .../mpl/aux_/preprocessed/bcc_pre590/list.hpp | 323 ++ .../aux_/preprocessed/bcc_pre590/list_c.hpp | 328 ++ .../mpl/aux_/preprocessed/bcc_pre590/map.hpp | 323 ++ .../aux_/preprocessed/bcc_pre590/minus.hpp | 146 + .../aux_/preprocessed/bcc_pre590/modulus.hpp | 101 + .../preprocessed/bcc_pre590/not_equal_to.hpp | 94 + .../mpl/aux_/preprocessed/bcc_pre590/or.hpp | 69 + .../preprocessed/bcc_pre590/placeholders.hpp | 105 + .../mpl/aux_/preprocessed/bcc_pre590/plus.hpp | 146 + .../aux_/preprocessed/bcc_pre590/quote.hpp | 11 + .../bcc_pre590/reverse_fold_impl.hpp | 295 ++ .../bcc_pre590/reverse_iter_fold_impl.hpp | 295 ++ .../mpl/aux_/preprocessed/bcc_pre590/set.hpp | 323 ++ .../aux_/preprocessed/bcc_pre590/set_c.hpp | 328 ++ .../preprocessed/bcc_pre590/shift_left.hpp | 99 + .../preprocessed/bcc_pre590/shift_right.hpp | 99 + .../bcc_pre590/template_arity.hpp | 40 + .../aux_/preprocessed/bcc_pre590/times.hpp | 146 + .../preprocessed/bcc_pre590/unpack_args.hpp | 97 + .../aux_/preprocessed/bcc_pre590/vector.hpp | 323 ++ .../aux_/preprocessed/bcc_pre590/vector_c.hpp | 309 ++ .../preprocessed/dmc/advance_backward.hpp | 97 + .../aux_/preprocessed/dmc/advance_forward.hpp | 97 + src/boost/mpl/aux_/preprocessed/dmc/and.hpp | 69 + src/boost/mpl/aux_/preprocessed/dmc/apply.hpp | 169 + .../mpl/aux_/preprocessed/dmc/apply_fwd.hpp | 52 + .../mpl/aux_/preprocessed/dmc/apply_wrap.hpp | 84 + src/boost/mpl/aux_/preprocessed/dmc/arg.hpp | 123 + .../mpl/aux_/preprocessed/dmc/basic_bind.hpp | 406 ++ src/boost/mpl/aux_/preprocessed/dmc/bind.hpp | 515 +++ .../mpl/aux_/preprocessed/dmc/bind_fwd.hpp | 53 + .../mpl/aux_/preprocessed/dmc/bitand.hpp | 147 + src/boost/mpl/aux_/preprocessed/dmc/bitor.hpp | 147 + .../mpl/aux_/preprocessed/dmc/bitxor.hpp | 147 + src/boost/mpl/aux_/preprocessed/dmc/deque.hpp | 323 ++ .../mpl/aux_/preprocessed/dmc/divides.hpp | 146 + .../mpl/aux_/preprocessed/dmc/equal_to.hpp | 94 + .../mpl/aux_/preprocessed/dmc/fold_impl.hpp | 180 + .../mpl/aux_/preprocessed/dmc/full_lambda.hpp | 536 +++ .../mpl/aux_/preprocessed/dmc/greater.hpp | 94 + .../aux_/preprocessed/dmc/greater_equal.hpp | 94 + .../mpl/aux_/preprocessed/dmc/inherit.hpp | 141 + .../preprocessed/dmc/iter_fold_if_impl.hpp | 133 + .../aux_/preprocessed/dmc/iter_fold_impl.hpp | 180 + .../aux_/preprocessed/dmc/lambda_no_ctps.hpp | 229 ++ src/boost/mpl/aux_/preprocessed/dmc/less.hpp | 94 + .../mpl/aux_/preprocessed/dmc/less_equal.hpp | 94 + src/boost/mpl/aux_/preprocessed/dmc/list.hpp | 323 ++ .../mpl/aux_/preprocessed/dmc/list_c.hpp | 328 ++ src/boost/mpl/aux_/preprocessed/dmc/map.hpp | 323 ++ src/boost/mpl/aux_/preprocessed/dmc/minus.hpp | 146 + .../mpl/aux_/preprocessed/dmc/modulus.hpp | 101 + .../aux_/preprocessed/dmc/not_equal_to.hpp | 94 + src/boost/mpl/aux_/preprocessed/dmc/or.hpp | 69 + .../aux_/preprocessed/dmc/placeholders.hpp | 105 + src/boost/mpl/aux_/preprocessed/dmc/plus.hpp | 146 + src/boost/mpl/aux_/preprocessed/dmc/quote.hpp | 123 + .../preprocessed/dmc/reverse_fold_impl.hpp | 231 ++ .../dmc/reverse_iter_fold_impl.hpp | 231 ++ src/boost/mpl/aux_/preprocessed/dmc/set.hpp | 323 ++ src/boost/mpl/aux_/preprocessed/dmc/set_c.hpp | 328 ++ .../mpl/aux_/preprocessed/dmc/shift_left.hpp | 99 + .../mpl/aux_/preprocessed/dmc/shift_right.hpp | 99 + .../aux_/preprocessed/dmc/template_arity.hpp | 11 + src/boost/mpl/aux_/preprocessed/dmc/times.hpp | 146 + .../mpl/aux_/preprocessed/dmc/unpack_args.hpp | 94 + .../mpl/aux_/preprocessed/dmc/vector.hpp | 323 ++ .../mpl/aux_/preprocessed/dmc/vector_c.hpp | 309 ++ .../preprocessed/gcc/advance_backward.hpp | 97 + .../aux_/preprocessed/gcc/advance_forward.hpp | 97 + src/boost/mpl/aux_/preprocessed/gcc/and.hpp | 69 + src/boost/mpl/aux_/preprocessed/gcc/apply.hpp | 169 + .../mpl/aux_/preprocessed/gcc/apply_fwd.hpp | 52 + .../mpl/aux_/preprocessed/gcc/apply_wrap.hpp | 84 + src/boost/mpl/aux_/preprocessed/gcc/arg.hpp | 123 + .../mpl/aux_/preprocessed/gcc/basic_bind.hpp | 440 ++ src/boost/mpl/aux_/preprocessed/gcc/bind.hpp | 561 +++ .../mpl/aux_/preprocessed/gcc/bind_fwd.hpp | 52 + .../mpl/aux_/preprocessed/gcc/bitand.hpp | 147 + src/boost/mpl/aux_/preprocessed/gcc/bitor.hpp | 147 + .../mpl/aux_/preprocessed/gcc/bitxor.hpp | 147 + src/boost/mpl/aux_/preprocessed/gcc/deque.hpp | 323 ++ .../mpl/aux_/preprocessed/gcc/divides.hpp | 146 + .../mpl/aux_/preprocessed/gcc/equal_to.hpp | 94 + .../mpl/aux_/preprocessed/gcc/fold_impl.hpp | 180 + .../mpl/aux_/preprocessed/gcc/full_lambda.hpp | 558 +++ .../mpl/aux_/preprocessed/gcc/greater.hpp | 94 + .../aux_/preprocessed/gcc/greater_equal.hpp | 94 + .../mpl/aux_/preprocessed/gcc/inherit.hpp | 141 + .../preprocessed/gcc/iter_fold_if_impl.hpp | 133 + .../aux_/preprocessed/gcc/iter_fold_impl.hpp | 180 + .../aux_/preprocessed/gcc/lambda_no_ctps.hpp | 229 ++ src/boost/mpl/aux_/preprocessed/gcc/less.hpp | 94 + .../mpl/aux_/preprocessed/gcc/less_equal.hpp | 94 + src/boost/mpl/aux_/preprocessed/gcc/list.hpp | 323 ++ .../mpl/aux_/preprocessed/gcc/list_c.hpp | 328 ++ src/boost/mpl/aux_/preprocessed/gcc/map.hpp | 323 ++ src/boost/mpl/aux_/preprocessed/gcc/minus.hpp | 146 + .../mpl/aux_/preprocessed/gcc/modulus.hpp | 101 + .../aux_/preprocessed/gcc/not_equal_to.hpp | 94 + src/boost/mpl/aux_/preprocessed/gcc/or.hpp | 69 + .../aux_/preprocessed/gcc/placeholders.hpp | 105 + src/boost/mpl/aux_/preprocessed/gcc/plus.hpp | 146 + src/boost/mpl/aux_/preprocessed/gcc/quote.hpp | 123 + .../preprocessed/gcc/reverse_fold_impl.hpp | 231 ++ .../gcc/reverse_iter_fold_impl.hpp | 231 ++ src/boost/mpl/aux_/preprocessed/gcc/set.hpp | 323 ++ src/boost/mpl/aux_/preprocessed/gcc/set_c.hpp | 328 ++ .../mpl/aux_/preprocessed/gcc/shift_left.hpp | 99 + .../mpl/aux_/preprocessed/gcc/shift_right.hpp | 99 + .../aux_/preprocessed/gcc/template_arity.hpp | 97 + src/boost/mpl/aux_/preprocessed/gcc/times.hpp | 146 + .../mpl/aux_/preprocessed/gcc/unpack_args.hpp | 94 + .../mpl/aux_/preprocessed/gcc/vector.hpp | 323 ++ .../mpl/aux_/preprocessed/gcc/vector_c.hpp | 309 ++ .../preprocessed/msvc60/advance_backward.hpp | 132 + .../preprocessed/msvc60/advance_forward.hpp | 132 + .../mpl/aux_/preprocessed/msvc60/and.hpp | 73 + .../mpl/aux_/preprocessed/msvc60/apply.hpp | 166 + .../aux_/preprocessed/msvc60/apply_fwd.hpp | 46 + .../aux_/preprocessed/msvc60/apply_wrap.hpp | 247 ++ .../mpl/aux_/preprocessed/msvc60/arg.hpp | 123 + .../aux_/preprocessed/msvc60/basic_bind.hpp | 328 ++ .../mpl/aux_/preprocessed/msvc60/bind.hpp | 432 ++ .../mpl/aux_/preprocessed/msvc60/bind_fwd.hpp | 46 + .../mpl/aux_/preprocessed/msvc60/bitand.hpp | 149 + .../mpl/aux_/preprocessed/msvc60/bitor.hpp | 149 + .../mpl/aux_/preprocessed/msvc60/bitxor.hpp | 149 + .../mpl/aux_/preprocessed/msvc60/deque.hpp | 556 +++ .../mpl/aux_/preprocessed/msvc60/divides.hpp | 148 + .../mpl/aux_/preprocessed/msvc60/equal_to.hpp | 102 + .../aux_/preprocessed/msvc60/fold_impl.hpp | 293 ++ .../aux_/preprocessed/msvc60/full_lambda.hpp | 554 +++ .../mpl/aux_/preprocessed/msvc60/greater.hpp | 102 + .../preprocessed/msvc60/greater_equal.hpp | 102 + .../mpl/aux_/preprocessed/msvc60/inherit.hpp | 166 + .../preprocessed/msvc60/iter_fold_if_impl.hpp | 133 + .../preprocessed/msvc60/iter_fold_impl.hpp | 293 ++ .../preprocessed/msvc60/lambda_no_ctps.hpp | 229 ++ .../mpl/aux_/preprocessed/msvc60/less.hpp | 102 + .../aux_/preprocessed/msvc60/less_equal.hpp | 102 + .../mpl/aux_/preprocessed/msvc60/list.hpp | 556 +++ .../mpl/aux_/preprocessed/msvc60/list_c.hpp | 534 +++ .../mpl/aux_/preprocessed/msvc60/map.hpp | 556 +++ .../mpl/aux_/preprocessed/msvc60/minus.hpp | 148 + .../mpl/aux_/preprocessed/msvc60/modulus.hpp | 115 + .../aux_/preprocessed/msvc60/not_equal_to.hpp | 102 + src/boost/mpl/aux_/preprocessed/msvc60/or.hpp | 73 + .../aux_/preprocessed/msvc60/placeholders.hpp | 105 + .../mpl/aux_/preprocessed/msvc60/plus.hpp | 148 + .../mpl/aux_/preprocessed/msvc60/quote.hpp | 11 + .../preprocessed/msvc60/reverse_fold_impl.hpp | 343 ++ .../msvc60/reverse_iter_fold_impl.hpp | 343 ++ .../mpl/aux_/preprocessed/msvc60/set.hpp | 556 +++ .../mpl/aux_/preprocessed/msvc60/set_c.hpp | 534 +++ .../aux_/preprocessed/msvc60/shift_left.hpp | 114 + .../aux_/preprocessed/msvc60/shift_right.hpp | 114 + .../preprocessed/msvc60/template_arity.hpp | 46 + .../mpl/aux_/preprocessed/msvc60/times.hpp | 148 + .../aux_/preprocessed/msvc60/unpack_args.hpp | 109 + .../mpl/aux_/preprocessed/msvc60/vector.hpp | 556 +++ .../mpl/aux_/preprocessed/msvc60/vector_c.hpp | 534 +++ .../preprocessed/msvc70/advance_backward.hpp | 97 + .../preprocessed/msvc70/advance_forward.hpp | 97 + .../mpl/aux_/preprocessed/msvc70/and.hpp | 71 + .../mpl/aux_/preprocessed/msvc70/apply.hpp | 160 + .../aux_/preprocessed/msvc70/apply_fwd.hpp | 46 + .../aux_/preprocessed/msvc70/apply_wrap.hpp | 138 + .../mpl/aux_/preprocessed/msvc70/arg.hpp | 123 + .../aux_/preprocessed/msvc70/basic_bind.hpp | 328 ++ .../mpl/aux_/preprocessed/msvc70/bind.hpp | 432 ++ .../mpl/aux_/preprocessed/msvc70/bind_fwd.hpp | 46 + .../mpl/aux_/preprocessed/msvc70/bitand.hpp | 151 + .../mpl/aux_/preprocessed/msvc70/bitor.hpp | 151 + .../mpl/aux_/preprocessed/msvc70/bitxor.hpp | 151 + .../mpl/aux_/preprocessed/msvc70/deque.hpp | 556 +++ .../mpl/aux_/preprocessed/msvc70/divides.hpp | 150 + .../mpl/aux_/preprocessed/msvc70/equal_to.hpp | 102 + .../aux_/preprocessed/msvc70/fold_impl.hpp | 245 ++ .../aux_/preprocessed/msvc70/full_lambda.hpp | 554 +++ .../mpl/aux_/preprocessed/msvc70/greater.hpp | 102 + .../preprocessed/msvc70/greater_equal.hpp | 102 + .../mpl/aux_/preprocessed/msvc70/inherit.hpp | 166 + .../preprocessed/msvc70/iter_fold_if_impl.hpp | 133 + .../preprocessed/msvc70/iter_fold_impl.hpp | 245 ++ .../preprocessed/msvc70/lambda_no_ctps.hpp | 229 ++ .../mpl/aux_/preprocessed/msvc70/less.hpp | 102 + .../aux_/preprocessed/msvc70/less_equal.hpp | 102 + .../mpl/aux_/preprocessed/msvc70/list.hpp | 556 +++ .../mpl/aux_/preprocessed/msvc70/list_c.hpp | 534 +++ .../mpl/aux_/preprocessed/msvc70/map.hpp | 556 +++ .../mpl/aux_/preprocessed/msvc70/minus.hpp | 150 + .../mpl/aux_/preprocessed/msvc70/modulus.hpp | 115 + .../aux_/preprocessed/msvc70/not_equal_to.hpp | 102 + src/boost/mpl/aux_/preprocessed/msvc70/or.hpp | 71 + .../aux_/preprocessed/msvc70/placeholders.hpp | 105 + .../mpl/aux_/preprocessed/msvc70/plus.hpp | 150 + .../mpl/aux_/preprocessed/msvc70/quote.hpp | 116 + .../preprocessed/msvc70/reverse_fold_impl.hpp | 295 ++ .../msvc70/reverse_iter_fold_impl.hpp | 295 ++ .../mpl/aux_/preprocessed/msvc70/set.hpp | 556 +++ .../mpl/aux_/preprocessed/msvc70/set_c.hpp | 534 +++ .../aux_/preprocessed/msvc70/shift_left.hpp | 114 + .../aux_/preprocessed/msvc70/shift_right.hpp | 114 + .../preprocessed/msvc70/template_arity.hpp | 46 + .../mpl/aux_/preprocessed/msvc70/times.hpp | 150 + .../aux_/preprocessed/msvc70/unpack_args.hpp | 109 + .../mpl/aux_/preprocessed/msvc70/vector.hpp | 556 +++ .../mpl/aux_/preprocessed/msvc70/vector_c.hpp | 534 +++ .../preprocessed/mwcw/advance_backward.hpp | 97 + .../preprocessed/mwcw/advance_forward.hpp | 97 + src/boost/mpl/aux_/preprocessed/mwcw/and.hpp | 69 + .../mpl/aux_/preprocessed/mwcw/apply.hpp | 169 + .../mpl/aux_/preprocessed/mwcw/apply_fwd.hpp | 52 + .../mpl/aux_/preprocessed/mwcw/apply_wrap.hpp | 456 +++ src/boost/mpl/aux_/preprocessed/mwcw/arg.hpp | 123 + .../mpl/aux_/preprocessed/mwcw/basic_bind.hpp | 440 ++ src/boost/mpl/aux_/preprocessed/mwcw/bind.hpp | 561 +++ .../mpl/aux_/preprocessed/mwcw/bind_fwd.hpp | 52 + .../mpl/aux_/preprocessed/mwcw/bitand.hpp | 147 + .../mpl/aux_/preprocessed/mwcw/bitor.hpp | 147 + .../mpl/aux_/preprocessed/mwcw/bitxor.hpp | 147 + .../mpl/aux_/preprocessed/mwcw/deque.hpp | 323 ++ .../mpl/aux_/preprocessed/mwcw/divides.hpp | 146 + .../mpl/aux_/preprocessed/mwcw/equal_to.hpp | 94 + .../mpl/aux_/preprocessed/mwcw/fold_impl.hpp | 180 + .../aux_/preprocessed/mwcw/full_lambda.hpp | 554 +++ .../mpl/aux_/preprocessed/mwcw/greater.hpp | 94 + .../aux_/preprocessed/mwcw/greater_equal.hpp | 94 + .../mpl/aux_/preprocessed/mwcw/inherit.hpp | 141 + .../preprocessed/mwcw/iter_fold_if_impl.hpp | 133 + .../aux_/preprocessed/mwcw/iter_fold_impl.hpp | 180 + .../aux_/preprocessed/mwcw/lambda_no_ctps.hpp | 229 ++ src/boost/mpl/aux_/preprocessed/mwcw/less.hpp | 94 + .../mpl/aux_/preprocessed/mwcw/less_equal.hpp | 94 + src/boost/mpl/aux_/preprocessed/mwcw/list.hpp | 323 ++ .../mpl/aux_/preprocessed/mwcw/list_c.hpp | 328 ++ src/boost/mpl/aux_/preprocessed/mwcw/map.hpp | 323 ++ .../mpl/aux_/preprocessed/mwcw/minus.hpp | 146 + .../mpl/aux_/preprocessed/mwcw/modulus.hpp | 101 + .../aux_/preprocessed/mwcw/not_equal_to.hpp | 94 + src/boost/mpl/aux_/preprocessed/mwcw/or.hpp | 69 + .../aux_/preprocessed/mwcw/placeholders.hpp | 105 + src/boost/mpl/aux_/preprocessed/mwcw/plus.hpp | 146 + .../mpl/aux_/preprocessed/mwcw/quote.hpp | 123 + .../preprocessed/mwcw/reverse_fold_impl.hpp | 231 ++ .../mwcw/reverse_iter_fold_impl.hpp | 231 ++ src/boost/mpl/aux_/preprocessed/mwcw/set.hpp | 323 ++ .../mpl/aux_/preprocessed/mwcw/set_c.hpp | 328 ++ .../mpl/aux_/preprocessed/mwcw/shift_left.hpp | 99 + .../aux_/preprocessed/mwcw/shift_right.hpp | 99 + .../aux_/preprocessed/mwcw/template_arity.hpp | 11 + .../mpl/aux_/preprocessed/mwcw/times.hpp | 146 + .../aux_/preprocessed/mwcw/unpack_args.hpp | 94 + .../mpl/aux_/preprocessed/mwcw/vector.hpp | 323 ++ .../mpl/aux_/preprocessed/mwcw/vector_c.hpp | 309 ++ .../preprocessed/no_ctps/advance_backward.hpp | 97 + .../preprocessed/no_ctps/advance_forward.hpp | 97 + .../mpl/aux_/preprocessed/no_ctps/and.hpp | 73 + .../mpl/aux_/preprocessed/no_ctps/apply.hpp | 268 ++ .../aux_/preprocessed/no_ctps/apply_fwd.hpp | 50 + .../aux_/preprocessed/no_ctps/apply_wrap.hpp | 78 + .../mpl/aux_/preprocessed/no_ctps/arg.hpp | 123 + .../aux_/preprocessed/no_ctps/basic_bind.hpp | 486 +++ .../mpl/aux_/preprocessed/no_ctps/bind.hpp | 590 +++ .../aux_/preprocessed/no_ctps/bind_fwd.hpp | 52 + .../mpl/aux_/preprocessed/no_ctps/bitand.hpp | 134 + .../mpl/aux_/preprocessed/no_ctps/bitor.hpp | 134 + .../mpl/aux_/preprocessed/no_ctps/bitxor.hpp | 134 + .../mpl/aux_/preprocessed/no_ctps/deque.hpp | 556 +++ .../mpl/aux_/preprocessed/no_ctps/divides.hpp | 133 + .../aux_/preprocessed/no_ctps/equal_to.hpp | 94 + .../aux_/preprocessed/no_ctps/fold_impl.hpp | 245 ++ .../aux_/preprocessed/no_ctps/full_lambda.hpp | 554 +++ .../mpl/aux_/preprocessed/no_ctps/greater.hpp | 94 + .../preprocessed/no_ctps/greater_equal.hpp | 94 + .../mpl/aux_/preprocessed/no_ctps/inherit.hpp | 166 + .../no_ctps/iter_fold_if_impl.hpp | 133 + .../preprocessed/no_ctps/iter_fold_impl.hpp | 245 ++ .../preprocessed/no_ctps/lambda_no_ctps.hpp | 229 ++ .../mpl/aux_/preprocessed/no_ctps/less.hpp | 94 + .../aux_/preprocessed/no_ctps/less_equal.hpp | 94 + .../mpl/aux_/preprocessed/no_ctps/list.hpp | 556 +++ .../mpl/aux_/preprocessed/no_ctps/list_c.hpp | 534 +++ .../mpl/aux_/preprocessed/no_ctps/map.hpp | 556 +++ .../mpl/aux_/preprocessed/no_ctps/minus.hpp | 133 + .../mpl/aux_/preprocessed/no_ctps/modulus.hpp | 101 + .../preprocessed/no_ctps/not_equal_to.hpp | 94 + .../mpl/aux_/preprocessed/no_ctps/or.hpp | 73 + .../preprocessed/no_ctps/placeholders.hpp | 105 + .../mpl/aux_/preprocessed/no_ctps/plus.hpp | 133 + .../mpl/aux_/preprocessed/no_ctps/quote.hpp | 116 + .../no_ctps/reverse_fold_impl.hpp | 295 ++ .../no_ctps/reverse_iter_fold_impl.hpp | 295 ++ .../mpl/aux_/preprocessed/no_ctps/set.hpp | 556 +++ .../mpl/aux_/preprocessed/no_ctps/set_c.hpp | 534 +++ .../aux_/preprocessed/no_ctps/shift_left.hpp | 99 + .../aux_/preprocessed/no_ctps/shift_right.hpp | 99 + .../preprocessed/no_ctps/template_arity.hpp | 40 + .../mpl/aux_/preprocessed/no_ctps/times.hpp | 133 + .../aux_/preprocessed/no_ctps/unpack_args.hpp | 109 + .../mpl/aux_/preprocessed/no_ctps/vector.hpp | 556 +++ .../aux_/preprocessed/no_ctps/vector_c.hpp | 534 +++ .../preprocessed/no_ttp/advance_backward.hpp | 97 + .../preprocessed/no_ttp/advance_forward.hpp | 97 + .../mpl/aux_/preprocessed/no_ttp/and.hpp | 69 + .../mpl/aux_/preprocessed/no_ttp/apply.hpp | 169 + .../aux_/preprocessed/no_ttp/apply_fwd.hpp | 52 + .../aux_/preprocessed/no_ttp/apply_wrap.hpp | 84 + .../mpl/aux_/preprocessed/no_ttp/arg.hpp | 123 + .../aux_/preprocessed/no_ttp/basic_bind.hpp | 369 ++ .../mpl/aux_/preprocessed/no_ttp/bind.hpp | 466 +++ .../mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp | 52 + .../mpl/aux_/preprocessed/no_ttp/bitand.hpp | 157 + .../mpl/aux_/preprocessed/no_ttp/bitor.hpp | 157 + .../mpl/aux_/preprocessed/no_ttp/bitxor.hpp | 157 + .../mpl/aux_/preprocessed/no_ttp/deque.hpp | 323 ++ .../mpl/aux_/preprocessed/no_ttp/divides.hpp | 156 + .../mpl/aux_/preprocessed/no_ttp/equal_to.hpp | 98 + .../aux_/preprocessed/no_ttp/fold_impl.hpp | 180 + .../aux_/preprocessed/no_ttp/full_lambda.hpp | 554 +++ .../mpl/aux_/preprocessed/no_ttp/greater.hpp | 98 + .../preprocessed/no_ttp/greater_equal.hpp | 98 + .../mpl/aux_/preprocessed/no_ttp/inherit.hpp | 141 + .../preprocessed/no_ttp/iter_fold_if_impl.hpp | 133 + .../preprocessed/no_ttp/iter_fold_impl.hpp | 180 + .../preprocessed/no_ttp/lambda_no_ctps.hpp | 229 ++ .../mpl/aux_/preprocessed/no_ttp/less.hpp | 98 + .../aux_/preprocessed/no_ttp/less_equal.hpp | 98 + .../mpl/aux_/preprocessed/no_ttp/list.hpp | 323 ++ .../mpl/aux_/preprocessed/no_ttp/list_c.hpp | 328 ++ .../mpl/aux_/preprocessed/no_ttp/map.hpp | 323 ++ .../mpl/aux_/preprocessed/no_ttp/minus.hpp | 156 + .../mpl/aux_/preprocessed/no_ttp/modulus.hpp | 111 + .../aux_/preprocessed/no_ttp/not_equal_to.hpp | 98 + src/boost/mpl/aux_/preprocessed/no_ttp/or.hpp | 69 + .../aux_/preprocessed/no_ttp/placeholders.hpp | 105 + .../mpl/aux_/preprocessed/no_ttp/plus.hpp | 156 + .../mpl/aux_/preprocessed/no_ttp/quote.hpp | 11 + .../preprocessed/no_ttp/reverse_fold_impl.hpp | 231 ++ .../no_ttp/reverse_iter_fold_impl.hpp | 231 ++ .../mpl/aux_/preprocessed/no_ttp/set.hpp | 323 ++ .../mpl/aux_/preprocessed/no_ttp/set_c.hpp | 328 ++ .../aux_/preprocessed/no_ttp/shift_left.hpp | 110 + .../aux_/preprocessed/no_ttp/shift_right.hpp | 110 + .../preprocessed/no_ttp/template_arity.hpp | 40 + .../mpl/aux_/preprocessed/no_ttp/times.hpp | 156 + .../aux_/preprocessed/no_ttp/unpack_args.hpp | 94 + .../mpl/aux_/preprocessed/no_ttp/vector.hpp | 323 ++ .../mpl/aux_/preprocessed/no_ttp/vector_c.hpp | 309 ++ .../preprocessed/plain/advance_backward.hpp | 97 + .../preprocessed/plain/advance_forward.hpp | 97 + src/boost/mpl/aux_/preprocessed/plain/and.hpp | 64 + .../mpl/aux_/preprocessed/plain/apply.hpp | 139 + .../mpl/aux_/preprocessed/plain/apply_fwd.hpp | 52 + .../aux_/preprocessed/plain/apply_wrap.hpp | 84 + src/boost/mpl/aux_/preprocessed/plain/arg.hpp | 123 + .../aux_/preprocessed/plain/basic_bind.hpp | 440 ++ .../mpl/aux_/preprocessed/plain/bind.hpp | 561 +++ .../mpl/aux_/preprocessed/plain/bind_fwd.hpp | 52 + .../mpl/aux_/preprocessed/plain/bitand.hpp | 142 + .../mpl/aux_/preprocessed/plain/bitor.hpp | 142 + .../mpl/aux_/preprocessed/plain/bitxor.hpp | 142 + .../mpl/aux_/preprocessed/plain/deque.hpp | 323 ++ .../mpl/aux_/preprocessed/plain/divides.hpp | 141 + .../mpl/aux_/preprocessed/plain/equal_to.hpp | 92 + .../mpl/aux_/preprocessed/plain/fold_impl.hpp | 180 + .../aux_/preprocessed/plain/full_lambda.hpp | 554 +++ .../mpl/aux_/preprocessed/plain/greater.hpp | 92 + .../aux_/preprocessed/plain/greater_equal.hpp | 92 + .../mpl/aux_/preprocessed/plain/inherit.hpp | 125 + .../preprocessed/plain/iter_fold_if_impl.hpp | 133 + .../preprocessed/plain/iter_fold_impl.hpp | 180 + .../preprocessed/plain/lambda_no_ctps.hpp | 228 ++ .../mpl/aux_/preprocessed/plain/less.hpp | 92 + .../aux_/preprocessed/plain/less_equal.hpp | 92 + .../mpl/aux_/preprocessed/plain/list.hpp | 323 ++ .../mpl/aux_/preprocessed/plain/list_c.hpp | 328 ++ src/boost/mpl/aux_/preprocessed/plain/map.hpp | 323 ++ .../mpl/aux_/preprocessed/plain/minus.hpp | 141 + .../mpl/aux_/preprocessed/plain/modulus.hpp | 99 + .../aux_/preprocessed/plain/not_equal_to.hpp | 92 + src/boost/mpl/aux_/preprocessed/plain/or.hpp | 64 + .../aux_/preprocessed/plain/placeholders.hpp | 105 + .../mpl/aux_/preprocessed/plain/plus.hpp | 141 + .../mpl/aux_/preprocessed/plain/quote.hpp | 123 + .../preprocessed/plain/reverse_fold_impl.hpp | 231 ++ .../plain/reverse_iter_fold_impl.hpp | 231 ++ src/boost/mpl/aux_/preprocessed/plain/set.hpp | 323 ++ .../mpl/aux_/preprocessed/plain/set_c.hpp | 328 ++ .../aux_/preprocessed/plain/shift_left.hpp | 97 + .../aux_/preprocessed/plain/shift_right.hpp | 97 + .../preprocessed/plain/template_arity.hpp | 11 + .../mpl/aux_/preprocessed/plain/times.hpp | 141 + .../aux_/preprocessed/plain/unpack_args.hpp | 94 + .../mpl/aux_/preprocessed/plain/vector.hpp | 323 ++ .../mpl/aux_/preprocessed/plain/vector_c.hpp | 309 ++ src/boost/mpl/aux_/preprocessor/add.hpp | 65 + .../mpl/aux_/preprocessor/def_params_tail.hpp | 105 + .../mpl/aux_/preprocessor/default_params.hpp | 67 + src/boost/mpl/aux_/preprocessor/enum.hpp | 74 + .../mpl/aux_/preprocessor/ext_params.hpp | 78 + .../mpl/aux_/preprocessor/filter_params.hpp | 28 + src/boost/mpl/aux_/preprocessor/params.hpp | 77 + .../aux_/preprocessor/partial_spec_params.hpp | 32 + src/boost/mpl/aux_/preprocessor/range.hpp | 30 + src/boost/mpl/aux_/preprocessor/repeat.hpp | 51 + src/boost/mpl/aux_/preprocessor/sub.hpp | 65 + src/boost/mpl/aux_/preprocessor/tuple.hpp | 29 + src/boost/mpl/aux_/ptr_to_ref.hpp | 46 + src/boost/mpl/aux_/push_back_impl.hpp | 70 + src/boost/mpl/aux_/push_front_impl.hpp | 71 + src/boost/mpl/aux_/reverse_fold_impl.hpp | 44 + src/boost/mpl/aux_/reverse_fold_impl_body.hpp | 412 ++ src/boost/mpl/aux_/reverse_iter_fold_impl.hpp | 43 + src/boost/mpl/aux_/sequence_wrapper.hpp | 292 ++ src/boost/mpl/aux_/size_impl.hpp | 52 + src/boost/mpl/aux_/static_cast.hpp | 27 + src/boost/mpl/aux_/template_arity.hpp | 189 + src/boost/mpl/aux_/template_arity_fwd.hpp | 23 + src/boost/mpl/aux_/traits_lambda_spec.hpp | 63 + src/boost/mpl/aux_/type_wrapper.hpp | 47 + src/boost/mpl/aux_/value_wknd.hpp | 89 + src/boost/mpl/aux_/yes_no.hpp | 59 + src/boost/mpl/back.hpp | 39 + src/boost/mpl/back_fwd.hpp | 24 + src/boost/mpl/back_inserter.hpp | 34 + src/boost/mpl/base.hpp | 35 + src/boost/mpl/begin.hpp | 19 + src/boost/mpl/begin_end.hpp | 57 + src/boost/mpl/begin_end_fwd.hpp | 27 + src/boost/mpl/bind.hpp | 551 +++ src/boost/mpl/bind_fwd.hpp | 99 + src/boost/mpl/bool.hpp | 39 + src/boost/mpl/bool_fwd.hpp | 33 + src/boost/mpl/clear.hpp | 39 + src/boost/mpl/clear_fwd.hpp | 24 + src/boost/mpl/contains.hpp | 41 + src/boost/mpl/contains_fwd.hpp | 25 + src/boost/mpl/count_fwd.hpp | 24 + src/boost/mpl/deref.hpp | 41 + src/boost/mpl/distance.hpp | 78 + src/boost/mpl/distance_fwd.hpp | 28 + src/boost/mpl/empty.hpp | 39 + src/boost/mpl/empty_base.hpp | 63 + src/boost/mpl/empty_fwd.hpp | 24 + src/boost/mpl/end.hpp | 19 + src/boost/mpl/equal_to.hpp | 21 + src/boost/mpl/erase.hpp | 42 + src/boost/mpl/erase_fwd.hpp | 24 + src/boost/mpl/erase_key.hpp | 41 + src/boost/mpl/erase_key_fwd.hpp | 24 + src/boost/mpl/eval_if.hpp | 71 + src/boost/mpl/find.hpp | 38 + src/boost/mpl/find_if.hpp | 50 + src/boost/mpl/fold.hpp | 48 + src/boost/mpl/front.hpp | 39 + src/boost/mpl/front_fwd.hpp | 24 + src/boost/mpl/front_inserter.hpp | 33 + src/boost/mpl/has_key.hpp | 41 + src/boost/mpl/has_key_fwd.hpp | 25 + src/boost/mpl/has_xxx.hpp | 647 +++ src/boost/mpl/identity.hpp | 45 + src/boost/mpl/if.hpp | 135 + src/boost/mpl/inherit.hpp | 229 ++ src/boost/mpl/insert.hpp | 41 + src/boost/mpl/insert_fwd.hpp | 24 + src/boost/mpl/insert_range.hpp | 41 + src/boost/mpl/insert_range_fwd.hpp | 24 + src/boost/mpl/inserter.hpp | 32 + src/boost/mpl/int.hpp | 22 + src/boost/mpl/int_fwd.hpp | 27 + src/boost/mpl/integral_c.hpp | 51 + src/boost/mpl/integral_c_fwd.hpp | 32 + src/boost/mpl/integral_c_tag.hpp | 26 + src/boost/mpl/is_placeholder.hpp | 67 + src/boost/mpl/is_sequence.hpp | 112 + src/boost/mpl/iter_fold.hpp | 49 + src/boost/mpl/iter_fold_if.hpp | 117 + src/boost/mpl/iterator_category.hpp | 35 + src/boost/mpl/iterator_range.hpp | 42 + src/boost/mpl/iterator_tags.hpp | 27 + src/boost/mpl/joint_view.hpp | 65 + src/boost/mpl/key_type_fwd.hpp | 25 + src/boost/mpl/lambda.hpp | 29 + src/boost/mpl/lambda_fwd.hpp | 57 + src/boost/mpl/less.hpp | 21 + src/boost/mpl/limits/arity.hpp | 21 + src/boost/mpl/limits/list.hpp | 21 + src/boost/mpl/limits/unrolling.hpp | 21 + src/boost/mpl/limits/vector.hpp | 21 + src/boost/mpl/list.hpp | 57 + src/boost/mpl/list/aux_/O1_size.hpp | 33 + src/boost/mpl/list/aux_/begin_end.hpp | 44 + src/boost/mpl/list/aux_/clear.hpp | 34 + src/boost/mpl/list/aux_/empty.hpp | 34 + src/boost/mpl/list/aux_/front.hpp | 33 + .../mpl/list/aux_/include_preprocessed.hpp | 35 + src/boost/mpl/list/aux_/item.hpp | 55 + src/boost/mpl/list/aux_/iterator.hpp | 76 + src/boost/mpl/list/aux_/numbered.hpp | 68 + src/boost/mpl/list/aux_/numbered_c.hpp | 71 + src/boost/mpl/list/aux_/pop_front.hpp | 34 + .../list/aux_/preprocessed/plain/list10.hpp | 149 + .../list/aux_/preprocessed/plain/list10_c.hpp | 164 + .../list/aux_/preprocessed/plain/list20.hpp | 169 + .../list/aux_/preprocessed/plain/list20_c.hpp | 173 + .../list/aux_/preprocessed/plain/list30.hpp | 189 + .../list/aux_/preprocessed/plain/list30_c.hpp | 183 + .../list/aux_/preprocessed/plain/list40.hpp | 209 + .../list/aux_/preprocessed/plain/list40_c.hpp | 193 + .../list/aux_/preprocessed/plain/list50.hpp | 229 ++ .../list/aux_/preprocessed/plain/list50_c.hpp | 203 + src/boost/mpl/list/aux_/push_back.hpp | 36 + src/boost/mpl/list/aux_/push_front.hpp | 39 + src/boost/mpl/list/aux_/size.hpp | 33 + src/boost/mpl/list/aux_/tag.hpp | 24 + src/boost/mpl/list/list0.hpp | 42 + src/boost/mpl/list/list0_c.hpp | 31 + src/boost/mpl/list/list10.hpp | 43 + src/boost/mpl/list/list10_c.hpp | 43 + src/boost/mpl/list/list20.hpp | 43 + src/boost/mpl/list/list20_c.hpp | 43 + src/boost/mpl/list/list30.hpp | 43 + src/boost/mpl/list/list30_c.hpp | 43 + src/boost/mpl/list/list40.hpp | 43 + src/boost/mpl/list/list40_c.hpp | 43 + src/boost/mpl/list/list50.hpp | 43 + src/boost/mpl/list/list50_c.hpp | 43 + src/boost/mpl/logical.hpp | 21 + src/boost/mpl/long.hpp | 22 + src/boost/mpl/long_fwd.hpp | 27 + src/boost/mpl/min_max.hpp | 46 + src/boost/mpl/minus.hpp | 21 + src/boost/mpl/negate.hpp | 81 + src/boost/mpl/next.hpp | 19 + src/boost/mpl/next_prior.hpp | 49 + src/boost/mpl/not.hpp | 51 + src/boost/mpl/numeric_cast.hpp | 41 + src/boost/mpl/or.hpp | 61 + src/boost/mpl/order_fwd.hpp | 25 + src/boost/mpl/pair.hpp | 70 + src/boost/mpl/pair_view.hpp | 169 + src/boost/mpl/placeholders.hpp | 100 + src/boost/mpl/plus.hpp | 21 + src/boost/mpl/pop_back.hpp | 39 + src/boost/mpl/pop_back_fwd.hpp | 24 + src/boost/mpl/pop_front.hpp | 39 + src/boost/mpl/pop_front_fwd.hpp | 24 + src/boost/mpl/prior.hpp | 19 + src/boost/mpl/protect.hpp | 55 + src/boost/mpl/push_back.hpp | 53 + src/boost/mpl/push_back_fwd.hpp | 24 + src/boost/mpl/push_front.hpp | 52 + src/boost/mpl/push_front_fwd.hpp | 24 + src/boost/mpl/quote.hpp | 151 + src/boost/mpl/reverse_fold.hpp | 50 + src/boost/mpl/reverse_iter_fold.hpp | 56 + src/boost/mpl/same_as.hpp | 55 + src/boost/mpl/sequence_tag.hpp | 124 + src/boost/mpl/sequence_tag_fwd.hpp | 26 + src/boost/mpl/set/aux_/at_impl.hpp | 40 + src/boost/mpl/set/aux_/begin_end_impl.hpp | 43 + src/boost/mpl/set/aux_/clear_impl.hpp | 35 + src/boost/mpl/set/aux_/empty_impl.hpp | 34 + src/boost/mpl/set/aux_/erase_impl.hpp | 41 + src/boost/mpl/set/aux_/erase_key_impl.hpp | 53 + src/boost/mpl/set/aux_/has_key_impl.hpp | 60 + src/boost/mpl/set/aux_/insert_impl.hpp | 65 + src/boost/mpl/set/aux_/insert_range_impl.hpp | 41 + src/boost/mpl/set/aux_/item.hpp | 82 + src/boost/mpl/set/aux_/iterator.hpp | 98 + src/boost/mpl/set/aux_/key_type_impl.hpp | 34 + src/boost/mpl/set/aux_/set0.hpp | 69 + src/boost/mpl/set/aux_/size_impl.hpp | 33 + src/boost/mpl/set/aux_/tag.hpp | 24 + src/boost/mpl/set/aux_/value_type_impl.hpp | 34 + src/boost/mpl/set/set0.hpp | 36 + src/boost/mpl/size.hpp | 42 + src/boost/mpl/size_fwd.hpp | 24 + src/boost/mpl/size_t.hpp | 25 + src/boost/mpl/size_t_fwd.hpp | 28 + src/boost/mpl/tag.hpp | 52 + src/boost/mpl/transform.hpp | 145 + src/boost/mpl/value_type_fwd.hpp | 25 + src/boost/mpl/vector.hpp | 57 + src/boost/mpl/vector/aux_/O1_size.hpp | 56 + src/boost/mpl/vector/aux_/at.hpp | 116 + src/boost/mpl/vector/aux_/back.hpp | 59 + src/boost/mpl/vector/aux_/begin_end.hpp | 49 + src/boost/mpl/vector/aux_/clear.hpp | 55 + src/boost/mpl/vector/aux_/empty.hpp | 68 + src/boost/mpl/vector/aux_/front.hpp | 56 + .../mpl/vector/aux_/include_preprocessed.hpp | 55 + src/boost/mpl/vector/aux_/item.hpp | 103 + src/boost/mpl/vector/aux_/iterator.hpp | 130 + src/boost/mpl/vector/aux_/numbered.hpp | 218 + src/boost/mpl/vector/aux_/numbered_c.hpp | 77 + src/boost/mpl/vector/aux_/pop_back.hpp | 40 + src/boost/mpl/vector/aux_/pop_front.hpp | 40 + .../aux_/preprocessed/no_ctps/vector10.hpp | 1528 +++++++ .../aux_/preprocessed/no_ctps/vector10_c.hpp | 149 + .../aux_/preprocessed/no_ctps/vector20.hpp | 1804 ++++++++ .../aux_/preprocessed/no_ctps/vector20_c.hpp | 195 + .../aux_/preprocessed/no_ctps/vector30.hpp | 2124 ++++++++++ .../aux_/preprocessed/no_ctps/vector30_c.hpp | 238 ++ .../aux_/preprocessed/no_ctps/vector40.hpp | 2444 +++++++++++ .../aux_/preprocessed/no_ctps/vector40_c.hpp | 281 ++ .../aux_/preprocessed/no_ctps/vector50.hpp | 2764 +++++++++++++ .../aux_/preprocessed/no_ctps/vector50_c.hpp | 325 ++ .../aux_/preprocessed/plain/vector10.hpp | 829 ++++ .../aux_/preprocessed/plain/vector10_c.hpp | 149 + .../aux_/preprocessed/plain/vector20.hpp | 1144 ++++++ .../aux_/preprocessed/plain/vector20_c.hpp | 195 + .../aux_/preprocessed/plain/vector30.hpp | 1464 +++++++ .../aux_/preprocessed/plain/vector30_c.hpp | 238 ++ .../aux_/preprocessed/plain/vector40.hpp | 1784 ++++++++ .../aux_/preprocessed/plain/vector40_c.hpp | 281 ++ .../aux_/preprocessed/plain/vector50.hpp | 2104 ++++++++++ .../aux_/preprocessed/plain/vector50_c.hpp | 325 ++ .../preprocessed/typeof_based/vector10.hpp | 139 + .../preprocessed/typeof_based/vector10_c.hpp | 154 + .../preprocessed/typeof_based/vector20.hpp | 159 + .../preprocessed/typeof_based/vector20_c.hpp | 163 + .../preprocessed/typeof_based/vector30.hpp | 179 + .../preprocessed/typeof_based/vector30_c.hpp | 173 + .../preprocessed/typeof_based/vector40.hpp | 199 + .../preprocessed/typeof_based/vector40_c.hpp | 183 + .../preprocessed/typeof_based/vector50.hpp | 219 + .../preprocessed/typeof_based/vector50_c.hpp | 193 + src/boost/mpl/vector/aux_/push_back.hpp | 40 + src/boost/mpl/vector/aux_/push_front.hpp | 40 + src/boost/mpl/vector/aux_/size.hpp | 49 + src/boost/mpl/vector/aux_/tag.hpp | 32 + src/boost/mpl/vector/aux_/vector0.hpp | 52 + src/boost/mpl/vector/vector0.hpp | 34 + src/boost/mpl/vector/vector0_c.hpp | 31 + src/boost/mpl/vector/vector10.hpp | 45 + src/boost/mpl/vector/vector10_c.hpp | 46 + src/boost/mpl/vector/vector20.hpp | 45 + src/boost/mpl/vector/vector20_c.hpp | 46 + src/boost/mpl/vector/vector30.hpp | 45 + src/boost/mpl/vector/vector30_c.hpp | 47 + src/boost/mpl/vector/vector40.hpp | 45 + src/boost/mpl/vector/vector40_c.hpp | 46 + src/boost/mpl/vector/vector50.hpp | 45 + src/boost/mpl/vector/vector50_c.hpp | 46 + src/boost/mpl/void.hpp | 76 + src/boost/mpl/void_fwd.hpp | 26 + .../multi_index/detail/access_specifier.hpp | 54 + src/boost/multi_index/detail/adl_swap.hpp | 44 + .../multi_index/detail/allocator_traits.hpp | 173 + .../multi_index/detail/any_container_view.hpp | 76 + .../detail/archive_constructed.hpp | 83 + src/boost/multi_index/detail/auto_space.hpp | 105 + .../detail/bad_archive_exception.hpp | 36 + src/boost/multi_index/detail/base_type.hpp | 74 + src/boost/multi_index/detail/bucket_array.hpp | 253 ++ src/boost/multi_index/detail/converter.hpp | 54 + src/boost/multi_index/detail/copy_map.hpp | 170 + .../detail/define_if_constexpr_macro.hpp | 34 + .../detail/do_not_copy_elements_tag.hpp | 34 + src/boost/multi_index/detail/has_tag.hpp | 42 + .../multi_index/detail/hash_index_args.hpp | 105 + .../detail/hash_index_iterator.hpp | 181 + .../multi_index/detail/hash_index_node.hpp | 777 ++++ .../multi_index/detail/header_holder.hpp | 50 + .../detail/ignore_wstrict_aliasing.hpp | 18 + .../detail/index_access_sequence.hpp | 80 + src/boost/multi_index/detail/index_base.hpp | 329 ++ src/boost/multi_index/detail/index_loader.hpp | 138 + .../multi_index/detail/index_matcher.hpp | 249 ++ .../multi_index/detail/index_node_base.hpp | 134 + src/boost/multi_index/detail/index_saver.hpp | 135 + .../detail/invalidate_iterators.hpp | 44 + .../multi_index/detail/invariant_assert.hpp | 21 + .../multi_index/detail/is_index_list.hpp | 40 + .../multi_index/detail/is_transparent.hpp | 135 + src/boost/multi_index/detail/iter_adaptor.hpp | 321 ++ .../multi_index/detail/modify_key_adaptor.hpp | 49 + .../multi_index/detail/no_duplicate_tags.hpp | 97 + src/boost/multi_index/detail/node_handle.hpp | 267 ++ src/boost/multi_index/detail/node_type.hpp | 66 + .../multi_index/detail/ord_index_args.hpp | 83 + .../multi_index/detail/ord_index_impl_fwd.hpp | 128 + src/boost/multi_index/detail/promotes_arg.hpp | 83 + src/boost/multi_index/detail/raw_ptr.hpp | 52 + .../detail/restore_wstrict_aliasing.hpp | 11 + .../multi_index/detail/rnd_index_loader.hpp | 175 + .../multi_index/detail/rnd_index_node.hpp | 293 ++ .../multi_index/detail/rnd_index_ops.hpp | 203 + .../detail/rnd_index_ptr_array.hpp | 154 + .../multi_index/detail/rnd_node_iterator.hpp | 143 + src/boost/multi_index/detail/safe_mode.hpp | 718 ++++ src/boost/multi_index/detail/scope_guard.hpp | 453 ++ .../multi_index/detail/scoped_bilock.hpp | 70 + .../detail/serialization_version.hpp | 76 + .../detail/undef_if_constexpr_macro.hpp | 11 + .../multi_index/detail/vartempl_support.hpp | 247 ++ src/boost/multi_index/hashed_index.hpp | 1912 +++++++++ src/boost/multi_index/hashed_index_fwd.hpp | 74 + src/boost/multi_index/identity.hpp | 145 + src/boost/multi_index/identity_fwd.hpp | 26 + src/boost/multi_index/indexed_by.hpp | 68 + src/boost/multi_index/ordered_index_fwd.hpp | 35 + src/boost/multi_index/random_access_index.hpp | 1362 +++++++ .../multi_index/random_access_index_fwd.hpp | 91 + src/boost/multi_index/safe_mode_errors.hpp | 49 + src/boost/multi_index/tag.hpp | 88 + src/boost/multi_index_container.hpp | 1605 ++++++++ src/boost/multi_index_container_fwd.hpp | 121 + src/boost/noncopyable.hpp | 17 + src/boost/operators.hpp | 920 +++++ .../parameter/aux_/always_true_predicate.hpp | 42 + src/boost/parameter/aux_/arg_list.hpp | 1331 ++++++ .../parameter/aux_/augment_predicate.hpp | 198 + src/boost/parameter/aux_/default.hpp | 111 + .../parameter/aux_/has_nested_template_fn.hpp | 111 + src/boost/parameter/aux_/is_maybe.hpp | 52 + src/boost/parameter/aux_/is_placeholder.hpp | 64 + .../parameter/aux_/is_tagged_argument.hpp | 95 + src/boost/parameter/aux_/lambda_tag.hpp | 16 + .../aux_/pack/as_parameter_requirements.hpp | 32 + src/boost/parameter/aux_/pack/deduce_tag.hpp | 217 + .../parameter/aux_/pack/deduced_item.hpp | 34 + .../parameter/aux_/pack/insert_tagged.hpp | 23 + .../parameter/aux_/pack/is_named_argument.hpp | 43 + src/boost/parameter/aux_/pack/item.hpp | 47 + .../parameter/aux_/pack/make_arg_list.hpp | 438 ++ .../aux_/pack/make_deduced_items.hpp | 53 + src/boost/parameter/aux_/pack/make_items.hpp | 45 + .../aux_/pack/make_parameter_spec_items.hpp | 244 ++ .../aux_/pack/parameter_requirements.hpp | 25 + src/boost/parameter/aux_/pack/predicate.hpp | 87 + src/boost/parameter/aux_/pack/satisfies.hpp | 142 + src/boost/parameter/aux_/pack/tag_deduced.hpp | 59 + .../parameter/aux_/pack/tag_keyword_arg.hpp | 30 + .../aux_/pack/tag_keyword_arg_ref.hpp | 67 + .../aux_/pack/tag_template_keyword_arg.hpp | 30 + src/boost/parameter/aux_/pack/tag_type.hpp | 89 + .../aux_/pack/unmatched_argument.hpp | 41 + .../parameter/aux_/parameter_requirements.hpp | 12 + .../aux_/preprocessor/binary_seq_for_each.hpp | 1638 ++++++++ .../preprocessor/binary_seq_for_each_inc.hpp | 1796 ++++++++ .../aux_/preprocessor/binary_seq_to_args.hpp | 65 + .../aux_/preprocessor/convert_binary_seq.hpp | 57 + .../aux_/preprocessor/for_each_pred.hpp | 1029 +++++ .../aux_/preprocessor/inc_binary_seq.hpp | 78 + .../no_perfect_forwarding_begin.hpp | 165 + .../no_perfect_forwarding_end.hpp | 24 + .../parameter/aux_/preprocessor/nullptr.hpp | 18 + .../parameter/aux_/preprocessor/overloads.hpp | 92 + .../parameter/aux_/preprocessor/seq_enum.hpp | 26 + .../parameter/aux_/preprocessor/seq_merge.hpp | 1807 ++++++++ src/boost/parameter/aux_/result_of0.hpp | 53 + src/boost/parameter/aux_/set.hpp | 118 + src/boost/parameter/aux_/tag.hpp | 160 + src/boost/parameter/aux_/tagged_argument.hpp | 903 ++++ .../parameter/aux_/tagged_argument_fwd.hpp | 38 + src/boost/parameter/aux_/template_keyword.hpp | 89 + .../parameter/aux_/unwrap_cv_reference.hpp | 174 + src/boost/parameter/aux_/use_default.hpp | 17 + src/boost/parameter/aux_/use_default_tag.hpp | 29 + src/boost/parameter/aux_/void.hpp | 38 + src/boost/parameter/aux_/yesno.hpp | 42 + src/boost/parameter/binding.hpp | 164 + src/boost/parameter/config.hpp | 83 + src/boost/parameter/deduced.hpp | 132 + src/boost/parameter/keyword_fwd.hpp | 23 + src/boost/parameter/optional.hpp | 67 + src/boost/parameter/parameters.hpp | 600 +++ src/boost/parameter/required.hpp | 66 + src/boost/parameter/template_keyword.hpp | 87 + src/boost/parameter/value_type.hpp | 164 + src/boost/preprocessor/arithmetic/add.hpp | 104 + src/boost/preprocessor/arithmetic/dec.hpp | 322 ++ .../arithmetic/detail/is_maximum_number.hpp | 22 + .../arithmetic/detail/is_minimum_number.hpp | 21 + .../arithmetic/detail/maximum_number.hpp | 19 + src/boost/preprocessor/arithmetic/inc.hpp | 321 ++ .../arithmetic/limits/dec_1024.hpp | 531 +++ .../arithmetic/limits/dec_256.hpp | 276 ++ .../arithmetic/limits/dec_512.hpp | 275 ++ .../arithmetic/limits/inc_1024.hpp | 536 +++ .../arithmetic/limits/inc_256.hpp | 275 ++ .../arithmetic/limits/inc_512.hpp | 280 ++ src/boost/preprocessor/arithmetic/sub.hpp | 100 + src/boost/preprocessor/array/data.hpp | 28 + src/boost/preprocessor/array/elem.hpp | 29 + src/boost/preprocessor/array/size.hpp | 28 + src/boost/preprocessor/cat.hpp | 35 + src/boost/preprocessor/comma_if.hpp | 17 + src/boost/preprocessor/comparison/equal.hpp | 34 + src/boost/preprocessor/comparison/less.hpp | 46 + .../preprocessor/comparison/less_equal.hpp | 39 + .../comparison/limits/not_equal_1024.hpp | 1044 +++++ .../comparison/limits/not_equal_256.hpp | 793 ++++ .../comparison/limits/not_equal_512.hpp | 532 +++ .../preprocessor/comparison/not_equal.hpp | 857 ++++ src/boost/preprocessor/config/config.hpp | 98 + src/boost/preprocessor/config/limits.hpp | 163 + .../preprocessor/control/detail/dmc/while.hpp | 535 +++ .../control/detail/edg/limits/while_1024.hpp | 1044 +++++ .../control/detail/edg/limits/while_256.hpp | 533 +++ .../control/detail/edg/limits/while_512.hpp | 532 +++ .../preprocessor/control/detail/edg/while.hpp | 561 +++ .../control/detail/limits/while_1024.hpp | 1044 +++++ .../control/detail/limits/while_256.hpp | 533 +++ .../control/detail/limits/while_512.hpp | 532 +++ .../control/detail/msvc/while.hpp | 277 ++ .../preprocessor/control/detail/while.hpp | 563 +++ src/boost/preprocessor/control/expr_if.hpp | 30 + src/boost/preprocessor/control/expr_iif.hpp | 31 + src/boost/preprocessor/control/if.hpp | 30 + src/boost/preprocessor/control/iif.hpp | 34 + .../control/limits/while_1024.hpp | 531 +++ .../preprocessor/control/limits/while_256.hpp | 275 ++ .../preprocessor/control/limits/while_512.hpp | 275 ++ src/boost/preprocessor/control/while.hpp | 387 ++ src/boost/preprocessor/debug/error.hpp | 33 + src/boost/preprocessor/dec.hpp | 17 + src/boost/preprocessor/detail/auto_rec.hpp | 334 ++ src/boost/preprocessor/detail/check.hpp | 48 + .../preprocessor/detail/dmc/auto_rec.hpp | 286 ++ src/boost/preprocessor/detail/is_binary.hpp | 30 + .../detail/limits/auto_rec_1024.hpp | 532 +++ .../detail/limits/auto_rec_256.hpp | 280 ++ .../detail/limits/auto_rec_512.hpp | 276 ++ src/boost/preprocessor/empty.hpp | 17 + src/boost/preprocessor/enum.hpp | 17 + src/boost/preprocessor/enum_params.hpp | 17 + .../enum_params_with_a_default.hpp | 17 + .../preprocessor/enum_shifted_params.hpp | 17 + src/boost/preprocessor/expr_if.hpp | 17 + .../preprocessor/facilities/check_empty.hpp | 19 + .../facilities/detail/is_empty.hpp | 55 + src/boost/preprocessor/facilities/empty.hpp | 23 + src/boost/preprocessor/facilities/expand.hpp | 28 + .../preprocessor/facilities/identity.hpp | 27 + .../preprocessor/facilities/intercept.hpp | 306 ++ src/boost/preprocessor/facilities/is_1.hpp | 23 + .../preprocessor/facilities/is_empty.hpp | 19 + .../facilities/is_empty_variadic.hpp | 80 + .../facilities/limits/intercept_1024.hpp | 530 +++ .../facilities/limits/intercept_256.hpp | 273 ++ .../facilities/limits/intercept_512.hpp | 274 ++ .../preprocessor/facilities/overload.hpp | 23 + src/boost/preprocessor/identity.hpp | 17 + src/boost/preprocessor/inc.hpp | 17 + src/boost/preprocessor/iterate.hpp | 17 + .../iteration/detail/bounds/lower1.hpp | 99 + .../iteration/detail/bounds/lower2.hpp | 99 + .../iteration/detail/bounds/lower3.hpp | 99 + .../iteration/detail/bounds/lower4.hpp | 99 + .../iteration/detail/bounds/lower5.hpp | 99 + .../iteration/detail/bounds/upper1.hpp | 99 + .../iteration/detail/bounds/upper2.hpp | 99 + .../iteration/detail/bounds/upper3.hpp | 99 + .../iteration/detail/bounds/upper4.hpp | 99 + .../iteration/detail/bounds/upper5.hpp | 99 + .../preprocessor/iteration/detail/finish.hpp | 99 + .../iteration/detail/iter/forward1.hpp | 1369 +++++++ .../iteration/detail/iter/forward2.hpp | 1365 +++++++ .../iteration/detail/iter/forward3.hpp | 1365 +++++++ .../iteration/detail/iter/forward4.hpp | 1365 +++++++ .../iteration/detail/iter/forward5.hpp | 1365 +++++++ .../detail/iter/limits/forward1_1024.hpp | 2573 ++++++++++++ .../detail/iter/limits/forward1_256.hpp | 1296 ++++++ .../detail/iter/limits/forward1_512.hpp | 1293 ++++++ .../detail/iter/limits/forward2_1024.hpp | 2573 ++++++++++++ .../detail/iter/limits/forward2_256.hpp | 1296 ++++++ .../detail/iter/limits/forward2_512.hpp | 1293 ++++++ .../detail/iter/limits/forward3_1024.hpp | 2573 ++++++++++++ .../detail/iter/limits/forward3_256.hpp | 1296 ++++++ .../detail/iter/limits/forward3_512.hpp | 1293 ++++++ .../detail/iter/limits/forward4_1024.hpp | 2573 ++++++++++++ .../detail/iter/limits/forward4_256.hpp | 1296 ++++++ .../detail/iter/limits/forward4_512.hpp | 1293 ++++++ .../detail/iter/limits/forward5_1024.hpp | 2573 ++++++++++++ .../detail/iter/limits/forward5_256.hpp | 1296 ++++++ .../detail/iter/limits/forward5_512.hpp | 1293 ++++++ .../detail/iter/limits/reverse1_1024.hpp | 2571 ++++++++++++ .../detail/iter/limits/reverse1_256.hpp | 1296 ++++++ .../detail/iter/limits/reverse1_512.hpp | 1291 ++++++ .../detail/iter/limits/reverse2_1024.hpp | 2571 ++++++++++++ .../detail/iter/limits/reverse2_256.hpp | 1296 ++++++ .../detail/iter/limits/reverse2_512.hpp | 1293 ++++++ .../detail/iter/limits/reverse3_1024.hpp | 2571 ++++++++++++ .../detail/iter/limits/reverse3_256.hpp | 1296 ++++++ .../detail/iter/limits/reverse3_512.hpp | 1293 ++++++ .../detail/iter/limits/reverse4_1024.hpp | 2571 ++++++++++++ .../detail/iter/limits/reverse4_256.hpp | 1296 ++++++ .../detail/iter/limits/reverse4_512.hpp | 1293 ++++++ .../detail/iter/limits/reverse5_1024.hpp | 2571 ++++++++++++ .../detail/iter/limits/reverse5_256.hpp | 1296 ++++++ .../detail/iter/limits/reverse5_512.hpp | 1293 ++++++ .../iteration/detail/iter/reverse1.hpp | 1321 ++++++ .../iteration/detail/iter/reverse2.hpp | 1321 ++++++ .../iteration/detail/iter/reverse3.hpp | 1321 ++++++ .../iteration/detail/iter/reverse4.hpp | 1321 ++++++ .../iteration/detail/iter/reverse5.hpp | 1321 ++++++ .../iteration/detail/limits/local_1024.hpp | 1549 +++++++ .../iteration/detail/limits/local_256.hpp | 782 ++++ .../iteration/detail/limits/local_512.hpp | 781 ++++ .../iteration/detail/limits/rlocal_1024.hpp | 1549 +++++++ .../iteration/detail/limits/rlocal_256.hpp | 782 ++++ .../iteration/detail/limits/rlocal_512.hpp | 781 ++++ .../preprocessor/iteration/detail/local.hpp | 839 ++++ .../preprocessor/iteration/detail/rlocal.hpp | 807 ++++ .../preprocessor/iteration/detail/self.hpp | 21 + .../preprocessor/iteration/detail/start.hpp | 99 + src/boost/preprocessor/iteration/iterate.hpp | 82 + src/boost/preprocessor/iteration/local.hpp | 26 + src/boost/preprocessor/iteration/self.hpp | 19 + src/boost/preprocessor/list/adt.hpp | 73 + .../list/detail/dmc/fold_left.hpp | 280 ++ .../list/detail/edg/fold_left.hpp | 564 +++ .../list/detail/edg/fold_right.hpp | 823 ++++ .../list/detail/edg/limits/fold_left_1024.hpp | 1044 +++++ .../list/detail/edg/limits/fold_left_256.hpp | 533 +++ .../list/detail/edg/limits/fold_left_512.hpp | 532 +++ .../detail/edg/limits/fold_right_1024.hpp | 1557 +++++++ .../list/detail/edg/limits/fold_right_256.hpp | 791 ++++ .../list/detail/edg/limits/fold_right_512.hpp | 789 ++++ .../preprocessor/list/detail/fold_left.hpp | 307 ++ .../preprocessor/list/detail/fold_right.hpp | 303 ++ .../list/detail/limits/fold_left_1024.hpp | 532 +++ .../list/detail/limits/fold_left_256.hpp | 275 ++ .../list/detail/limits/fold_left_512.hpp | 276 ++ .../list/detail/limits/fold_right_1024.hpp | 532 +++ .../list/detail/limits/fold_right_256.hpp | 275 ++ .../list/detail/limits/fold_right_512.hpp | 276 ++ src/boost/preprocessor/list/fold_left.hpp | 363 ++ src/boost/preprocessor/list/fold_right.hpp | 84 + src/boost/preprocessor/list/for_each_i.hpp | 65 + .../list/limits/fold_left_1024.hpp | 531 +++ .../list/limits/fold_left_256.hpp | 275 ++ .../list/limits/fold_left_512.hpp | 275 ++ src/boost/preprocessor/list/reverse.hpp | 75 + src/boost/preprocessor/logical/and.hpp | 30 + src/boost/preprocessor/logical/bitand.hpp | 38 + src/boost/preprocessor/logical/bitor.hpp | 38 + src/boost/preprocessor/logical/bool.hpp | 310 ++ src/boost/preprocessor/logical/compl.hpp | 36 + .../preprocessor/logical/limits/bool_1024.hpp | 531 +++ .../preprocessor/logical/limits/bool_256.hpp | 275 ++ .../preprocessor/logical/limits/bool_512.hpp | 275 ++ src/boost/preprocessor/logical/not.hpp | 30 + src/boost/preprocessor/punctuation/comma.hpp | 21 + .../preprocessor/punctuation/comma_if.hpp | 31 + .../punctuation/detail/is_begin_parens.hpp | 48 + .../punctuation/is_begin_parens.hpp | 47 + src/boost/preprocessor/repeat.hpp | 17 + .../repetition/detail/dmc/for.hpp | 537 +++ .../repetition/detail/edg/for.hpp | 560 +++ .../repetition/detail/edg/limits/for_1024.hpp | 1044 +++++ .../repetition/detail/edg/limits/for_256.hpp | 533 +++ .../repetition/detail/edg/limits/for_512.hpp | 532 +++ .../preprocessor/repetition/detail/for.hpp | 564 +++ .../repetition/detail/limits/for_1024.hpp | 1044 +++++ .../repetition/detail/limits/for_256.hpp | 533 +++ .../repetition/detail/limits/for_512.hpp | 532 +++ .../repetition/detail/msvc/for.hpp | 278 ++ src/boost/preprocessor/repetition/enum.hpp | 66 + .../repetition/enum_binary_params.hpp | 54 + .../preprocessor/repetition/enum_params.hpp | 41 + .../repetition/enum_params_with_a_default.hpp | 25 + .../preprocessor/repetition/enum_shifted.hpp | 68 + .../repetition/enum_shifted_params.hpp | 44 + .../repetition/enum_trailing_params.hpp | 38 + src/boost/preprocessor/repetition/for.hpp | 438 ++ .../repetition/limits/for_1024.hpp | 531 +++ .../repetition/limits/for_256.hpp | 275 ++ .../repetition/limits/for_512.hpp | 275 ++ .../repetition/limits/repeat_1024.hpp | 1557 +++++++ .../repetition/limits/repeat_256.hpp | 791 ++++ .../repetition/limits/repeat_512.hpp | 789 ++++ src/boost/preprocessor/repetition/repeat.hpp | 847 ++++ .../repetition/repeat_from_to.hpp | 114 + src/boost/preprocessor/selection/min.hpp | 39 + .../preprocessor/seq/detail/is_empty.hpp | 49 + .../seq/detail/limits/split_1024.hpp | 530 +++ .../seq/detail/limits/split_256.hpp | 272 ++ .../seq/detail/limits/split_512.hpp | 274 ++ src/boost/preprocessor/seq/detail/split.hpp | 307 ++ src/boost/preprocessor/seq/elem.hpp | 327 ++ src/boost/preprocessor/seq/enum.hpp | 311 ++ src/boost/preprocessor/seq/first_n.hpp | 30 + src/boost/preprocessor/seq/fold_left.hpp | 1122 +++++ src/boost/preprocessor/seq/for_each_i.hpp | 109 + .../preprocessor/seq/for_each_product.hpp | 126 + .../preprocessor/seq/limits/elem_1024.hpp | 530 +++ .../preprocessor/seq/limits/elem_256.hpp | 272 ++ .../preprocessor/seq/limits/elem_512.hpp | 274 ++ .../preprocessor/seq/limits/enum_1024.hpp | 530 +++ .../preprocessor/seq/limits/enum_256.hpp | 272 ++ .../preprocessor/seq/limits/enum_512.hpp | 274 ++ .../seq/limits/fold_left_1024.hpp | 1556 +++++++ .../preprocessor/seq/limits/fold_left_256.hpp | 1053 +++++ .../preprocessor/seq/limits/fold_left_512.hpp | 788 ++++ .../preprocessor/seq/limits/size_1024.hpp | 1043 +++++ .../preprocessor/seq/limits/size_256.hpp | 532 +++ .../preprocessor/seq/limits/size_512.hpp | 531 +++ src/boost/preprocessor/seq/push_back.hpp | 19 + src/boost/preprocessor/seq/push_front.hpp | 19 + src/boost/preprocessor/seq/rest_n.hpp | 52 + src/boost/preprocessor/seq/seq.hpp | 44 + src/boost/preprocessor/seq/size.hpp | 571 +++ src/boost/preprocessor/seq/subseq.hpp | 28 + .../preprocessor/slot/detail/counter.hpp | 269 ++ src/boost/preprocessor/slot/detail/def.hpp | 49 + src/boost/preprocessor/slot/detail/shared.hpp | 247 ++ src/boost/preprocessor/slot/detail/slot1.hpp | 267 ++ src/boost/preprocessor/slot/detail/slot2.hpp | 267 ++ src/boost/preprocessor/slot/detail/slot3.hpp | 267 ++ src/boost/preprocessor/slot/detail/slot4.hpp | 267 ++ src/boost/preprocessor/slot/detail/slot5.hpp | 267 ++ src/boost/preprocessor/slot/slot.hpp | 32 + src/boost/preprocessor/stringize.hpp | 33 + .../tuple/detail/is_single_return.hpp | 28 + src/boost/preprocessor/tuple/eat.hpp | 101 + src/boost/preprocessor/tuple/elem.hpp | 55 + .../preprocessor/tuple/limits/to_list_128.hpp | 595 +++ .../preprocessor/tuple/limits/to_list_256.hpp | 1747 ++++++++ .../preprocessor/tuple/limits/to_list_64.hpp | 83 + src/boost/preprocessor/tuple/rem.hpp | 127 + src/boost/preprocessor/tuple/size.hpp | 35 + src/boost/preprocessor/tuple/to_list.hpp | 130 + .../preprocessor/variadic/detail/has_opt.hpp | 39 + src/boost/preprocessor/variadic/elem.hpp | 116 + src/boost/preprocessor/variadic/has_opt.hpp | 32 + .../preprocessor/variadic/limits/elem_128.hpp | 275 ++ .../preprocessor/variadic/limits/elem_256.hpp | 723 ++++ .../preprocessor/variadic/limits/elem_64.hpp | 81 + .../preprocessor/variadic/limits/size_128.hpp | 47 + .../preprocessor/variadic/limits/size_256.hpp | 53 + .../preprocessor/variadic/limits/size_64.hpp | 23 + src/boost/preprocessor/variadic/size.hpp | 65 + src/boost/smart_ptr/detail/atomic_count.hpp | 103 + .../smart_ptr/detail/atomic_count_gcc.hpp | 79 + .../detail/atomic_count_gcc_atomic.hpp | 63 + .../smart_ptr/detail/atomic_count_gcc_x86.hpp | 88 + .../smart_ptr/detail/atomic_count_nt.hpp | 66 + .../smart_ptr/detail/atomic_count_pt.hpp | 104 + .../smart_ptr/detail/atomic_count_spin.hpp | 69 + .../detail/atomic_count_std_atomic.hpp | 67 + .../smart_ptr/detail/atomic_count_sync.hpp | 72 + .../smart_ptr/detail/atomic_count_win32.hpp | 70 + .../smart_ptr/detail/lightweight_mutex.hpp | 39 + src/boost/smart_ptr/detail/lwm_pthreads.hpp | 87 + src/boost/smart_ptr/detail/lwm_std_mutex.hpp | 62 + src/boost/smart_ptr/detail/lwm_win32_cs.hpp | 123 + .../detail/sp_has_gcc_intrinsics.hpp | 27 + .../detail/sp_has_sync_intrinsics.hpp | 69 + src/boost/smart_ptr/detail/sp_interlocked.hpp | 173 + src/boost/smart_ptr/detail/sp_obsolete.hpp | 32 + src/boost/smart_ptr/detail/spinlock.hpp | 66 + .../smart_ptr/detail/spinlock_gcc_arm.hpp | 128 + .../smart_ptr/detail/spinlock_gcc_atomic.hpp | 94 + src/boost/smart_ptr/detail/spinlock_nt.hpp | 96 + src/boost/smart_ptr/detail/spinlock_pool.hpp | 91 + src/boost/smart_ptr/detail/spinlock_pt.hpp | 86 + .../smart_ptr/detail/spinlock_std_atomic.hpp | 91 + src/boost/smart_ptr/detail/spinlock_sync.hpp | 94 + src/boost/smart_ptr/detail/spinlock_w32.hpp | 120 + src/boost/smart_ptr/detail/yield_k.hpp | 49 + src/boost/tuple/detail/tuple_basic.hpp | 992 +++++ src/boost/tuple/tuple.hpp | 118 + src/boost/type.hpp | 18 + src/boost/type_traits/add_const.hpp | 52 + src/boost/type_traits/add_cv.hpp | 47 + .../type_traits/add_lvalue_reference.hpp | 33 + src/boost/type_traits/add_pointer.hpp | 67 + src/boost/type_traits/add_reference.hpp | 66 + .../type_traits/add_rvalue_reference.hpp | 70 + src/boost/type_traits/add_volatile.hpp | 46 + src/boost/type_traits/aligned_storage.hpp | 138 + src/boost/type_traits/alignment_of.hpp | 119 + src/boost/type_traits/composite_traits.hpp | 29 + src/boost/type_traits/conditional.hpp | 28 + src/boost/type_traits/cv_traits.hpp | 24 + src/boost/type_traits/declval.hpp | 44 + src/boost/type_traits/detail/config.hpp | 116 + .../type_traits/detail/is_function_cxx_03.hpp | 108 + .../type_traits/detail/is_function_cxx_11.hpp | 676 +++ .../detail/is_function_msvc10_fix.hpp | 30 + .../detail/is_function_ptr_helper.hpp | 444 ++ .../detail/is_function_ptr_tester.hpp | 609 +++ .../detail/is_mem_fun_pointer_impl.hpp | 1328 ++++++ .../detail/is_mem_fun_pointer_tester.hpp | 1603 ++++++++ .../is_member_function_pointer_cxx_03.hpp | 117 + .../is_member_function_pointer_cxx_11.hpp | 697 ++++ .../detail/is_rvalue_reference_msvc10_fix.hpp | 43 + src/boost/type_traits/detail/yes_no_type.hpp | 26 + src/boost/type_traits/enable_if.hpp | 37 + src/boost/type_traits/function_traits.hpp | 174 + src/boost/type_traits/has_trivial_copy.hpp | 63 + .../type_traits/has_trivial_destructor.hpp | 48 + src/boost/type_traits/integral_constant.hpp | 97 + src/boost/type_traits/intrinsics.hpp | 405 ++ src/boost/type_traits/is_abstract.hpp | 150 + src/boost/type_traits/is_arithmetic.hpp | 22 + src/boost/type_traits/is_array.hpp | 43 + src/boost/type_traits/is_base_and_derived.hpp | 244 ++ src/boost/type_traits/is_base_of.hpp | 39 + src/boost/type_traits/is_class.hpp | 114 + src/boost/type_traits/is_complete.hpp | 93 + src/boost/type_traits/is_const.hpp | 47 + src/boost/type_traits/is_constructible.hpp | 90 + src/boost/type_traits/is_convertible.hpp | 506 +++ .../type_traits/is_copy_constructible.hpp | 185 + .../type_traits/is_default_constructible.hpp | 98 + src/boost/type_traits/is_destructible.hpp | 69 + src/boost/type_traits/is_empty.hpp | 120 + src/boost/type_traits/is_enum.hpp | 166 + src/boost/type_traits/is_final.hpp | 30 + src/boost/type_traits/is_floating_point.hpp | 30 + src/boost/type_traits/is_function.hpp | 27 + src/boost/type_traits/is_integral.hpp | 92 + src/boost/type_traits/is_lvalue_reference.hpp | 50 + .../is_member_function_pointer.hpp | 26 + src/boost/type_traits/is_member_pointer.hpp | 45 + src/boost/type_traits/is_noncopyable.hpp | 39 + src/boost/type_traits/is_pod.hpp | 59 + src/boost/type_traits/is_pointer.hpp | 47 + src/boost/type_traits/is_polymorphic.hpp | 122 + src/boost/type_traits/is_reference.hpp | 30 + src/boost/type_traits/is_rvalue_reference.hpp | 29 + src/boost/type_traits/is_same.hpp | 41 + src/boost/type_traits/is_scalar.hpp | 27 + src/boost/type_traits/is_union.hpp | 31 + src/boost/type_traits/is_unsigned.hpp | 163 + src/boost/type_traits/is_void.hpp | 26 + src/boost/type_traits/is_volatile.hpp | 46 + src/boost/type_traits/remove_const.hpp | 39 + src/boost/type_traits/remove_cv.hpp | 45 + src/boost/type_traits/remove_pointer.hpp | 84 + src/boost/type_traits/remove_reference.hpp | 59 + src/boost/type_traits/remove_volatile.hpp | 39 + src/boost/type_traits/same_traits.hpp | 15 + src/boost/type_traits/type_identity.hpp | 31 + src/boost/type_traits/type_with_alignment.hpp | 260 ++ src/boost/unordered/detail/fca.hpp | 878 ++++ src/boost/unordered/detail/implementation.hpp | 2891 +++++++++++++ src/boost/unordered/detail/map.hpp | 61 + src/boost/unordered/detail/prime_fmod.hpp | 214 + .../unordered/detail/serialize_container.hpp | 204 + .../detail/serialize_fca_container.hpp | 156 + .../detail/serialize_tracked_address.hpp | 104 + src/boost/unordered/unordered_map.hpp | 2350 +++++++++++ src/boost/unordered/unordered_map_fwd.hpp | 67 + src/boost/unordered/unordered_set_fwd.hpp | 65 + src/boost/utility/addressof.hpp | 17 + src/boost/utility/base_from_member.hpp | 173 + .../utility/detail/result_of_iterate.hpp | 218 + .../utility/detail/result_of_variadic.hpp | 190 + src/boost/utility/enable_if.hpp | 17 + src/boost/utility/result_of.hpp | 256 ++ src/boost/visit_each.hpp | 27 + src/boost/winapi/basic_types.hpp | 274 ++ src/boost/winapi/config.hpp | 251 ++ src/boost/winapi/detail/footer.hpp | 21 + src/boost/winapi/detail/header.hpp | 27 + src/boost/winapi/directory_management.hpp | 106 + src/boost/winapi/dll.hpp | 199 + src/boost/winapi/error_codes.hpp | 3181 +++++++++++++++ src/boost/winapi/error_handling.hpp | 156 + src/boost/winapi/file_management.hpp | 597 +++ src/boost/winapi/file_mapping.hpp | 262 ++ src/boost/winapi/get_current_process.hpp | 34 + src/boost/winapi/get_current_process_id.hpp | 33 + src/boost/winapi/get_current_thread.hpp | 34 + src/boost/winapi/get_current_thread_id.hpp | 34 + src/boost/winapi/get_last_error.hpp | 33 + src/boost/winapi/get_proc_address.hpp | 81 + src/boost/winapi/get_process_times.hpp | 63 + src/boost/winapi/get_system_directory.hpp | 64 + src/boost/winapi/handles.hpp | 75 + src/boost/winapi/limits.hpp | 52 + src/boost/winapi/local_memory.hpp | 71 + src/boost/winapi/mutex.hpp | 185 + src/boost/winapi/overlapped.hpp | 45 + src/boost/winapi/security.hpp | 89 + src/boost/winapi/semaphore.hpp | 189 + src/boost/winapi/system.hpp | 80 + src/boost/winapi/thread.hpp | 46 + src/boost/winapi/time.hpp | 143 + src/boost/winapi/timers.hpp | 48 + src/boost/winapi/wait.hpp | 91 + src/boost/winapi/wait_constants.hpp | 52 + src/policy_cache.hpp | 4 +- 2054 files changed, 473146 insertions(+), 1 deletion(-) create mode 100644 src/boost/bind/arg.hpp create mode 100644 src/boost/bind/bind.hpp create mode 100644 src/boost/bind/bind_cc.hpp create mode 100644 src/boost/bind/bind_mf2_cc.hpp create mode 100644 src/boost/bind/bind_mf_cc.hpp create mode 100644 src/boost/bind/bind_template.hpp create mode 100644 src/boost/bind/detail/is_same.hpp create mode 100644 src/boost/bind/detail/requires_cxx11.hpp create mode 100644 src/boost/bind/detail/result_traits.hpp create mode 100644 src/boost/bind/mem_fn.hpp create mode 100644 src/boost/bind/mem_fn_cc.hpp create mode 100644 src/boost/bind/mem_fn_template.hpp create mode 100644 src/boost/bind/mem_fn_vw.hpp create mode 100644 src/boost/bind/placeholders.hpp create mode 100644 src/boost/bind/std_placeholders.hpp create mode 100644 src/boost/bind/storage.hpp create mode 100644 src/boost/call_traits.hpp create mode 100644 src/boost/container/allocator_traits.hpp create mode 100644 src/boost/container/container_fwd.hpp create mode 100644 src/boost/container/detail/addressof.hpp create mode 100644 src/boost/container/detail/advanced_insert_int.hpp create mode 100644 src/boost/container/detail/algorithm.hpp create mode 100644 src/boost/container/detail/alloc_helpers.hpp create mode 100644 src/boost/container/detail/allocation_type.hpp create mode 100644 src/boost/container/detail/allocator_version_traits.hpp create mode 100644 src/boost/container/detail/compare_functors.hpp create mode 100644 src/boost/container/detail/config_begin.hpp create mode 100644 src/boost/container/detail/config_end.hpp create mode 100644 src/boost/container/detail/construct_in_place.hpp create mode 100644 src/boost/container/detail/container_or_allocator_rebind.hpp create mode 100644 src/boost/container/detail/container_rebind.hpp create mode 100644 src/boost/container/detail/copy_move_algo.hpp create mode 100644 src/boost/container/detail/destroyers.hpp create mode 100644 src/boost/container/detail/flat_tree.hpp create mode 100644 src/boost/container/detail/is_container.hpp create mode 100644 src/boost/container/detail/is_contiguous_container.hpp create mode 100644 src/boost/container/detail/is_pair.hpp create mode 100644 src/boost/container/detail/is_sorted.hpp create mode 100644 src/boost/container/detail/iterator.hpp create mode 100644 src/boost/container/detail/iterators.hpp create mode 100644 src/boost/container/detail/min_max.hpp create mode 100644 src/boost/container/detail/minimal_char_traits_header.hpp create mode 100644 src/boost/container/detail/mpl.hpp create mode 100644 src/boost/container/detail/multiallocation_chain.hpp create mode 100644 src/boost/container/detail/next_capacity.hpp create mode 100644 src/boost/container/detail/node_alloc_holder.hpp create mode 100644 src/boost/container/detail/pair.hpp create mode 100644 src/boost/container/detail/pair_key_mapped_of_value.hpp create mode 100644 src/boost/container/detail/placement_new.hpp create mode 100644 src/boost/container/detail/std_fwd.hpp create mode 100644 src/boost/container/detail/transform_iterator.hpp create mode 100644 src/boost/container/detail/tree.hpp create mode 100644 src/boost/container/detail/type_traits.hpp create mode 100644 src/boost/container/detail/value_functors.hpp create mode 100644 src/boost/container/detail/value_init.hpp create mode 100644 src/boost/container/detail/variadic_templates_tools.hpp create mode 100644 src/boost/container/detail/version_type.hpp create mode 100644 src/boost/container/detail/workaround.hpp create mode 100644 src/boost/container/flat_map.hpp create mode 100644 src/boost/container/map.hpp create mode 100644 src/boost/container/new_allocator.hpp create mode 100644 src/boost/container/node_handle.hpp create mode 100644 src/boost/container/options.hpp create mode 100644 src/boost/container/string.hpp create mode 100644 src/boost/container/throw_exception.hpp create mode 100644 src/boost/container/vector.hpp create mode 100644 src/boost/core/demangle.hpp create mode 100644 src/boost/core/enable_if.hpp create mode 100644 src/boost/core/invoke_swap.hpp create mode 100644 src/boost/core/ref.hpp create mode 100644 src/boost/core/typeinfo.hpp create mode 100644 src/boost/core/use_default.hpp create mode 100644 src/boost/detail/allocator_utilities.hpp create mode 100644 src/boost/detail/atomic_count.hpp create mode 100644 src/boost/detail/call_traits.hpp create mode 100644 src/boost/detail/indirect_traits.hpp create mode 100644 src/boost/detail/interlocked.hpp create mode 100644 src/boost/detail/lightweight_mutex.hpp create mode 100644 src/boost/detail/select_type.hpp create mode 100644 src/boost/detail/templated_streams.hpp create mode 100644 src/boost/flyweight/assoc_container_factory.hpp create mode 100644 src/boost/flyweight/assoc_container_factory_fwd.hpp create mode 100644 src/boost/flyweight/detail/archive_constructed.hpp create mode 100644 src/boost/flyweight/detail/default_value_policy.hpp create mode 100644 src/boost/flyweight/detail/dyn_perfect_fwd.hpp create mode 100644 src/boost/flyweight/detail/flyweight_core.hpp create mode 100644 src/boost/flyweight/detail/is_placeholder_expr.hpp create mode 100644 src/boost/flyweight/detail/nested_xxx_if_not_ph.hpp create mode 100644 src/boost/flyweight/detail/not_placeholder_expr.hpp create mode 100644 src/boost/flyweight/detail/perfect_fwd.hpp create mode 100644 src/boost/flyweight/detail/pp_perfect_fwd.hpp create mode 100644 src/boost/flyweight/detail/recursive_lw_mutex.hpp create mode 100644 src/boost/flyweight/detail/serialization_helper.hpp create mode 100644 src/boost/flyweight/detail/value_tag.hpp create mode 100644 src/boost/flyweight/factory_tag.hpp create mode 100644 src/boost/flyweight/flyweight.hpp create mode 100644 src/boost/flyweight/flyweight_fwd.hpp create mode 100644 src/boost/flyweight/hashed_factory.hpp create mode 100644 src/boost/flyweight/hashed_factory_fwd.hpp create mode 100644 src/boost/flyweight/holder_tag.hpp create mode 100644 src/boost/flyweight/intermodule_holder.hpp create mode 100644 src/boost/flyweight/intermodule_holder_fwd.hpp create mode 100644 src/boost/flyweight/key_value.hpp create mode 100644 src/boost/flyweight/key_value_fwd.hpp create mode 100644 src/boost/flyweight/locking_tag.hpp create mode 100644 src/boost/flyweight/no_locking.hpp create mode 100644 src/boost/flyweight/no_locking_fwd.hpp create mode 100644 src/boost/flyweight/no_tracking.hpp create mode 100644 src/boost/flyweight/no_tracking_fwd.hpp create mode 100644 src/boost/flyweight/refcounted.hpp create mode 100644 src/boost/flyweight/refcounted_fwd.hpp create mode 100644 src/boost/flyweight/serialize.hpp create mode 100644 src/boost/flyweight/set_factory.hpp create mode 100644 src/boost/flyweight/set_factory_fwd.hpp create mode 100644 src/boost/flyweight/simple_locking.hpp create mode 100644 src/boost/flyweight/simple_locking_fwd.hpp create mode 100644 src/boost/flyweight/static_holder.hpp create mode 100644 src/boost/flyweight/static_holder_fwd.hpp create mode 100644 src/boost/flyweight/tag.hpp create mode 100644 src/boost/flyweight/tracking_tag.hpp create mode 100644 src/boost/function.hpp create mode 100644 src/boost/function/detail/epilogue.hpp create mode 100644 src/boost/function/detail/function_iterate.hpp create mode 100644 src/boost/function/detail/gen_maybe_include.pl create mode 100644 src/boost/function/detail/maybe_include.hpp create mode 100644 src/boost/function/detail/prologue.hpp create mode 100644 src/boost/function/detail/requires_cxx11.hpp create mode 100644 src/boost/function/function0.hpp create mode 100644 src/boost/function/function1.hpp create mode 100644 src/boost/function/function10.hpp create mode 100644 src/boost/function/function2.hpp create mode 100644 src/boost/function/function3.hpp create mode 100644 src/boost/function/function4.hpp create mode 100644 src/boost/function/function5.hpp create mode 100644 src/boost/function/function6.hpp create mode 100644 src/boost/function/function7.hpp create mode 100644 src/boost/function/function8.hpp create mode 100644 src/boost/function/function9.hpp create mode 100644 src/boost/function/function_base.hpp create mode 100644 src/boost/function/function_fwd.hpp create mode 100644 src/boost/function/function_template.hpp create mode 100644 src/boost/function_equal.hpp create mode 100644 src/boost/functional/hash_fwd.hpp create mode 100644 src/boost/fusion/adapted/mpl.hpp create mode 100644 src/boost/fusion/adapted/mpl/detail/at_impl.hpp create mode 100644 src/boost/fusion/adapted/mpl/detail/begin_impl.hpp create mode 100644 src/boost/fusion/adapted/mpl/detail/category_of_impl.hpp create mode 100644 src/boost/fusion/adapted/mpl/detail/empty_impl.hpp create mode 100644 src/boost/fusion/adapted/mpl/detail/end_impl.hpp create mode 100644 src/boost/fusion/adapted/mpl/detail/has_key_impl.hpp create mode 100644 src/boost/fusion/adapted/mpl/detail/is_sequence_impl.hpp create mode 100644 src/boost/fusion/adapted/mpl/detail/is_view_impl.hpp create mode 100644 src/boost/fusion/adapted/mpl/detail/size_impl.hpp create mode 100644 src/boost/fusion/adapted/mpl/detail/value_at_impl.hpp create mode 100644 src/boost/fusion/adapted/mpl/mpl_iterator.hpp create mode 100644 src/boost/fusion/algorithm/query/detail/find_if.hpp create mode 100644 src/boost/fusion/algorithm/query/detail/segmented_find.hpp create mode 100644 src/boost/fusion/algorithm/query/find.hpp create mode 100644 src/boost/fusion/algorithm/query/find_fwd.hpp create mode 100644 src/boost/fusion/algorithm/query/find_if_fwd.hpp create mode 100644 src/boost/fusion/algorithm/transformation/erase.hpp create mode 100644 src/boost/fusion/algorithm/transformation/erase_key.hpp create mode 100644 src/boost/fusion/algorithm/transformation/insert.hpp create mode 100644 src/boost/fusion/algorithm/transformation/insert_range.hpp create mode 100644 src/boost/fusion/algorithm/transformation/pop_back.hpp create mode 100644 src/boost/fusion/algorithm/transformation/pop_front.hpp create mode 100644 src/boost/fusion/algorithm/transformation/push_back.hpp create mode 100644 src/boost/fusion/algorithm/transformation/push_front.hpp create mode 100644 src/boost/fusion/container/deque.hpp create mode 100644 src/boost/fusion/container/deque/back_extended_deque.hpp create mode 100644 src/boost/fusion/container/deque/convert.hpp create mode 100644 src/boost/fusion/container/deque/deque.hpp create mode 100644 src/boost/fusion/container/deque/deque_fwd.hpp create mode 100644 src/boost/fusion/container/deque/deque_iterator.hpp create mode 100644 src/boost/fusion/container/deque/detail/at_impl.hpp create mode 100644 src/boost/fusion/container/deque/detail/begin_impl.hpp create mode 100644 src/boost/fusion/container/deque/detail/build_deque.hpp create mode 100644 src/boost/fusion/container/deque/detail/convert_impl.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/as_deque.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/build_deque.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/deque.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/deque_forward_ctor.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/deque_fwd.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/deque_initial_size.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/deque_keyed_values.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/deque_keyed_values_call.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/limits.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque10.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque20.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque30.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque40.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque50.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque10.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque10_fwd.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque20.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque20_fwd.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque30.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque30_fwd.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque40.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque40_fwd.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque50.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque50_fwd.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_fwd.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size10.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size20.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size30.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size40.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_initial_size50.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values10.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values20.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values30.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values40.hpp create mode 100644 src/boost/fusion/container/deque/detail/cpp03/preprocessed/deque_keyed_values50.hpp create mode 100644 src/boost/fusion/container/deque/detail/deque_keyed_values.hpp create mode 100644 src/boost/fusion/container/deque/detail/end_impl.hpp create mode 100644 src/boost/fusion/container/deque/detail/is_sequence_impl.hpp create mode 100644 src/boost/fusion/container/deque/detail/keyed_element.hpp create mode 100644 src/boost/fusion/container/deque/detail/value_at_impl.hpp create mode 100644 src/boost/fusion/container/deque/front_extended_deque.hpp create mode 100644 src/boost/fusion/container/list.hpp create mode 100644 src/boost/fusion/container/list/cons.hpp create mode 100644 src/boost/fusion/container/list/cons_fwd.hpp create mode 100644 src/boost/fusion/container/list/cons_iterator.hpp create mode 100644 src/boost/fusion/container/list/convert.hpp create mode 100644 src/boost/fusion/container/list/detail/at_impl.hpp create mode 100644 src/boost/fusion/container/list/detail/begin_impl.hpp create mode 100644 src/boost/fusion/container/list/detail/build_cons.hpp create mode 100644 src/boost/fusion/container/list/detail/convert_impl.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/limits.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/list.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/list_forward_ctor.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/list_fwd.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/list_to_cons.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/list_to_cons_call.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/preprocessed/list.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/preprocessed/list10.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/preprocessed/list10_fwd.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/preprocessed/list20.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/preprocessed/list20_fwd.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/preprocessed/list30.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/preprocessed/list30_fwd.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/preprocessed/list40.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/preprocessed/list40_fwd.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/preprocessed/list50.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/preprocessed/list50_fwd.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/preprocessed/list_fwd.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons10.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons20.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons30.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons40.hpp create mode 100644 src/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons50.hpp create mode 100644 src/boost/fusion/container/list/detail/deref_impl.hpp create mode 100644 src/boost/fusion/container/list/detail/empty_impl.hpp create mode 100644 src/boost/fusion/container/list/detail/end_impl.hpp create mode 100644 src/boost/fusion/container/list/detail/equal_to_impl.hpp create mode 100644 src/boost/fusion/container/list/detail/list_to_cons.hpp create mode 100644 src/boost/fusion/container/list/detail/next_impl.hpp create mode 100644 src/boost/fusion/container/list/detail/reverse_cons.hpp create mode 100644 src/boost/fusion/container/list/detail/value_at_impl.hpp create mode 100644 src/boost/fusion/container/list/detail/value_of_impl.hpp create mode 100644 src/boost/fusion/container/list/list.hpp create mode 100644 src/boost/fusion/container/list/list_fwd.hpp create mode 100644 src/boost/fusion/container/list/nil.hpp create mode 100644 src/boost/fusion/container/map/detail/cpp03/limits.hpp create mode 100644 src/boost/fusion/container/map/detail/cpp03/map_fwd.hpp create mode 100644 src/boost/fusion/container/map/detail/cpp03/preprocessed/map10_fwd.hpp create mode 100644 src/boost/fusion/container/map/detail/cpp03/preprocessed/map20_fwd.hpp create mode 100644 src/boost/fusion/container/map/detail/cpp03/preprocessed/map30_fwd.hpp create mode 100644 src/boost/fusion/container/map/detail/cpp03/preprocessed/map40_fwd.hpp create mode 100644 src/boost/fusion/container/map/detail/cpp03/preprocessed/map50_fwd.hpp create mode 100644 src/boost/fusion/container/map/detail/cpp03/preprocessed/map_fwd.hpp create mode 100644 src/boost/fusion/container/map/map_fwd.hpp create mode 100644 src/boost/fusion/container/set/detail/cpp03/limits.hpp create mode 100644 src/boost/fusion/container/set/detail/cpp03/preprocessed/set10_fwd.hpp create mode 100644 src/boost/fusion/container/set/detail/cpp03/preprocessed/set20_fwd.hpp create mode 100644 src/boost/fusion/container/set/detail/cpp03/preprocessed/set30_fwd.hpp create mode 100644 src/boost/fusion/container/set/detail/cpp03/preprocessed/set40_fwd.hpp create mode 100644 src/boost/fusion/container/set/detail/cpp03/preprocessed/set50_fwd.hpp create mode 100644 src/boost/fusion/container/set/detail/cpp03/preprocessed/set_fwd.hpp create mode 100644 src/boost/fusion/container/set/detail/cpp03/set_fwd.hpp create mode 100644 src/boost/fusion/container/set/set_fwd.hpp create mode 100644 src/boost/fusion/container/vector/detail/advance_impl.hpp create mode 100644 src/boost/fusion/container/vector/detail/at_impl.hpp create mode 100644 src/boost/fusion/container/vector/detail/begin_impl.hpp create mode 100644 src/boost/fusion/container/vector/detail/config.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/limits.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/preprocessed/vector10.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/preprocessed/vector10_fwd.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/preprocessed/vector20.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/preprocessed/vector20_fwd.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/preprocessed/vector30.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/preprocessed/vector30_fwd.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/preprocessed/vector40.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/preprocessed/vector40_fwd.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/preprocessed/vector50.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/preprocessed/vector50_fwd.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_fwd.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector10_fwd.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector20_fwd.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector30_fwd.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector40_fwd.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector50_fwd.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/value_at_impl.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/vector10.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/vector10_fwd.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/vector20.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/vector20_fwd.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/vector30.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/vector30_fwd.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/vector40.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/vector40_fwd.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/vector50.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/vector50_fwd.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/vector_fwd.hpp create mode 100644 src/boost/fusion/container/vector/detail/cpp03/vector_n.hpp create mode 100644 src/boost/fusion/container/vector/detail/deref_impl.hpp create mode 100644 src/boost/fusion/container/vector/detail/distance_impl.hpp create mode 100644 src/boost/fusion/container/vector/detail/end_impl.hpp create mode 100644 src/boost/fusion/container/vector/detail/equal_to_impl.hpp create mode 100644 src/boost/fusion/container/vector/detail/next_impl.hpp create mode 100644 src/boost/fusion/container/vector/detail/prior_impl.hpp create mode 100644 src/boost/fusion/container/vector/detail/value_at_impl.hpp create mode 100644 src/boost/fusion/container/vector/detail/value_of_impl.hpp create mode 100644 src/boost/fusion/container/vector/vector_fwd.hpp create mode 100644 src/boost/fusion/container/vector/vector_iterator.hpp create mode 100644 src/boost/fusion/iterator/advance.hpp create mode 100644 src/boost/fusion/iterator/deref.hpp create mode 100644 src/boost/fusion/iterator/deref_data.hpp create mode 100644 src/boost/fusion/iterator/detail/adapt_deref_traits.hpp create mode 100644 src/boost/fusion/iterator/detail/adapt_value_traits.hpp create mode 100644 src/boost/fusion/iterator/detail/advance.hpp create mode 100644 src/boost/fusion/iterator/detail/distance.hpp create mode 100644 src/boost/fusion/iterator/detail/segment_sequence.hpp create mode 100644 src/boost/fusion/iterator/detail/segmented_equal_to.hpp create mode 100644 src/boost/fusion/iterator/detail/segmented_iterator.hpp create mode 100644 src/boost/fusion/iterator/detail/segmented_next_impl.hpp create mode 100644 src/boost/fusion/iterator/distance.hpp create mode 100644 src/boost/fusion/iterator/equal_to.hpp create mode 100644 src/boost/fusion/iterator/iterator_adapter.hpp create mode 100644 src/boost/fusion/iterator/iterator_facade.hpp create mode 100644 src/boost/fusion/iterator/key_of.hpp create mode 100644 src/boost/fusion/iterator/mpl.hpp create mode 100644 src/boost/fusion/iterator/mpl/convert_iterator.hpp create mode 100644 src/boost/fusion/iterator/mpl/fusion_iterator.hpp create mode 100644 src/boost/fusion/iterator/next.hpp create mode 100644 src/boost/fusion/iterator/prior.hpp create mode 100644 src/boost/fusion/iterator/segmented_iterator.hpp create mode 100644 src/boost/fusion/iterator/value_of.hpp create mode 100644 src/boost/fusion/iterator/value_of_data.hpp create mode 100644 src/boost/fusion/mpl.hpp create mode 100644 src/boost/fusion/mpl/at.hpp create mode 100644 src/boost/fusion/mpl/back.hpp create mode 100644 src/boost/fusion/mpl/begin.hpp create mode 100644 src/boost/fusion/mpl/clear.hpp create mode 100644 src/boost/fusion/mpl/detail/clear.hpp create mode 100644 src/boost/fusion/mpl/empty.hpp create mode 100644 src/boost/fusion/mpl/end.hpp create mode 100644 src/boost/fusion/mpl/erase.hpp create mode 100644 src/boost/fusion/mpl/erase_key.hpp create mode 100644 src/boost/fusion/mpl/front.hpp create mode 100644 src/boost/fusion/mpl/has_key.hpp create mode 100644 src/boost/fusion/mpl/insert.hpp create mode 100644 src/boost/fusion/mpl/insert_range.hpp create mode 100644 src/boost/fusion/mpl/pop_back.hpp create mode 100644 src/boost/fusion/mpl/pop_front.hpp create mode 100644 src/boost/fusion/mpl/push_back.hpp create mode 100644 src/boost/fusion/mpl/push_front.hpp create mode 100644 src/boost/fusion/mpl/size.hpp create mode 100644 src/boost/fusion/sequence/convert.hpp create mode 100644 src/boost/fusion/sequence/intrinsic/begin.hpp create mode 100644 src/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp create mode 100644 src/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp create mode 100644 src/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp create mode 100644 src/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp create mode 100644 src/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp create mode 100644 src/boost/fusion/sequence/intrinsic/empty.hpp create mode 100644 src/boost/fusion/sequence/intrinsic/end.hpp create mode 100644 src/boost/fusion/sequence/intrinsic/has_key.hpp create mode 100644 src/boost/fusion/sequence/intrinsic/segments.hpp create mode 100644 src/boost/fusion/sequence/intrinsic/size.hpp create mode 100644 src/boost/fusion/sequence/intrinsic/value_at.hpp create mode 100644 src/boost/fusion/sequence/intrinsic_fwd.hpp create mode 100644 src/boost/fusion/support/category_of.hpp create mode 100644 src/boost/fusion/support/config.hpp create mode 100644 src/boost/fusion/support/detail/access.hpp create mode 100644 src/boost/fusion/support/detail/as_fusion_element.hpp create mode 100644 src/boost/fusion/support/detail/enabler.hpp create mode 100644 src/boost/fusion/support/detail/is_mpl_sequence.hpp create mode 100644 src/boost/fusion/support/detail/is_native_fusion_sequence.hpp create mode 100644 src/boost/fusion/support/detail/mpl_iterator_category.hpp create mode 100644 src/boost/fusion/support/detail/pp_round.hpp create mode 100644 src/boost/fusion/support/detail/segmented_fold_until_impl.hpp create mode 100644 src/boost/fusion/support/is_iterator.hpp create mode 100644 src/boost/fusion/support/is_segmented.hpp create mode 100644 src/boost/fusion/support/is_sequence.hpp create mode 100644 src/boost/fusion/support/is_view.hpp create mode 100644 src/boost/fusion/support/iterator_base.hpp create mode 100644 src/boost/fusion/support/segmented_fold_until.hpp create mode 100644 src/boost/fusion/support/sequence_base.hpp create mode 100644 src/boost/fusion/support/tag_of.hpp create mode 100644 src/boost/fusion/support/tag_of_fwd.hpp create mode 100644 src/boost/fusion/support/void.hpp create mode 100644 src/boost/fusion/view/iterator_range.hpp create mode 100644 src/boost/fusion/view/iterator_range/detail/at_impl.hpp create mode 100644 src/boost/fusion/view/iterator_range/detail/begin_impl.hpp create mode 100644 src/boost/fusion/view/iterator_range/detail/end_impl.hpp create mode 100644 src/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp create mode 100644 src/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp create mode 100644 src/boost/fusion/view/iterator_range/detail/segments_impl.hpp create mode 100644 src/boost/fusion/view/iterator_range/detail/size_impl.hpp create mode 100644 src/boost/fusion/view/iterator_range/detail/value_at_impl.hpp create mode 100644 src/boost/fusion/view/iterator_range/iterator_range.hpp create mode 100644 src/boost/fusion/view/joint_view/detail/begin_impl.hpp create mode 100644 src/boost/fusion/view/joint_view/detail/deref_data_impl.hpp create mode 100644 src/boost/fusion/view/joint_view/detail/deref_impl.hpp create mode 100644 src/boost/fusion/view/joint_view/detail/end_impl.hpp create mode 100644 src/boost/fusion/view/joint_view/detail/key_of_impl.hpp create mode 100644 src/boost/fusion/view/joint_view/detail/next_impl.hpp create mode 100644 src/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp create mode 100644 src/boost/fusion/view/joint_view/detail/value_of_impl.hpp create mode 100644 src/boost/fusion/view/joint_view/joint_view.hpp create mode 100644 src/boost/fusion/view/joint_view/joint_view_fwd.hpp create mode 100644 src/boost/fusion/view/joint_view/joint_view_iterator.hpp create mode 100644 src/boost/fusion/view/single_view/detail/advance_impl.hpp create mode 100644 src/boost/fusion/view/single_view/detail/at_impl.hpp create mode 100644 src/boost/fusion/view/single_view/detail/begin_impl.hpp create mode 100644 src/boost/fusion/view/single_view/detail/deref_impl.hpp create mode 100644 src/boost/fusion/view/single_view/detail/distance_impl.hpp create mode 100644 src/boost/fusion/view/single_view/detail/end_impl.hpp create mode 100644 src/boost/fusion/view/single_view/detail/equal_to_impl.hpp create mode 100644 src/boost/fusion/view/single_view/detail/next_impl.hpp create mode 100644 src/boost/fusion/view/single_view/detail/prior_impl.hpp create mode 100644 src/boost/fusion/view/single_view/detail/size_impl.hpp create mode 100644 src/boost/fusion/view/single_view/detail/value_at_impl.hpp create mode 100644 src/boost/fusion/view/single_view/detail/value_of_impl.hpp create mode 100644 src/boost/fusion/view/single_view/single_view.hpp create mode 100644 src/boost/fusion/view/single_view/single_view_iterator.hpp create mode 100644 src/boost/get_pointer.hpp create mode 100644 src/boost/integer/common_factor_rt.hpp create mode 100644 src/boost/interprocess/allocators/allocator.hpp create mode 100644 src/boost/interprocess/allocators/detail/allocator_common.hpp create mode 100644 src/boost/interprocess/containers/allocation_type.hpp create mode 100644 src/boost/interprocess/containers/version_type.hpp create mode 100644 src/boost/interprocess/creation_tags.hpp create mode 100644 src/boost/interprocess/detail/atomic.hpp create mode 100644 src/boost/interprocess/detail/cast_tags.hpp create mode 100644 src/boost/interprocess/detail/char_wchar_holder.hpp create mode 100644 src/boost/interprocess/detail/config_begin.hpp create mode 100644 src/boost/interprocess/detail/config_end.hpp create mode 100644 src/boost/interprocess/detail/config_external_begin.hpp create mode 100644 src/boost/interprocess/detail/config_external_end.hpp create mode 100644 src/boost/interprocess/detail/file_locking_helpers.hpp create mode 100644 src/boost/interprocess/detail/in_place_interface.hpp create mode 100644 src/boost/interprocess/detail/intermodule_singleton.hpp create mode 100644 src/boost/interprocess/detail/intermodule_singleton_common.hpp create mode 100644 src/boost/interprocess/detail/interprocess_tester.hpp create mode 100644 src/boost/interprocess/detail/managed_global_memory.hpp create mode 100644 src/boost/interprocess/detail/managed_memory_impl.hpp create mode 100644 src/boost/interprocess/detail/managed_open_or_create_impl.hpp create mode 100644 src/boost/interprocess/detail/math_functions.hpp create mode 100644 src/boost/interprocess/detail/min_max.hpp create mode 100644 src/boost/interprocess/detail/mpl.hpp create mode 100644 src/boost/interprocess/detail/named_proxy.hpp create mode 100644 src/boost/interprocess/detail/nothrow.hpp create mode 100644 src/boost/interprocess/detail/os_file_functions.hpp create mode 100644 src/boost/interprocess/detail/os_thread_functions.hpp create mode 100644 src/boost/interprocess/detail/portable_intermodule_singleton.hpp create mode 100644 src/boost/interprocess/detail/segment_manager_helper.hpp create mode 100644 src/boost/interprocess/detail/shared_dir_helpers.hpp create mode 100644 src/boost/interprocess/detail/simple_swap.hpp create mode 100644 src/boost/interprocess/detail/std_fwd.hpp create mode 100644 src/boost/interprocess/detail/timed_utils.hpp create mode 100644 src/boost/interprocess/detail/transform_iterator.hpp create mode 100644 src/boost/interprocess/detail/type_traits.hpp create mode 100644 src/boost/interprocess/detail/utilities.hpp create mode 100644 src/boost/interprocess/detail/variadic_templates_tools.hpp create mode 100644 src/boost/interprocess/detail/win32_api.hpp create mode 100644 src/boost/interprocess/detail/windows_intermodule_singleton.hpp create mode 100644 src/boost/interprocess/detail/workaround.hpp create mode 100644 src/boost/interprocess/errors.hpp create mode 100644 src/boost/interprocess/exceptions.hpp create mode 100644 src/boost/interprocess/indexes/iset_index.hpp create mode 100644 src/boost/interprocess/interprocess_fwd.hpp create mode 100644 src/boost/interprocess/mapped_region.hpp create mode 100644 src/boost/interprocess/mem_algo/detail/mem_algo_common.hpp create mode 100644 src/boost/interprocess/mem_algo/rbtree_best_fit.hpp create mode 100644 src/boost/interprocess/offset_ptr.hpp create mode 100644 src/boost/interprocess/permissions.hpp create mode 100644 src/boost/interprocess/segment_manager.hpp create mode 100644 src/boost/interprocess/shared_memory_object.hpp create mode 100644 src/boost/interprocess/smart_ptr/deleter.hpp create mode 100644 src/boost/interprocess/streams/bufferstream.hpp create mode 100644 src/boost/interprocess/sync/detail/common_algorithms.hpp create mode 100644 src/boost/interprocess/sync/lock_options.hpp create mode 100644 src/boost/interprocess/sync/scoped_lock.hpp create mode 100644 src/boost/interprocess/sync/spin/mutex.hpp create mode 100644 src/boost/interprocess/sync/spin/recursive_mutex.hpp create mode 100644 src/boost/interprocess/sync/spin/wait.hpp create mode 100644 src/boost/interprocess/sync/windows/sync_utils.hpp create mode 100644 src/boost/interprocess/sync/windows/winapi_mutex_wrapper.hpp create mode 100644 src/boost/interprocess/sync/windows/winapi_semaphore_wrapper.hpp create mode 100644 src/boost/interprocess/sync/windows/winapi_wrapper_common.hpp create mode 100644 src/boost/intrusive/avl_set_hook.hpp create mode 100644 src/boost/intrusive/avltree.hpp create mode 100644 src/boost/intrusive/avltree_algorithms.hpp create mode 100644 src/boost/intrusive/bs_set_hook.hpp create mode 100644 src/boost/intrusive/bstree.hpp create mode 100644 src/boost/intrusive/bstree_algorithms.hpp create mode 100644 src/boost/intrusive/circular_slist_algorithms.hpp create mode 100644 src/boost/intrusive/detail/algo_type.hpp create mode 100644 src/boost/intrusive/detail/algorithm.hpp create mode 100644 src/boost/intrusive/detail/array_initializer.hpp create mode 100644 src/boost/intrusive/detail/assert.hpp create mode 100644 src/boost/intrusive/detail/avltree_node.hpp create mode 100644 src/boost/intrusive/detail/bstree_algorithms_base.hpp create mode 100644 src/boost/intrusive/detail/common_slist_algorithms.hpp create mode 100644 src/boost/intrusive/detail/config_begin.hpp create mode 100644 src/boost/intrusive/detail/config_end.hpp create mode 100644 src/boost/intrusive/detail/default_header_holder.hpp create mode 100644 src/boost/intrusive/detail/ebo_functor_holder.hpp create mode 100644 src/boost/intrusive/detail/empty_node_checker.hpp create mode 100644 src/boost/intrusive/detail/equal_to_value.hpp create mode 100644 src/boost/intrusive/detail/exception_disposer.hpp create mode 100644 src/boost/intrusive/detail/function_detector.hpp create mode 100644 src/boost/intrusive/detail/generic_hook.hpp create mode 100644 src/boost/intrusive/detail/get_value_traits.hpp create mode 100644 src/boost/intrusive/detail/has_member_function_callable_with.hpp create mode 100644 src/boost/intrusive/detail/hash_combine.hpp create mode 100644 src/boost/intrusive/detail/hook_traits.hpp create mode 100644 src/boost/intrusive/detail/iiterator.hpp create mode 100644 src/boost/intrusive/detail/is_stateful_value_traits.hpp create mode 100644 src/boost/intrusive/detail/iterator.hpp create mode 100644 src/boost/intrusive/detail/key_nodeptr_comp.hpp create mode 100644 src/boost/intrusive/detail/math.hpp create mode 100644 src/boost/intrusive/detail/minimal_less_equal_header.hpp create mode 100644 src/boost/intrusive/detail/minimal_pair_header.hpp create mode 100644 src/boost/intrusive/detail/mpl.hpp create mode 100644 src/boost/intrusive/detail/node_cloner_disposer.hpp create mode 100644 src/boost/intrusive/detail/node_holder.hpp create mode 100644 src/boost/intrusive/detail/parent_from_member.hpp create mode 100644 src/boost/intrusive/detail/rbtree_node.hpp create mode 100644 src/boost/intrusive/detail/reverse_iterator.hpp create mode 100644 src/boost/intrusive/detail/simple_disposers.hpp create mode 100644 src/boost/intrusive/detail/size_holder.hpp create mode 100644 src/boost/intrusive/detail/slist_iterator.hpp create mode 100644 src/boost/intrusive/detail/slist_node.hpp create mode 100644 src/boost/intrusive/detail/std_fwd.hpp create mode 100644 src/boost/intrusive/detail/tree_iterator.hpp create mode 100644 src/boost/intrusive/detail/tree_node.hpp create mode 100644 src/boost/intrusive/detail/tree_value_compare.hpp create mode 100644 src/boost/intrusive/detail/twin.hpp create mode 100644 src/boost/intrusive/detail/uncast.hpp create mode 100644 src/boost/intrusive/detail/value_functors.hpp create mode 100644 src/boost/intrusive/detail/workaround.hpp create mode 100644 src/boost/intrusive/intrusive_fwd.hpp create mode 100644 src/boost/intrusive/linear_slist_algorithms.hpp create mode 100644 src/boost/intrusive/link_mode.hpp create mode 100644 src/boost/intrusive/options.hpp create mode 100644 src/boost/intrusive/pack_options.hpp create mode 100644 src/boost/intrusive/parent_from_member.hpp create mode 100644 src/boost/intrusive/pointer_plus_bits.hpp create mode 100644 src/boost/intrusive/pointer_rebind.hpp create mode 100644 src/boost/intrusive/pointer_traits.hpp create mode 100644 src/boost/intrusive/rbtree.hpp create mode 100644 src/boost/intrusive/rbtree_algorithms.hpp create mode 100644 src/boost/intrusive/set.hpp create mode 100644 src/boost/intrusive/set_hook.hpp create mode 100644 src/boost/intrusive/sgtree.hpp create mode 100644 src/boost/intrusive/sgtree_algorithms.hpp create mode 100644 src/boost/intrusive/slist.hpp create mode 100644 src/boost/intrusive/slist_hook.hpp create mode 100644 src/boost/intrusive/splaytree.hpp create mode 100644 src/boost/intrusive/splaytree_algorithms.hpp create mode 100644 src/boost/is_placeholder.hpp create mode 100644 src/boost/iterator/detail/config_def.hpp create mode 100644 src/boost/iterator/detail/config_undef.hpp create mode 100644 src/boost/iterator/detail/enable_if.hpp create mode 100644 src/boost/iterator/detail/facade_iterator_category.hpp create mode 100644 src/boost/iterator/interoperable.hpp create mode 100644 src/boost/iterator/iterator_adaptor.hpp create mode 100644 src/boost/iterator/iterator_categories.hpp create mode 100644 src/boost/iterator/iterator_facade.hpp create mode 100644 src/boost/iterator/iterator_traits.hpp create mode 100644 src/boost/iterator/reverse_iterator.hpp create mode 100644 src/boost/mem_fn.hpp create mode 100644 src/boost/move/adl_move_swap.hpp create mode 100644 src/boost/move/algo/adaptive_merge.hpp create mode 100644 src/boost/move/algo/adaptive_sort.hpp create mode 100644 src/boost/move/algo/detail/adaptive_sort_merge.hpp create mode 100644 src/boost/move/algo/detail/basic_op.hpp create mode 100644 src/boost/move/algo/detail/heap_sort.hpp create mode 100644 src/boost/move/algo/detail/insertion_sort.hpp create mode 100644 src/boost/move/algo/detail/is_sorted.hpp create mode 100644 src/boost/move/algo/detail/merge.hpp create mode 100644 src/boost/move/algo/detail/merge_sort.hpp create mode 100644 src/boost/move/algo/detail/pdqsort.hpp create mode 100644 src/boost/move/algo/detail/search.hpp create mode 100644 src/boost/move/algo/detail/set_difference.hpp create mode 100644 src/boost/move/algo/move.hpp create mode 100644 src/boost/move/algo/predicate.hpp create mode 100644 src/boost/move/algo/unique.hpp create mode 100644 src/boost/move/algorithm.hpp create mode 100644 src/boost/move/core.hpp create mode 100644 src/boost/move/default_delete.hpp create mode 100644 src/boost/move/detail/addressof.hpp create mode 100644 src/boost/move/detail/config_begin.hpp create mode 100644 src/boost/move/detail/config_end.hpp create mode 100644 src/boost/move/detail/destruct_n.hpp create mode 100644 src/boost/move/detail/force_ptr.hpp create mode 100644 src/boost/move/detail/fwd_macros.hpp create mode 100644 src/boost/move/detail/iterator_to_raw_pointer.hpp create mode 100644 src/boost/move/detail/iterator_traits.hpp create mode 100644 src/boost/move/detail/meta_utils.hpp create mode 100644 src/boost/move/detail/meta_utils_core.hpp create mode 100644 src/boost/move/detail/move_helpers.hpp create mode 100644 src/boost/move/detail/placement_new.hpp create mode 100644 src/boost/move/detail/pointer_element.hpp create mode 100644 src/boost/move/detail/reverse_iterator.hpp create mode 100644 src/boost/move/detail/std_ns_begin.hpp create mode 100644 src/boost/move/detail/std_ns_end.hpp create mode 100644 src/boost/move/detail/to_raw_pointer.hpp create mode 100644 src/boost/move/detail/type_traits.hpp create mode 100644 src/boost/move/detail/unique_ptr_meta_utils.hpp create mode 100644 src/boost/move/detail/workaround.hpp create mode 100644 src/boost/move/iterator.hpp create mode 100644 src/boost/move/make_unique.hpp create mode 100644 src/boost/move/move.hpp create mode 100644 src/boost/move/traits.hpp create mode 100644 src/boost/move/unique_ptr.hpp create mode 100644 src/boost/move/utility.hpp create mode 100644 src/boost/move/utility_core.hpp create mode 100644 src/boost/mpl/O1_size.hpp create mode 100644 src/boost/mpl/O1_size_fwd.hpp create mode 100644 src/boost/mpl/advance.hpp create mode 100644 src/boost/mpl/advance_fwd.hpp create mode 100644 src/boost/mpl/always.hpp create mode 100644 src/boost/mpl/and.hpp create mode 100644 src/boost/mpl/apply.hpp create mode 100644 src/boost/mpl/apply_fwd.hpp create mode 100644 src/boost/mpl/apply_wrap.hpp create mode 100644 src/boost/mpl/arg.hpp create mode 100644 src/boost/mpl/arg_fwd.hpp create mode 100644 src/boost/mpl/assert.hpp create mode 100644 src/boost/mpl/at.hpp create mode 100644 src/boost/mpl/at_fwd.hpp create mode 100644 src/boost/mpl/aux_/O1_size_impl.hpp create mode 100644 src/boost/mpl/aux_/adl_barrier.hpp create mode 100644 src/boost/mpl/aux_/advance_backward.hpp create mode 100644 src/boost/mpl/aux_/advance_forward.hpp create mode 100644 src/boost/mpl/aux_/arg_typedef.hpp create mode 100644 src/boost/mpl/aux_/arithmetic_op.hpp create mode 100644 src/boost/mpl/aux_/arity.hpp create mode 100644 src/boost/mpl/aux_/arity_spec.hpp create mode 100644 src/boost/mpl/aux_/at_impl.hpp create mode 100644 src/boost/mpl/aux_/back_impl.hpp create mode 100644 src/boost/mpl/aux_/begin_end_impl.hpp create mode 100644 src/boost/mpl/aux_/clear_impl.hpp create mode 100644 src/boost/mpl/aux_/common_name_wknd.hpp create mode 100644 src/boost/mpl/aux_/comparison_op.hpp create mode 100644 src/boost/mpl/aux_/config/adl.hpp create mode 100644 src/boost/mpl/aux_/config/arrays.hpp create mode 100644 src/boost/mpl/aux_/config/bcc.hpp create mode 100644 src/boost/mpl/aux_/config/bind.hpp create mode 100644 src/boost/mpl/aux_/config/compiler.hpp create mode 100644 src/boost/mpl/aux_/config/ctps.hpp create mode 100644 src/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp create mode 100644 src/boost/mpl/aux_/config/dtp.hpp create mode 100644 src/boost/mpl/aux_/config/eti.hpp create mode 100644 src/boost/mpl/aux_/config/forwarding.hpp create mode 100644 src/boost/mpl/aux_/config/gcc.hpp create mode 100644 src/boost/mpl/aux_/config/gpu.hpp create mode 100644 src/boost/mpl/aux_/config/has_apply.hpp create mode 100644 src/boost/mpl/aux_/config/has_xxx.hpp create mode 100644 src/boost/mpl/aux_/config/integral.hpp create mode 100644 src/boost/mpl/aux_/config/intel.hpp create mode 100644 src/boost/mpl/aux_/config/lambda.hpp create mode 100644 src/boost/mpl/aux_/config/msvc.hpp create mode 100644 src/boost/mpl/aux_/config/msvc_typename.hpp create mode 100644 src/boost/mpl/aux_/config/nttp.hpp create mode 100644 src/boost/mpl/aux_/config/operators.hpp create mode 100644 src/boost/mpl/aux_/config/overload_resolution.hpp create mode 100644 src/boost/mpl/aux_/config/pp_counter.hpp create mode 100644 src/boost/mpl/aux_/config/preprocessor.hpp create mode 100644 src/boost/mpl/aux_/config/static_constant.hpp create mode 100644 src/boost/mpl/aux_/config/ttp.hpp create mode 100644 src/boost/mpl/aux_/config/typeof.hpp create mode 100644 src/boost/mpl/aux_/config/use_preprocessed.hpp create mode 100644 src/boost/mpl/aux_/config/workaround.hpp create mode 100644 src/boost/mpl/aux_/contains_impl.hpp create mode 100644 src/boost/mpl/aux_/count_args.hpp create mode 100644 src/boost/mpl/aux_/empty_impl.hpp create mode 100644 src/boost/mpl/aux_/erase_impl.hpp create mode 100644 src/boost/mpl/aux_/erase_key_impl.hpp create mode 100644 src/boost/mpl/aux_/find_if_pred.hpp create mode 100644 src/boost/mpl/aux_/fold_impl.hpp create mode 100644 src/boost/mpl/aux_/fold_impl_body.hpp create mode 100644 src/boost/mpl/aux_/front_impl.hpp create mode 100644 src/boost/mpl/aux_/full_lambda.hpp create mode 100644 src/boost/mpl/aux_/has_apply.hpp create mode 100644 src/boost/mpl/aux_/has_begin.hpp create mode 100644 src/boost/mpl/aux_/has_key_impl.hpp create mode 100644 src/boost/mpl/aux_/has_rebind.hpp create mode 100644 src/boost/mpl/aux_/has_size.hpp create mode 100644 src/boost/mpl/aux_/has_tag.hpp create mode 100644 src/boost/mpl/aux_/has_type.hpp create mode 100644 src/boost/mpl/aux_/include_preprocessed.hpp create mode 100644 src/boost/mpl/aux_/insert_impl.hpp create mode 100644 src/boost/mpl/aux_/insert_range_impl.hpp create mode 100644 src/boost/mpl/aux_/inserter_algorithm.hpp create mode 100644 src/boost/mpl/aux_/integral_wrapper.hpp create mode 100644 src/boost/mpl/aux_/is_msvc_eti_arg.hpp create mode 100644 src/boost/mpl/aux_/iter_apply.hpp create mode 100644 src/boost/mpl/aux_/iter_fold_if_impl.hpp create mode 100644 src/boost/mpl/aux_/iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/iter_push_front.hpp create mode 100644 src/boost/mpl/aux_/joint_iter.hpp create mode 100644 src/boost/mpl/aux_/lambda_arity_param.hpp create mode 100644 src/boost/mpl/aux_/lambda_no_ctps.hpp create mode 100644 src/boost/mpl/aux_/lambda_spec.hpp create mode 100644 src/boost/mpl/aux_/lambda_support.hpp create mode 100644 src/boost/mpl/aux_/largest_int.hpp create mode 100644 src/boost/mpl/aux_/logical_op.hpp create mode 100644 src/boost/mpl/aux_/msvc_dtw.hpp create mode 100644 src/boost/mpl/aux_/msvc_eti_base.hpp create mode 100644 src/boost/mpl/aux_/msvc_is_class.hpp create mode 100644 src/boost/mpl/aux_/msvc_never_true.hpp create mode 100644 src/boost/mpl/aux_/msvc_type.hpp create mode 100644 src/boost/mpl/aux_/na.hpp create mode 100644 src/boost/mpl/aux_/na_assert.hpp create mode 100644 src/boost/mpl/aux_/na_fwd.hpp create mode 100644 src/boost/mpl/aux_/na_spec.hpp create mode 100644 src/boost/mpl/aux_/nested_type_wknd.hpp create mode 100644 src/boost/mpl/aux_/nttp_decl.hpp create mode 100644 src/boost/mpl/aux_/numeric_cast_utils.hpp create mode 100644 src/boost/mpl/aux_/numeric_op.hpp create mode 100644 src/boost/mpl/aux_/overload_names.hpp create mode 100644 src/boost/mpl/aux_/pop_back_impl.hpp create mode 100644 src/boost/mpl/aux_/pop_front_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/and.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/apply.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/arg.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/bitand.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/bitor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/deque.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/divides.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/greater.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/inherit.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/less.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/list.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/list_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/map.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/minus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/modulus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/or.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/plus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/quote.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/set.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/set_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/times.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/vector.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/and.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/apply.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/arg.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/deque.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/divides.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/greater.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/less.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/list.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/map.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/minus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/or.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/plus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/quote.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/set.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/times.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/vector.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/advance_backward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/advance_forward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/and.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/apply_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/apply_wrap.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/bind_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/deque.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/less.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/list.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/map.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/or.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/set.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/times.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/vector_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/and.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/apply.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/arg.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/bitand.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/bitor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/deque.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/divides.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/greater.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/inherit.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/less.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/list.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/list_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/map.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/minus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/modulus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/or.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/plus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/quote.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/set.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/set_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/times.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/vector.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/and.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/apply.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/arg.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/bitand.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/bitor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/deque.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/divides.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/greater.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/inherit.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/less.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/list.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/list_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/map.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/minus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/modulus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/or.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/plus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/quote.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/set.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/set_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/times.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/vector.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/and.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/apply.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/arg.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/deque.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/divides.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/greater.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/less.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/list.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/map.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/minus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/or.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/plus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/quote.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/set.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/times.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/vector.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/and.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/apply.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/arg.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/deque.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/divides.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/greater.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/less.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/list.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/map.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/minus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/or.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/plus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/quote.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/set.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/set_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/times.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/vector.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/and.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/apply.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/arg.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/deque.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/divides.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/greater.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/inherit.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/less.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/list.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/map.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/minus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/or.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/placeholders.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/plus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/quote.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/set.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/set_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/template_arity.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/times.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/vector.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/and.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/deque.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/inherit.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/less.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/list.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/map.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/or.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/quote.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/set.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/set_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/times.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/and.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/apply.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/arg.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/deque.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/inherit.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/less.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/list.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/list_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/map.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/or.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/set.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/set_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/times.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/vector.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/advance_backward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/advance_forward.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/and.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/apply.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/apply_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/arg.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/bind.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/bind_fwd.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/bitand.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/bitor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/bitxor.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/deque.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/divides.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/greater.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/greater_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/inherit.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/less.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/less_equal.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/list.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/list_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/map.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/minus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/modulus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/not_equal_to.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/or.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/placeholders.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/plus.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/quote.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/reverse_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/reverse_iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/set.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/set_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/shift_left.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/shift_right.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/template_arity.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/times.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/unpack_args.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/vector.hpp create mode 100644 src/boost/mpl/aux_/preprocessed/plain/vector_c.hpp create mode 100644 src/boost/mpl/aux_/preprocessor/add.hpp create mode 100644 src/boost/mpl/aux_/preprocessor/def_params_tail.hpp create mode 100644 src/boost/mpl/aux_/preprocessor/default_params.hpp create mode 100644 src/boost/mpl/aux_/preprocessor/enum.hpp create mode 100644 src/boost/mpl/aux_/preprocessor/ext_params.hpp create mode 100644 src/boost/mpl/aux_/preprocessor/filter_params.hpp create mode 100644 src/boost/mpl/aux_/preprocessor/params.hpp create mode 100644 src/boost/mpl/aux_/preprocessor/partial_spec_params.hpp create mode 100644 src/boost/mpl/aux_/preprocessor/range.hpp create mode 100644 src/boost/mpl/aux_/preprocessor/repeat.hpp create mode 100644 src/boost/mpl/aux_/preprocessor/sub.hpp create mode 100644 src/boost/mpl/aux_/preprocessor/tuple.hpp create mode 100644 src/boost/mpl/aux_/ptr_to_ref.hpp create mode 100644 src/boost/mpl/aux_/push_back_impl.hpp create mode 100644 src/boost/mpl/aux_/push_front_impl.hpp create mode 100644 src/boost/mpl/aux_/reverse_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/reverse_fold_impl_body.hpp create mode 100644 src/boost/mpl/aux_/reverse_iter_fold_impl.hpp create mode 100644 src/boost/mpl/aux_/sequence_wrapper.hpp create mode 100644 src/boost/mpl/aux_/size_impl.hpp create mode 100644 src/boost/mpl/aux_/static_cast.hpp create mode 100644 src/boost/mpl/aux_/template_arity.hpp create mode 100644 src/boost/mpl/aux_/template_arity_fwd.hpp create mode 100644 src/boost/mpl/aux_/traits_lambda_spec.hpp create mode 100644 src/boost/mpl/aux_/type_wrapper.hpp create mode 100644 src/boost/mpl/aux_/value_wknd.hpp create mode 100644 src/boost/mpl/aux_/yes_no.hpp create mode 100644 src/boost/mpl/back.hpp create mode 100644 src/boost/mpl/back_fwd.hpp create mode 100644 src/boost/mpl/back_inserter.hpp create mode 100644 src/boost/mpl/base.hpp create mode 100644 src/boost/mpl/begin.hpp create mode 100644 src/boost/mpl/begin_end.hpp create mode 100644 src/boost/mpl/begin_end_fwd.hpp create mode 100644 src/boost/mpl/bind.hpp create mode 100644 src/boost/mpl/bind_fwd.hpp create mode 100644 src/boost/mpl/bool.hpp create mode 100644 src/boost/mpl/bool_fwd.hpp create mode 100644 src/boost/mpl/clear.hpp create mode 100644 src/boost/mpl/clear_fwd.hpp create mode 100644 src/boost/mpl/contains.hpp create mode 100644 src/boost/mpl/contains_fwd.hpp create mode 100644 src/boost/mpl/count_fwd.hpp create mode 100644 src/boost/mpl/deref.hpp create mode 100644 src/boost/mpl/distance.hpp create mode 100644 src/boost/mpl/distance_fwd.hpp create mode 100644 src/boost/mpl/empty.hpp create mode 100644 src/boost/mpl/empty_base.hpp create mode 100644 src/boost/mpl/empty_fwd.hpp create mode 100644 src/boost/mpl/end.hpp create mode 100644 src/boost/mpl/equal_to.hpp create mode 100644 src/boost/mpl/erase.hpp create mode 100644 src/boost/mpl/erase_fwd.hpp create mode 100644 src/boost/mpl/erase_key.hpp create mode 100644 src/boost/mpl/erase_key_fwd.hpp create mode 100644 src/boost/mpl/eval_if.hpp create mode 100644 src/boost/mpl/find.hpp create mode 100644 src/boost/mpl/find_if.hpp create mode 100644 src/boost/mpl/fold.hpp create mode 100644 src/boost/mpl/front.hpp create mode 100644 src/boost/mpl/front_fwd.hpp create mode 100644 src/boost/mpl/front_inserter.hpp create mode 100644 src/boost/mpl/has_key.hpp create mode 100644 src/boost/mpl/has_key_fwd.hpp create mode 100644 src/boost/mpl/has_xxx.hpp create mode 100644 src/boost/mpl/identity.hpp create mode 100644 src/boost/mpl/if.hpp create mode 100644 src/boost/mpl/inherit.hpp create mode 100644 src/boost/mpl/insert.hpp create mode 100644 src/boost/mpl/insert_fwd.hpp create mode 100644 src/boost/mpl/insert_range.hpp create mode 100644 src/boost/mpl/insert_range_fwd.hpp create mode 100644 src/boost/mpl/inserter.hpp create mode 100644 src/boost/mpl/int.hpp create mode 100644 src/boost/mpl/int_fwd.hpp create mode 100644 src/boost/mpl/integral_c.hpp create mode 100644 src/boost/mpl/integral_c_fwd.hpp create mode 100644 src/boost/mpl/integral_c_tag.hpp create mode 100644 src/boost/mpl/is_placeholder.hpp create mode 100644 src/boost/mpl/is_sequence.hpp create mode 100644 src/boost/mpl/iter_fold.hpp create mode 100644 src/boost/mpl/iter_fold_if.hpp create mode 100644 src/boost/mpl/iterator_category.hpp create mode 100644 src/boost/mpl/iterator_range.hpp create mode 100644 src/boost/mpl/iterator_tags.hpp create mode 100644 src/boost/mpl/joint_view.hpp create mode 100644 src/boost/mpl/key_type_fwd.hpp create mode 100644 src/boost/mpl/lambda.hpp create mode 100644 src/boost/mpl/lambda_fwd.hpp create mode 100644 src/boost/mpl/less.hpp create mode 100644 src/boost/mpl/limits/arity.hpp create mode 100644 src/boost/mpl/limits/list.hpp create mode 100644 src/boost/mpl/limits/unrolling.hpp create mode 100644 src/boost/mpl/limits/vector.hpp create mode 100644 src/boost/mpl/list.hpp create mode 100644 src/boost/mpl/list/aux_/O1_size.hpp create mode 100644 src/boost/mpl/list/aux_/begin_end.hpp create mode 100644 src/boost/mpl/list/aux_/clear.hpp create mode 100644 src/boost/mpl/list/aux_/empty.hpp create mode 100644 src/boost/mpl/list/aux_/front.hpp create mode 100644 src/boost/mpl/list/aux_/include_preprocessed.hpp create mode 100644 src/boost/mpl/list/aux_/item.hpp create mode 100644 src/boost/mpl/list/aux_/iterator.hpp create mode 100644 src/boost/mpl/list/aux_/numbered.hpp create mode 100644 src/boost/mpl/list/aux_/numbered_c.hpp create mode 100644 src/boost/mpl/list/aux_/pop_front.hpp create mode 100644 src/boost/mpl/list/aux_/preprocessed/plain/list10.hpp create mode 100644 src/boost/mpl/list/aux_/preprocessed/plain/list10_c.hpp create mode 100644 src/boost/mpl/list/aux_/preprocessed/plain/list20.hpp create mode 100644 src/boost/mpl/list/aux_/preprocessed/plain/list20_c.hpp create mode 100644 src/boost/mpl/list/aux_/preprocessed/plain/list30.hpp create mode 100644 src/boost/mpl/list/aux_/preprocessed/plain/list30_c.hpp create mode 100644 src/boost/mpl/list/aux_/preprocessed/plain/list40.hpp create mode 100644 src/boost/mpl/list/aux_/preprocessed/plain/list40_c.hpp create mode 100644 src/boost/mpl/list/aux_/preprocessed/plain/list50.hpp create mode 100644 src/boost/mpl/list/aux_/preprocessed/plain/list50_c.hpp create mode 100644 src/boost/mpl/list/aux_/push_back.hpp create mode 100644 src/boost/mpl/list/aux_/push_front.hpp create mode 100644 src/boost/mpl/list/aux_/size.hpp create mode 100644 src/boost/mpl/list/aux_/tag.hpp create mode 100644 src/boost/mpl/list/list0.hpp create mode 100644 src/boost/mpl/list/list0_c.hpp create mode 100644 src/boost/mpl/list/list10.hpp create mode 100644 src/boost/mpl/list/list10_c.hpp create mode 100644 src/boost/mpl/list/list20.hpp create mode 100644 src/boost/mpl/list/list20_c.hpp create mode 100644 src/boost/mpl/list/list30.hpp create mode 100644 src/boost/mpl/list/list30_c.hpp create mode 100644 src/boost/mpl/list/list40.hpp create mode 100644 src/boost/mpl/list/list40_c.hpp create mode 100644 src/boost/mpl/list/list50.hpp create mode 100644 src/boost/mpl/list/list50_c.hpp create mode 100644 src/boost/mpl/logical.hpp create mode 100644 src/boost/mpl/long.hpp create mode 100644 src/boost/mpl/long_fwd.hpp create mode 100644 src/boost/mpl/min_max.hpp create mode 100644 src/boost/mpl/minus.hpp create mode 100644 src/boost/mpl/negate.hpp create mode 100644 src/boost/mpl/next.hpp create mode 100644 src/boost/mpl/next_prior.hpp create mode 100644 src/boost/mpl/not.hpp create mode 100644 src/boost/mpl/numeric_cast.hpp create mode 100644 src/boost/mpl/or.hpp create mode 100644 src/boost/mpl/order_fwd.hpp create mode 100644 src/boost/mpl/pair.hpp create mode 100644 src/boost/mpl/pair_view.hpp create mode 100644 src/boost/mpl/placeholders.hpp create mode 100644 src/boost/mpl/plus.hpp create mode 100644 src/boost/mpl/pop_back.hpp create mode 100644 src/boost/mpl/pop_back_fwd.hpp create mode 100644 src/boost/mpl/pop_front.hpp create mode 100644 src/boost/mpl/pop_front_fwd.hpp create mode 100644 src/boost/mpl/prior.hpp create mode 100644 src/boost/mpl/protect.hpp create mode 100644 src/boost/mpl/push_back.hpp create mode 100644 src/boost/mpl/push_back_fwd.hpp create mode 100644 src/boost/mpl/push_front.hpp create mode 100644 src/boost/mpl/push_front_fwd.hpp create mode 100644 src/boost/mpl/quote.hpp create mode 100644 src/boost/mpl/reverse_fold.hpp create mode 100644 src/boost/mpl/reverse_iter_fold.hpp create mode 100644 src/boost/mpl/same_as.hpp create mode 100644 src/boost/mpl/sequence_tag.hpp create mode 100644 src/boost/mpl/sequence_tag_fwd.hpp create mode 100644 src/boost/mpl/set/aux_/at_impl.hpp create mode 100644 src/boost/mpl/set/aux_/begin_end_impl.hpp create mode 100644 src/boost/mpl/set/aux_/clear_impl.hpp create mode 100644 src/boost/mpl/set/aux_/empty_impl.hpp create mode 100644 src/boost/mpl/set/aux_/erase_impl.hpp create mode 100644 src/boost/mpl/set/aux_/erase_key_impl.hpp create mode 100644 src/boost/mpl/set/aux_/has_key_impl.hpp create mode 100644 src/boost/mpl/set/aux_/insert_impl.hpp create mode 100644 src/boost/mpl/set/aux_/insert_range_impl.hpp create mode 100644 src/boost/mpl/set/aux_/item.hpp create mode 100644 src/boost/mpl/set/aux_/iterator.hpp create mode 100644 src/boost/mpl/set/aux_/key_type_impl.hpp create mode 100644 src/boost/mpl/set/aux_/set0.hpp create mode 100644 src/boost/mpl/set/aux_/size_impl.hpp create mode 100644 src/boost/mpl/set/aux_/tag.hpp create mode 100644 src/boost/mpl/set/aux_/value_type_impl.hpp create mode 100644 src/boost/mpl/set/set0.hpp create mode 100644 src/boost/mpl/size.hpp create mode 100644 src/boost/mpl/size_fwd.hpp create mode 100644 src/boost/mpl/size_t.hpp create mode 100644 src/boost/mpl/size_t_fwd.hpp create mode 100644 src/boost/mpl/tag.hpp create mode 100644 src/boost/mpl/transform.hpp create mode 100644 src/boost/mpl/value_type_fwd.hpp create mode 100644 src/boost/mpl/vector.hpp create mode 100644 src/boost/mpl/vector/aux_/O1_size.hpp create mode 100644 src/boost/mpl/vector/aux_/at.hpp create mode 100644 src/boost/mpl/vector/aux_/back.hpp create mode 100644 src/boost/mpl/vector/aux_/begin_end.hpp create mode 100644 src/boost/mpl/vector/aux_/clear.hpp create mode 100644 src/boost/mpl/vector/aux_/empty.hpp create mode 100644 src/boost/mpl/vector/aux_/front.hpp create mode 100644 src/boost/mpl/vector/aux_/include_preprocessed.hpp create mode 100644 src/boost/mpl/vector/aux_/item.hpp create mode 100644 src/boost/mpl/vector/aux_/iterator.hpp create mode 100644 src/boost/mpl/vector/aux_/numbered.hpp create mode 100644 src/boost/mpl/vector/aux_/numbered_c.hpp create mode 100644 src/boost/mpl/vector/aux_/pop_back.hpp create mode 100644 src/boost/mpl/vector/aux_/pop_front.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/plain/vector10.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/plain/vector30.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/plain/vector40.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/plain/vector50.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50.hpp create mode 100644 src/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp create mode 100644 src/boost/mpl/vector/aux_/push_back.hpp create mode 100644 src/boost/mpl/vector/aux_/push_front.hpp create mode 100644 src/boost/mpl/vector/aux_/size.hpp create mode 100644 src/boost/mpl/vector/aux_/tag.hpp create mode 100644 src/boost/mpl/vector/aux_/vector0.hpp create mode 100644 src/boost/mpl/vector/vector0.hpp create mode 100644 src/boost/mpl/vector/vector0_c.hpp create mode 100644 src/boost/mpl/vector/vector10.hpp create mode 100644 src/boost/mpl/vector/vector10_c.hpp create mode 100644 src/boost/mpl/vector/vector20.hpp create mode 100644 src/boost/mpl/vector/vector20_c.hpp create mode 100644 src/boost/mpl/vector/vector30.hpp create mode 100644 src/boost/mpl/vector/vector30_c.hpp create mode 100644 src/boost/mpl/vector/vector40.hpp create mode 100644 src/boost/mpl/vector/vector40_c.hpp create mode 100644 src/boost/mpl/vector/vector50.hpp create mode 100644 src/boost/mpl/vector/vector50_c.hpp create mode 100644 src/boost/mpl/void.hpp create mode 100644 src/boost/mpl/void_fwd.hpp create mode 100644 src/boost/multi_index/detail/access_specifier.hpp create mode 100644 src/boost/multi_index/detail/adl_swap.hpp create mode 100644 src/boost/multi_index/detail/allocator_traits.hpp create mode 100644 src/boost/multi_index/detail/any_container_view.hpp create mode 100644 src/boost/multi_index/detail/archive_constructed.hpp create mode 100644 src/boost/multi_index/detail/auto_space.hpp create mode 100644 src/boost/multi_index/detail/bad_archive_exception.hpp create mode 100644 src/boost/multi_index/detail/base_type.hpp create mode 100644 src/boost/multi_index/detail/bucket_array.hpp create mode 100644 src/boost/multi_index/detail/converter.hpp create mode 100644 src/boost/multi_index/detail/copy_map.hpp create mode 100644 src/boost/multi_index/detail/define_if_constexpr_macro.hpp create mode 100644 src/boost/multi_index/detail/do_not_copy_elements_tag.hpp create mode 100644 src/boost/multi_index/detail/has_tag.hpp create mode 100644 src/boost/multi_index/detail/hash_index_args.hpp create mode 100644 src/boost/multi_index/detail/hash_index_iterator.hpp create mode 100644 src/boost/multi_index/detail/hash_index_node.hpp create mode 100644 src/boost/multi_index/detail/header_holder.hpp create mode 100644 src/boost/multi_index/detail/ignore_wstrict_aliasing.hpp create mode 100644 src/boost/multi_index/detail/index_access_sequence.hpp create mode 100644 src/boost/multi_index/detail/index_base.hpp create mode 100644 src/boost/multi_index/detail/index_loader.hpp create mode 100644 src/boost/multi_index/detail/index_matcher.hpp create mode 100644 src/boost/multi_index/detail/index_node_base.hpp create mode 100644 src/boost/multi_index/detail/index_saver.hpp create mode 100644 src/boost/multi_index/detail/invalidate_iterators.hpp create mode 100644 src/boost/multi_index/detail/invariant_assert.hpp create mode 100644 src/boost/multi_index/detail/is_index_list.hpp create mode 100644 src/boost/multi_index/detail/is_transparent.hpp create mode 100644 src/boost/multi_index/detail/iter_adaptor.hpp create mode 100644 src/boost/multi_index/detail/modify_key_adaptor.hpp create mode 100644 src/boost/multi_index/detail/no_duplicate_tags.hpp create mode 100644 src/boost/multi_index/detail/node_handle.hpp create mode 100644 src/boost/multi_index/detail/node_type.hpp create mode 100644 src/boost/multi_index/detail/ord_index_args.hpp create mode 100644 src/boost/multi_index/detail/ord_index_impl_fwd.hpp create mode 100644 src/boost/multi_index/detail/promotes_arg.hpp create mode 100644 src/boost/multi_index/detail/raw_ptr.hpp create mode 100644 src/boost/multi_index/detail/restore_wstrict_aliasing.hpp create mode 100644 src/boost/multi_index/detail/rnd_index_loader.hpp create mode 100644 src/boost/multi_index/detail/rnd_index_node.hpp create mode 100644 src/boost/multi_index/detail/rnd_index_ops.hpp create mode 100644 src/boost/multi_index/detail/rnd_index_ptr_array.hpp create mode 100644 src/boost/multi_index/detail/rnd_node_iterator.hpp create mode 100644 src/boost/multi_index/detail/safe_mode.hpp create mode 100644 src/boost/multi_index/detail/scope_guard.hpp create mode 100644 src/boost/multi_index/detail/scoped_bilock.hpp create mode 100644 src/boost/multi_index/detail/serialization_version.hpp create mode 100644 src/boost/multi_index/detail/undef_if_constexpr_macro.hpp create mode 100644 src/boost/multi_index/detail/vartempl_support.hpp create mode 100644 src/boost/multi_index/hashed_index.hpp create mode 100644 src/boost/multi_index/hashed_index_fwd.hpp create mode 100644 src/boost/multi_index/identity.hpp create mode 100644 src/boost/multi_index/identity_fwd.hpp create mode 100644 src/boost/multi_index/indexed_by.hpp create mode 100644 src/boost/multi_index/ordered_index_fwd.hpp create mode 100644 src/boost/multi_index/random_access_index.hpp create mode 100644 src/boost/multi_index/random_access_index_fwd.hpp create mode 100644 src/boost/multi_index/safe_mode_errors.hpp create mode 100644 src/boost/multi_index/tag.hpp create mode 100644 src/boost/multi_index_container.hpp create mode 100644 src/boost/multi_index_container_fwd.hpp create mode 100644 src/boost/noncopyable.hpp create mode 100644 src/boost/operators.hpp create mode 100644 src/boost/parameter/aux_/always_true_predicate.hpp create mode 100644 src/boost/parameter/aux_/arg_list.hpp create mode 100644 src/boost/parameter/aux_/augment_predicate.hpp create mode 100644 src/boost/parameter/aux_/default.hpp create mode 100644 src/boost/parameter/aux_/has_nested_template_fn.hpp create mode 100644 src/boost/parameter/aux_/is_maybe.hpp create mode 100644 src/boost/parameter/aux_/is_placeholder.hpp create mode 100644 src/boost/parameter/aux_/is_tagged_argument.hpp create mode 100644 src/boost/parameter/aux_/lambda_tag.hpp create mode 100644 src/boost/parameter/aux_/pack/as_parameter_requirements.hpp create mode 100644 src/boost/parameter/aux_/pack/deduce_tag.hpp create mode 100644 src/boost/parameter/aux_/pack/deduced_item.hpp create mode 100644 src/boost/parameter/aux_/pack/insert_tagged.hpp create mode 100644 src/boost/parameter/aux_/pack/is_named_argument.hpp create mode 100644 src/boost/parameter/aux_/pack/item.hpp create mode 100644 src/boost/parameter/aux_/pack/make_arg_list.hpp create mode 100644 src/boost/parameter/aux_/pack/make_deduced_items.hpp create mode 100644 src/boost/parameter/aux_/pack/make_items.hpp create mode 100644 src/boost/parameter/aux_/pack/make_parameter_spec_items.hpp create mode 100644 src/boost/parameter/aux_/pack/parameter_requirements.hpp create mode 100644 src/boost/parameter/aux_/pack/predicate.hpp create mode 100644 src/boost/parameter/aux_/pack/satisfies.hpp create mode 100644 src/boost/parameter/aux_/pack/tag_deduced.hpp create mode 100644 src/boost/parameter/aux_/pack/tag_keyword_arg.hpp create mode 100644 src/boost/parameter/aux_/pack/tag_keyword_arg_ref.hpp create mode 100644 src/boost/parameter/aux_/pack/tag_template_keyword_arg.hpp create mode 100644 src/boost/parameter/aux_/pack/tag_type.hpp create mode 100644 src/boost/parameter/aux_/pack/unmatched_argument.hpp create mode 100644 src/boost/parameter/aux_/parameter_requirements.hpp create mode 100644 src/boost/parameter/aux_/preprocessor/binary_seq_for_each.hpp create mode 100644 src/boost/parameter/aux_/preprocessor/binary_seq_for_each_inc.hpp create mode 100644 src/boost/parameter/aux_/preprocessor/binary_seq_to_args.hpp create mode 100644 src/boost/parameter/aux_/preprocessor/convert_binary_seq.hpp create mode 100644 src/boost/parameter/aux_/preprocessor/for_each_pred.hpp create mode 100644 src/boost/parameter/aux_/preprocessor/inc_binary_seq.hpp create mode 100644 src/boost/parameter/aux_/preprocessor/no_perfect_forwarding_begin.hpp create mode 100644 src/boost/parameter/aux_/preprocessor/no_perfect_forwarding_end.hpp create mode 100644 src/boost/parameter/aux_/preprocessor/nullptr.hpp create mode 100644 src/boost/parameter/aux_/preprocessor/overloads.hpp create mode 100644 src/boost/parameter/aux_/preprocessor/seq_enum.hpp create mode 100644 src/boost/parameter/aux_/preprocessor/seq_merge.hpp create mode 100644 src/boost/parameter/aux_/result_of0.hpp create mode 100644 src/boost/parameter/aux_/set.hpp create mode 100644 src/boost/parameter/aux_/tag.hpp create mode 100644 src/boost/parameter/aux_/tagged_argument.hpp create mode 100644 src/boost/parameter/aux_/tagged_argument_fwd.hpp create mode 100644 src/boost/parameter/aux_/template_keyword.hpp create mode 100644 src/boost/parameter/aux_/unwrap_cv_reference.hpp create mode 100644 src/boost/parameter/aux_/use_default.hpp create mode 100644 src/boost/parameter/aux_/use_default_tag.hpp create mode 100644 src/boost/parameter/aux_/void.hpp create mode 100644 src/boost/parameter/aux_/yesno.hpp create mode 100644 src/boost/parameter/binding.hpp create mode 100644 src/boost/parameter/config.hpp create mode 100644 src/boost/parameter/deduced.hpp create mode 100644 src/boost/parameter/keyword_fwd.hpp create mode 100644 src/boost/parameter/optional.hpp create mode 100644 src/boost/parameter/parameters.hpp create mode 100644 src/boost/parameter/required.hpp create mode 100644 src/boost/parameter/template_keyword.hpp create mode 100644 src/boost/parameter/value_type.hpp create mode 100644 src/boost/preprocessor/arithmetic/add.hpp create mode 100644 src/boost/preprocessor/arithmetic/dec.hpp create mode 100644 src/boost/preprocessor/arithmetic/detail/is_maximum_number.hpp create mode 100644 src/boost/preprocessor/arithmetic/detail/is_minimum_number.hpp create mode 100644 src/boost/preprocessor/arithmetic/detail/maximum_number.hpp create mode 100644 src/boost/preprocessor/arithmetic/inc.hpp create mode 100644 src/boost/preprocessor/arithmetic/limits/dec_1024.hpp create mode 100644 src/boost/preprocessor/arithmetic/limits/dec_256.hpp create mode 100644 src/boost/preprocessor/arithmetic/limits/dec_512.hpp create mode 100644 src/boost/preprocessor/arithmetic/limits/inc_1024.hpp create mode 100644 src/boost/preprocessor/arithmetic/limits/inc_256.hpp create mode 100644 src/boost/preprocessor/arithmetic/limits/inc_512.hpp create mode 100644 src/boost/preprocessor/arithmetic/sub.hpp create mode 100644 src/boost/preprocessor/array/data.hpp create mode 100644 src/boost/preprocessor/array/elem.hpp create mode 100644 src/boost/preprocessor/array/size.hpp create mode 100644 src/boost/preprocessor/cat.hpp create mode 100644 src/boost/preprocessor/comma_if.hpp create mode 100644 src/boost/preprocessor/comparison/equal.hpp create mode 100644 src/boost/preprocessor/comparison/less.hpp create mode 100644 src/boost/preprocessor/comparison/less_equal.hpp create mode 100644 src/boost/preprocessor/comparison/limits/not_equal_1024.hpp create mode 100644 src/boost/preprocessor/comparison/limits/not_equal_256.hpp create mode 100644 src/boost/preprocessor/comparison/limits/not_equal_512.hpp create mode 100644 src/boost/preprocessor/comparison/not_equal.hpp create mode 100644 src/boost/preprocessor/config/config.hpp create mode 100644 src/boost/preprocessor/config/limits.hpp create mode 100644 src/boost/preprocessor/control/detail/dmc/while.hpp create mode 100644 src/boost/preprocessor/control/detail/edg/limits/while_1024.hpp create mode 100644 src/boost/preprocessor/control/detail/edg/limits/while_256.hpp create mode 100644 src/boost/preprocessor/control/detail/edg/limits/while_512.hpp create mode 100644 src/boost/preprocessor/control/detail/edg/while.hpp create mode 100644 src/boost/preprocessor/control/detail/limits/while_1024.hpp create mode 100644 src/boost/preprocessor/control/detail/limits/while_256.hpp create mode 100644 src/boost/preprocessor/control/detail/limits/while_512.hpp create mode 100644 src/boost/preprocessor/control/detail/msvc/while.hpp create mode 100644 src/boost/preprocessor/control/detail/while.hpp create mode 100644 src/boost/preprocessor/control/expr_if.hpp create mode 100644 src/boost/preprocessor/control/expr_iif.hpp create mode 100644 src/boost/preprocessor/control/if.hpp create mode 100644 src/boost/preprocessor/control/iif.hpp create mode 100644 src/boost/preprocessor/control/limits/while_1024.hpp create mode 100644 src/boost/preprocessor/control/limits/while_256.hpp create mode 100644 src/boost/preprocessor/control/limits/while_512.hpp create mode 100644 src/boost/preprocessor/control/while.hpp create mode 100644 src/boost/preprocessor/debug/error.hpp create mode 100644 src/boost/preprocessor/dec.hpp create mode 100644 src/boost/preprocessor/detail/auto_rec.hpp create mode 100644 src/boost/preprocessor/detail/check.hpp create mode 100644 src/boost/preprocessor/detail/dmc/auto_rec.hpp create mode 100644 src/boost/preprocessor/detail/is_binary.hpp create mode 100644 src/boost/preprocessor/detail/limits/auto_rec_1024.hpp create mode 100644 src/boost/preprocessor/detail/limits/auto_rec_256.hpp create mode 100644 src/boost/preprocessor/detail/limits/auto_rec_512.hpp create mode 100644 src/boost/preprocessor/empty.hpp create mode 100644 src/boost/preprocessor/enum.hpp create mode 100644 src/boost/preprocessor/enum_params.hpp create mode 100644 src/boost/preprocessor/enum_params_with_a_default.hpp create mode 100644 src/boost/preprocessor/enum_shifted_params.hpp create mode 100644 src/boost/preprocessor/expr_if.hpp create mode 100644 src/boost/preprocessor/facilities/check_empty.hpp create mode 100644 src/boost/preprocessor/facilities/detail/is_empty.hpp create mode 100644 src/boost/preprocessor/facilities/empty.hpp create mode 100644 src/boost/preprocessor/facilities/expand.hpp create mode 100644 src/boost/preprocessor/facilities/identity.hpp create mode 100644 src/boost/preprocessor/facilities/intercept.hpp create mode 100644 src/boost/preprocessor/facilities/is_1.hpp create mode 100644 src/boost/preprocessor/facilities/is_empty.hpp create mode 100644 src/boost/preprocessor/facilities/is_empty_variadic.hpp create mode 100644 src/boost/preprocessor/facilities/limits/intercept_1024.hpp create mode 100644 src/boost/preprocessor/facilities/limits/intercept_256.hpp create mode 100644 src/boost/preprocessor/facilities/limits/intercept_512.hpp create mode 100644 src/boost/preprocessor/facilities/overload.hpp create mode 100644 src/boost/preprocessor/identity.hpp create mode 100644 src/boost/preprocessor/inc.hpp create mode 100644 src/boost/preprocessor/iterate.hpp create mode 100644 src/boost/preprocessor/iteration/detail/bounds/lower1.hpp create mode 100644 src/boost/preprocessor/iteration/detail/bounds/lower2.hpp create mode 100644 src/boost/preprocessor/iteration/detail/bounds/lower3.hpp create mode 100644 src/boost/preprocessor/iteration/detail/bounds/lower4.hpp create mode 100644 src/boost/preprocessor/iteration/detail/bounds/lower5.hpp create mode 100644 src/boost/preprocessor/iteration/detail/bounds/upper1.hpp create mode 100644 src/boost/preprocessor/iteration/detail/bounds/upper2.hpp create mode 100644 src/boost/preprocessor/iteration/detail/bounds/upper3.hpp create mode 100644 src/boost/preprocessor/iteration/detail/bounds/upper4.hpp create mode 100644 src/boost/preprocessor/iteration/detail/bounds/upper5.hpp create mode 100644 src/boost/preprocessor/iteration/detail/finish.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/forward1.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/forward2.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/forward3.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/forward4.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/forward5.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/forward1_1024.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/forward1_256.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/forward1_512.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/forward2_1024.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/forward2_256.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/forward2_512.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/forward3_1024.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/forward3_256.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/forward3_512.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/forward4_1024.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/forward4_256.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/forward4_512.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/forward5_1024.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/forward5_256.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/forward5_512.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/reverse1_1024.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/reverse1_256.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/reverse1_512.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/reverse2_1024.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/reverse2_256.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/reverse2_512.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/reverse3_1024.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/reverse3_256.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/reverse3_512.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/reverse4_1024.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/reverse4_256.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/reverse4_512.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/reverse5_1024.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/reverse5_256.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/limits/reverse5_512.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/reverse1.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/reverse2.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/reverse3.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/reverse4.hpp create mode 100644 src/boost/preprocessor/iteration/detail/iter/reverse5.hpp create mode 100644 src/boost/preprocessor/iteration/detail/limits/local_1024.hpp create mode 100644 src/boost/preprocessor/iteration/detail/limits/local_256.hpp create mode 100644 src/boost/preprocessor/iteration/detail/limits/local_512.hpp create mode 100644 src/boost/preprocessor/iteration/detail/limits/rlocal_1024.hpp create mode 100644 src/boost/preprocessor/iteration/detail/limits/rlocal_256.hpp create mode 100644 src/boost/preprocessor/iteration/detail/limits/rlocal_512.hpp create mode 100644 src/boost/preprocessor/iteration/detail/local.hpp create mode 100644 src/boost/preprocessor/iteration/detail/rlocal.hpp create mode 100644 src/boost/preprocessor/iteration/detail/self.hpp create mode 100644 src/boost/preprocessor/iteration/detail/start.hpp create mode 100644 src/boost/preprocessor/iteration/iterate.hpp create mode 100644 src/boost/preprocessor/iteration/local.hpp create mode 100644 src/boost/preprocessor/iteration/self.hpp create mode 100644 src/boost/preprocessor/list/adt.hpp create mode 100644 src/boost/preprocessor/list/detail/dmc/fold_left.hpp create mode 100644 src/boost/preprocessor/list/detail/edg/fold_left.hpp create mode 100644 src/boost/preprocessor/list/detail/edg/fold_right.hpp create mode 100644 src/boost/preprocessor/list/detail/edg/limits/fold_left_1024.hpp create mode 100644 src/boost/preprocessor/list/detail/edg/limits/fold_left_256.hpp create mode 100644 src/boost/preprocessor/list/detail/edg/limits/fold_left_512.hpp create mode 100644 src/boost/preprocessor/list/detail/edg/limits/fold_right_1024.hpp create mode 100644 src/boost/preprocessor/list/detail/edg/limits/fold_right_256.hpp create mode 100644 src/boost/preprocessor/list/detail/edg/limits/fold_right_512.hpp create mode 100644 src/boost/preprocessor/list/detail/fold_left.hpp create mode 100644 src/boost/preprocessor/list/detail/fold_right.hpp create mode 100644 src/boost/preprocessor/list/detail/limits/fold_left_1024.hpp create mode 100644 src/boost/preprocessor/list/detail/limits/fold_left_256.hpp create mode 100644 src/boost/preprocessor/list/detail/limits/fold_left_512.hpp create mode 100644 src/boost/preprocessor/list/detail/limits/fold_right_1024.hpp create mode 100644 src/boost/preprocessor/list/detail/limits/fold_right_256.hpp create mode 100644 src/boost/preprocessor/list/detail/limits/fold_right_512.hpp create mode 100644 src/boost/preprocessor/list/fold_left.hpp create mode 100644 src/boost/preprocessor/list/fold_right.hpp create mode 100644 src/boost/preprocessor/list/for_each_i.hpp create mode 100644 src/boost/preprocessor/list/limits/fold_left_1024.hpp create mode 100644 src/boost/preprocessor/list/limits/fold_left_256.hpp create mode 100644 src/boost/preprocessor/list/limits/fold_left_512.hpp create mode 100644 src/boost/preprocessor/list/reverse.hpp create mode 100644 src/boost/preprocessor/logical/and.hpp create mode 100644 src/boost/preprocessor/logical/bitand.hpp create mode 100644 src/boost/preprocessor/logical/bitor.hpp create mode 100644 src/boost/preprocessor/logical/bool.hpp create mode 100644 src/boost/preprocessor/logical/compl.hpp create mode 100644 src/boost/preprocessor/logical/limits/bool_1024.hpp create mode 100644 src/boost/preprocessor/logical/limits/bool_256.hpp create mode 100644 src/boost/preprocessor/logical/limits/bool_512.hpp create mode 100644 src/boost/preprocessor/logical/not.hpp create mode 100644 src/boost/preprocessor/punctuation/comma.hpp create mode 100644 src/boost/preprocessor/punctuation/comma_if.hpp create mode 100644 src/boost/preprocessor/punctuation/detail/is_begin_parens.hpp create mode 100644 src/boost/preprocessor/punctuation/is_begin_parens.hpp create mode 100644 src/boost/preprocessor/repeat.hpp create mode 100644 src/boost/preprocessor/repetition/detail/dmc/for.hpp create mode 100644 src/boost/preprocessor/repetition/detail/edg/for.hpp create mode 100644 src/boost/preprocessor/repetition/detail/edg/limits/for_1024.hpp create mode 100644 src/boost/preprocessor/repetition/detail/edg/limits/for_256.hpp create mode 100644 src/boost/preprocessor/repetition/detail/edg/limits/for_512.hpp create mode 100644 src/boost/preprocessor/repetition/detail/for.hpp create mode 100644 src/boost/preprocessor/repetition/detail/limits/for_1024.hpp create mode 100644 src/boost/preprocessor/repetition/detail/limits/for_256.hpp create mode 100644 src/boost/preprocessor/repetition/detail/limits/for_512.hpp create mode 100644 src/boost/preprocessor/repetition/detail/msvc/for.hpp create mode 100644 src/boost/preprocessor/repetition/enum.hpp create mode 100644 src/boost/preprocessor/repetition/enum_binary_params.hpp create mode 100644 src/boost/preprocessor/repetition/enum_params.hpp create mode 100644 src/boost/preprocessor/repetition/enum_params_with_a_default.hpp create mode 100644 src/boost/preprocessor/repetition/enum_shifted.hpp create mode 100644 src/boost/preprocessor/repetition/enum_shifted_params.hpp create mode 100644 src/boost/preprocessor/repetition/enum_trailing_params.hpp create mode 100644 src/boost/preprocessor/repetition/for.hpp create mode 100644 src/boost/preprocessor/repetition/limits/for_1024.hpp create mode 100644 src/boost/preprocessor/repetition/limits/for_256.hpp create mode 100644 src/boost/preprocessor/repetition/limits/for_512.hpp create mode 100644 src/boost/preprocessor/repetition/limits/repeat_1024.hpp create mode 100644 src/boost/preprocessor/repetition/limits/repeat_256.hpp create mode 100644 src/boost/preprocessor/repetition/limits/repeat_512.hpp create mode 100644 src/boost/preprocessor/repetition/repeat.hpp create mode 100644 src/boost/preprocessor/repetition/repeat_from_to.hpp create mode 100644 src/boost/preprocessor/selection/min.hpp create mode 100644 src/boost/preprocessor/seq/detail/is_empty.hpp create mode 100644 src/boost/preprocessor/seq/detail/limits/split_1024.hpp create mode 100644 src/boost/preprocessor/seq/detail/limits/split_256.hpp create mode 100644 src/boost/preprocessor/seq/detail/limits/split_512.hpp create mode 100644 src/boost/preprocessor/seq/detail/split.hpp create mode 100644 src/boost/preprocessor/seq/elem.hpp create mode 100644 src/boost/preprocessor/seq/enum.hpp create mode 100644 src/boost/preprocessor/seq/first_n.hpp create mode 100644 src/boost/preprocessor/seq/fold_left.hpp create mode 100644 src/boost/preprocessor/seq/for_each_i.hpp create mode 100644 src/boost/preprocessor/seq/for_each_product.hpp create mode 100644 src/boost/preprocessor/seq/limits/elem_1024.hpp create mode 100644 src/boost/preprocessor/seq/limits/elem_256.hpp create mode 100644 src/boost/preprocessor/seq/limits/elem_512.hpp create mode 100644 src/boost/preprocessor/seq/limits/enum_1024.hpp create mode 100644 src/boost/preprocessor/seq/limits/enum_256.hpp create mode 100644 src/boost/preprocessor/seq/limits/enum_512.hpp create mode 100644 src/boost/preprocessor/seq/limits/fold_left_1024.hpp create mode 100644 src/boost/preprocessor/seq/limits/fold_left_256.hpp create mode 100644 src/boost/preprocessor/seq/limits/fold_left_512.hpp create mode 100644 src/boost/preprocessor/seq/limits/size_1024.hpp create mode 100644 src/boost/preprocessor/seq/limits/size_256.hpp create mode 100644 src/boost/preprocessor/seq/limits/size_512.hpp create mode 100644 src/boost/preprocessor/seq/push_back.hpp create mode 100644 src/boost/preprocessor/seq/push_front.hpp create mode 100644 src/boost/preprocessor/seq/rest_n.hpp create mode 100644 src/boost/preprocessor/seq/seq.hpp create mode 100644 src/boost/preprocessor/seq/size.hpp create mode 100644 src/boost/preprocessor/seq/subseq.hpp create mode 100644 src/boost/preprocessor/slot/detail/counter.hpp create mode 100644 src/boost/preprocessor/slot/detail/def.hpp create mode 100644 src/boost/preprocessor/slot/detail/shared.hpp create mode 100644 src/boost/preprocessor/slot/detail/slot1.hpp create mode 100644 src/boost/preprocessor/slot/detail/slot2.hpp create mode 100644 src/boost/preprocessor/slot/detail/slot3.hpp create mode 100644 src/boost/preprocessor/slot/detail/slot4.hpp create mode 100644 src/boost/preprocessor/slot/detail/slot5.hpp create mode 100644 src/boost/preprocessor/slot/slot.hpp create mode 100644 src/boost/preprocessor/stringize.hpp create mode 100644 src/boost/preprocessor/tuple/detail/is_single_return.hpp create mode 100644 src/boost/preprocessor/tuple/eat.hpp create mode 100644 src/boost/preprocessor/tuple/elem.hpp create mode 100644 src/boost/preprocessor/tuple/limits/to_list_128.hpp create mode 100644 src/boost/preprocessor/tuple/limits/to_list_256.hpp create mode 100644 src/boost/preprocessor/tuple/limits/to_list_64.hpp create mode 100644 src/boost/preprocessor/tuple/rem.hpp create mode 100644 src/boost/preprocessor/tuple/size.hpp create mode 100644 src/boost/preprocessor/tuple/to_list.hpp create mode 100644 src/boost/preprocessor/variadic/detail/has_opt.hpp create mode 100644 src/boost/preprocessor/variadic/elem.hpp create mode 100644 src/boost/preprocessor/variadic/has_opt.hpp create mode 100644 src/boost/preprocessor/variadic/limits/elem_128.hpp create mode 100644 src/boost/preprocessor/variadic/limits/elem_256.hpp create mode 100644 src/boost/preprocessor/variadic/limits/elem_64.hpp create mode 100644 src/boost/preprocessor/variadic/limits/size_128.hpp create mode 100644 src/boost/preprocessor/variadic/limits/size_256.hpp create mode 100644 src/boost/preprocessor/variadic/limits/size_64.hpp create mode 100644 src/boost/preprocessor/variadic/size.hpp create mode 100644 src/boost/smart_ptr/detail/atomic_count.hpp create mode 100644 src/boost/smart_ptr/detail/atomic_count_gcc.hpp create mode 100644 src/boost/smart_ptr/detail/atomic_count_gcc_atomic.hpp create mode 100644 src/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp create mode 100644 src/boost/smart_ptr/detail/atomic_count_nt.hpp create mode 100644 src/boost/smart_ptr/detail/atomic_count_pt.hpp create mode 100644 src/boost/smart_ptr/detail/atomic_count_spin.hpp create mode 100644 src/boost/smart_ptr/detail/atomic_count_std_atomic.hpp create mode 100644 src/boost/smart_ptr/detail/atomic_count_sync.hpp create mode 100644 src/boost/smart_ptr/detail/atomic_count_win32.hpp create mode 100644 src/boost/smart_ptr/detail/lightweight_mutex.hpp create mode 100644 src/boost/smart_ptr/detail/lwm_pthreads.hpp create mode 100644 src/boost/smart_ptr/detail/lwm_std_mutex.hpp create mode 100644 src/boost/smart_ptr/detail/lwm_win32_cs.hpp create mode 100644 src/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp create mode 100644 src/boost/smart_ptr/detail/sp_has_sync_intrinsics.hpp create mode 100644 src/boost/smart_ptr/detail/sp_interlocked.hpp create mode 100644 src/boost/smart_ptr/detail/sp_obsolete.hpp create mode 100644 src/boost/smart_ptr/detail/spinlock.hpp create mode 100644 src/boost/smart_ptr/detail/spinlock_gcc_arm.hpp create mode 100644 src/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp create mode 100644 src/boost/smart_ptr/detail/spinlock_nt.hpp create mode 100644 src/boost/smart_ptr/detail/spinlock_pool.hpp create mode 100644 src/boost/smart_ptr/detail/spinlock_pt.hpp create mode 100644 src/boost/smart_ptr/detail/spinlock_std_atomic.hpp create mode 100644 src/boost/smart_ptr/detail/spinlock_sync.hpp create mode 100644 src/boost/smart_ptr/detail/spinlock_w32.hpp create mode 100644 src/boost/smart_ptr/detail/yield_k.hpp create mode 100644 src/boost/tuple/detail/tuple_basic.hpp create mode 100644 src/boost/tuple/tuple.hpp create mode 100644 src/boost/type.hpp create mode 100644 src/boost/type_traits/add_const.hpp create mode 100644 src/boost/type_traits/add_cv.hpp create mode 100644 src/boost/type_traits/add_lvalue_reference.hpp create mode 100644 src/boost/type_traits/add_pointer.hpp create mode 100644 src/boost/type_traits/add_reference.hpp create mode 100644 src/boost/type_traits/add_rvalue_reference.hpp create mode 100644 src/boost/type_traits/add_volatile.hpp create mode 100644 src/boost/type_traits/aligned_storage.hpp create mode 100644 src/boost/type_traits/alignment_of.hpp create mode 100644 src/boost/type_traits/composite_traits.hpp create mode 100644 src/boost/type_traits/conditional.hpp create mode 100644 src/boost/type_traits/cv_traits.hpp create mode 100644 src/boost/type_traits/declval.hpp create mode 100644 src/boost/type_traits/detail/config.hpp create mode 100644 src/boost/type_traits/detail/is_function_cxx_03.hpp create mode 100644 src/boost/type_traits/detail/is_function_cxx_11.hpp create mode 100644 src/boost/type_traits/detail/is_function_msvc10_fix.hpp create mode 100644 src/boost/type_traits/detail/is_function_ptr_helper.hpp create mode 100644 src/boost/type_traits/detail/is_function_ptr_tester.hpp create mode 100644 src/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp create mode 100644 src/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp create mode 100644 src/boost/type_traits/detail/is_member_function_pointer_cxx_03.hpp create mode 100644 src/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp create mode 100644 src/boost/type_traits/detail/is_rvalue_reference_msvc10_fix.hpp create mode 100644 src/boost/type_traits/detail/yes_no_type.hpp create mode 100644 src/boost/type_traits/enable_if.hpp create mode 100644 src/boost/type_traits/function_traits.hpp create mode 100644 src/boost/type_traits/has_trivial_copy.hpp create mode 100644 src/boost/type_traits/has_trivial_destructor.hpp create mode 100644 src/boost/type_traits/integral_constant.hpp create mode 100644 src/boost/type_traits/intrinsics.hpp create mode 100644 src/boost/type_traits/is_abstract.hpp create mode 100644 src/boost/type_traits/is_arithmetic.hpp create mode 100644 src/boost/type_traits/is_array.hpp create mode 100644 src/boost/type_traits/is_base_and_derived.hpp create mode 100644 src/boost/type_traits/is_base_of.hpp create mode 100644 src/boost/type_traits/is_class.hpp create mode 100644 src/boost/type_traits/is_complete.hpp create mode 100644 src/boost/type_traits/is_const.hpp create mode 100644 src/boost/type_traits/is_constructible.hpp create mode 100644 src/boost/type_traits/is_convertible.hpp create mode 100644 src/boost/type_traits/is_copy_constructible.hpp create mode 100644 src/boost/type_traits/is_default_constructible.hpp create mode 100644 src/boost/type_traits/is_destructible.hpp create mode 100644 src/boost/type_traits/is_empty.hpp create mode 100644 src/boost/type_traits/is_enum.hpp create mode 100644 src/boost/type_traits/is_final.hpp create mode 100644 src/boost/type_traits/is_floating_point.hpp create mode 100644 src/boost/type_traits/is_function.hpp create mode 100644 src/boost/type_traits/is_integral.hpp create mode 100644 src/boost/type_traits/is_lvalue_reference.hpp create mode 100644 src/boost/type_traits/is_member_function_pointer.hpp create mode 100644 src/boost/type_traits/is_member_pointer.hpp create mode 100644 src/boost/type_traits/is_noncopyable.hpp create mode 100644 src/boost/type_traits/is_pod.hpp create mode 100644 src/boost/type_traits/is_pointer.hpp create mode 100644 src/boost/type_traits/is_polymorphic.hpp create mode 100644 src/boost/type_traits/is_reference.hpp create mode 100644 src/boost/type_traits/is_rvalue_reference.hpp create mode 100644 src/boost/type_traits/is_same.hpp create mode 100644 src/boost/type_traits/is_scalar.hpp create mode 100644 src/boost/type_traits/is_union.hpp create mode 100644 src/boost/type_traits/is_unsigned.hpp create mode 100644 src/boost/type_traits/is_void.hpp create mode 100644 src/boost/type_traits/is_volatile.hpp create mode 100644 src/boost/type_traits/remove_const.hpp create mode 100644 src/boost/type_traits/remove_cv.hpp create mode 100644 src/boost/type_traits/remove_pointer.hpp create mode 100644 src/boost/type_traits/remove_reference.hpp create mode 100644 src/boost/type_traits/remove_volatile.hpp create mode 100644 src/boost/type_traits/same_traits.hpp create mode 100644 src/boost/type_traits/type_identity.hpp create mode 100644 src/boost/type_traits/type_with_alignment.hpp create mode 100644 src/boost/unordered/detail/fca.hpp create mode 100644 src/boost/unordered/detail/implementation.hpp create mode 100644 src/boost/unordered/detail/map.hpp create mode 100644 src/boost/unordered/detail/prime_fmod.hpp create mode 100644 src/boost/unordered/detail/serialize_container.hpp create mode 100644 src/boost/unordered/detail/serialize_fca_container.hpp create mode 100644 src/boost/unordered/detail/serialize_tracked_address.hpp create mode 100644 src/boost/unordered/unordered_map.hpp create mode 100644 src/boost/unordered/unordered_map_fwd.hpp create mode 100644 src/boost/unordered/unordered_set_fwd.hpp create mode 100644 src/boost/utility/addressof.hpp create mode 100644 src/boost/utility/base_from_member.hpp create mode 100644 src/boost/utility/detail/result_of_iterate.hpp create mode 100644 src/boost/utility/detail/result_of_variadic.hpp create mode 100644 src/boost/utility/enable_if.hpp create mode 100644 src/boost/utility/result_of.hpp create mode 100644 src/boost/visit_each.hpp create mode 100644 src/boost/winapi/basic_types.hpp create mode 100644 src/boost/winapi/config.hpp create mode 100644 src/boost/winapi/detail/footer.hpp create mode 100644 src/boost/winapi/detail/header.hpp create mode 100644 src/boost/winapi/directory_management.hpp create mode 100644 src/boost/winapi/dll.hpp create mode 100644 src/boost/winapi/error_codes.hpp create mode 100644 src/boost/winapi/error_handling.hpp create mode 100644 src/boost/winapi/file_management.hpp create mode 100644 src/boost/winapi/file_mapping.hpp create mode 100644 src/boost/winapi/get_current_process.hpp create mode 100644 src/boost/winapi/get_current_process_id.hpp create mode 100644 src/boost/winapi/get_current_thread.hpp create mode 100644 src/boost/winapi/get_current_thread_id.hpp create mode 100644 src/boost/winapi/get_last_error.hpp create mode 100644 src/boost/winapi/get_proc_address.hpp create mode 100644 src/boost/winapi/get_process_times.hpp create mode 100644 src/boost/winapi/get_system_directory.hpp create mode 100644 src/boost/winapi/handles.hpp create mode 100644 src/boost/winapi/limits.hpp create mode 100644 src/boost/winapi/local_memory.hpp create mode 100644 src/boost/winapi/mutex.hpp create mode 100644 src/boost/winapi/overlapped.hpp create mode 100644 src/boost/winapi/security.hpp create mode 100644 src/boost/winapi/semaphore.hpp create mode 100644 src/boost/winapi/system.hpp create mode 100644 src/boost/winapi/thread.hpp create mode 100644 src/boost/winapi/time.hpp create mode 100644 src/boost/winapi/timers.hpp create mode 100644 src/boost/winapi/wait.hpp create mode 100644 src/boost/winapi/wait_constants.hpp diff --git a/src/boost/bind/arg.hpp b/src/boost/bind/arg.hpp new file mode 100644 index 00000000..cb52e668 --- /dev/null +++ b/src/boost/bind/arg.hpp @@ -0,0 +1,69 @@ +#ifndef BOOST_BIND_ARG_HPP_INCLUDED +#define BOOST_BIND_ARG_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// +// bind/arg.hpp +// +// Copyright (c) 2002 Peter Dimov and Multi Media Ltd. +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/bind/bind.html for documentation. +// + +#include +#include + +namespace boost +{ + +template struct _arg_eq +{ +}; + +template<> struct _arg_eq +{ + typedef void type; +}; + +template< int I > struct arg +{ + BOOST_CONSTEXPR arg() + { + } + + template< class T > BOOST_CONSTEXPR arg( T const & /* t */, typename _arg_eq< I == is_placeholder::value >::type * = 0 ) + { + } +}; + +template< int I > BOOST_CONSTEXPR bool operator==( arg const &, arg const & ) +{ + return true; +} + +#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +template< int I > struct is_placeholder< arg > +{ + enum _vt { value = I }; +}; + +template< int I > struct is_placeholder< arg (*) () > +{ + enum _vt { value = I }; +}; + +#endif + +} // namespace boost + +#endif // #ifndef BOOST_BIND_ARG_HPP_INCLUDED diff --git a/src/boost/bind/bind.hpp b/src/boost/bind/bind.hpp new file mode 100644 index 00000000..fd0ee144 --- /dev/null +++ b/src/boost/bind/bind.hpp @@ -0,0 +1,2346 @@ +#ifndef BOOST_BIND_BIND_HPP_INCLUDED +#define BOOST_BIND_BIND_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// +// bind.hpp - binds function objects to arguments +// +// Copyright (c) 2001-2004 Peter Dimov and Multi Media Ltd. +// Copyright (c) 2001 David Abrahams +// Copyright (c) 2005 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/bind/bind.html for documentation. +// + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) +#include // std::forward +#endif + +// Borland-specific bug, visit_each() silently fails to produce code + +#if defined(BOOST_BORLANDC) +# define BOOST_BIND_VISIT_EACH boost::visit_each +#else +# define BOOST_BIND_VISIT_EACH visit_each +#endif + +#include + +#ifdef BOOST_MSVC +# pragma warning(push) +# pragma warning(disable: 4512) // assignment operator could not be generated +#endif + +namespace boost +{ + +template class weak_ptr; + +namespace _bi // implementation details +{ + +// ref_compare + +template bool ref_compare( T const & a, T const & b, long ) +{ + return a == b; +} + +template bool ref_compare( arg const &, arg const &, int ) +{ + return true; +} + +template bool ref_compare( arg (*) (), arg (*) (), int ) +{ + return true; +} + +template bool ref_compare( reference_wrapper const & a, reference_wrapper const & b, int ) +{ + return a.get_pointer() == b.get_pointer(); +} + +// bind_t forward declaration for listN + +template class bind_t; + +template bool ref_compare( bind_t const & a, bind_t const & b, int ) +{ + return a.compare( b ); +} + +// value + +template class value +{ +public: + + value(T const & t): t_(t) {} + + T & get() { return t_; } + T const & get() const { return t_; } + + bool operator==(value const & rhs) const + { + return t_ == rhs.t_; + } + +private: + + T t_; +}; + +// ref_compare for weak_ptr + +template bool ref_compare( value< weak_ptr > const & a, value< weak_ptr > const & b, int ) +{ + return !(a.get() < b.get()) && !(b.get() < a.get()); +} + +// type + +template class type {}; + +// unwrap + +template struct unwrapper +{ + static inline F & unwrap( F & f, long ) + { + return f; + } + + template static inline F2 & unwrap( reference_wrapper rf, int ) + { + return rf.get(); + } + + template static inline _mfi::dm unwrap( R T::* pm, int ) + { + return _mfi::dm( pm ); + } +}; + +// listN + +class list0 +{ +public: + + list0() {} + + template T & operator[] (_bi::value & v) const { return v.get(); } + + template T const & operator[] (_bi::value const & v) const { return v.get(); } + + template T & operator[] (reference_wrapper const & v) const { return v.get(); } + + template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } + + template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } + + template R operator()(type, F & f, A &, long) + { + return unwrapper::unwrap(f, 0)(); + } + + template R operator()(type, F const & f, A &, long) const + { + return unwrapper::unwrap(f, 0)(); + } + + template void operator()(type, F & f, A &, int) + { + unwrapper::unwrap(f, 0)(); + } + + template void operator()(type, F const & f, A &, int) const + { + unwrapper::unwrap(f, 0)(); + } + + template void accept(V &) const + { + } + + bool operator==(list0 const &) const + { + return true; + } +}; + +#ifdef BOOST_MSVC +// MSVC is bright enough to realise that the parameter rhs +// in operator==may be unused for some template argument types: +#pragma warning(push) +#pragma warning(disable:4100) +#endif + +template< class A1 > class list1: private storage1< A1 > +{ +private: + + typedef storage1< A1 > base_type; + +public: + + explicit list1( A1 a1 ): base_type( a1 ) {} + + A1 operator[] (boost::arg<1>) const { return base_type::a1_; } + + A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } + + template T & operator[] ( _bi::value & v ) const { return v.get(); } + + template T const & operator[] ( _bi::value const & v ) const { return v.get(); } + + template T & operator[] (reference_wrapper const & v) const { return v.get(); } + + template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } + + template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } + + template R operator()(type, F & f, A & a, long) + { + return unwrapper::unwrap(f, 0)(a[base_type::a1_]); + } + + template R operator()(type, F const & f, A & a, long) const + { + return unwrapper::unwrap(f, 0)(a[base_type::a1_]); + } + + template void operator()(type, F & f, A & a, int) + { + unwrapper::unwrap(f, 0)(a[base_type::a1_]); + } + + template void operator()(type, F const & f, A & a, int) const + { + unwrapper::unwrap(f, 0)(a[base_type::a1_]); + } + + template void accept(V & v) const + { + base_type::accept(v); + } + + bool operator==(list1 const & rhs) const + { + return ref_compare(base_type::a1_, rhs.a1_, 0); + } +}; + +struct logical_and; +struct logical_or; + +template< class A1, class A2 > class list2: private storage2< A1, A2 > +{ +private: + + typedef storage2< A1, A2 > base_type; + +public: + + list2( A1 a1, A2 a2 ): base_type( a1, a2 ) {} + + A1 operator[] (boost::arg<1>) const { return base_type::a1_; } + A2 operator[] (boost::arg<2>) const { return base_type::a2_; } + + A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } + A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } + + template T & operator[] (_bi::value & v) const { return v.get(); } + + template T const & operator[] (_bi::value const & v) const { return v.get(); } + + template T & operator[] (reference_wrapper const & v) const { return v.get(); } + + template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } + + template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } + + template R operator()(type, F & f, A & a, long) + { + return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]); + } + + template R operator()(type, F const & f, A & a, long) const + { + return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]); + } + + template void operator()(type, F & f, A & a, int) + { + unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]); + } + + template void operator()(type, F const & f, A & a, int) const + { + unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]); + } + + template bool operator()( type, logical_and & /*f*/, A & a, int ) + { + return a[ base_type::a1_ ] && a[ base_type::a2_ ]; + } + + template bool operator()( type, logical_and const & /*f*/, A & a, int ) const + { + return a[ base_type::a1_ ] && a[ base_type::a2_ ]; + } + + template bool operator()( type, logical_or & /*f*/, A & a, int ) + { + return a[ base_type::a1_ ] || a[ base_type::a2_ ]; + } + + template bool operator()( type, logical_or const & /*f*/, A & a, int ) const + { + return a[ base_type::a1_ ] || a[ base_type::a2_ ]; + } + + template void accept(V & v) const + { + base_type::accept(v); + } + + bool operator==(list2 const & rhs) const + { + return ref_compare(base_type::a1_, rhs.a1_, 0) && ref_compare(base_type::a2_, rhs.a2_, 0); + } +}; + +template< class A1, class A2, class A3 > class list3: private storage3< A1, A2, A3 > +{ +private: + + typedef storage3< A1, A2, A3 > base_type; + +public: + + list3( A1 a1, A2 a2, A3 a3 ): base_type( a1, a2, a3 ) {} + + A1 operator[] (boost::arg<1>) const { return base_type::a1_; } + A2 operator[] (boost::arg<2>) const { return base_type::a2_; } + A3 operator[] (boost::arg<3>) const { return base_type::a3_; } + + A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } + A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } + A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } + + template T & operator[] (_bi::value & v) const { return v.get(); } + + template T const & operator[] (_bi::value const & v) const { return v.get(); } + + template T & operator[] (reference_wrapper const & v) const { return v.get(); } + + template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } + + template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } + + template R operator()(type, F & f, A & a, long) + { + return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]); + } + + template R operator()(type, F const & f, A & a, long) const + { + return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]); + } + + template void operator()(type, F & f, A & a, int) + { + unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]); + } + + template void operator()(type, F const & f, A & a, int) const + { + unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]); + } + + template void accept(V & v) const + { + base_type::accept(v); + } + + bool operator==(list3 const & rhs) const + { + return + + ref_compare( base_type::a1_, rhs.a1_, 0 ) && + ref_compare( base_type::a2_, rhs.a2_, 0 ) && + ref_compare( base_type::a3_, rhs.a3_, 0 ); + } +}; + +template< class A1, class A2, class A3, class A4 > class list4: private storage4< A1, A2, A3, A4 > +{ +private: + + typedef storage4< A1, A2, A3, A4 > base_type; + +public: + + list4( A1 a1, A2 a2, A3 a3, A4 a4 ): base_type( a1, a2, a3, a4 ) {} + + A1 operator[] (boost::arg<1>) const { return base_type::a1_; } + A2 operator[] (boost::arg<2>) const { return base_type::a2_; } + A3 operator[] (boost::arg<3>) const { return base_type::a3_; } + A4 operator[] (boost::arg<4>) const { return base_type::a4_; } + + A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } + A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } + A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } + A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } + + template T & operator[] (_bi::value & v) const { return v.get(); } + + template T const & operator[] (_bi::value const & v) const { return v.get(); } + + template T & operator[] (reference_wrapper const & v) const { return v.get(); } + + template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } + + template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } + + template R operator()(type, F & f, A & a, long) + { + return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]); + } + + template R operator()(type, F const & f, A & a, long) const + { + return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]); + } + + template void operator()(type, F & f, A & a, int) + { + unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]); + } + + template void operator()(type, F const & f, A & a, int) const + { + unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]); + } + + template void accept(V & v) const + { + base_type::accept(v); + } + + bool operator==(list4 const & rhs) const + { + return + + ref_compare( base_type::a1_, rhs.a1_, 0 ) && + ref_compare( base_type::a2_, rhs.a2_, 0 ) && + ref_compare( base_type::a3_, rhs.a3_, 0 ) && + ref_compare( base_type::a4_, rhs.a4_, 0 ); + } +}; + +template< class A1, class A2, class A3, class A4, class A5 > class list5: private storage5< A1, A2, A3, A4, A5 > +{ +private: + + typedef storage5< A1, A2, A3, A4, A5 > base_type; + +public: + + list5( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 ): base_type( a1, a2, a3, a4, a5 ) {} + + A1 operator[] (boost::arg<1>) const { return base_type::a1_; } + A2 operator[] (boost::arg<2>) const { return base_type::a2_; } + A3 operator[] (boost::arg<3>) const { return base_type::a3_; } + A4 operator[] (boost::arg<4>) const { return base_type::a4_; } + A5 operator[] (boost::arg<5>) const { return base_type::a5_; } + + A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } + A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } + A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } + A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } + A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; } + + template T & operator[] (_bi::value & v) const { return v.get(); } + + template T const & operator[] (_bi::value const & v) const { return v.get(); } + + template T & operator[] (reference_wrapper const & v) const { return v.get(); } + + template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } + + template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } + + template R operator()(type, F & f, A & a, long) + { + return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]); + } + + template R operator()(type, F const & f, A & a, long) const + { + return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]); + } + + template void operator()(type, F & f, A & a, int) + { + unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]); + } + + template void operator()(type, F const & f, A & a, int) const + { + unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]); + } + + template void accept(V & v) const + { + base_type::accept(v); + } + + bool operator==(list5 const & rhs) const + { + return + + ref_compare( base_type::a1_, rhs.a1_, 0 ) && + ref_compare( base_type::a2_, rhs.a2_, 0 ) && + ref_compare( base_type::a3_, rhs.a3_, 0 ) && + ref_compare( base_type::a4_, rhs.a4_, 0 ) && + ref_compare( base_type::a5_, rhs.a5_, 0 ); + } +}; + +template class list6: private storage6< A1, A2, A3, A4, A5, A6 > +{ +private: + + typedef storage6< A1, A2, A3, A4, A5, A6 > base_type; + +public: + + list6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6 ): base_type( a1, a2, a3, a4, a5, a6 ) {} + + A1 operator[] (boost::arg<1>) const { return base_type::a1_; } + A2 operator[] (boost::arg<2>) const { return base_type::a2_; } + A3 operator[] (boost::arg<3>) const { return base_type::a3_; } + A4 operator[] (boost::arg<4>) const { return base_type::a4_; } + A5 operator[] (boost::arg<5>) const { return base_type::a5_; } + A6 operator[] (boost::arg<6>) const { return base_type::a6_; } + + A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } + A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } + A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } + A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } + A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; } + A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; } + + template T & operator[] (_bi::value & v) const { return v.get(); } + + template T const & operator[] (_bi::value const & v) const { return v.get(); } + + template T & operator[] (reference_wrapper const & v) const { return v.get(); } + + template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } + + template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } + + template R operator()(type, F & f, A & a, long) + { + return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]); + } + + template R operator()(type, F const & f, A & a, long) const + { + return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]); + } + + template void operator()(type, F & f, A & a, int) + { + unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]); + } + + template void operator()(type, F const & f, A & a, int) const + { + unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]); + } + + template void accept(V & v) const + { + base_type::accept(v); + } + + bool operator==(list6 const & rhs) const + { + return + + ref_compare( base_type::a1_, rhs.a1_, 0 ) && + ref_compare( base_type::a2_, rhs.a2_, 0 ) && + ref_compare( base_type::a3_, rhs.a3_, 0 ) && + ref_compare( base_type::a4_, rhs.a4_, 0 ) && + ref_compare( base_type::a5_, rhs.a5_, 0 ) && + ref_compare( base_type::a6_, rhs.a6_, 0 ); + } +}; + +template class list7: private storage7< A1, A2, A3, A4, A5, A6, A7 > +{ +private: + + typedef storage7< A1, A2, A3, A4, A5, A6, A7 > base_type; + +public: + + list7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7 ): base_type( a1, a2, a3, a4, a5, a6, a7 ) {} + + A1 operator[] (boost::arg<1>) const { return base_type::a1_; } + A2 operator[] (boost::arg<2>) const { return base_type::a2_; } + A3 operator[] (boost::arg<3>) const { return base_type::a3_; } + A4 operator[] (boost::arg<4>) const { return base_type::a4_; } + A5 operator[] (boost::arg<5>) const { return base_type::a5_; } + A6 operator[] (boost::arg<6>) const { return base_type::a6_; } + A7 operator[] (boost::arg<7>) const { return base_type::a7_; } + + A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } + A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } + A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } + A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } + A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; } + A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; } + A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; } + + template T & operator[] (_bi::value & v) const { return v.get(); } + + template T const & operator[] (_bi::value const & v) const { return v.get(); } + + template T & operator[] (reference_wrapper const & v) const { return v.get(); } + + template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } + + template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } + + template R operator()(type, F & f, A & a, long) + { + return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]); + } + + template R operator()(type, F const & f, A & a, long) const + { + return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]); + } + + template void operator()(type, F & f, A & a, int) + { + unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]); + } + + template void operator()(type, F const & f, A & a, int) const + { + unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]); + } + + template void accept(V & v) const + { + base_type::accept(v); + } + + bool operator==(list7 const & rhs) const + { + return + + ref_compare( base_type::a1_, rhs.a1_, 0 ) && + ref_compare( base_type::a2_, rhs.a2_, 0 ) && + ref_compare( base_type::a3_, rhs.a3_, 0 ) && + ref_compare( base_type::a4_, rhs.a4_, 0 ) && + ref_compare( base_type::a5_, rhs.a5_, 0 ) && + ref_compare( base_type::a6_, rhs.a6_, 0 ) && + ref_compare( base_type::a7_, rhs.a7_, 0 ); + } +}; + +template< class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > class list8: private storage8< A1, A2, A3, A4, A5, A6, A7, A8 > +{ +private: + + typedef storage8< A1, A2, A3, A4, A5, A6, A7, A8 > base_type; + +public: + + list8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8 ) {} + + A1 operator[] (boost::arg<1>) const { return base_type::a1_; } + A2 operator[] (boost::arg<2>) const { return base_type::a2_; } + A3 operator[] (boost::arg<3>) const { return base_type::a3_; } + A4 operator[] (boost::arg<4>) const { return base_type::a4_; } + A5 operator[] (boost::arg<5>) const { return base_type::a5_; } + A6 operator[] (boost::arg<6>) const { return base_type::a6_; } + A7 operator[] (boost::arg<7>) const { return base_type::a7_; } + A8 operator[] (boost::arg<8>) const { return base_type::a8_; } + + A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } + A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } + A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } + A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } + A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; } + A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; } + A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; } + A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; } + + template T & operator[] (_bi::value & v) const { return v.get(); } + + template T const & operator[] (_bi::value const & v) const { return v.get(); } + + template T & operator[] (reference_wrapper const & v) const { return v.get(); } + + template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } + + template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } + + template R operator()(type, F & f, A & a, long) + { + return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]); + } + + template R operator()(type, F const & f, A & a, long) const + { + return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]); + } + + template void operator()(type, F & f, A & a, int) + { + unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]); + } + + template void operator()(type, F const & f, A & a, int) const + { + unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]); + } + + template void accept(V & v) const + { + base_type::accept(v); + } + + bool operator==(list8 const & rhs) const + { + return + + ref_compare( base_type::a1_, rhs.a1_, 0 ) && + ref_compare( base_type::a2_, rhs.a2_, 0 ) && + ref_compare( base_type::a3_, rhs.a3_, 0 ) && + ref_compare( base_type::a4_, rhs.a4_, 0 ) && + ref_compare( base_type::a5_, rhs.a5_, 0 ) && + ref_compare( base_type::a6_, rhs.a6_, 0 ) && + ref_compare( base_type::a7_, rhs.a7_, 0 ) && + ref_compare( base_type::a8_, rhs.a8_, 0 ); + } +}; + +template class list9: private storage9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > +{ +private: + + typedef storage9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > base_type; + +public: + + list9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) {} + + A1 operator[] (boost::arg<1>) const { return base_type::a1_; } + A2 operator[] (boost::arg<2>) const { return base_type::a2_; } + A3 operator[] (boost::arg<3>) const { return base_type::a3_; } + A4 operator[] (boost::arg<4>) const { return base_type::a4_; } + A5 operator[] (boost::arg<5>) const { return base_type::a5_; } + A6 operator[] (boost::arg<6>) const { return base_type::a6_; } + A7 operator[] (boost::arg<7>) const { return base_type::a7_; } + A8 operator[] (boost::arg<8>) const { return base_type::a8_; } + A9 operator[] (boost::arg<9>) const { return base_type::a9_; } + + A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } + A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } + A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } + A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } + A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; } + A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; } + A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; } + A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; } + A9 operator[] (boost::arg<9> (*) ()) const { return base_type::a9_; } + + template T & operator[] (_bi::value & v) const { return v.get(); } + + template T const & operator[] (_bi::value const & v) const { return v.get(); } + + template T & operator[] (reference_wrapper const & v) const { return v.get(); } + + template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } + + template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } + + template R operator()(type, F & f, A & a, long) + { + return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]); + } + + template R operator()(type, F const & f, A & a, long) const + { + return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]); + } + + template void operator()(type, F & f, A & a, int) + { + unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]); + } + + template void operator()(type, F const & f, A & a, int) const + { + unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]); + } + + template void accept(V & v) const + { + base_type::accept(v); + } + + bool operator==(list9 const & rhs) const + { + return + + ref_compare( base_type::a1_, rhs.a1_, 0 ) && + ref_compare( base_type::a2_, rhs.a2_, 0 ) && + ref_compare( base_type::a3_, rhs.a3_, 0 ) && + ref_compare( base_type::a4_, rhs.a4_, 0 ) && + ref_compare( base_type::a5_, rhs.a5_, 0 ) && + ref_compare( base_type::a6_, rhs.a6_, 0 ) && + ref_compare( base_type::a7_, rhs.a7_, 0 ) && + ref_compare( base_type::a8_, rhs.a8_, 0 ) && + ref_compare( base_type::a9_, rhs.a9_, 0 ); + } +}; + +#ifdef BOOST_MSVC +#pragma warning(pop) +#endif + +// bind_t + +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !(defined(BOOST_GCC) && BOOST_GCC < 40600) + +template< class A1 > class rrlist1 +{ +private: + + A1 & a1_; // not A1&& because of msvc-10.0 + +public: + + explicit rrlist1( A1 & a1 ): a1_( a1 ) {} + + A1 && operator[] (boost::arg<1>) const { return std::forward( a1_ ); } // not static_cast because of g++ 4.9 + + A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward( a1_ ); } + + template T & operator[] ( _bi::value & v ) const { return v.get(); } + + template T const & operator[] ( _bi::value const & v ) const { return v.get(); } + + template T & operator[] (reference_wrapper const & v) const { return v.get(); } + + template typename result_traits::type operator[] (bind_t & b) const + { + rrlist1 a( a1_ ); + return b.eval( a ); + } + + template typename result_traits::type operator[] (bind_t const & b) const + { + rrlist1 a( a1_ ); + return b.eval( a ); + } +}; + +template< class A1, class A2 > class rrlist2 +{ +private: + + A1 & a1_; + A2 & a2_; + +public: + + rrlist2( A1 & a1, A2 & a2 ): a1_( a1 ), a2_( a2 ) {} + + A1 && operator[] (boost::arg<1>) const { return std::forward( a1_ ); } + A2 && operator[] (boost::arg<2>) const { return std::forward( a2_ ); } + + A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward( a1_ ); } + A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward( a2_ ); } + + template T & operator[] ( _bi::value & v ) const { return v.get(); } + + template T const & operator[] ( _bi::value const & v ) const { return v.get(); } + + template T & operator[] (reference_wrapper const & v) const { return v.get(); } + + template typename result_traits::type operator[] (bind_t & b) const + { + rrlist2 a( a1_, a2_ ); + return b.eval( a ); + } + + template typename result_traits::type operator[] (bind_t const & b) const + { + rrlist2 a( a1_, a2_ ); + return b.eval( a ); + } +}; + +template< class A1, class A2, class A3 > class rrlist3 +{ +private: + + A1 & a1_; + A2 & a2_; + A3 & a3_; + +public: + + rrlist3( A1 & a1, A2 & a2, A3 & a3 ): a1_( a1 ), a2_( a2 ), a3_( a3 ) {} + + A1 && operator[] (boost::arg<1>) const { return std::forward( a1_ ); } + A2 && operator[] (boost::arg<2>) const { return std::forward( a2_ ); } + A3 && operator[] (boost::arg<3>) const { return std::forward( a3_ ); } + + A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward( a1_ ); } + A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward( a2_ ); } + A3 && operator[] (boost::arg<3> (*) ()) const { return std::forward( a3_ ); } + + template T & operator[] ( _bi::value & v ) const { return v.get(); } + + template T const & operator[] ( _bi::value const & v ) const { return v.get(); } + + template T & operator[] (reference_wrapper const & v) const { return v.get(); } + + template typename result_traits::type operator[] (bind_t & b) const + { + rrlist3 a( a1_, a2_, a3_ ); + return b.eval( a ); + } + + template typename result_traits::type operator[] (bind_t const & b) const + { + rrlist3 a( a1_, a2_, a3_ ); + return b.eval( a ); + } +}; + +template< class A1, class A2, class A3, class A4 > class rrlist4 +{ +private: + + A1 & a1_; + A2 & a2_; + A3 & a3_; + A4 & a4_; + +public: + + rrlist4( A1 & a1, A2 & a2, A3 & a3, A4 & a4 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ) {} + + A1 && operator[] (boost::arg<1>) const { return std::forward( a1_ ); } + A2 && operator[] (boost::arg<2>) const { return std::forward( a2_ ); } + A3 && operator[] (boost::arg<3>) const { return std::forward( a3_ ); } + A4 && operator[] (boost::arg<4>) const { return std::forward( a4_ ); } + + A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward( a1_ ); } + A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward( a2_ ); } + A3 && operator[] (boost::arg<3> (*) ()) const { return std::forward( a3_ ); } + A4 && operator[] (boost::arg<4> (*) ()) const { return std::forward( a4_ ); } + + template T & operator[] ( _bi::value & v ) const { return v.get(); } + + template T const & operator[] ( _bi::value const & v ) const { return v.get(); } + + template T & operator[] (reference_wrapper const & v) const { return v.get(); } + + template typename result_traits::type operator[] (bind_t & b) const + { + rrlist4 a( a1_, a2_, a3_, a4_ ); + return b.eval( a ); + } + + template typename result_traits::type operator[] (bind_t const & b) const + { + rrlist4 a( a1_, a2_, a3_, a4_ ); + return b.eval( a ); + } +}; + +template< class A1, class A2, class A3, class A4, class A5 > class rrlist5 +{ +private: + + A1 & a1_; + A2 & a2_; + A3 & a3_; + A4 & a4_; + A5 & a5_; + +public: + + rrlist5( A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ), a5_( a5 ) {} + + A1 && operator[] (boost::arg<1>) const { return std::forward( a1_ ); } + A2 && operator[] (boost::arg<2>) const { return std::forward( a2_ ); } + A3 && operator[] (boost::arg<3>) const { return std::forward( a3_ ); } + A4 && operator[] (boost::arg<4>) const { return std::forward( a4_ ); } + A5 && operator[] (boost::arg<5>) const { return std::forward( a5_ ); } + + A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward( a1_ ); } + A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward( a2_ ); } + A3 && operator[] (boost::arg<3> (*) ()) const { return std::forward( a3_ ); } + A4 && operator[] (boost::arg<4> (*) ()) const { return std::forward( a4_ ); } + A5 && operator[] (boost::arg<5> (*) ()) const { return std::forward( a5_ ); } + + template T & operator[] ( _bi::value & v ) const { return v.get(); } + + template T const & operator[] ( _bi::value const & v ) const { return v.get(); } + + template T & operator[] (reference_wrapper const & v) const { return v.get(); } + + template typename result_traits::type operator[] (bind_t & b) const + { + rrlist5 a( a1_, a2_, a3_, a4_, a5_ ); + return b.eval( a ); + } + + template typename result_traits::type operator[] (bind_t const & b) const + { + rrlist5 a( a1_, a2_, a3_, a4_, a5_ ); + return b.eval( a ); + } +}; + +template< class A1, class A2, class A3, class A4, class A5, class A6 > class rrlist6 +{ +private: + + A1 & a1_; + A2 & a2_; + A3 & a3_; + A4 & a4_; + A5 & a5_; + A6 & a6_; + +public: + + rrlist6( A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ), a5_( a5 ), a6_( a6 ) {} + + A1 && operator[] (boost::arg<1>) const { return std::forward( a1_ ); } + A2 && operator[] (boost::arg<2>) const { return std::forward( a2_ ); } + A3 && operator[] (boost::arg<3>) const { return std::forward( a3_ ); } + A4 && operator[] (boost::arg<4>) const { return std::forward( a4_ ); } + A5 && operator[] (boost::arg<5>) const { return std::forward( a5_ ); } + A6 && operator[] (boost::arg<6>) const { return std::forward( a6_ ); } + + A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward( a1_ ); } + A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward( a2_ ); } + A3 && operator[] (boost::arg<3> (*) ()) const { return std::forward( a3_ ); } + A4 && operator[] (boost::arg<4> (*) ()) const { return std::forward( a4_ ); } + A5 && operator[] (boost::arg<5> (*) ()) const { return std::forward( a5_ ); } + A6 && operator[] (boost::arg<6> (*) ()) const { return std::forward( a6_ ); } + + template T & operator[] ( _bi::value & v ) const { return v.get(); } + + template T const & operator[] ( _bi::value const & v ) const { return v.get(); } + + template T & operator[] (reference_wrapper const & v) const { return v.get(); } + + template typename result_traits::type operator[] (bind_t & b) const + { + rrlist6 a( a1_, a2_, a3_, a4_, a5_, a6_ ); + return b.eval( a ); + } + + template typename result_traits::type operator[] (bind_t const & b) const + { + rrlist6 a( a1_, a2_, a3_, a4_, a5_, a6_ ); + return b.eval( a ); + } +}; + +template< class A1, class A2, class A3, class A4, class A5, class A6, class A7 > class rrlist7 +{ +private: + + A1 & a1_; + A2 & a2_; + A3 & a3_; + A4 & a4_; + A5 & a5_; + A6 & a6_; + A7 & a7_; + +public: + + rrlist7( A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ), a5_( a5 ), a6_( a6 ), a7_( a7 ) {} + + A1 && operator[] (boost::arg<1>) const { return std::forward( a1_ ); } + A2 && operator[] (boost::arg<2>) const { return std::forward( a2_ ); } + A3 && operator[] (boost::arg<3>) const { return std::forward( a3_ ); } + A4 && operator[] (boost::arg<4>) const { return std::forward( a4_ ); } + A5 && operator[] (boost::arg<5>) const { return std::forward( a5_ ); } + A6 && operator[] (boost::arg<6>) const { return std::forward( a6_ ); } + A7 && operator[] (boost::arg<7>) const { return std::forward( a7_ ); } + + A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward( a1_ ); } + A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward( a2_ ); } + A3 && operator[] (boost::arg<3> (*) ()) const { return std::forward( a3_ ); } + A4 && operator[] (boost::arg<4> (*) ()) const { return std::forward( a4_ ); } + A5 && operator[] (boost::arg<5> (*) ()) const { return std::forward( a5_ ); } + A6 && operator[] (boost::arg<6> (*) ()) const { return std::forward( a6_ ); } + A7 && operator[] (boost::arg<7> (*) ()) const { return std::forward( a7_ ); } + + template T & operator[] ( _bi::value & v ) const { return v.get(); } + + template T const & operator[] ( _bi::value const & v ) const { return v.get(); } + + template T & operator[] (reference_wrapper const & v) const { return v.get(); } + + template typename result_traits::type operator[] (bind_t & b) const + { + rrlist7 a( a1_, a2_, a3_, a4_, a5_, a6_, a7_ ); + return b.eval( a ); + } + + template typename result_traits::type operator[] (bind_t const & b) const + { + rrlist7 a( a1_, a2_, a3_, a4_, a5_, a6_, a7_ ); + return b.eval( a ); + } +}; + +template< class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > class rrlist8 +{ +private: + + A1 & a1_; + A2 & a2_; + A3 & a3_; + A4 & a4_; + A5 & a5_; + A6 & a6_; + A7 & a7_; + A8 & a8_; + +public: + + rrlist8( A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ), a5_( a5 ), a6_( a6 ), a7_( a7 ), a8_( a8 ) {} + + A1 && operator[] (boost::arg<1>) const { return std::forward( a1_ ); } + A2 && operator[] (boost::arg<2>) const { return std::forward( a2_ ); } + A3 && operator[] (boost::arg<3>) const { return std::forward( a3_ ); } + A4 && operator[] (boost::arg<4>) const { return std::forward( a4_ ); } + A5 && operator[] (boost::arg<5>) const { return std::forward( a5_ ); } + A6 && operator[] (boost::arg<6>) const { return std::forward( a6_ ); } + A7 && operator[] (boost::arg<7>) const { return std::forward( a7_ ); } + A8 && operator[] (boost::arg<8>) const { return std::forward( a8_ ); } + + A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward( a1_ ); } + A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward( a2_ ); } + A3 && operator[] (boost::arg<3> (*) ()) const { return std::forward( a3_ ); } + A4 && operator[] (boost::arg<4> (*) ()) const { return std::forward( a4_ ); } + A5 && operator[] (boost::arg<5> (*) ()) const { return std::forward( a5_ ); } + A6 && operator[] (boost::arg<6> (*) ()) const { return std::forward( a6_ ); } + A7 && operator[] (boost::arg<7> (*) ()) const { return std::forward( a7_ ); } + A8 && operator[] (boost::arg<8> (*) ()) const { return std::forward( a8_ ); } + + template T & operator[] ( _bi::value & v ) const { return v.get(); } + + template T const & operator[] ( _bi::value const & v ) const { return v.get(); } + + template T & operator[] (reference_wrapper const & v) const { return v.get(); } + + template typename result_traits::type operator[] (bind_t & b) const + { + rrlist8 a( a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_ ); + return b.eval( a ); + } + + template typename result_traits::type operator[] (bind_t const & b) const + { + rrlist8 a( a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_ ); + return b.eval( a ); + } +}; + +template< class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 > class rrlist9 +{ +private: + + A1 & a1_; + A2 & a2_; + A3 & a3_; + A4 & a4_; + A5 & a5_; + A6 & a6_; + A7 & a7_; + A8 & a8_; + A9 & a9_; + +public: + + rrlist9( A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ), a5_( a5 ), a6_( a6 ), a7_( a7 ), a8_( a8 ), a9_( a9 ) {} + + A1 && operator[] (boost::arg<1>) const { return std::forward( a1_ ); } + A2 && operator[] (boost::arg<2>) const { return std::forward( a2_ ); } + A3 && operator[] (boost::arg<3>) const { return std::forward( a3_ ); } + A4 && operator[] (boost::arg<4>) const { return std::forward( a4_ ); } + A5 && operator[] (boost::arg<5>) const { return std::forward( a5_ ); } + A6 && operator[] (boost::arg<6>) const { return std::forward( a6_ ); } + A7 && operator[] (boost::arg<7>) const { return std::forward( a7_ ); } + A8 && operator[] (boost::arg<8>) const { return std::forward( a8_ ); } + A9 && operator[] (boost::arg<9>) const { return std::forward( a9_ ); } + + A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward( a1_ ); } + A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward( a2_ ); } + A3 && operator[] (boost::arg<3> (*) ()) const { return std::forward( a3_ ); } + A4 && operator[] (boost::arg<4> (*) ()) const { return std::forward( a4_ ); } + A5 && operator[] (boost::arg<5> (*) ()) const { return std::forward( a5_ ); } + A6 && operator[] (boost::arg<6> (*) ()) const { return std::forward( a6_ ); } + A7 && operator[] (boost::arg<7> (*) ()) const { return std::forward( a7_ ); } + A8 && operator[] (boost::arg<8> (*) ()) const { return std::forward( a8_ ); } + A9 && operator[] (boost::arg<9> (*) ()) const { return std::forward( a9_ ); } + + template T & operator[] ( _bi::value & v ) const { return v.get(); } + + template T const & operator[] ( _bi::value const & v ) const { return v.get(); } + + template T & operator[] (reference_wrapper const & v) const { return v.get(); } + + template typename result_traits::type operator[] (bind_t & b) const + { + rrlist9 a( a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_ ); + return b.eval( a ); + } + + template typename result_traits::type operator[] (bind_t const & b) const + { + rrlist9 a( a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_ ); + return b.eval( a ); + } +}; + +template class bind_t +{ +private: + + F f_; + L l_; + +public: + + typedef typename result_traits::type result_type; + typedef bind_t this_type; + + bind_t( F f, L const & l ): f_( f ), l_( l ) {} + + // + + result_type operator()() + { + list0 a; + return l_( type(), f_, a, 0 ); + } + + result_type operator()() const + { + list0 a; + return l_( type(), f_, a, 0 ); + } + + template result_type operator()( A1 && a1 ) + { + rrlist1< A1 > a( a1 ); + return l_( type(), f_, a, 0 ); + } + + template result_type operator()( A1 && a1 ) const + { + rrlist1< A1 > a( a1 ); + return l_(type(), f_, a, 0); + } + + template result_type operator()( A1 && a1, A2 && a2 ) + { + rrlist2< A1, A2 > a( a1, a2 ); + return l_( type(), f_, a, 0 ); + } + + template result_type operator()( A1 && a1, A2 && a2 ) const + { + rrlist2< A1, A2 > a( a1, a2 ); + return l_( type(), f_, a, 0 ); + } + + template result_type operator()( A1 && a1, A2 && a2, A3 && a3 ) + { + rrlist3< A1, A2, A3 > a( a1, a2, a3 ); + return l_( type(), f_, a, 0 ); + } + + template result_type operator()( A1 && a1, A2 && a2, A3 && a3 ) const + { + rrlist3< A1, A2, A3 > a( a1, a2, a3 ); + return l_( type(), f_, a, 0 ); + } + + template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4 ) + { + rrlist4< A1, A2, A3, A4 > a( a1, a2, a3, a4 ); + return l_( type(), f_, a, 0 ); + } + + template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4 ) const + { + rrlist4< A1, A2, A3, A4 > a( a1, a2, a3, a4 ); + return l_( type(), f_, a, 0 ); + } + + template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5 ) + { + rrlist5< A1, A2, A3, A4, A5 > a( a1, a2, a3, a4, a5 ); + return l_( type(), f_, a, 0 ); + } + + template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5 ) const + { + rrlist5< A1, A2, A3, A4, A5 > a( a1, a2, a3, a4, a5 ); + return l_( type(), f_, a, 0 ); + } + + template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6 ) + { + rrlist6< A1, A2, A3, A4, A5, A6 > a( a1, a2, a3, a4, a5, a6 ); + return l_( type(), f_, a, 0 ); + } + + template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6 ) const + { + rrlist6< A1, A2, A3, A4, A5, A6 > a( a1, a2, a3, a4, a5, a6 ); + return l_( type(), f_, a, 0 ); + } + + template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7 ) + { + rrlist7< A1, A2, A3, A4, A5, A6, A7 > a( a1, a2, a3, a4, a5, a6, a7 ); + return l_( type(), f_, a, 0 ); + } + + template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7 ) const + { + rrlist7< A1, A2, A3, A4, A5, A6, A7 > a( a1, a2, a3, a4, a5, a6, a7 ); + return l_( type(), f_, a, 0 ); + } + + template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8 ) + { + rrlist8< A1, A2, A3, A4, A5, A6, A7, A8 > a( a1, a2, a3, a4, a5, a6, a7, a8 ); + return l_( type(), f_, a, 0 ); + } + + template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8 ) const + { + rrlist8< A1, A2, A3, A4, A5, A6, A7, A8 > a( a1, a2, a3, a4, a5, a6, a7, a8 ); + return l_( type(), f_, a, 0 ); + } + + template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8, A9 && a9 ) + { + rrlist9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > a( a1, a2, a3, a4, a5, a6, a7, a8, a9 ); + return l_( type(), f_, a, 0 ); + } + + template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8, A9 && a9 ) const + { + rrlist9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > a( a1, a2, a3, a4, a5, a6, a7, a8, a9 ); + return l_( type(), f_, a, 0 ); + } + + // + + template result_type eval( A & a ) + { + return l_( type(), f_, a, 0 ); + } + + template result_type eval( A & a ) const + { + return l_( type(), f_, a, 0 ); + } + + template void accept( V & v ) const + { +#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( BOOST_BORLANDC ) + using boost::visit_each; +#endif + + BOOST_BIND_VISIT_EACH( v, f_, 0 ); + l_.accept( v ); + } + + bool compare( this_type const & rhs ) const + { + return ref_compare( f_, rhs.f_, 0 ) && l_ == rhs.l_; + } +}; + +#elif !defined( BOOST_NO_VOID_RETURNS ) + +template class bind_t +{ +public: + + typedef bind_t this_type; + + bind_t(F f, L const & l): f_(f), l_(l) {} + +#define BOOST_BIND_RETURN return +#include +#undef BOOST_BIND_RETURN + +}; + +#else // no void returns + +template struct bind_t_generator +{ + +template class implementation +{ +public: + + typedef implementation this_type; + + implementation(F f, L const & l): f_(f), l_(l) {} + +#define BOOST_BIND_RETURN return +#include +#undef BOOST_BIND_RETURN + +}; + +}; + +template<> struct bind_t_generator +{ + +template class implementation +{ +private: + + typedef void R; + +public: + + typedef implementation this_type; + + implementation(F f, L const & l): f_(f), l_(l) {} + +#define BOOST_BIND_RETURN +#include +#undef BOOST_BIND_RETURN + +}; + +}; + +template class bind_t: public bind_t_generator::BOOST_NESTED_TEMPLATE implementation +{ +public: + + bind_t(F f, L const & l): bind_t_generator::BOOST_NESTED_TEMPLATE implementation(f, l) {} + +}; + +#endif + +// function_equal + +#ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP + +// put overloads in _bi, rely on ADL + +# ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING + +template bool function_equal( bind_t const & a, bind_t const & b ) +{ + return a.compare(b); +} + +# else + +template bool function_equal_impl( bind_t const & a, bind_t const & b, int ) +{ + return a.compare(b); +} + +# endif // #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING + +#else // BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP + +// put overloads in boost + +} // namespace _bi + +# ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING + +template bool function_equal( _bi::bind_t const & a, _bi::bind_t const & b ) +{ + return a.compare(b); +} + +# else + +template bool function_equal_impl( _bi::bind_t const & a, _bi::bind_t const & b, int ) +{ + return a.compare(b); +} + +# endif // #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING + +namespace _bi +{ + +#endif // BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP + +// add_value + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || (__SUNPRO_CC >= 0x530) + +#if defined( BOOST_BORLANDC ) && BOOST_WORKAROUND( BOOST_BORLANDC, BOOST_TESTED_AT(0x582) ) + +template struct add_value +{ + typedef _bi::value type; +}; + +#else + +template< class T, int I > struct add_value_2 +{ + typedef boost::arg type; +}; + +template< class T > struct add_value_2< T, 0 > +{ + typedef _bi::value< T > type; +}; + +template struct add_value +{ + typedef typename add_value_2< T, boost::is_placeholder< T >::value >::type type; +}; + +#endif + +template struct add_value< value > +{ + typedef _bi::value type; +}; + +template struct add_value< reference_wrapper > +{ + typedef reference_wrapper type; +}; + +template struct add_value< arg > +{ + typedef boost::arg type; +}; + +template struct add_value< arg (*) () > +{ + typedef boost::arg (*type) (); +}; + +template struct add_value< bind_t > +{ + typedef bind_t type; +}; + +#else + +template struct _avt_0; + +template<> struct _avt_0<1> +{ + template struct inner + { + typedef T type; + }; +}; + +template<> struct _avt_0<2> +{ + template struct inner + { + typedef value type; + }; +}; + +typedef char (&_avt_r1) [1]; +typedef char (&_avt_r2) [2]; + +template _avt_r1 _avt_f(value); +template _avt_r1 _avt_f(reference_wrapper); +template _avt_r1 _avt_f(arg); +template _avt_r1 _avt_f(arg (*) ()); +template _avt_r1 _avt_f(bind_t); + +_avt_r2 _avt_f(...); + +template struct add_value +{ + static T t(); + typedef typename _avt_0::template inner::type type; +}; + +#endif + +// list_av_N + +template struct list_av_1 +{ + typedef typename add_value::type B1; + typedef list1 type; +}; + +template struct list_av_2 +{ + typedef typename add_value::type B1; + typedef typename add_value::type B2; + typedef list2 type; +}; + +template struct list_av_3 +{ + typedef typename add_value::type B1; + typedef typename add_value::type B2; + typedef typename add_value::type B3; + typedef list3 type; +}; + +template struct list_av_4 +{ + typedef typename add_value::type B1; + typedef typename add_value::type B2; + typedef typename add_value::type B3; + typedef typename add_value::type B4; + typedef list4 type; +}; + +template struct list_av_5 +{ + typedef typename add_value::type B1; + typedef typename add_value::type B2; + typedef typename add_value::type B3; + typedef typename add_value::type B4; + typedef typename add_value::type B5; + typedef list5 type; +}; + +template struct list_av_6 +{ + typedef typename add_value::type B1; + typedef typename add_value::type B2; + typedef typename add_value::type B3; + typedef typename add_value::type B4; + typedef typename add_value::type B5; + typedef typename add_value::type B6; + typedef list6 type; +}; + +template struct list_av_7 +{ + typedef typename add_value::type B1; + typedef typename add_value::type B2; + typedef typename add_value::type B3; + typedef typename add_value::type B4; + typedef typename add_value::type B5; + typedef typename add_value::type B6; + typedef typename add_value::type B7; + typedef list7 type; +}; + +template struct list_av_8 +{ + typedef typename add_value::type B1; + typedef typename add_value::type B2; + typedef typename add_value::type B3; + typedef typename add_value::type B4; + typedef typename add_value::type B5; + typedef typename add_value::type B6; + typedef typename add_value::type B7; + typedef typename add_value::type B8; + typedef list8 type; +}; + +template struct list_av_9 +{ + typedef typename add_value::type B1; + typedef typename add_value::type B2; + typedef typename add_value::type B3; + typedef typename add_value::type B4; + typedef typename add_value::type B5; + typedef typename add_value::type B6; + typedef typename add_value::type B7; + typedef typename add_value::type B8; + typedef typename add_value::type B9; + typedef list9 type; +}; + +// operator! + +struct logical_not +{ + template bool operator()(V const & v) const { return !v; } +}; + +template + bind_t< bool, logical_not, list1< bind_t > > + operator! (bind_t const & f) +{ + typedef list1< bind_t > list_type; + return bind_t ( logical_not(), list_type(f) ); +} + +// relational operators + +#define BOOST_BIND_OPERATOR( op, name ) \ +\ +struct name \ +{ \ + template bool operator()(V const & v, W const & w) const { return v op w; } \ +}; \ + \ +template \ + bind_t< bool, name, list2< bind_t, typename add_value::type > > \ + operator op (bind_t const & f, A2 a2) \ +{ \ + typedef typename add_value::type B2; \ + typedef list2< bind_t, B2> list_type; \ + return bind_t ( name(), list_type(f, a2) ); \ +} + +BOOST_BIND_OPERATOR( ==, equal ) +BOOST_BIND_OPERATOR( !=, not_equal ) + +BOOST_BIND_OPERATOR( <, less ) +BOOST_BIND_OPERATOR( <=, less_equal ) + +BOOST_BIND_OPERATOR( >, greater ) +BOOST_BIND_OPERATOR( >=, greater_equal ) + +BOOST_BIND_OPERATOR( &&, logical_and ) +BOOST_BIND_OPERATOR( ||, logical_or ) + +#undef BOOST_BIND_OPERATOR + +#if defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3) + +// resolve ambiguity with rel_ops + +#define BOOST_BIND_OPERATOR( op, name ) \ +\ +template \ + bind_t< bool, name, list2< bind_t, bind_t > > \ + operator op (bind_t const & f, bind_t const & g) \ +{ \ + typedef list2< bind_t, bind_t > list_type; \ + return bind_t ( name(), list_type(f, g) ); \ +} + +BOOST_BIND_OPERATOR( !=, not_equal ) +BOOST_BIND_OPERATOR( <=, less_equal ) +BOOST_BIND_OPERATOR( >, greater ) +BOOST_BIND_OPERATOR( >=, greater_equal ) + +#endif + +// visit_each, ADL + +#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( BOOST_BORLANDC ) \ + && !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3) + +template void visit_each( V & v, value const & t, int ) +{ + using boost::visit_each; + BOOST_BIND_VISIT_EACH( v, t.get(), 0 ); +} + +template void visit_each( V & v, bind_t const & t, int ) +{ + t.accept( v ); +} + +#endif + +} // namespace _bi + +// visit_each, no ADL + +#if defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) || defined( BOOST_BORLANDC ) \ + || (defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3) + +template void visit_each( V & v, _bi::value const & t, int ) +{ + BOOST_BIND_VISIT_EACH( v, t.get(), 0 ); +} + +template void visit_each( V & v, _bi::bind_t const & t, int ) +{ + t.accept( v ); +} + +#endif + +// is_bind_expression + +template< class T > struct is_bind_expression +{ + enum _vt { value = 0 }; +}; + +#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +template< class R, class F, class L > struct is_bind_expression< _bi::bind_t< R, F, L > > +{ + enum _vt { value = 1 }; +}; + +#endif + +// bind + +#ifndef BOOST_BIND +#define BOOST_BIND bind +#endif + +// generic function objects + +template + _bi::bind_t + BOOST_BIND(F f) +{ + typedef _bi::list0 list_type; + return _bi::bind_t (f, list_type()); +} + +template + _bi::bind_t::type> + BOOST_BIND(F f, A1 a1) +{ + typedef typename _bi::list_av_1::type list_type; + return _bi::bind_t (f, list_type(a1)); +} + +template + _bi::bind_t::type> + BOOST_BIND(F f, A1 a1, A2 a2) +{ + typedef typename _bi::list_av_2::type list_type; + return _bi::bind_t (f, list_type(a1, a2)); +} + +template + _bi::bind_t::type> + BOOST_BIND(F f, A1 a1, A2 a2, A3 a3) +{ + typedef typename _bi::list_av_3::type list_type; + return _bi::bind_t(f, list_type(a1, a2, a3)); +} + +template + _bi::bind_t::type> + BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4) +{ + typedef typename _bi::list_av_4::type list_type; + return _bi::bind_t(f, list_type(a1, a2, a3, a4)); +} + +template + _bi::bind_t::type> + BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) +{ + typedef typename _bi::list_av_5::type list_type; + return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5)); +} + +template + _bi::bind_t::type> + BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) +{ + typedef typename _bi::list_av_6::type list_type; + return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6)); +} + +template + _bi::bind_t::type> + BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) +{ + typedef typename _bi::list_av_7::type list_type; + return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7)); +} + +template + _bi::bind_t::type> + BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) +{ + typedef typename _bi::list_av_8::type list_type; + return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8)); +} + +template + _bi::bind_t::type> + BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) +{ + typedef typename _bi::list_av_9::type list_type; + return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); +} + +// generic function objects, alternative syntax + +template + _bi::bind_t + BOOST_BIND(boost::type, F f) +{ + typedef _bi::list0 list_type; + return _bi::bind_t (f, list_type()); +} + +template + _bi::bind_t::type> + BOOST_BIND(boost::type, F f, A1 a1) +{ + typedef typename _bi::list_av_1::type list_type; + return _bi::bind_t (f, list_type(a1)); +} + +template + _bi::bind_t::type> + BOOST_BIND(boost::type, F f, A1 a1, A2 a2) +{ + typedef typename _bi::list_av_2::type list_type; + return _bi::bind_t (f, list_type(a1, a2)); +} + +template + _bi::bind_t::type> + BOOST_BIND(boost::type, F f, A1 a1, A2 a2, A3 a3) +{ + typedef typename _bi::list_av_3::type list_type; + return _bi::bind_t(f, list_type(a1, a2, a3)); +} + +template + _bi::bind_t::type> + BOOST_BIND(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4) +{ + typedef typename _bi::list_av_4::type list_type; + return _bi::bind_t(f, list_type(a1, a2, a3, a4)); +} + +template + _bi::bind_t::type> + BOOST_BIND(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) +{ + typedef typename _bi::list_av_5::type list_type; + return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5)); +} + +template + _bi::bind_t::type> + BOOST_BIND(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) +{ + typedef typename _bi::list_av_6::type list_type; + return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6)); +} + +template + _bi::bind_t::type> + BOOST_BIND(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) +{ + typedef typename _bi::list_av_7::type list_type; + return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7)); +} + +template + _bi::bind_t::type> + BOOST_BIND(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) +{ + typedef typename _bi::list_av_8::type list_type; + return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8)); +} + +template + _bi::bind_t::type> + BOOST_BIND(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) +{ + typedef typename _bi::list_av_9::type list_type; + return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); +} + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) + +// adaptable function objects + +template + _bi::bind_t<_bi::unspecified, F, _bi::list0> + BOOST_BIND(F f) +{ + typedef _bi::list0 list_type; + return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type()); +} + +template + _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_1::type> + BOOST_BIND(F f, A1 a1) +{ + typedef typename _bi::list_av_1::type list_type; + return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type(a1)); +} + +template + _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_2::type> + BOOST_BIND(F f, A1 a1, A2 a2) +{ + typedef typename _bi::list_av_2::type list_type; + return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type(a1, a2)); +} + +template + _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_3::type> + BOOST_BIND(F f, A1 a1, A2 a2, A3 a3) +{ + typedef typename _bi::list_av_3::type list_type; + return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3)); +} + +template + _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_4::type> + BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4) +{ + typedef typename _bi::list_av_4::type list_type; + return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4)); +} + +template + _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_5::type> + BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) +{ + typedef typename _bi::list_av_5::type list_type; + return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5)); +} + +template + _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_6::type> + BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) +{ + typedef typename _bi::list_av_6::type list_type; + return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6)); +} + +template + _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_7::type> + BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) +{ + typedef typename _bi::list_av_7::type list_type; + return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7)); +} + +template + _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_8::type> + BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) +{ + typedef typename _bi::list_av_8::type list_type; + return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8)); +} + +template + _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_9::type> + BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) +{ + typedef typename _bi::list_av_9::type list_type; + return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); +} + +#endif // !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) + +// function pointers + +#define BOOST_BIND_CC +#define BOOST_BIND_ST +#define BOOST_BIND_NOEXCEPT + +#include + +# if defined( __cpp_noexcept_function_type ) || defined( _NOEXCEPT_TYPES_SUPPORTED ) +# undef BOOST_BIND_NOEXCEPT +# define BOOST_BIND_NOEXCEPT noexcept +# include +# endif + +#undef BOOST_BIND_CC +#undef BOOST_BIND_ST +#undef BOOST_BIND_NOEXCEPT + +#if defined(BOOST_BIND_ENABLE_STDCALL) && !defined(_M_X64) + +#define BOOST_BIND_CC __stdcall +#define BOOST_BIND_ST +#define BOOST_BIND_NOEXCEPT + +#include + +#undef BOOST_BIND_CC +#undef BOOST_BIND_ST +#undef BOOST_BIND_NOEXCEPT + +#endif + +#if defined(BOOST_BIND_ENABLE_FASTCALL) && !defined(_M_X64) + +#define BOOST_BIND_CC __fastcall +#define BOOST_BIND_ST +#define BOOST_BIND_NOEXCEPT + +#include + +#undef BOOST_BIND_CC +#undef BOOST_BIND_ST +#undef BOOST_BIND_NOEXCEPT + +#endif + +#ifdef BOOST_BIND_ENABLE_PASCAL + +#define BOOST_BIND_ST pascal +#define BOOST_BIND_CC +#define BOOST_BIND_NOEXCEPT + +#include + +#undef BOOST_BIND_ST +#undef BOOST_BIND_CC +#undef BOOST_BIND_NOEXCEPT + +#endif + +// member function pointers + +#define BOOST_BIND_MF_NAME(X) X +#define BOOST_BIND_MF_CC +#define BOOST_BIND_MF_NOEXCEPT + +#include +#include + +# if defined( __cpp_noexcept_function_type ) || defined( _NOEXCEPT_TYPES_SUPPORTED ) +# undef BOOST_BIND_MF_NOEXCEPT +# define BOOST_BIND_MF_NOEXCEPT noexcept +# include +# include +# endif + +#undef BOOST_BIND_MF_NAME +#undef BOOST_BIND_MF_CC +#undef BOOST_BIND_MF_NOEXCEPT + +#if defined(BOOST_MEM_FN_ENABLE_CDECL) && !defined(_M_X64) + +#define BOOST_BIND_MF_NAME(X) X##_cdecl +#define BOOST_BIND_MF_CC __cdecl +#define BOOST_BIND_MF_NOEXCEPT + +#include +#include + +#undef BOOST_BIND_MF_NAME +#undef BOOST_BIND_MF_CC +#undef BOOST_BIND_MF_NOEXCEPT + +#endif + +#if defined(BOOST_MEM_FN_ENABLE_STDCALL) && !defined(_M_X64) + +#define BOOST_BIND_MF_NAME(X) X##_stdcall +#define BOOST_BIND_MF_CC __stdcall +#define BOOST_BIND_MF_NOEXCEPT + +#include +#include + +#undef BOOST_BIND_MF_NAME +#undef BOOST_BIND_MF_CC +#undef BOOST_BIND_MF_NOEXCEPT + +#endif + +#if defined(BOOST_MEM_FN_ENABLE_FASTCALL) && !defined(_M_X64) + +#define BOOST_BIND_MF_NAME(X) X##_fastcall +#define BOOST_BIND_MF_CC __fastcall +#define BOOST_BIND_MF_NOEXCEPT + +#include +#include + +#undef BOOST_BIND_MF_NAME +#undef BOOST_BIND_MF_CC +#undef BOOST_BIND_MF_NOEXCEPT + +#endif + +// data member pointers + +#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ + || ( defined(BOOST_BORLANDC) && BOOST_WORKAROUND( BOOST_BORLANDC, BOOST_TESTED_AT( 0x620 ) ) ) + +template +_bi::bind_t< R, _mfi::dm, typename _bi::list_av_1::type > + BOOST_BIND(R T::*f, A1 a1) +{ + typedef _mfi::dm F; + typedef typename _bi::list_av_1::type list_type; + return _bi::bind_t( F(f), list_type(a1) ); +} + +#else + +namespace _bi +{ + +template< class Pm, int I > struct add_cref; + +template< class M, class T > struct add_cref< M T::*, 0 > +{ + typedef M type; +}; + +template< class M, class T > struct add_cref< M T::*, 1 > +{ +#ifdef BOOST_MSVC +#pragma warning(push) +#pragma warning(disable:4180) +#endif + typedef M const & type; +#ifdef BOOST_MSVC +#pragma warning(pop) +#endif +}; + +template< class R, class T > struct add_cref< R (T::*) (), 1 > +{ + typedef void type; +}; + +#if !defined(__IBMCPP__) || __IBMCPP_FUNC_CV_TMPL_ARG_DEDUCTION + +template< class R, class T > struct add_cref< R (T::*) () const, 1 > +{ + typedef void type; +}; + +#if defined( __cpp_noexcept_function_type ) || defined( _NOEXCEPT_TYPES_SUPPORTED ) + +template< class R, class T > struct add_cref< R (T::*) () const noexcept, 1 > +{ + typedef void type; +}; + +#endif // __cpp_noexcept_function_type + +#endif // __IBMCPP__ + +template struct isref +{ + enum value_type { value = 0 }; +}; + +template struct isref< R& > +{ + enum value_type { value = 1 }; +}; + +template struct isref< R* > +{ + enum value_type { value = 1 }; +}; + +template struct dm_result +{ + typedef typename add_cref< Pm, 1 >::type type; +}; + +template struct dm_result< Pm, bind_t > +{ + typedef typename bind_t::result_type result_type; + typedef typename add_cref< Pm, isref< result_type >::value >::type type; +}; + +} // namespace _bi + +template< class A1, class M, class T > + +_bi::bind_t< + typename _bi::dm_result< M T::*, A1 >::type, + _mfi::dm, + typename _bi::list_av_1::type +> + +BOOST_BIND( M T::*f, A1 a1 ) +{ + typedef typename _bi::dm_result< M T::*, A1 >::type result_type; + typedef _mfi::dm F; + typedef typename _bi::list_av_1::type list_type; + return _bi::bind_t< result_type, F, list_type >( F( f ), list_type( a1 ) ); +} + +#endif + +} // namespace boost + +#ifndef BOOST_BIND_NO_PLACEHOLDERS + +# include + +#endif + +#ifdef BOOST_MSVC +# pragma warning(default: 4512) // assignment operator could not be generated +# pragma warning(pop) +#endif + +#endif // #ifndef BOOST_BIND_BIND_HPP_INCLUDED diff --git a/src/boost/bind/bind_cc.hpp b/src/boost/bind/bind_cc.hpp new file mode 100644 index 00000000..278aa9a2 --- /dev/null +++ b/src/boost/bind/bind_cc.hpp @@ -0,0 +1,117 @@ +// +// bind/bind_cc.hpp - support for different calling conventions +// +// Do not include this header directly. +// +// Copyright (c) 2001 Peter Dimov and Multi Media Ltd. +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/bind/bind.html for documentation. +// + +template + _bi::bind_t + BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) () BOOST_BIND_NOEXCEPT) +{ + typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) () BOOST_BIND_NOEXCEPT; + typedef _bi::list0 list_type; + return _bi::bind_t (f, list_type()); +} + +template + _bi::bind_t::type> + BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1) BOOST_BIND_NOEXCEPT, A1 a1) +{ + typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1) BOOST_BIND_NOEXCEPT; + typedef typename _bi::list_av_1::type list_type; + return _bi::bind_t (f, list_type(a1)); +} + +template + _bi::bind_t::type> + BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2) BOOST_BIND_NOEXCEPT, A1 a1, A2 a2) +{ + typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2) BOOST_BIND_NOEXCEPT; + typedef typename _bi::list_av_2::type list_type; + return _bi::bind_t (f, list_type(a1, a2)); +} + +template + _bi::bind_t::type> + BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3) BOOST_BIND_NOEXCEPT, A1 a1, A2 a2, A3 a3) +{ + typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3) BOOST_BIND_NOEXCEPT; + typedef typename _bi::list_av_3::type list_type; + return _bi::bind_t(f, list_type(a1, a2, a3)); +} + +template + _bi::bind_t::type> + BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4) BOOST_BIND_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4) +{ + typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4) BOOST_BIND_NOEXCEPT; + typedef typename _bi::list_av_4::type list_type; + return _bi::bind_t(f, list_type(a1, a2, a3, a4)); +} + +template + _bi::bind_t::type> + BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5) BOOST_BIND_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) +{ + typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5) BOOST_BIND_NOEXCEPT; + typedef typename _bi::list_av_5::type list_type; + return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5)); +} + +template + _bi::bind_t::type> + BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6) BOOST_BIND_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) +{ + typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6) BOOST_BIND_NOEXCEPT; + typedef typename _bi::list_av_6::type list_type; + return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6)); +} + +template + _bi::bind_t::type> + BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7) BOOST_BIND_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) +{ + typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7) BOOST_BIND_NOEXCEPT; + typedef typename _bi::list_av_7::type list_type; + return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7)); +} + +template + _bi::bind_t::type> + BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7, B8) BOOST_BIND_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) +{ + typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7, B8) BOOST_BIND_NOEXCEPT; + typedef typename _bi::list_av_8::type list_type; + return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8)); +} + +template + _bi::bind_t::type> + BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7, B8, B9) BOOST_BIND_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) +{ + typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7, B8, B9) BOOST_BIND_NOEXCEPT; + typedef typename _bi::list_av_9::type list_type; + return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); +} diff --git a/src/boost/bind/bind_mf2_cc.hpp b/src/boost/bind/bind_mf2_cc.hpp new file mode 100644 index 00000000..be20b1d9 --- /dev/null +++ b/src/boost/bind/bind_mf2_cc.hpp @@ -0,0 +1,228 @@ +// +// bind/bind_mf2_cc.hpp - member functions, type<> syntax +// +// Do not include this header directly. +// +// Copyright (c) 2001 Peter Dimov and Multi Media Ltd. +// Copyright (c) 2008 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +// +// See http://www.boost.org/libs/bind/bind.html for documentation. +// + +// 0 + +template + _bi::bind_t, typename _bi::list_av_1::type> + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) () BOOST_BIND_MF_NOEXCEPT, A1 a1) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf0) F; + typedef typename _bi::list_av_1::type list_type; + return _bi::bind_t(F(f), list_type(a1)); +} + +template + _bi::bind_t, typename _bi::list_av_1::type> + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) () const BOOST_BIND_MF_NOEXCEPT, A1 a1) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf0) F; + typedef typename _bi::list_av_1::type list_type; + return _bi::bind_t(F(f), list_type(a1)); +} + +// 1 + +template + _bi::bind_t, typename _bi::list_av_2::type> + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf1) F; + typedef typename _bi::list_av_2::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2)); +} + +template + _bi::bind_t, typename _bi::list_av_2::type> + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf1) F; + typedef typename _bi::list_av_2::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2)); +} + +// 2 + +template + _bi::bind_t, typename _bi::list_av_3::type> + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf2) F; + typedef typename _bi::list_av_3::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3)); +} + +template + _bi::bind_t, typename _bi::list_av_3::type> + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf2) F; + typedef typename _bi::list_av_3::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3)); +} + +// 3 + +template + _bi::bind_t, typename _bi::list_av_4::type> + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf3) F; + typedef typename _bi::list_av_4::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4)); +} + +template + _bi::bind_t, typename _bi::list_av_4::type> + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf3) F; + typedef typename _bi::list_av_4::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4)); +} + +// 4 + +template + _bi::bind_t, typename _bi::list_av_5::type> + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf4) F; + typedef typename _bi::list_av_5::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5)); +} + +template + _bi::bind_t, typename _bi::list_av_5::type> + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf4) F; + typedef typename _bi::list_av_5::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5)); +} + +// 5 + +template + _bi::bind_t, typename _bi::list_av_6::type> + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf5) F; + typedef typename _bi::list_av_6::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6)); +} + +template + _bi::bind_t, typename _bi::list_av_6::type> + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf5) F; + typedef typename _bi::list_av_6::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6)); +} + +// 6 + +template + _bi::bind_t, typename _bi::list_av_7::type> + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf6) F; + typedef typename _bi::list_av_7::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7)); +} + +template + _bi::bind_t, typename _bi::list_av_7::type> + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf6) F; + typedef typename _bi::list_av_7::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7)); +} + +// 7 + +template + _bi::bind_t, typename _bi::list_av_8::type> + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf7) F; + typedef typename _bi::list_av_8::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8)); +} + +template + _bi::bind_t, typename _bi::list_av_8::type> + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf7) F; + typedef typename _bi::list_av_8::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8)); +} + +// 8 + +template + _bi::bind_t, typename _bi::list_av_9::type> + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf8) F; + typedef typename _bi::list_av_9::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); +} + +template + _bi::bind_t, typename _bi::list_av_9::type> + BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf8) F; + typedef typename _bi::list_av_9::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); +} diff --git a/src/boost/bind/bind_mf_cc.hpp b/src/boost/bind/bind_mf_cc.hpp new file mode 100644 index 00000000..5a1610b4 --- /dev/null +++ b/src/boost/bind/bind_mf_cc.hpp @@ -0,0 +1,441 @@ +// +// bind/bind_mf_cc.hpp - support for different calling conventions +// +// Do not include this header directly. +// +// Copyright (c) 2001 Peter Dimov and Multi Media Ltd. +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/bind/bind.html for documentation. +// + +// 0 + +template + _bi::bind_t, typename _bi::list_av_1::type> + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () BOOST_BIND_MF_NOEXCEPT, A1 a1) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf0) F; + typedef typename _bi::list_av_1::type list_type; + return _bi::bind_t(F(f), list_type(a1)); +} + +template + _bi::bind_t, typename _bi::list_av_1::type> + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () const BOOST_BIND_MF_NOEXCEPT, A1 a1) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf0) F; + typedef typename _bi::list_av_1::type list_type; + return _bi::bind_t(F(f), list_type(a1)); +} + +template + typename boost::enable_if_c::value, + _bi::bind_t, typename _bi::list_av_1::type> + >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () BOOST_BIND_MF_NOEXCEPT, A1 a1) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf0) F; + typedef typename _bi::list_av_1::type list_type; + return _bi::bind_t(F(f), list_type(a1)); +} + +template + typename boost::enable_if_c::value, + _bi::bind_t, typename _bi::list_av_1::type> + >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () const BOOST_BIND_MF_NOEXCEPT, A1 a1) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf0) F; + typedef typename _bi::list_av_1::type list_type; + return _bi::bind_t(F(f), list_type(a1)); +} + +// 1 + +template + _bi::bind_t, typename _bi::list_av_2::type> + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf1) F; + typedef typename _bi::list_av_2::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2)); +} + +template + _bi::bind_t, typename _bi::list_av_2::type> + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf1) F; + typedef typename _bi::list_av_2::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2)); +} + +template + typename boost::enable_if_c::value, + _bi::bind_t, typename _bi::list_av_2::type> + >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf1) F; + typedef typename _bi::list_av_2::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2)); +} + +template + typename boost::enable_if_c::value, + _bi::bind_t, typename _bi::list_av_2::type> + >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf1) F; + typedef typename _bi::list_av_2::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2)); +} + +// 2 + +template + _bi::bind_t, typename _bi::list_av_3::type> + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf2) F; + typedef typename _bi::list_av_3::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3)); +} + +template + _bi::bind_t, typename _bi::list_av_3::type> + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf2) F; + typedef typename _bi::list_av_3::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3)); +} + +template + typename boost::enable_if_c::value, + _bi::bind_t, typename _bi::list_av_3::type> + >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf2) F; + typedef typename _bi::list_av_3::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3)); +} + +template + typename boost::enable_if_c::value, + _bi::bind_t, typename _bi::list_av_3::type> + >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf2) F; + typedef typename _bi::list_av_3::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3)); +} + +// 3 + +template + _bi::bind_t, typename _bi::list_av_4::type> + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf3) F; + typedef typename _bi::list_av_4::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4)); +} + +template + _bi::bind_t, typename _bi::list_av_4::type> + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf3) F; + typedef typename _bi::list_av_4::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4)); +} + +template + typename boost::enable_if_c::value, + _bi::bind_t, typename _bi::list_av_4::type> + >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf3) F; + typedef typename _bi::list_av_4::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4)); +} + +template + typename boost::enable_if_c::value, + _bi::bind_t, typename _bi::list_av_4::type> + >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf3) F; + typedef typename _bi::list_av_4::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4)); +} + +// 4 + +template + _bi::bind_t, typename _bi::list_av_5::type> + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf4) F; + typedef typename _bi::list_av_5::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5)); +} + +template + _bi::bind_t, typename _bi::list_av_5::type> + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf4) F; + typedef typename _bi::list_av_5::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5)); +} + +template + typename boost::enable_if_c::value, + _bi::bind_t, typename _bi::list_av_5::type> + >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf4) F; + typedef typename _bi::list_av_5::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5)); +} + +template + typename boost::enable_if_c::value, + _bi::bind_t, typename _bi::list_av_5::type> + >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf4) F; + typedef typename _bi::list_av_5::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5)); +} + +// 5 + +template + _bi::bind_t, typename _bi::list_av_6::type> + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf5) F; + typedef typename _bi::list_av_6::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6)); +} + +template + _bi::bind_t, typename _bi::list_av_6::type> + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf5) F; + typedef typename _bi::list_av_6::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6)); +} + +template + typename boost::enable_if_c::value, + _bi::bind_t, typename _bi::list_av_6::type> + >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf5) F; + typedef typename _bi::list_av_6::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6)); +} + +template + typename boost::enable_if_c::value, + _bi::bind_t, typename _bi::list_av_6::type> + >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf5) F; + typedef typename _bi::list_av_6::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6)); +} + +// 6 + +template + _bi::bind_t, typename _bi::list_av_7::type> + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf6) F; + typedef typename _bi::list_av_7::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7)); +} + +template + _bi::bind_t, typename _bi::list_av_7::type> + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf6) F; + typedef typename _bi::list_av_7::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7)); +} + +template + typename boost::enable_if_c::value, + _bi::bind_t, typename _bi::list_av_7::type> + >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf6) F; + typedef typename _bi::list_av_7::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7)); +} + +template + typename boost::enable_if_c::value, + _bi::bind_t, typename _bi::list_av_7::type> + >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf6) F; + typedef typename _bi::list_av_7::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7)); +} + +// 7 + +template + _bi::bind_t, typename _bi::list_av_8::type> + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf7) F; + typedef typename _bi::list_av_8::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8)); +} + +template + _bi::bind_t, typename _bi::list_av_8::type> + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf7) F; + typedef typename _bi::list_av_8::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8)); +} + +template + typename boost::enable_if_c::value, + _bi::bind_t, typename _bi::list_av_8::type> + >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf7) F; + typedef typename _bi::list_av_8::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8)); +} + +template + typename boost::enable_if_c::value, + _bi::bind_t, typename _bi::list_av_8::type> + >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf7) F; + typedef typename _bi::list_av_8::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8)); +} + +// 8 + +template + _bi::bind_t, typename _bi::list_av_9::type> + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf8) F; + typedef typename _bi::list_av_9::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); +} + +template + _bi::bind_t, typename _bi::list_av_9::type> + BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf8) F; + typedef typename _bi::list_av_9::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); +} + +template + typename boost::enable_if_c::value, + _bi::bind_t, typename _bi::list_av_9::type> + >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) +{ + typedef _mfi::BOOST_BIND_MF_NAME(mf8) F; + typedef typename _bi::list_av_9::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); +} + +template + typename boost::enable_if_c::value, + _bi::bind_t, typename _bi::list_av_9::type> + >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) +{ + typedef _mfi::BOOST_BIND_MF_NAME(cmf8) F; + typedef typename _bi::list_av_9::type list_type; + return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); +} diff --git a/src/boost/bind/bind_template.hpp b/src/boost/bind/bind_template.hpp new file mode 100644 index 00000000..212ced7f --- /dev/null +++ b/src/boost/bind/bind_template.hpp @@ -0,0 +1,345 @@ +// +// bind/bind_template.hpp +// +// Do not include this header directly. +// +// Copyright (c) 2001-2004 Peter Dimov and Multi Media Ltd. +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/bind/bind.html for documentation. +// + + typedef typename result_traits::type result_type; + + result_type operator()() + { + list0 a; + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + result_type operator()() const + { + list0 a; + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type operator()(A1 & a1) + { + list1 a(a1); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type operator()(A1 & a1) const + { + list1 a(a1); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + +#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ + && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) + + template result_type operator()(A1 const & a1) + { + list1 a(a1); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type operator()(A1 const & a1) const + { + list1 a(a1); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + +#endif + + template result_type operator()(A1 & a1, A2 & a2) + { + list2 a(a1, a2); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type operator()(A1 & a1, A2 & a2) const + { + list2 a(a1, a2); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + +#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ + && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) + + template result_type operator()(A1 const & a1, A2 & a2) + { + list2 a(a1, a2); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type operator()(A1 const & a1, A2 & a2) const + { + list2 a(a1, a2); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + + template result_type operator()(A1 & a1, A2 const & a2) + { + list2 a(a1, a2); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type operator()(A1 & a1, A2 const & a2) const + { + list2 a(a1, a2); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + + template result_type operator()(A1 const & a1, A2 const & a2) + { + list2 a(a1, a2); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type operator()(A1 const & a1, A2 const & a2) const + { + list2 a(a1, a2); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + +#endif + + template result_type operator()(A1 & a1, A2 & a2, A3 & a3) + { + list3 a(a1, a2, a3); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type operator()(A1 & a1, A2 & a2, A3 & a3) const + { + list3 a(a1, a2, a3); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + +#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ + && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) + + template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3) + { + list3 a(a1, a2, a3); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3) const + { + list3 a(a1, a2, a3); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + +#endif + + template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4) + { + list4 a(a1, a2, a3, a4); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4) const + { + list4 a(a1, a2, a3, a4); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + +#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ + && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) + + template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4) + { + list4 a(a1, a2, a3, a4); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4) const + { + list4 a(a1, a2, a3, a4); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + +#endif + + template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5) + { + list5 a(a1, a2, a3, a4, a5); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5) const + { + list5 a(a1, a2, a3, a4, a5); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + +#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ + && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) + + template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5) + { + list5 a(a1, a2, a3, a4, a5); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5) const + { + list5 a(a1, a2, a3, a4, a5); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + +#endif + + template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6) + { + list6 a(a1, a2, a3, a4, a5, a6); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6) const + { + list6 a(a1, a2, a3, a4, a5, a6); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + +#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ + && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) + + template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6) + { + list6 a(a1, a2, a3, a4, a5, a6); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6) const + { + list6 a(a1, a2, a3, a4, a5, a6); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + +#endif + + template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7) + { + list7 a(a1, a2, a3, a4, a5, a6, a7); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7) const + { + list7 a(a1, a2, a3, a4, a5, a6, a7); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + +#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ + && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) + + template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7) + { + list7 a(a1, a2, a3, a4, a5, a6, a7); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7) const + { + list7 a(a1, a2, a3, a4, a5, a6, a7); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + +#endif + + template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8) + { + list8 a(a1, a2, a3, a4, a5, a6, a7, a8); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8) const + { + list8 a(a1, a2, a3, a4, a5, a6, a7, a8); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + +#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ + && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) + + template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8) + { + list8 a(a1, a2, a3, a4, a5, a6, a7, a8); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8) const + { + list8 a(a1, a2, a3, a4, a5, a6, a7, a8); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + +#endif + + template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9) + { + list9 a(a1, a2, a3, a4, a5, a6, a7, a8, a9); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9) const + { + list9 a(a1, a2, a3, a4, a5, a6, a7, a8, a9); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + +#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ + && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) + + template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9) + { + list9 a(a1, a2, a3, a4, a5, a6, a7, a8, a9); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9) const + { + list9 a(a1, a2, a3, a4, a5, a6, a7, a8, a9); + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + +#endif + + template result_type eval(A & a) + { + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template result_type eval(A & a) const + { + BOOST_BIND_RETURN l_(type(), f_, a, 0); + } + + template void accept(V & v) const + { +#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( BOOST_BORLANDC ) + + using boost::visit_each; + +#endif + BOOST_BIND_VISIT_EACH(v, f_, 0); + l_.accept(v); + } + + bool compare(this_type const & rhs) const + { + return ref_compare(f_, rhs.f_, 0) && l_ == rhs.l_; + } + +private: + + F f_; + L l_; diff --git a/src/boost/bind/detail/is_same.hpp b/src/boost/bind/detail/is_same.hpp new file mode 100644 index 00000000..995b39f4 --- /dev/null +++ b/src/boost/bind/detail/is_same.hpp @@ -0,0 +1,36 @@ +#ifndef BOOST_BIND_DETAIL_IS_SAME_HPP_INCLUDED +#define BOOST_BIND_DETAIL_IS_SAME_HPP_INCLUDED + +// is_same::value is true when T1 == T2 +// +// Copyright 2014 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt + +#include + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +namespace boost +{ +namespace _bi +{ + +template< class T1, class T2 > struct is_same +{ + BOOST_STATIC_CONSTANT( bool, value = false ); +}; + +template< class T > struct is_same< T, T > +{ + BOOST_STATIC_CONSTANT( bool, value = true ); +}; + +} // namespace _bi +} // namespace boost + +#endif // #ifndef BOOST_BIND_DETAIL_IS_SAME_HPP_INCLUDED diff --git a/src/boost/bind/detail/requires_cxx11.hpp b/src/boost/bind/detail/requires_cxx11.hpp new file mode 100644 index 00000000..600f58ff --- /dev/null +++ b/src/boost/bind/detail/requires_cxx11.hpp @@ -0,0 +1,22 @@ +#ifndef BOOST_BIND_DETAIL_REQUIRES_CXX11_HPP_INCLUDED +#define BOOST_BIND_DETAIL_REQUIRES_CXX11_HPP_INCLUDED + +// Copyright 2023 Peter Dimov +// Distributed under the Boost Software License, Version 1.0. +// https://www.boost.org/LICENSE_1_0.txt + +#include +#include + +#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || \ + defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \ + defined(BOOST_NO_CXX11_DECLTYPE) || \ + defined(BOOST_NO_CXX11_CONSTEXPR) || \ + defined(BOOST_NO_CXX11_NOEXCEPT) || \ + defined(BOOST_NO_CXX11_HDR_FUNCTIONAL) + +BOOST_PRAGMA_MESSAGE("C++03 support was deprecated in Boost.Bind 1.82 and will be removed in Boost.Bind 1.85.") + +#endif + +#endif // #ifndef BOOST_BIND_DETAIL_REQUIRES_CXX11_HPP_INCLUDED diff --git a/src/boost/bind/detail/result_traits.hpp b/src/boost/bind/detail/result_traits.hpp new file mode 100644 index 00000000..d57d9fd1 --- /dev/null +++ b/src/boost/bind/detail/result_traits.hpp @@ -0,0 +1,165 @@ +#ifndef BOOST_BIND_DETAIL_RESULT_TRAITS_HPP_INCLUDED +#define BOOST_BIND_DETAIL_RESULT_TRAITS_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// +// bind/detail/result_traits.hpp +// +// boost/bind.hpp support header, return type deduction +// +// Copyright 2006, 2020 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +// +// See http://www.boost.org/libs/bind/bind.html for documentation. +// + +#include +#include + +#if BOOST_CXX_VERSION >= 201700L +#include +#endif + +namespace boost +{ + +namespace _bi +{ + +template struct result_traits +{ + typedef R type; +}; + +struct unspecified {}; + +template struct result_traits +{ + typedef typename F::result_type type; +}; + +template struct result_traits< unspecified, reference_wrapper > +{ + typedef typename F::result_type type; +}; + +#if BOOST_CXX_VERSION >= 201700L + +template struct result_traits< unspecified, std::plus > +{ + typedef T type; +}; + +template struct result_traits< unspecified, std::minus > +{ + typedef T type; +}; + +template struct result_traits< unspecified, std::multiplies > +{ + typedef T type; +}; + +template struct result_traits< unspecified, std::divides > +{ + typedef T type; +}; + +template struct result_traits< unspecified, std::modulus > +{ + typedef T type; +}; + +template struct result_traits< unspecified, std::negate > +{ + typedef T type; +}; + +template struct result_traits< unspecified, std::equal_to > +{ + typedef bool type; +}; + +template struct result_traits< unspecified, std::not_equal_to > +{ + typedef bool type; +}; + +template struct result_traits< unspecified, std::greater > +{ + typedef bool type; +}; + +template struct result_traits< unspecified, std::less > +{ + typedef bool type; +}; + +template struct result_traits< unspecified, std::greater_equal > +{ + typedef bool type; +}; + +template struct result_traits< unspecified, std::less_equal > +{ + typedef bool type; +}; + +template struct result_traits< unspecified, std::logical_and > +{ + typedef bool type; +}; + +template struct result_traits< unspecified, std::logical_or > +{ + typedef bool type; +}; + +template struct result_traits< unspecified, std::logical_not > +{ + typedef bool type; +}; + +template struct result_traits< unspecified, std::bit_and > +{ + typedef T type; +}; + +template struct result_traits< unspecified, std::bit_or > +{ + typedef T type; +}; + +template struct result_traits< unspecified, std::bit_xor > +{ + typedef T type; +}; + +#if defined(BOOST_LIBSTDCXX_VERSION) && BOOST_LIBSTDCXX_VERSION < 40900 + +// libstdc++ 4.8 and below don't have std::bit_not + +#else + +template struct result_traits< unspecified, std::bit_not > +{ + typedef T type; +}; + +#endif + +#endif + +} // namespace _bi + +} // namespace boost + +#endif // #ifndef BOOST_BIND_DETAIL_RESULT_TRAITS_HPP_INCLUDED diff --git a/src/boost/bind/mem_fn.hpp b/src/boost/bind/mem_fn.hpp new file mode 100644 index 00000000..1078e7c5 --- /dev/null +++ b/src/boost/bind/mem_fn.hpp @@ -0,0 +1,404 @@ +#ifndef BOOST_BIND_MEM_FN_HPP_INCLUDED +#define BOOST_BIND_MEM_FN_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// +// mem_fn.hpp - a generalization of std::mem_fun[_ref] +// +// Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd. +// Copyright (c) 2001 David Abrahams +// Copyright (c) 2003-2005 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/bind/mem_fn.html for documentation. +// + +#include +#include +#include +#include + +namespace boost +{ + +#if defined(BOOST_NO_VOID_RETURNS) + +#define BOOST_MEM_FN_CLASS_F , class F +#define BOOST_MEM_FN_TYPEDEF(X) + +namespace _mfi // mem_fun_impl +{ + +template struct mf +{ + +#define BOOST_MEM_FN_RETURN return + +#define BOOST_MEM_FN_NAME(X) inner_##X +#define BOOST_MEM_FN_CC + +#include + +#undef BOOST_MEM_FN_CC +#undef BOOST_MEM_FN_NAME + +#if defined(BOOST_MEM_FN_ENABLE_CDECL) && !defined(_M_X64) + +#define BOOST_MEM_FN_NAME(X) inner_##X##_cdecl +#define BOOST_MEM_FN_CC __cdecl + +#include + +#undef BOOST_MEM_FN_CC +#undef BOOST_MEM_FN_NAME + +#endif + +#if defined(BOOST_MEM_FN_ENABLE_STDCALL) && !defined(_M_X64) + +#define BOOST_MEM_FN_NAME(X) inner_##X##_stdcall +#define BOOST_MEM_FN_CC __stdcall + +#include + +#undef BOOST_MEM_FN_CC +#undef BOOST_MEM_FN_NAME + +#endif + +#if defined(BOOST_MEM_FN_ENABLE_FASTCALL) && !defined(_M_X64) + +#define BOOST_MEM_FN_NAME(X) inner_##X##_fastcall +#define BOOST_MEM_FN_CC __fastcall + +#include + +#undef BOOST_MEM_FN_CC +#undef BOOST_MEM_FN_NAME + +#endif + +#undef BOOST_MEM_FN_RETURN + +}; // struct mf + +template<> struct mf +{ + +#define BOOST_MEM_FN_RETURN + +#define BOOST_MEM_FN_NAME(X) inner_##X +#define BOOST_MEM_FN_CC + +#include + +#undef BOOST_MEM_FN_CC +#undef BOOST_MEM_FN_NAME + +#if defined(BOOST_MEM_FN_ENABLE_CDECL) && !defined(_M_X64) + +#define BOOST_MEM_FN_NAME(X) inner_##X##_cdecl +#define BOOST_MEM_FN_CC __cdecl + +#include + +#undef BOOST_MEM_FN_CC +#undef BOOST_MEM_FN_NAME + +#endif + +#ifdef BOOST_MEM_FN_ENABLE_STDCALL + +#define BOOST_MEM_FN_NAME(X) inner_##X##_stdcall +#define BOOST_MEM_FN_CC __stdcall + +#include + +#undef BOOST_MEM_FN_CC +#undef BOOST_MEM_FN_NAME + +#endif + +#ifdef BOOST_MEM_FN_ENABLE_FASTCALL + +#define BOOST_MEM_FN_NAME(X) inner_##X##_fastcall +#define BOOST_MEM_FN_CC __fastcall + +#include + +#undef BOOST_MEM_FN_CC +#undef BOOST_MEM_FN_NAME + +#endif + +#undef BOOST_MEM_FN_RETURN + +}; // struct mf + +#undef BOOST_MEM_FN_CLASS_F +#undef BOOST_MEM_FN_TYPEDEF_F + +#define BOOST_MEM_FN_NAME(X) X +#define BOOST_MEM_FN_NAME2(X) inner_##X +#define BOOST_MEM_FN_CC + +#include + +#undef BOOST_MEM_FN_NAME +#undef BOOST_MEM_FN_NAME2 +#undef BOOST_MEM_FN_CC + +#if defined(BOOST_MEM_FN_ENABLE_CDECL) && !defined(_M_X64) + +#define BOOST_MEM_FN_NAME(X) X##_cdecl +#define BOOST_MEM_FN_NAME2(X) inner_##X##_cdecl +#define BOOST_MEM_FN_CC __cdecl + +#include + +#undef BOOST_MEM_FN_NAME +#undef BOOST_MEM_FN_NAME2 +#undef BOOST_MEM_FN_CC + +#endif + +#ifdef BOOST_MEM_FN_ENABLE_STDCALL + +#define BOOST_MEM_FN_NAME(X) X##_stdcall +#define BOOST_MEM_FN_NAME2(X) inner_##X##_stdcall +#define BOOST_MEM_FN_CC __stdcall + +#include + +#undef BOOST_MEM_FN_NAME +#undef BOOST_MEM_FN_NAME2 +#undef BOOST_MEM_FN_CC + +#endif + +#ifdef BOOST_MEM_FN_ENABLE_FASTCALL + +#define BOOST_MEM_FN_NAME(X) X##_fastcall +#define BOOST_MEM_FN_NAME2(X) inner_##X##_fastcall +#define BOOST_MEM_FN_CC __fastcall + +#include + +#undef BOOST_MEM_FN_NAME +#undef BOOST_MEM_FN_NAME2 +#undef BOOST_MEM_FN_CC + +#endif + +} // namespace _mfi + +#else // #ifdef BOOST_NO_VOID_RETURNS + +#define BOOST_MEM_FN_CLASS_F +#define BOOST_MEM_FN_TYPEDEF(X) typedef X; + +namespace _mfi +{ + +#define BOOST_MEM_FN_RETURN return + +#define BOOST_MEM_FN_NAME(X) X +#define BOOST_MEM_FN_CC + +#include + +#undef BOOST_MEM_FN_CC +#undef BOOST_MEM_FN_NAME + +#if defined(BOOST_MEM_FN_ENABLE_CDECL) && !defined(_M_X64) + +#define BOOST_MEM_FN_NAME(X) X##_cdecl +#define BOOST_MEM_FN_CC __cdecl + +#include + +#undef BOOST_MEM_FN_CC +#undef BOOST_MEM_FN_NAME + +#endif + +#if defined(BOOST_MEM_FN_ENABLE_STDCALL) && !defined(_M_X64) + +#define BOOST_MEM_FN_NAME(X) X##_stdcall +#define BOOST_MEM_FN_CC __stdcall + +#include + +#undef BOOST_MEM_FN_CC +#undef BOOST_MEM_FN_NAME + +#endif + +#if defined(BOOST_MEM_FN_ENABLE_FASTCALL) && !defined(_M_X64) + +#define BOOST_MEM_FN_NAME(X) X##_fastcall +#define BOOST_MEM_FN_CC __fastcall + +#include + +#undef BOOST_MEM_FN_CC +#undef BOOST_MEM_FN_NAME + +#endif + +#undef BOOST_MEM_FN_RETURN + +} // namespace _mfi + +#undef BOOST_MEM_FN_CLASS_F +#undef BOOST_MEM_FN_TYPEDEF + +#endif // #ifdef BOOST_NO_VOID_RETURNS + +#define BOOST_MEM_FN_NAME(X) X +#define BOOST_MEM_FN_CC +#define BOOST_MEM_FN_NOEXCEPT + +#include + +#if defined( __cpp_noexcept_function_type ) || defined( _NOEXCEPT_TYPES_SUPPORTED ) +# undef BOOST_MEM_FN_NOEXCEPT +# define BOOST_MEM_FN_NOEXCEPT noexcept +# include +#endif + +#undef BOOST_MEM_FN_NAME +#undef BOOST_MEM_FN_CC +#undef BOOST_MEM_FN_NOEXCEPT + +#if defined(BOOST_MEM_FN_ENABLE_CDECL) && !defined(_M_X64) + +#define BOOST_MEM_FN_NAME(X) X##_cdecl +#define BOOST_MEM_FN_CC __cdecl +#define BOOST_MEM_FN_NOEXCEPT + +#include + +#undef BOOST_MEM_FN_NAME +#undef BOOST_MEM_FN_CC +#undef BOOST_MEM_FN_NOEXCEPT + +#endif + +#if defined(BOOST_MEM_FN_ENABLE_STDCALL) && !defined(_M_X64) + +#define BOOST_MEM_FN_NAME(X) X##_stdcall +#define BOOST_MEM_FN_CC __stdcall +#define BOOST_MEM_FN_NOEXCEPT + +#include + +#undef BOOST_MEM_FN_NAME +#undef BOOST_MEM_FN_CC +#undef BOOST_MEM_FN_NOEXCEPT + +#endif + +#if defined(BOOST_MEM_FN_ENABLE_FASTCALL) && !defined(_M_X64) + +#define BOOST_MEM_FN_NAME(X) X##_fastcall +#define BOOST_MEM_FN_CC __fastcall +#define BOOST_MEM_FN_NOEXCEPT + +#include + +#undef BOOST_MEM_FN_NAME +#undef BOOST_MEM_FN_CC +#undef BOOST_MEM_FN_NOEXCEPT + +#endif + +// data member support + +namespace _mfi +{ + +template class dm +{ +public: + + typedef R const & result_type; + typedef T const * argument_type; + +private: + + typedef R (T::*F); + F f_; + + template R const & call(U & u, T const *) const + { + return (u.*f_); + } + + template R const & call(U & u, void const *) const + { + return (get_pointer(u)->*f_); + } + +public: + + explicit dm(F f): f_(f) {} + + R & operator()(T * p) const + { + return (p->*f_); + } + + R const & operator()(T const * p) const + { + return (p->*f_); + } + + template R const & operator()(U const & u) const + { + return call(u, &u); + } + +#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) && !BOOST_WORKAROUND(__MWERKS__, < 0x3200) + + R & operator()(T & t) const + { + return (t.*f_); + } + + R const & operator()(T const & t) const + { + return (t.*f_); + } + +#endif + + bool operator==(dm const & rhs) const + { + return f_ == rhs.f_; + } + + bool operator!=(dm const & rhs) const + { + return f_ != rhs.f_; + } +}; + +} // namespace _mfi + +template _mfi::dm mem_fn(R T::*f) +{ + return _mfi::dm(f); +} + +} // namespace boost + +#endif // #ifndef BOOST_BIND_MEM_FN_HPP_INCLUDED diff --git a/src/boost/bind/mem_fn_cc.hpp b/src/boost/bind/mem_fn_cc.hpp new file mode 100644 index 00000000..03e38300 --- /dev/null +++ b/src/boost/bind/mem_fn_cc.hpp @@ -0,0 +1,103 @@ +// +// bind/mem_fn_cc.hpp - support for different calling conventions +// +// Do not include this header directly. +// +// Copyright (c) 2001 Peter Dimov and Multi Media Ltd. +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/bind/mem_fn.html for documentation. +// + +template _mfi::BOOST_MEM_FN_NAME(mf0) mem_fn(R (BOOST_MEM_FN_CC T::*f) () BOOST_MEM_FN_NOEXCEPT) +{ + return _mfi::BOOST_MEM_FN_NAME(mf0)(f); +} + +template _mfi::BOOST_MEM_FN_NAME(cmf0) mem_fn(R (BOOST_MEM_FN_CC T::*f) () const BOOST_MEM_FN_NOEXCEPT) +{ + return _mfi::BOOST_MEM_FN_NAME(cmf0)(f); +} + +template _mfi::BOOST_MEM_FN_NAME(mf1) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1) BOOST_MEM_FN_NOEXCEPT) +{ + return _mfi::BOOST_MEM_FN_NAME(mf1)(f); +} + +template _mfi::BOOST_MEM_FN_NAME(cmf1) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1) const BOOST_MEM_FN_NOEXCEPT) +{ + return _mfi::BOOST_MEM_FN_NAME(cmf1)(f); +} + +template _mfi::BOOST_MEM_FN_NAME(mf2) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2) BOOST_MEM_FN_NOEXCEPT) +{ + return _mfi::BOOST_MEM_FN_NAME(mf2)(f); +} + +template _mfi::BOOST_MEM_FN_NAME(cmf2) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2) const BOOST_MEM_FN_NOEXCEPT) +{ + return _mfi::BOOST_MEM_FN_NAME(cmf2)(f); +} + +template _mfi::BOOST_MEM_FN_NAME(mf3) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3) BOOST_MEM_FN_NOEXCEPT) +{ + return _mfi::BOOST_MEM_FN_NAME(mf3)(f); +} + +template _mfi::BOOST_MEM_FN_NAME(cmf3) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3) const BOOST_MEM_FN_NOEXCEPT) +{ + return _mfi::BOOST_MEM_FN_NAME(cmf3)(f); +} + +template _mfi::BOOST_MEM_FN_NAME(mf4) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4) BOOST_MEM_FN_NOEXCEPT) +{ + return _mfi::BOOST_MEM_FN_NAME(mf4)(f); +} + +template _mfi::BOOST_MEM_FN_NAME(cmf4) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4) const BOOST_MEM_FN_NOEXCEPT) +{ + return _mfi::BOOST_MEM_FN_NAME(cmf4)(f); +} + +template _mfi::BOOST_MEM_FN_NAME(mf5) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5) BOOST_MEM_FN_NOEXCEPT) +{ + return _mfi::BOOST_MEM_FN_NAME(mf5)(f); +} + +template _mfi::BOOST_MEM_FN_NAME(cmf5) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5) const BOOST_MEM_FN_NOEXCEPT) +{ + return _mfi::BOOST_MEM_FN_NAME(cmf5)(f); +} + +template _mfi::BOOST_MEM_FN_NAME(mf6) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6) BOOST_MEM_FN_NOEXCEPT) +{ + return _mfi::BOOST_MEM_FN_NAME(mf6)(f); +} + +template _mfi::BOOST_MEM_FN_NAME(cmf6) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6) const BOOST_MEM_FN_NOEXCEPT) +{ + return _mfi::BOOST_MEM_FN_NAME(cmf6)(f); +} + +template _mfi::BOOST_MEM_FN_NAME(mf7) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7) BOOST_MEM_FN_NOEXCEPT) +{ + return _mfi::BOOST_MEM_FN_NAME(mf7)(f); +} + +template _mfi::BOOST_MEM_FN_NAME(cmf7) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7) const BOOST_MEM_FN_NOEXCEPT) +{ + return _mfi::BOOST_MEM_FN_NAME(cmf7)(f); +} + +template _mfi::BOOST_MEM_FN_NAME(mf8) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8) BOOST_MEM_FN_NOEXCEPT) +{ + return _mfi::BOOST_MEM_FN_NAME(mf8)(f); +} + +template _mfi::BOOST_MEM_FN_NAME(cmf8) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8) const BOOST_MEM_FN_NOEXCEPT) +{ + return _mfi::BOOST_MEM_FN_NAME(cmf8)(f); +} diff --git a/src/boost/bind/mem_fn_template.hpp b/src/boost/bind/mem_fn_template.hpp new file mode 100644 index 00000000..b26d585d --- /dev/null +++ b/src/boost/bind/mem_fn_template.hpp @@ -0,0 +1,1047 @@ +// +// bind/mem_fn_template.hpp +// +// Do not include this header directly +// +// Copyright (c) 2001 Peter Dimov and Multi Media Ltd. +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/bind/mem_fn.html for documentation. +// + +#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) +# define BOOST_MEM_FN_ENABLE_CONST_OVERLOADS +#endif + +// mf0 + +template class BOOST_MEM_FN_NAME(mf0) +{ +public: + + typedef R result_type; + typedef T * argument_type; + +private: + + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) ()) + F f_; + + template R call(U & u, T const *) const + { + BOOST_MEM_FN_RETURN (u.*f_)(); + } + + template R call(U & u, void const *) const + { + BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(); + } + +public: + + explicit BOOST_MEM_FN_NAME(mf0)(F f): f_(f) {} + + R operator()(T * p) const + { + BOOST_MEM_FN_RETURN (p->*f_)(); + } + + template R operator()(U & u) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p); + } + +#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS + + template R operator()(U const & u) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p); + } + +#endif + + R operator()(T & t) const + { + BOOST_MEM_FN_RETURN (t.*f_)(); + } + + bool operator==(BOOST_MEM_FN_NAME(mf0) const & rhs) const + { + return f_ == rhs.f_; + } + + bool operator!=(BOOST_MEM_FN_NAME(mf0) const & rhs) const + { + return f_ != rhs.f_; + } +}; + +// cmf0 + +template class BOOST_MEM_FN_NAME(cmf0) +{ +public: + + typedef R result_type; + typedef T const * argument_type; + +private: + + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) () const) + F f_; + + template R call(U & u, T const *) const + { + BOOST_MEM_FN_RETURN (u.*f_)(); + } + + template R call(U & u, void const *) const + { + BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(); + } + +public: + + explicit BOOST_MEM_FN_NAME(cmf0)(F f): f_(f) {} + + template R operator()(U const & u) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p); + } + + R operator()(T const & t) const + { + BOOST_MEM_FN_RETURN (t.*f_)(); + } + + bool operator==(BOOST_MEM_FN_NAME(cmf0) const & rhs) const + { + return f_ == rhs.f_; + } + + bool operator!=(BOOST_MEM_FN_NAME(cmf0) const & rhs) const + { + return f_ != rhs.f_; + } +}; + +// mf1 + +template class BOOST_MEM_FN_NAME(mf1) +{ +public: + + typedef R result_type; + typedef T * first_argument_type; + typedef A1 second_argument_type; + +private: + + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1)) + F f_; + + template R call(U & u, T const *, B1 & b1) const + { + BOOST_MEM_FN_RETURN (u.*f_)(b1); + } + + template R call(U & u, void const *, B1 & b1) const + { + BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1); + } + +public: + + explicit BOOST_MEM_FN_NAME(mf1)(F f): f_(f) {} + + R operator()(T * p, A1 a1) const + { + BOOST_MEM_FN_RETURN (p->*f_)(a1); + } + + template R operator()(U & u, A1 a1) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1); + } + +#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS + + template R operator()(U const & u, A1 a1) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1); + } + +#endif + + R operator()(T & t, A1 a1) const + { + BOOST_MEM_FN_RETURN (t.*f_)(a1); + } + + bool operator==(BOOST_MEM_FN_NAME(mf1) const & rhs) const + { + return f_ == rhs.f_; + } + + bool operator!=(BOOST_MEM_FN_NAME(mf1) const & rhs) const + { + return f_ != rhs.f_; + } +}; + +// cmf1 + +template class BOOST_MEM_FN_NAME(cmf1) +{ +public: + + typedef R result_type; + typedef T const * first_argument_type; + typedef A1 second_argument_type; + +private: + + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1) const) + F f_; + + template R call(U & u, T const *, B1 & b1) const + { + BOOST_MEM_FN_RETURN (u.*f_)(b1); + } + + template R call(U & u, void const *, B1 & b1) const + { + BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1); + } + +public: + + explicit BOOST_MEM_FN_NAME(cmf1)(F f): f_(f) {} + + template R operator()(U const & u, A1 a1) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1); + } + + R operator()(T const & t, A1 a1) const + { + BOOST_MEM_FN_RETURN (t.*f_)(a1); + } + + bool operator==(BOOST_MEM_FN_NAME(cmf1) const & rhs) const + { + return f_ == rhs.f_; + } + + bool operator!=(BOOST_MEM_FN_NAME(cmf1) const & rhs) const + { + return f_ != rhs.f_; + } +}; + +// mf2 + +template class BOOST_MEM_FN_NAME(mf2) +{ +public: + + typedef R result_type; + +private: + + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2)) + F f_; + + template R call(U & u, T const *, B1 & b1, B2 & b2) const + { + BOOST_MEM_FN_RETURN (u.*f_)(b1, b2); + } + + template R call(U & u, void const *, B1 & b1, B2 & b2) const + { + BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2); + } + +public: + + explicit BOOST_MEM_FN_NAME(mf2)(F f): f_(f) {} + + R operator()(T * p, A1 a1, A2 a2) const + { + BOOST_MEM_FN_RETURN (p->*f_)(a1, a2); + } + + template R operator()(U & u, A1 a1, A2 a2) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1, a2); + } + +#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS + + template R operator()(U const & u, A1 a1, A2 a2) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1, a2); + } + +#endif + + R operator()(T & t, A1 a1, A2 a2) const + { + BOOST_MEM_FN_RETURN (t.*f_)(a1, a2); + } + + bool operator==(BOOST_MEM_FN_NAME(mf2) const & rhs) const + { + return f_ == rhs.f_; + } + + bool operator!=(BOOST_MEM_FN_NAME(mf2) const & rhs) const + { + return f_ != rhs.f_; + } +}; + +// cmf2 + +template class BOOST_MEM_FN_NAME(cmf2) +{ +public: + + typedef R result_type; + +private: + + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2) const) + F f_; + + template R call(U & u, T const *, B1 & b1, B2 & b2) const + { + BOOST_MEM_FN_RETURN (u.*f_)(b1, b2); + } + + template R call(U & u, void const *, B1 & b1, B2 & b2) const + { + BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2); + } + +public: + + explicit BOOST_MEM_FN_NAME(cmf2)(F f): f_(f) {} + + template R operator()(U const & u, A1 a1, A2 a2) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1, a2); + } + + R operator()(T const & t, A1 a1, A2 a2) const + { + BOOST_MEM_FN_RETURN (t.*f_)(a1, a2); + } + + bool operator==(BOOST_MEM_FN_NAME(cmf2) const & rhs) const + { + return f_ == rhs.f_; + } + + bool operator!=(BOOST_MEM_FN_NAME(cmf2) const & rhs) const + { + return f_ != rhs.f_; + } +}; + +// mf3 + +template class BOOST_MEM_FN_NAME(mf3) +{ +public: + + typedef R result_type; + +private: + + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3)) + F f_; + + template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3) const + { + BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3); + } + + template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3) const + { + BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3); + } + +public: + + explicit BOOST_MEM_FN_NAME(mf3)(F f): f_(f) {} + + R operator()(T * p, A1 a1, A2 a2, A3 a3) const + { + BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3); + } + + template R operator()(U & u, A1 a1, A2 a2, A3 a3) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3); + } + +#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS + + template R operator()(U const & u, A1 a1, A2 a2, A3 a3) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3); + } + +#endif + + R operator()(T & t, A1 a1, A2 a2, A3 a3) const + { + BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3); + } + + bool operator==(BOOST_MEM_FN_NAME(mf3) const & rhs) const + { + return f_ == rhs.f_; + } + + bool operator!=(BOOST_MEM_FN_NAME(mf3) const & rhs) const + { + return f_ != rhs.f_; + } +}; + +// cmf3 + +template class BOOST_MEM_FN_NAME(cmf3) +{ +public: + + typedef R result_type; + +private: + + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3) const) + F f_; + + template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3) const + { + BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3); + } + + template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3) const + { + BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3); + } + +public: + + explicit BOOST_MEM_FN_NAME(cmf3)(F f): f_(f) {} + + template R operator()(U const & u, A1 a1, A2 a2, A3 a3) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3); + } + + R operator()(T const & t, A1 a1, A2 a2, A3 a3) const + { + BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3); + } + + bool operator==(BOOST_MEM_FN_NAME(cmf3) const & rhs) const + { + return f_ == rhs.f_; + } + + bool operator!=(BOOST_MEM_FN_NAME(cmf3) const & rhs) const + { + return f_ != rhs.f_; + } +}; + +// mf4 + +template class BOOST_MEM_FN_NAME(mf4) +{ +public: + + typedef R result_type; + +private: + + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4)) + F f_; + + template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const + { + BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4); + } + + template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const + { + BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4); + } + +public: + + explicit BOOST_MEM_FN_NAME(mf4)(F f): f_(f) {} + + R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4) const + { + BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4); + } + + template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4); + } + +#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS + + template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4); + } + +#endif + + R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4) const + { + BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4); + } + + bool operator==(BOOST_MEM_FN_NAME(mf4) const & rhs) const + { + return f_ == rhs.f_; + } + + bool operator!=(BOOST_MEM_FN_NAME(mf4) const & rhs) const + { + return f_ != rhs.f_; + } +}; + +// cmf4 + +template class BOOST_MEM_FN_NAME(cmf4) +{ +public: + + typedef R result_type; + +private: + + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4) const) + F f_; + + template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const + { + BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4); + } + + template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const + { + BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4); + } + +public: + + explicit BOOST_MEM_FN_NAME(cmf4)(F f): f_(f) {} + + template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4); + } + + R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4) const + { + BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4); + } + + bool operator==(BOOST_MEM_FN_NAME(cmf4) const & rhs) const + { + return f_ == rhs.f_; + } + + bool operator!=(BOOST_MEM_FN_NAME(cmf4) const & rhs) const + { + return f_ != rhs.f_; + } +}; + +// mf5 + +template class BOOST_MEM_FN_NAME(mf5) +{ +public: + + typedef R result_type; + +private: + + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5)) + F f_; + + template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const + { + BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5); + } + + template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const + { + BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5); + } + +public: + + explicit BOOST_MEM_FN_NAME(mf5)(F f): f_(f) {} + + R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const + { + BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5); + } + + template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5); + } + +#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS + + template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5); + } + +#endif + + R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const + { + BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5); + } + + bool operator==(BOOST_MEM_FN_NAME(mf5) const & rhs) const + { + return f_ == rhs.f_; + } + + bool operator!=(BOOST_MEM_FN_NAME(mf5) const & rhs) const + { + return f_ != rhs.f_; + } +}; + +// cmf5 + +template class BOOST_MEM_FN_NAME(cmf5) +{ +public: + + typedef R result_type; + +private: + + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5) const) + F f_; + + template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const + { + BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5); + } + + template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const + { + BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5); + } + +public: + + explicit BOOST_MEM_FN_NAME(cmf5)(F f): f_(f) {} + + template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5); + } + + R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const + { + BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5); + } + + bool operator==(BOOST_MEM_FN_NAME(cmf5) const & rhs) const + { + return f_ == rhs.f_; + } + + bool operator!=(BOOST_MEM_FN_NAME(cmf5) const & rhs) const + { + return f_ != rhs.f_; + } +}; + +// mf6 + +template class BOOST_MEM_FN_NAME(mf6) +{ +public: + + typedef R result_type; + +private: + + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6)) + F f_; + + template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const + { + BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6); + } + + template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const + { + BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6); + } + +public: + + explicit BOOST_MEM_FN_NAME(mf6)(F f): f_(f) {} + + R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const + { + BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6); + } + + template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6); + } + +#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS + + template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6); + } + +#endif + + R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const + { + BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6); + } + + bool operator==(BOOST_MEM_FN_NAME(mf6) const & rhs) const + { + return f_ == rhs.f_; + } + + bool operator!=(BOOST_MEM_FN_NAME(mf6) const & rhs) const + { + return f_ != rhs.f_; + } +}; + +// cmf6 + +template class BOOST_MEM_FN_NAME(cmf6) +{ +public: + + typedef R result_type; + +private: + + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6) const) + F f_; + + template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const + { + BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6); + } + + template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const + { + BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6); + } + +public: + + explicit BOOST_MEM_FN_NAME(cmf6)(F f): f_(f) {} + + template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6); + } + + R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const + { + BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6); + } + + bool operator==(BOOST_MEM_FN_NAME(cmf6) const & rhs) const + { + return f_ == rhs.f_; + } + + bool operator!=(BOOST_MEM_FN_NAME(cmf6) const & rhs) const + { + return f_ != rhs.f_; + } +}; + +// mf7 + +template class BOOST_MEM_FN_NAME(mf7) +{ +public: + + typedef R result_type; + +private: + + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7)) + F f_; + + template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const + { + BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7); + } + + template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const + { + BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7); + } + +public: + + explicit BOOST_MEM_FN_NAME(mf7)(F f): f_(f) {} + + R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const + { + BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6, a7); + } + + template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7); + } + +#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS + + template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7); + } + +#endif + + R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const + { + BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7); + } + + bool operator==(BOOST_MEM_FN_NAME(mf7) const & rhs) const + { + return f_ == rhs.f_; + } + + bool operator!=(BOOST_MEM_FN_NAME(mf7) const & rhs) const + { + return f_ != rhs.f_; + } +}; + +// cmf7 + +template class BOOST_MEM_FN_NAME(cmf7) +{ +public: + + typedef R result_type; + +private: + + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7) const) + F f_; + + template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const + { + BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7); + } + + template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const + { + BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7); + } + +public: + + explicit BOOST_MEM_FN_NAME(cmf7)(F f): f_(f) {} + + template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7); + } + + R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const + { + BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7); + } + + bool operator==(BOOST_MEM_FN_NAME(cmf7) const & rhs) const + { + return f_ == rhs.f_; + } + + bool operator!=(BOOST_MEM_FN_NAME(cmf7) const & rhs) const + { + return f_ != rhs.f_; + } +}; + +// mf8 + +template class BOOST_MEM_FN_NAME(mf8) +{ +public: + + typedef R result_type; + +private: + + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8)) + F f_; + + template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const + { + BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7, b8); + } + + template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const + { + BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7, b8); + } + +public: + + explicit BOOST_MEM_FN_NAME(mf8)(F f): f_(f) {} + + R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const + { + BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6, a7, a8); + } + + template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7, a8); + } + +#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS + + template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7, a8); + } + +#endif + + R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const + { + BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7, a8); + } + + bool operator==(BOOST_MEM_FN_NAME(mf8) const & rhs) const + { + return f_ == rhs.f_; + } + + bool operator!=(BOOST_MEM_FN_NAME(mf8) const & rhs) const + { + return f_ != rhs.f_; + } +}; + +// cmf8 + +template class BOOST_MEM_FN_NAME(cmf8) +{ +public: + + typedef R result_type; + +private: + + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8) const) + F f_; + + template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const + { + BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7, b8); + } + + template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const + { + BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7, b8); + } + +public: + + explicit BOOST_MEM_FN_NAME(cmf8)(F f): f_(f) {} + + R operator()(T const * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const + { + BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6, a7, a8); + } + + template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const + { + U const * p = 0; + BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7, a8); + } + + R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const + { + BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7, a8); + } + + bool operator==(BOOST_MEM_FN_NAME(cmf8) const & rhs) const + { + return f_ == rhs.f_; + } + + bool operator!=(BOOST_MEM_FN_NAME(cmf8) const & rhs) const + { + return f_ != rhs.f_; + } +}; + +#undef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS diff --git a/src/boost/bind/mem_fn_vw.hpp b/src/boost/bind/mem_fn_vw.hpp new file mode 100644 index 00000000..f3fc58db --- /dev/null +++ b/src/boost/bind/mem_fn_vw.hpp @@ -0,0 +1,130 @@ +// +// bind/mem_fn_vw.hpp - void return helper wrappers +// +// Do not include this header directly +// +// Copyright (c) 2001 Peter Dimov and Multi Media Ltd. +// +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/bind/mem_fn.html for documentation. +// + +template struct BOOST_MEM_FN_NAME(mf0): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf0) +{ + typedef R (BOOST_MEM_FN_CC T::*F) (); + explicit BOOST_MEM_FN_NAME(mf0)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf0)(f) {} +}; + +template struct BOOST_MEM_FN_NAME(cmf0): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf0) +{ + typedef R (BOOST_MEM_FN_CC T::*F) () const; + explicit BOOST_MEM_FN_NAME(cmf0)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf0)(f) {} +}; + + +template struct BOOST_MEM_FN_NAME(mf1): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf1) +{ + typedef R (BOOST_MEM_FN_CC T::*F) (A1); + explicit BOOST_MEM_FN_NAME(mf1)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf1)(f) {} +}; + +template struct BOOST_MEM_FN_NAME(cmf1): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf1) +{ + typedef R (BOOST_MEM_FN_CC T::*F) (A1) const; + explicit BOOST_MEM_FN_NAME(cmf1)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf1)(f) {} +}; + + +template struct BOOST_MEM_FN_NAME(mf2): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf2) +{ + typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2); + explicit BOOST_MEM_FN_NAME(mf2)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf2)(f) {} +}; + +template struct BOOST_MEM_FN_NAME(cmf2): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf2) +{ + typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2) const; + explicit BOOST_MEM_FN_NAME(cmf2)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf2)(f) {} +}; + + +template struct BOOST_MEM_FN_NAME(mf3): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf3) +{ + typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3); + explicit BOOST_MEM_FN_NAME(mf3)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf3)(f) {} +}; + +template struct BOOST_MEM_FN_NAME(cmf3): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf3) +{ + typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3) const; + explicit BOOST_MEM_FN_NAME(cmf3)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf3)(f) {} +}; + + +template struct BOOST_MEM_FN_NAME(mf4): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf4) +{ + typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4); + explicit BOOST_MEM_FN_NAME(mf4)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf4)(f) {} +}; + +template struct BOOST_MEM_FN_NAME(cmf4): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf4) +{ + typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4) const; + explicit BOOST_MEM_FN_NAME(cmf4)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf4)(f) {} +}; + + +template struct BOOST_MEM_FN_NAME(mf5): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf5) +{ + typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5); + explicit BOOST_MEM_FN_NAME(mf5)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf5)(f) {} +}; + +template struct BOOST_MEM_FN_NAME(cmf5): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf5) +{ + typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5) const; + explicit BOOST_MEM_FN_NAME(cmf5)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf5)(f) {} +}; + + +template struct BOOST_MEM_FN_NAME(mf6): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf6) +{ + typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6); + explicit BOOST_MEM_FN_NAME(mf6)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf6)(f) {} +}; + +template struct BOOST_MEM_FN_NAME(cmf6): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf6) +{ + typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6) const; + explicit BOOST_MEM_FN_NAME(cmf6)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf6)(f) {} +}; + + +template struct BOOST_MEM_FN_NAME(mf7): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf7) +{ + typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7); + explicit BOOST_MEM_FN_NAME(mf7)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf7)(f) {} +}; + +template struct BOOST_MEM_FN_NAME(cmf7): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf7) +{ + typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7) const; + explicit BOOST_MEM_FN_NAME(cmf7)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf7)(f) {} +}; + + +template struct BOOST_MEM_FN_NAME(mf8): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf8) +{ + typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8); + explicit BOOST_MEM_FN_NAME(mf8)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf8)(f) {} +}; + +template struct BOOST_MEM_FN_NAME(cmf8): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf8) +{ + typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8) const; + explicit BOOST_MEM_FN_NAME(cmf8)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf8)(f) {} +}; + diff --git a/src/boost/bind/placeholders.hpp b/src/boost/bind/placeholders.hpp new file mode 100644 index 00000000..5e4b96d8 --- /dev/null +++ b/src/boost/bind/placeholders.hpp @@ -0,0 +1,74 @@ +#ifndef BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED +#define BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// +// bind/placeholders.hpp - _N definitions +// +// Copyright (c) 2002 Peter Dimov and Multi Media Ltd. +// Copyright 2015 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +// +// See http://www.boost.org/libs/bind/bind.html for documentation. +// + +#include +#include + +namespace boost +{ + +namespace placeholders +{ + +#if defined(BOOST_BORLANDC) || defined(__GNUC__) && (__GNUC__ < 4) + +inline boost::arg<1> _1() { return boost::arg<1>(); } +inline boost::arg<2> _2() { return boost::arg<2>(); } +inline boost::arg<3> _3() { return boost::arg<3>(); } +inline boost::arg<4> _4() { return boost::arg<4>(); } +inline boost::arg<5> _5() { return boost::arg<5>(); } +inline boost::arg<6> _6() { return boost::arg<6>(); } +inline boost::arg<7> _7() { return boost::arg<7>(); } +inline boost::arg<8> _8() { return boost::arg<8>(); } +inline boost::arg<9> _9() { return boost::arg<9>(); } + +#elif !defined(BOOST_NO_CXX17_INLINE_VARIABLES) + +BOOST_INLINE_CONSTEXPR boost::arg<1> _1; +BOOST_INLINE_CONSTEXPR boost::arg<2> _2; +BOOST_INLINE_CONSTEXPR boost::arg<3> _3; +BOOST_INLINE_CONSTEXPR boost::arg<4> _4; +BOOST_INLINE_CONSTEXPR boost::arg<5> _5; +BOOST_INLINE_CONSTEXPR boost::arg<6> _6; +BOOST_INLINE_CONSTEXPR boost::arg<7> _7; +BOOST_INLINE_CONSTEXPR boost::arg<8> _8; +BOOST_INLINE_CONSTEXPR boost::arg<9> _9; + +#else + +BOOST_STATIC_CONSTEXPR boost::arg<1> _1; +BOOST_STATIC_CONSTEXPR boost::arg<2> _2; +BOOST_STATIC_CONSTEXPR boost::arg<3> _3; +BOOST_STATIC_CONSTEXPR boost::arg<4> _4; +BOOST_STATIC_CONSTEXPR boost::arg<5> _5; +BOOST_STATIC_CONSTEXPR boost::arg<6> _6; +BOOST_STATIC_CONSTEXPR boost::arg<7> _7; +BOOST_STATIC_CONSTEXPR boost::arg<8> _8; +BOOST_STATIC_CONSTEXPR boost::arg<9> _9; + +#endif + +} // namespace placeholders + +} // namespace boost + +#endif // #ifndef BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED diff --git a/src/boost/bind/std_placeholders.hpp b/src/boost/bind/std_placeholders.hpp new file mode 100644 index 00000000..125ff240 --- /dev/null +++ b/src/boost/bind/std_placeholders.hpp @@ -0,0 +1,40 @@ +#ifndef BOOST_BIND_STD_PLACEHOLDERS_HPP_INCLUDED +#define BOOST_BIND_STD_PLACEHOLDERS_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// Copyright 2021 Peter Dimov +// Distributed under the Boost Software License, Version 1.0. +// https://www.boost.org/LICENSE_1_0.txt + +#include +#include +#include + +#if !defined(BOOST_NO_CXX11_HDR_FUNCTIONAL) && !defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) + +#include +#include + +namespace boost +{ + +template<> struct is_placeholder< typename std::decay::type > { enum _vt { value = 1 }; }; +template<> struct is_placeholder< typename std::decay::type > { enum _vt { value = 2 }; }; +template<> struct is_placeholder< typename std::decay::type > { enum _vt { value = 3 }; }; +template<> struct is_placeholder< typename std::decay::type > { enum _vt { value = 4 }; }; +template<> struct is_placeholder< typename std::decay::type > { enum _vt { value = 5 }; }; +template<> struct is_placeholder< typename std::decay::type > { enum _vt { value = 6 }; }; +template<> struct is_placeholder< typename std::decay::type > { enum _vt { value = 7 }; }; +template<> struct is_placeholder< typename std::decay::type > { enum _vt { value = 8 }; }; +template<> struct is_placeholder< typename std::decay::type > { enum _vt { value = 9 }; }; + +} // namespace boost + +#endif + +#endif // #ifndef BOOST_BIND_STD_PLACEHOLDERS_HPP_INCLUDED diff --git a/src/boost/bind/storage.hpp b/src/boost/bind/storage.hpp new file mode 100644 index 00000000..2ab0db18 --- /dev/null +++ b/src/boost/bind/storage.hpp @@ -0,0 +1,476 @@ +#ifndef BOOST_BIND_STORAGE_HPP_INCLUDED +#define BOOST_BIND_STORAGE_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// +// bind/storage.hpp +// +// boost/bind.hpp support header, optimized storage +// +// Copyright (c) 2006 Peter Dimov +// +// Distributed under the Boost Software License, Version 1.0. +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +// +// See http://www.boost.org/libs/bind/bind.html for documentation. +// + +#include +#include +#include + +#ifdef BOOST_MSVC +# pragma warning(push) +# pragma warning(disable: 4512) // assignment operator could not be generated +#endif + +namespace boost +{ + +namespace _bi +{ + +// 1 + +template struct storage1 +{ + explicit storage1( A1 a1 ): a1_( a1 ) {} + + template void accept(V & v) const + { + BOOST_BIND_VISIT_EACH(v, a1_, 0); + } + + A1 a1_; +}; + +#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( BOOST_BORLANDC ) + +template struct storage1< boost::arg > +{ + explicit storage1( boost::arg ) {} + + template void accept(V &) const { } + + static boost::arg a1_() { return boost::arg(); } +}; + +template struct storage1< boost::arg (*) () > +{ + explicit storage1( boost::arg (*) () ) {} + + template void accept(V &) const { } + + static boost::arg a1_() { return boost::arg(); } +}; + +#endif + +// 2 + +template struct storage2: public storage1 +{ + typedef storage1 inherited; + + storage2( A1 a1, A2 a2 ): storage1( a1 ), a2_( a2 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + BOOST_BIND_VISIT_EACH(v, a2_, 0); + } + + A2 a2_; +}; + +#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +template struct storage2< A1, boost::arg >: public storage1 +{ + typedef storage1 inherited; + + storage2( A1 a1, boost::arg ): storage1( a1 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + } + + static boost::arg a2_() { return boost::arg(); } +}; + +template struct storage2< A1, boost::arg (*) () >: public storage1 +{ + typedef storage1 inherited; + + storage2( A1 a1, boost::arg (*) () ): storage1( a1 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + } + + static boost::arg a2_() { return boost::arg(); } +}; + +#endif + +// 3 + +template struct storage3: public storage2< A1, A2 > +{ + typedef storage2 inherited; + + storage3( A1 a1, A2 a2, A3 a3 ): storage2( a1, a2 ), a3_( a3 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + BOOST_BIND_VISIT_EACH(v, a3_, 0); + } + + A3 a3_; +}; + +#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +template struct storage3< A1, A2, boost::arg >: public storage2< A1, A2 > +{ + typedef storage2 inherited; + + storage3( A1 a1, A2 a2, boost::arg ): storage2( a1, a2 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + } + + static boost::arg a3_() { return boost::arg(); } +}; + +template struct storage3< A1, A2, boost::arg (*) () >: public storage2< A1, A2 > +{ + typedef storage2 inherited; + + storage3( A1 a1, A2 a2, boost::arg (*) () ): storage2( a1, a2 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + } + + static boost::arg a3_() { return boost::arg(); } +}; + +#endif + +// 4 + +template struct storage4: public storage3< A1, A2, A3 > +{ + typedef storage3 inherited; + + storage4( A1 a1, A2 a2, A3 a3, A4 a4 ): storage3( a1, a2, a3 ), a4_( a4 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + BOOST_BIND_VISIT_EACH(v, a4_, 0); + } + + A4 a4_; +}; + +#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +template struct storage4< A1, A2, A3, boost::arg >: public storage3< A1, A2, A3 > +{ + typedef storage3 inherited; + + storage4( A1 a1, A2 a2, A3 a3, boost::arg ): storage3( a1, a2, a3 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + } + + static boost::arg a4_() { return boost::arg(); } +}; + +template struct storage4< A1, A2, A3, boost::arg (*) () >: public storage3< A1, A2, A3 > +{ + typedef storage3 inherited; + + storage4( A1 a1, A2 a2, A3 a3, boost::arg (*) () ): storage3( a1, a2, a3 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + } + + static boost::arg a4_() { return boost::arg(); } +}; + +#endif + +// 5 + +template struct storage5: public storage4< A1, A2, A3, A4 > +{ + typedef storage4 inherited; + + storage5( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 ): storage4( a1, a2, a3, a4 ), a5_( a5 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + BOOST_BIND_VISIT_EACH(v, a5_, 0); + } + + A5 a5_; +}; + +#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +template struct storage5< A1, A2, A3, A4, boost::arg >: public storage4< A1, A2, A3, A4 > +{ + typedef storage4 inherited; + + storage5( A1 a1, A2 a2, A3 a3, A4 a4, boost::arg ): storage4( a1, a2, a3, a4 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + } + + static boost::arg a5_() { return boost::arg(); } +}; + +template struct storage5< A1, A2, A3, A4, boost::arg (*) () >: public storage4< A1, A2, A3, A4 > +{ + typedef storage4 inherited; + + storage5( A1 a1, A2 a2, A3 a3, A4 a4, boost::arg (*) () ): storage4( a1, a2, a3, a4 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + } + + static boost::arg a5_() { return boost::arg(); } +}; + +#endif + +// 6 + +template struct storage6: public storage5< A1, A2, A3, A4, A5 > +{ + typedef storage5 inherited; + + storage6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6 ): storage5( a1, a2, a3, a4, a5 ), a6_( a6 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + BOOST_BIND_VISIT_EACH(v, a6_, 0); + } + + A6 a6_; +}; + +#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +template struct storage6< A1, A2, A3, A4, A5, boost::arg >: public storage5< A1, A2, A3, A4, A5 > +{ + typedef storage5 inherited; + + storage6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, boost::arg ): storage5( a1, a2, a3, a4, a5 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + } + + static boost::arg a6_() { return boost::arg(); } +}; + +template struct storage6< A1, A2, A3, A4, A5, boost::arg (*) () >: public storage5< A1, A2, A3, A4, A5 > +{ + typedef storage5 inherited; + + storage6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, boost::arg (*) () ): storage5( a1, a2, a3, a4, a5 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + } + + static boost::arg a6_() { return boost::arg(); } +}; + +#endif + +// 7 + +template struct storage7: public storage6< A1, A2, A3, A4, A5, A6 > +{ + typedef storage6 inherited; + + storage7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7 ): storage6( a1, a2, a3, a4, a5, a6 ), a7_( a7 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + BOOST_BIND_VISIT_EACH(v, a7_, 0); + } + + A7 a7_; +}; + +#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +template struct storage7< A1, A2, A3, A4, A5, A6, boost::arg >: public storage6< A1, A2, A3, A4, A5, A6 > +{ + typedef storage6 inherited; + + storage7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, boost::arg ): storage6( a1, a2, a3, a4, a5, a6 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + } + + static boost::arg a7_() { return boost::arg(); } +}; + +template struct storage7< A1, A2, A3, A4, A5, A6, boost::arg (*) () >: public storage6< A1, A2, A3, A4, A5, A6 > +{ + typedef storage6 inherited; + + storage7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, boost::arg (*) () ): storage6( a1, a2, a3, a4, a5, a6 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + } + + static boost::arg a7_() { return boost::arg(); } +}; + +#endif + +// 8 + +template struct storage8: public storage7< A1, A2, A3, A4, A5, A6, A7 > +{ + typedef storage7 inherited; + + storage8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8 ): storage7( a1, a2, a3, a4, a5, a6, a7 ), a8_( a8 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + BOOST_BIND_VISIT_EACH(v, a8_, 0); + } + + A8 a8_; +}; + +#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +template struct storage8< A1, A2, A3, A4, A5, A6, A7, boost::arg >: public storage7< A1, A2, A3, A4, A5, A6, A7 > +{ + typedef storage7 inherited; + + storage8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, boost::arg ): storage7( a1, a2, a3, a4, a5, a6, a7 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + } + + static boost::arg a8_() { return boost::arg(); } +}; + +template struct storage8< A1, A2, A3, A4, A5, A6, A7, boost::arg (*) () >: public storage7< A1, A2, A3, A4, A5, A6, A7 > +{ + typedef storage7 inherited; + + storage8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, boost::arg (*) () ): storage7( a1, a2, a3, a4, a5, a6, a7 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + } + + static boost::arg a8_() { return boost::arg(); } +}; + +#endif + +// 9 + +template struct storage9: public storage8< A1, A2, A3, A4, A5, A6, A7, A8 > +{ + typedef storage8 inherited; + + storage9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9 ): storage8( a1, a2, a3, a4, a5, a6, a7, a8 ), a9_( a9 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + BOOST_BIND_VISIT_EACH(v, a9_, 0); + } + + A9 a9_; +}; + +#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) + +template struct storage9< A1, A2, A3, A4, A5, A6, A7, A8, boost::arg >: public storage8< A1, A2, A3, A4, A5, A6, A7, A8 > +{ + typedef storage8 inherited; + + storage9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, boost::arg ): storage8( a1, a2, a3, a4, a5, a6, a7, a8 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + } + + static boost::arg a9_() { return boost::arg(); } +}; + +template struct storage9< A1, A2, A3, A4, A5, A6, A7, A8, boost::arg (*) () >: public storage8< A1, A2, A3, A4, A5, A6, A7, A8 > +{ + typedef storage8 inherited; + + storage9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, boost::arg (*) () ): storage8( a1, a2, a3, a4, a5, a6, a7, a8 ) {} + + template void accept(V & v) const + { + inherited::accept(v); + } + + static boost::arg a9_() { return boost::arg(); } +}; + +#endif + +} // namespace _bi + +} // namespace boost + +#ifdef BOOST_MSVC +# pragma warning(default: 4512) // assignment operator could not be generated +# pragma warning(pop) +#endif + +#endif // #ifndef BOOST_BIND_STORAGE_HPP_INCLUDED diff --git a/src/boost/call_traits.hpp b/src/boost/call_traits.hpp new file mode 100644 index 00000000..2c1328e9 --- /dev/null +++ b/src/boost/call_traits.hpp @@ -0,0 +1,20 @@ +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// Use, modification and distribution are subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt). +// +// See http://www.boost.org/libs/utility for most recent version including documentation. + +// See boost/detail/call_traits.hpp +// for full copyright notices. + +#ifndef BOOST_CALL_TRAITS_HPP +#define BOOST_CALL_TRAITS_HPP + +#ifndef BOOST_CONFIG_HPP +#include +#endif + +#include + +#endif // BOOST_CALL_TRAITS_HPP diff --git a/src/boost/container/allocator_traits.hpp b/src/boost/container/allocator_traits.hpp new file mode 100644 index 00000000..f5f73efa --- /dev/null +++ b/src/boost/container/allocator_traits.hpp @@ -0,0 +1,502 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Pablo Halpern 2009. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2011-2013. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// +#ifndef BOOST_CONTAINER_ALLOCATOR_ALLOCATOR_TRAITS_HPP +#define BOOST_CONTAINER_ALLOCATOR_ALLOCATOR_TRAITS_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include +#include + +// container +#include +#include +#include //is_empty +#include +#ifndef BOOST_CONTAINER_DETAIL_STD_FWD_HPP +#include +#endif +// intrusive +#include +#include +// move +#include +// move/detail +#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) +#include +#endif +// other boost +#include + +#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +#if defined(BOOST_GCC) && (BOOST_GCC >= 40600) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-result" +#endif + +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME allocate +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEG namespace boost { namespace container { namespace dtl { +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END }}} +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MIN 2 +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MAX 2 +#include + +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME destroy +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEG namespace boost { namespace container { namespace dtl { +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END }}} +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MIN 1 +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MAX 1 +#include + +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME construct +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEG namespace boost { namespace container { namespace dtl { +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END }}} +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MIN 1 +#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MAX 9 +#include + +#if defined(BOOST_GCC) && (BOOST_GCC >= 40600) +#pragma GCC diagnostic pop +#endif + +#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +namespace boost { +namespace container { + +#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +template +class small_vector_allocator; + +namespace allocator_traits_detail { + +BOOST_INTRUSIVE_HAS_STATIC_MEMBER_FUNC_SIGNATURE(has_max_size, max_size) +BOOST_INTRUSIVE_HAS_STATIC_MEMBER_FUNC_SIGNATURE(has_select_on_container_copy_construction, select_on_container_copy_construction) + +} //namespace allocator_traits_detail { + +namespace dtl { + +//workaround needed for C++03 compilers with no construct() +//supporting rvalue references +template +struct is_std_allocator +{ static const bool value = false; }; + +template +struct is_std_allocator< std::allocator > +{ static const bool value = true; }; + +template +struct is_std_allocator< small_vector_allocator, Options > > +{ static const bool value = true; }; + +template +struct is_not_std_allocator +{ static const bool value = !is_std_allocator::value; }; + +BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(pointer) +BOOST_INTRUSIVE_INSTANTIATE_EVAL_DEFAULT_TYPE_TMPLT(const_pointer) +BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(reference) +BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(const_reference) +BOOST_INTRUSIVE_INSTANTIATE_EVAL_DEFAULT_TYPE_TMPLT(void_pointer) +BOOST_INTRUSIVE_INSTANTIATE_EVAL_DEFAULT_TYPE_TMPLT(const_void_pointer) +BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(size_type) +BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(propagate_on_container_copy_assignment) +BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(propagate_on_container_move_assignment) +BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(propagate_on_container_swap) +BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(is_always_equal) +BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(difference_type) +BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(is_partially_propagable) + +} //namespace dtl { + +#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +//! The class template allocator_traits supplies a uniform interface to all allocator types. +//! This class is a C++03-compatible implementation of std::allocator_traits +template +struct allocator_traits +{ + //allocator_type + typedef Allocator allocator_type; + //value_type + typedef typename allocator_type::value_type value_type; + + #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + //! Allocator::pointer if such a type exists; otherwise, value_type* + //! + typedef unspecified pointer; + //! Allocator::const_pointer if such a type exists ; otherwise, pointer_traits::rebind::rebind. + //! + typedef see_documentation void_pointer; + //! Allocator::const_void_pointer if such a type exists ; otherwise, pointer_traits::rebind::difference_type. + //! + typedef see_documentation difference_type; + //! Allocator::size_type if such a type exists ; otherwise, make_unsigned::type + //! + typedef see_documentation size_type; + //! Allocator::propagate_on_container_copy_assignment if such a type exists, otherwise a type + //! with an internal constant static boolean member value == false. + typedef see_documentation propagate_on_container_copy_assignment; + //! Allocator::propagate_on_container_move_assignment if such a type exists, otherwise a type + //! with an internal constant static boolean member value == false. + typedef see_documentation propagate_on_container_move_assignment; + //! Allocator::propagate_on_container_swap if such a type exists, otherwise a type + //! with an internal constant static boolean member value == false. + typedef see_documentation propagate_on_container_swap; + //! Allocator::is_always_equal if such a type exists, otherwise a type + //! with an internal constant static boolean member value == is_empty::value + typedef see_documentation is_always_equal; + //! Allocator::is_partially_propagable if such a type exists, otherwise a type + //! with an internal constant static boolean member value == false + //! Note: Non-standard extension used to implement `small_vector_allocator`. + typedef see_documentation is_partially_propagable; + //! Defines an allocator: Allocator::rebind::other if such a type exists; otherwise, Allocator + //! if Allocator is a class template instantiation of the form Allocator, where Args is zero or + //! more type arguments ; otherwise, the instantiation of rebind_alloc is ill-formed. + //! + //! In C++03 compilers rebind_alloc is a struct derived from an allocator + //! deduced by previously detailed rules. + template using rebind_alloc = see_documentation; + + //! In C++03 compilers rebind_traits is a struct derived from + //! allocator_traits, where OtherAlloc is + //! the allocator deduced by rules explained in rebind_alloc. + template using rebind_traits = allocator_traits >; + + //! Non-standard extension: Portable allocator rebind for C++03 and C++11 compilers. + //! type is an allocator related to Allocator deduced deduced by rules explained in rebind_alloc. + template + struct portable_rebind_alloc + { typedef see_documentation type; }; + #else + //pointer + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(boost::container::dtl::, Allocator, + pointer, value_type*) + pointer; + //const_pointer + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_EVAL_DEFAULT(boost::container::dtl::, Allocator, + const_pointer, typename boost::intrusive::pointer_traits::template + rebind_pointer) + const_pointer; + //reference + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(boost::container::dtl::, Allocator, + reference, typename dtl::unvoid_ref::type) + reference; + //const_reference + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(boost::container::dtl::, Allocator, + const_reference, typename dtl::unvoid_ref::type) + const_reference; + //void_pointer + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_EVAL_DEFAULT(boost::container::dtl::, Allocator, + void_pointer, typename boost::intrusive::pointer_traits::template + rebind_pointer) + void_pointer; + //const_void_pointer + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_EVAL_DEFAULT(boost::container::dtl::, Allocator, + const_void_pointer, typename boost::intrusive::pointer_traits::template + rebind_pointer) + const_void_pointer; + //difference_type + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(boost::container::dtl::, Allocator, + difference_type, std::ptrdiff_t) + difference_type; + //size_type + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(boost::container::dtl::, Allocator, + size_type, std::size_t) + size_type; + //propagate_on_container_copy_assignment + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(boost::container::dtl::, Allocator, + propagate_on_container_copy_assignment, dtl::false_type) + propagate_on_container_copy_assignment; + //propagate_on_container_move_assignment + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(boost::container::dtl::, Allocator, + propagate_on_container_move_assignment, dtl::false_type) + propagate_on_container_move_assignment; + //propagate_on_container_swap + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(boost::container::dtl::, Allocator, + propagate_on_container_swap, dtl::false_type) + propagate_on_container_swap; + //is_always_equal + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(boost::container::dtl::, Allocator, + is_always_equal, dtl::is_empty) + is_always_equal; + //is_partially_propagable + typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(boost::container::dtl::, Allocator, + is_partially_propagable, dtl::false_type) + is_partially_propagable; + + //rebind_alloc & rebind_traits + #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + //C++11 + template using rebind_alloc = typename boost::intrusive::pointer_rebind::type; + template using rebind_traits = allocator_traits< rebind_alloc >; + #else // #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + //Some workaround for C++03 or C++11 compilers with no template aliases + template + struct rebind_alloc : boost::intrusive::pointer_rebind::type + { + typedef typename boost::intrusive::pointer_rebind::type Base; + #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + template + rebind_alloc(BOOST_FWD_REF(Args)... args) : Base(boost::forward(args)...) {} + #else // #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + #define BOOST_CONTAINER_ALLOCATOR_TRAITS_REBIND_ALLOC(N) \ + BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N\ + explicit rebind_alloc(BOOST_MOVE_UREF##N) : Base(BOOST_MOVE_FWD##N){}\ + // + BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_ALLOCATOR_TRAITS_REBIND_ALLOC) + #undef BOOST_CONTAINER_ALLOCATOR_TRAITS_REBIND_ALLOC + #endif // #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + }; + + template + struct rebind_traits + : allocator_traits::type> + {}; + #endif // #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) + + //portable_rebind_alloc + template + struct portable_rebind_alloc + { typedef typename boost::intrusive::pointer_rebind::type type; }; + #endif //BOOST_CONTAINER_DOXYGEN_INVOKED + + //! Returns: a.allocate(n) + //! + BOOST_CONTAINER_FORCEINLINE static pointer allocate(Allocator &a, size_type n) + { return a.allocate(n); } + + //! Returns: a.deallocate(p, n) + //! + //! Throws: Nothing + BOOST_CONTAINER_FORCEINLINE static void deallocate(Allocator &a, pointer p, size_type n) + { a.deallocate(p, n); } + + //! Effects: calls a.allocate(n, p) if that call is well-formed; + //! otherwise, invokes a.allocate(n) + BOOST_CONTAINER_FORCEINLINE static pointer allocate(Allocator &a, size_type n, const_void_pointer p) + { + const bool value = boost::container::dtl:: + has_member_function_callable_with_allocate + ::value; + dtl::bool_ flag; + return allocator_traits::priv_allocate(flag, a, n, p); + } + + //! Effects: calls a.destroy(p) if that call is well-formed; + //! otherwise, invokes p->~T(). + template + BOOST_CONTAINER_FORCEINLINE static void destroy(Allocator &a, T*p) BOOST_NOEXCEPT_OR_NOTHROW + { + typedef T* destroy_pointer; + const bool value = boost::container::dtl:: + has_member_function_callable_with_destroy + ::value; + dtl::bool_ flag; + allocator_traits::priv_destroy(flag, a, p); + } + + //! Returns: a.max_size() if that expression is well-formed; otherwise, + //! numeric_limits::max(). + BOOST_CONTAINER_FORCEINLINE static size_type max_size(const Allocator &a) BOOST_NOEXCEPT_OR_NOTHROW + { + const bool value = allocator_traits_detail::has_max_size::value; + dtl::bool_ flag; + return allocator_traits::priv_max_size(flag, a); + } + + //! Returns: a.select_on_container_copy_construction() if that expression is well-formed; + //! otherwise, a. + BOOST_CONTAINER_FORCEINLINE static BOOST_CONTAINER_DOC1ST(Allocator, + typename dtl::if_c + < allocator_traits_detail::has_select_on_container_copy_construction::value + BOOST_MOVE_I Allocator BOOST_MOVE_I const Allocator & >::type) + select_on_container_copy_construction(const Allocator &a) + { + const bool value = allocator_traits_detail::has_select_on_container_copy_construction + ::value; + dtl::bool_ flag; + return allocator_traits::priv_select_on_container_copy_construction(flag, a); + } + + #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + //! Effects: calls a.construct(p, std::forward(args)...) if that call is well-formed; + //! otherwise, invokes `placement new` (static_cast(p)) T(std::forward(args)...) + template + BOOST_CONTAINER_FORCEINLINE static void construct(Allocator & a, T* p, BOOST_FWD_REF(Args)... args) + { + static const bool value = ::boost::move_detail::and_ + < dtl::is_not_std_allocator + , boost::container::dtl::has_member_function_callable_with_construct + < Allocator, T*, Args... > + >::value; + dtl::bool_ flag; + allocator_traits::priv_construct(flag, a, p, ::boost::forward(args)...); + } + #endif + + //! Returns: a.storage_is_unpropagable(p) if is_partially_propagable::value is true; otherwise, + //! false. + BOOST_CONTAINER_FORCEINLINE static bool storage_is_unpropagable(const Allocator &a, pointer p) BOOST_NOEXCEPT_OR_NOTHROW + { + dtl::bool_ flag; + return allocator_traits::priv_storage_is_unpropagable(flag, a, p); + } + + //! Returns: true if is_always_equal::value == true, otherwise, + //! a == b. + BOOST_CONTAINER_FORCEINLINE static bool equal(const Allocator &a, const Allocator &b) BOOST_NOEXCEPT_OR_NOTHROW + { + dtl::bool_ flag; + return allocator_traits::priv_equal(flag, a, b); + } + + #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + private: + BOOST_CONTAINER_FORCEINLINE static pointer priv_allocate(dtl::true_type, Allocator &a, size_type n, const_void_pointer p) + { return a.allocate(n, p); } + + BOOST_CONTAINER_FORCEINLINE static pointer priv_allocate(dtl::false_type, Allocator &a, size_type n, const_void_pointer) + { return a.allocate(n); } + + template + BOOST_CONTAINER_FORCEINLINE static void priv_destroy(dtl::true_type, Allocator &a, T* p) BOOST_NOEXCEPT_OR_NOTHROW + { a.destroy(p); } + + template + BOOST_CONTAINER_FORCEINLINE static void priv_destroy(dtl::false_type, Allocator &, T* p) BOOST_NOEXCEPT_OR_NOTHROW + { p->~T(); (void)p; } + + BOOST_CONTAINER_FORCEINLINE static size_type priv_max_size(dtl::true_type, const Allocator &a) BOOST_NOEXCEPT_OR_NOTHROW + { return a.max_size(); } + + BOOST_CONTAINER_FORCEINLINE static size_type priv_max_size(dtl::false_type, const Allocator &) BOOST_NOEXCEPT_OR_NOTHROW + { return size_type(-1)/sizeof(value_type); } + + BOOST_CONTAINER_FORCEINLINE static Allocator priv_select_on_container_copy_construction(dtl::true_type, const Allocator &a) + { return a.select_on_container_copy_construction(); } + + BOOST_CONTAINER_FORCEINLINE static const Allocator &priv_select_on_container_copy_construction(dtl::false_type, const Allocator &a) BOOST_NOEXCEPT_OR_NOTHROW + { return a; } + + #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + template + BOOST_CONTAINER_FORCEINLINE static void priv_construct(dtl::true_type, Allocator &a, T *p, BOOST_FWD_REF(Args) ...args) + { a.construct( p, ::boost::forward(args)...); } + + template + BOOST_CONTAINER_FORCEINLINE static void priv_construct(dtl::false_type, Allocator &, T *p, BOOST_FWD_REF(Args) ...args) + { ::new((void*)p, boost_container_new_t()) T(::boost::forward(args)...); } + #else // #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + public: + + #define BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_IMPL(N) \ + template\ + BOOST_CONTAINER_FORCEINLINE static void construct(Allocator &a, T *p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\ + {\ + static const bool value = ::boost::move_detail::and_ \ + < dtl::is_not_std_allocator \ + , boost::container::dtl::has_member_function_callable_with_construct \ + < Allocator, T* BOOST_MOVE_I##N BOOST_MOVE_FWD_T##N > \ + >::value; \ + dtl::bool_ flag;\ + (priv_construct)(flag, a, p BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\ + }\ + // + BOOST_MOVE_ITERATE_0TO8(BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_IMPL) + #undef BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_IMPL + + private: + ///////////////////////////////// + // priv_construct + ///////////////////////////////// + #define BOOST_CONTAINER_ALLOCATOR_TRAITS_PRIV_CONSTRUCT_IMPL(N) \ + template\ + BOOST_CONTAINER_FORCEINLINE static void priv_construct(dtl::true_type, Allocator &a, T *p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\ + { a.construct( p BOOST_MOVE_I##N BOOST_MOVE_FWD##N ); }\ + \ + template\ + BOOST_CONTAINER_FORCEINLINE static void priv_construct(dtl::false_type, Allocator &, T *p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\ + { ::new((void*)p, boost_container_new_t()) T(BOOST_MOVE_FWD##N); }\ + // + BOOST_MOVE_ITERATE_0TO8(BOOST_CONTAINER_ALLOCATOR_TRAITS_PRIV_CONSTRUCT_IMPL) + #undef BOOST_CONTAINER_ALLOCATOR_TRAITS_PRIV_CONSTRUCT_IMPL + + #endif // #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + + template + BOOST_CONTAINER_FORCEINLINE static void priv_construct(dtl::false_type, Allocator &, T *p, const ::boost::container::default_init_t&) + { ::new((void*)p, boost_container_new_t()) T; } + + BOOST_CONTAINER_FORCEINLINE static bool priv_storage_is_unpropagable(dtl::true_type, const Allocator &a, pointer p) + { return a.storage_is_unpropagable(p); } + + BOOST_CONTAINER_FORCEINLINE static bool priv_storage_is_unpropagable(dtl::false_type, const Allocator &, pointer) + { return false; } + + BOOST_CONTAINER_FORCEINLINE static bool priv_equal(dtl::true_type, const Allocator &, const Allocator &) + { return true; } + + BOOST_CONTAINER_FORCEINLINE static bool priv_equal(dtl::false_type, const Allocator &a, const Allocator &b) + { return a == b; } + + #endif //#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED) +}; + +#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + +template +struct real_allocator +{ + typedef AllocatorOrVoid type; +}; + +template +struct real_allocator +{ + typedef new_allocator type; +}; + +#endif //#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED) + +} //namespace container { +} //namespace boost { + +#include + +#endif // ! defined(BOOST_CONTAINER_ALLOCATOR_ALLOCATOR_TRAITS_HPP) diff --git a/src/boost/container/container_fwd.hpp b/src/boost/container/container_fwd.hpp new file mode 100644 index 00000000..9e82fdef --- /dev/null +++ b/src/boost/container/container_fwd.hpp @@ -0,0 +1,388 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2005-2014. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_CONTAINER_CONTAINER_FWD_HPP +#define BOOST_CONTAINER_CONTAINER_FWD_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +//! \file +//! This header file forward declares the following containers: +//! - boost::container::vector +//! - boost::container::stable_vector +//! - boost::container::static_vector +//! - boost::container::small_vector_base +//! - boost::container::small_vector +//! - boost::container::devector +//! - boost::container::slist +//! - boost::container::list +//! - boost::container::set +//! - boost::container::multiset +//! - boost::container::map +//! - boost::container::multimap +//! - boost::container::flat_set +//! - boost::container::flat_multiset +//! - boost::container::flat_map +//! - boost::container::flat_multimap +//! - boost::container::basic_string +//! - boost::container::string +//! - boost::container::wstring +//! +//! Forward declares the following allocators: +//! - boost::container::allocator +//! - boost::container::node_allocator +//! - boost::container::adaptive_pool +//! +//! Forward declares the following polymorphic resource classes: +//! - boost::container::pmr::memory_resource +//! - boost::container::pmr::polymorphic_allocator +//! - boost::container::pmr::monotonic_buffer_resource +//! - boost::container::pmr::pool_options +//! - boost::container::pmr::unsynchronized_pool_resource +//! - boost::container::pmr::synchronized_pool_resource +//! +//! And finally it defines the following types + +#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +//Std forward declarations +#ifndef BOOST_CONTAINER_DETAIL_STD_FWD_HPP + #include +#endif + +namespace boost{ +namespace intrusive{ +namespace detail{ + //Create namespace to avoid compilation errors +}}} + +namespace boost{ namespace container{ namespace dtl{ + namespace bi = boost::intrusive; + namespace bid = boost::intrusive::detail; +}}} + +namespace boost{ namespace container{ namespace pmr{ + namespace bi = boost::intrusive; + namespace bid = boost::intrusive::detail; +}}} + +#include + +#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +////////////////////////////////////////////////////////////////////////////// +// Containers +////////////////////////////////////////////////////////////////////////////// + +namespace boost { +namespace container { + +#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +template +class new_allocator; + +template +class vector; + +template +class stable_vector; + +template < class T + , std::size_t Capacity + , class Options = void> +class static_vector; + +template < class T + , class Allocator = void + , class Options = void > +class small_vector_base; + +template < class T + , std::size_t N + , class Allocator = void + , class Options = void > +class small_vector; + +template +class devector; + +template +class deque; + +template +class list; + +template +class slist; + +template + ,class Allocator = void + ,class Options = void> +class set; + +template + ,class Allocator = void + ,class Options = void > +class multiset; + +template + ,class Allocator = void + ,class Options = void > +class map; + +template + ,class Allocator = void + ,class Options = void > +class multimap; + +template + ,class Allocator = void > +class flat_set; + +template + ,class Allocator = void > +class flat_multiset; + +template + ,class Allocator = void > +class flat_map; + +template + ,class Allocator = void > +class flat_multimap; + +#ifndef BOOST_NO_CXX11_TEMPLATE_ALIASES + +//! Alias templates for small_flat_[multi]{set|map} using small_vector as container + +template < class Key + , std::size_t N + , class Compare = std::less + , class SmallVectorAllocator = void + , class SmallVectorOptions = void > +using small_flat_set = flat_set>; + +template < class Key + , std::size_t N + , class Compare = std::less + , class SmallVectorAllocator = void + , class SmallVectorOptions = void > +using small_flat_multiset = flat_multiset>; + +template < class Key + , class T + , std::size_t N + , class Compare = std::less + , class SmallVectorAllocator = void + , class SmallVectorOptions = void > +using small_flat_map = flat_map, N, SmallVectorAllocator, SmallVectorOptions>>; + +template < class Key + , class T + , std::size_t N + , class Compare = std::less + , class SmallVectorAllocator = void + , class SmallVectorOptions = void > +using small_flat_multimap = flat_multimap, N, SmallVectorAllocator, SmallVectorOptions>>; + +#endif // #ifndef BOOST_NO_CXX11_TEMPLATE_ALIASES + + +//! A portable metafunction to obtain a small_flat_set +template < class Key + , std::size_t N + , class Compare = std::less + , class SmallVectorAllocator = void + , class SmallVectorOptions = void > +struct small_flat_set_of +{ + typedef flat_set > type; +}; + +//! A portable metafunction to obtain a small_flat_multiset +template < class Key + , std::size_t N + , class Compare = std::less + , class SmallVectorAllocator = void + , class SmallVectorOptions = void > +struct small_flat_multiset_of +{ + typedef flat_multiset > type; +}; + +//! A portable metafunction to obtain a small_flat_map +template < class Key + , class T + , std::size_t N + , class Compare = std::less + , class SmallVectorAllocator = void + , class SmallVectorOptions = void > +struct small_flat_map_of +{ + typedef flat_map, N, SmallVectorAllocator, SmallVectorOptions> > type; +}; + +//! A portable metafunction to obtain a small_flat_multimap +template < class Key + , class T + , std::size_t N + , class Compare = std::less + , class SmallVectorAllocator = void + , class SmallVectorOptions = void > +struct small_flat_multimap_of +{ + typedef flat_multimap, N, SmallVectorAllocator, SmallVectorOptions> > type; +}; + +template + ,class Allocator = void > +class basic_string; + +typedef basic_string string; +typedef basic_string wstring; + +static const std::size_t ADP_nodes_per_block = 256u; +static const std::size_t ADP_max_free_blocks = 2u; +static const std::size_t ADP_overhead_percent = 1u; +static const std::size_t ADP_only_alignment = 0u; + +template < class T + , std::size_t NodesPerBlock = ADP_nodes_per_block + , std::size_t MaxFreeBlocks = ADP_max_free_blocks + , std::size_t OverheadPercent = ADP_overhead_percent + , unsigned Version = 2 + > +class adaptive_pool; + +template < class T + , unsigned Version = 2 + , unsigned int AllocationDisableMask = 0> +class allocator; + +static const std::size_t NodeAlloc_nodes_per_block = 256u; + +template + < class T + , std::size_t NodesPerBlock = NodeAlloc_nodes_per_block + , std::size_t Version = 2> +class node_allocator; + +namespace pmr { + +class memory_resource; + +template +class polymorphic_allocator; + +class monotonic_buffer_resource; + +struct pool_options; + +template +class resource_adaptor_imp; + +class unsynchronized_pool_resource; + +class synchronized_pool_resource; + +} //namespace pmr { + +#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +//! Type used to tag that the input range is +//! guaranteed to be ordered +struct ordered_range_t +{}; + +//! Value used to tag that the input range is +//! guaranteed to be ordered +static const ordered_range_t ordered_range = ordered_range_t(); + +//! Type used to tag that the input range is +//! guaranteed to be ordered and unique +struct ordered_unique_range_t + : public ordered_range_t +{}; + +//! Value used to tag that the input range is +//! guaranteed to be ordered and unique +static const ordered_unique_range_t ordered_unique_range = ordered_unique_range_t(); + +//! Type used to tag that the inserted values +//! should be default initialized +struct default_init_t +{}; + +//! Value used to tag that the inserted values +//! should be default initialized +static const default_init_t default_init = default_init_t(); +#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +//! Type used to tag that the inserted values +//! should be value initialized +struct value_init_t +{}; + +//! Value used to tag that the inserted values +//! should be value initialized +static const value_init_t value_init = value_init_t(); + +namespace container_detail_really_deep_namespace { + +//Otherwise, gcc issues a warning of previously defined +//anonymous_instance and unique_instance +struct dummy +{ + dummy() + { + (void)ordered_range; + (void)ordered_unique_range; + (void)default_init; + } +}; + +} //detail_really_deep_namespace { + +typedef const std::piecewise_construct_t & piecewise_construct_t; + +#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED + +}} //namespace boost { namespace container { + +#endif //#ifndef BOOST_CONTAINER_CONTAINER_FWD_HPP diff --git a/src/boost/container/detail/addressof.hpp b/src/boost/container/detail/addressof.hpp new file mode 100644 index 00000000..00679b8f --- /dev/null +++ b/src/boost/container/detail/addressof.hpp @@ -0,0 +1,33 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2014-2015. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// +#ifndef BOOST_CONTAINER_DETAIL_ADDRESSOF_HPP +#define BOOST_CONTAINER_DETAIL_ADDRESSOF_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include + +namespace boost { +namespace container { +namespace dtl { + +using boost::move_detail::addressof; + +} //namespace dtl { +} //namespace container { +} //namespace boost { + +#endif //#ifndef BOOST_CONTAINER_DETAIL_ADDRESSOF_HPP diff --git a/src/boost/container/detail/advanced_insert_int.hpp b/src/boost/container/detail/advanced_insert_int.hpp new file mode 100644 index 00000000..0238805d --- /dev/null +++ b/src/boost/container/detail/advanced_insert_int.hpp @@ -0,0 +1,542 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2008-2013. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_CONTAINER_ADVANCED_INSERT_INT_HPP +#define BOOST_CONTAINER_ADVANCED_INSERT_INT_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include +#include + +// container +#include +// container/detail +#include +#include +#include +#include +#include +#include +#include +#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) +#include +#endif +// move + +#include +#include +// other +#include + +namespace boost { namespace container { namespace dtl { + +template +struct move_insert_range_proxy +{ + typedef typename allocator_traits::value_type value_type; + + BOOST_CONTAINER_FORCEINLINE explicit move_insert_range_proxy(FwdIt first) + : first_(first) + {} + + template + BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n) + { + this->first_ = ::boost::container::uninitialized_move_alloc_n_source + (a, this->first_, n, p); + } + + template + BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &, Iterator p, std::size_t n) + { + this->first_ = ::boost::container::move_n_source(this->first_, n, p); + } + + FwdIt first_; +}; + + +template +struct insert_range_proxy +{ + typedef typename allocator_traits::value_type value_type; + + BOOST_CONTAINER_FORCEINLINE explicit insert_range_proxy(FwdIt first) + : first_(first) + {} + + template + BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n) + { + this->first_ = ::boost::container::uninitialized_copy_alloc_n_source(a, this->first_, n, p); + } + + template + BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &, Iterator p, std::size_t n) + { + this->first_ = ::boost::container::copy_n_source(this->first_, n, p); + } + + FwdIt first_; +}; + + +template +struct insert_n_copies_proxy +{ + typedef typename allocator_traits::value_type value_type; + + BOOST_CONTAINER_FORCEINLINE explicit insert_n_copies_proxy(const value_type &v) + : v_(v) + {} + + template + BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n) const + { boost::container::uninitialized_fill_alloc_n(a, v_, n, p); } + + template + BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &, Iterator p, std::size_t n) const + { + while (n){ + --n; + *p = v_; + ++p; + } + } + + const value_type &v_; +}; + +template +struct insert_value_initialized_n_proxy +{ + typedef ::boost::container::allocator_traits alloc_traits; + typedef typename allocator_traits::value_type value_type; + typedef typename dtl::aligned_storage::value>::type storage_t; + + template + BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n) const + { boost::container::uninitialized_value_init_alloc_n(a, n, p); } + + template + void copy_n_and_update(Allocator &a, Iterator p, std::size_t n) const + { + while (n){ + --n; + storage_t v; + alloc_traits::construct(a, move_detail::force_ptr(&v)); + value_type *vp = move_detail::force_ptr(&v); + value_destructor on_exit(a, *vp); (void)on_exit; + *p = ::boost::move(*vp); + ++p; + } + } +}; + +template +struct insert_default_initialized_n_proxy +{ + typedef ::boost::container::allocator_traits alloc_traits; + typedef typename allocator_traits::value_type value_type; + typedef typename dtl::aligned_storage::value>::type storage_t; + + template + BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n) const + { boost::container::uninitialized_default_init_alloc_n(a, n, p); } + + template + void copy_n_and_update(Allocator &a, Iterator p, std::size_t n) const + { + if(!is_pod::value){ + while (n){ + --n; + typename dtl::aligned_storage::value>::type v; + alloc_traits::construct(a, move_detail::force_ptr(&v), default_init); + value_type *vp = move_detail::force_ptr(&v); + value_destructor on_exit(a, *vp); (void)on_exit; + *p = ::boost::move(*vp); + ++p; + } + } + } +}; + +template +struct insert_copy_proxy +{ + typedef boost::container::allocator_traits alloc_traits; + typedef typename alloc_traits::value_type value_type; + + static const bool single_value = true; + + BOOST_CONTAINER_FORCEINLINE explicit insert_copy_proxy(const value_type &v) + : v_(v) + {} + + template + BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n) const + { + BOOST_ASSERT(n == 1); (void)n; + alloc_traits::construct( a, boost::movelib::iterator_to_raw_pointer(p), v_); + } + + template + BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &, Iterator p, std::size_t n) const + { + BOOST_ASSERT(n == 1); (void)n; + *p = v_; + } + + const value_type &v_; +}; + + +template +struct insert_move_proxy +{ + typedef boost::container::allocator_traits alloc_traits; + typedef typename alloc_traits::value_type value_type; + + static const bool single_value = true; + + BOOST_CONTAINER_FORCEINLINE explicit insert_move_proxy(value_type &v) + : v_(v) + {} + + template + BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n) const + { + BOOST_ASSERT(n == 1); (void)n; + alloc_traits::construct( a, boost::movelib::iterator_to_raw_pointer(p), ::boost::move(v_) ); + } + + template + BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &, Iterator p, std::size_t n) const + { + BOOST_ASSERT(n == 1); (void)n; + *p = ::boost::move(v_); + } + + value_type &v_; +}; + +template +BOOST_CONTAINER_FORCEINLINE insert_move_proxy get_insert_value_proxy(BOOST_RV_REF(typename boost::container::iterator_traits::value_type) v) +{ + return insert_move_proxy(v); +} + +template +BOOST_CONTAINER_FORCEINLINE insert_copy_proxy get_insert_value_proxy(const typename boost::container::iterator_traits::value_type &v) +{ + return insert_copy_proxy(v); +} + +}}} //namespace boost { namespace container { namespace dtl { + +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + +#include +#include + +namespace boost { +namespace container { +namespace dtl { + +template +struct insert_nonmovable_emplace_proxy +{ + typedef boost::container::allocator_traits alloc_traits; + typedef typename alloc_traits::value_type value_type; + typedef typename build_number_seq::type index_tuple_t; + + static const bool single_value = true; + + BOOST_CONTAINER_FORCEINLINE explicit insert_nonmovable_emplace_proxy(BOOST_FWD_REF(Args)... args) + : args_(args...) + {} + + template + BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n) + { this->priv_uninitialized_copy_some_and_update(a, index_tuple_t(), p, n); } + + private: + template + BOOST_CONTAINER_FORCEINLINE void priv_uninitialized_copy_some_and_update(Allocator &a, const index_tuple&, Iterator p, std::size_t n) + { + BOOST_ASSERT(n == 1); (void)n; + alloc_traits::construct( a, boost::movelib::iterator_to_raw_pointer(p), ::boost::forward(get(this->args_))... ); + } + + protected: + tuple args_; +}; + +template +struct insert_emplace_proxy + : public insert_nonmovable_emplace_proxy +{ + typedef insert_nonmovable_emplace_proxy base_t; + typedef boost::container::allocator_traits alloc_traits; + typedef typename base_t::value_type value_type; + typedef typename base_t::index_tuple_t index_tuple_t; + + static const bool single_value = true; + + BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy(BOOST_FWD_REF(Args)... args) + : base_t(::boost::forward(args)...) + {} + + template + BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &a, Iterator p, std::size_t n) + { this->priv_copy_some_and_update(a, index_tuple_t(), p, n); } + + private: + + template + BOOST_CONTAINER_FORCEINLINE void priv_copy_some_and_update(Allocator &a, const index_tuple&, Iterator p, std::size_t n) + { + BOOST_ASSERT(n ==1); (void)n; + typename dtl::aligned_storage::value>::type v; + alloc_traits::construct(a, move_detail::force_ptr(&v), ::boost::forward(get(this->args_))...); + value_type *vp = move_detail::force_ptr(&v); + BOOST_CONTAINER_TRY{ + *p = ::boost::move(*vp); + } + BOOST_CONTAINER_CATCH(...){ + alloc_traits::destroy(a, vp); + BOOST_CONTAINER_RETHROW + } + BOOST_CONTAINER_CATCH_END + alloc_traits::destroy(a, vp); + } +}; + +//Specializations to avoid an unneeded temporary when emplacing from a single argument o type value_type +template +struct insert_emplace_proxy::value_type> + : public insert_move_proxy +{ + static const bool single_value = true; + + BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy(typename boost::container::allocator_traits::value_type &&v) + : insert_move_proxy(v) + {} +}; + +//We use "add_const" here as adding "const" only confuses MSVC12(and maybe later) provoking +//compiler error C2752 ("more than one partial specialization matches"). +//Any problem is solvable with an extra layer of indirection? ;-) +template +struct insert_emplace_proxy::value_type>::type + > + : public insert_copy_proxy +{ + + static const bool single_value = true; + + BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy(const typename boost::container::allocator_traits::value_type &v) + : insert_copy_proxy(v) + {} +}; + +template +struct insert_emplace_proxy::value_type &> + : public insert_copy_proxy +{ + static const bool single_value = true; + + BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy(const typename boost::container::allocator_traits::value_type &v) + : insert_copy_proxy(v) + {} +}; + +template +struct insert_emplace_proxy::value_type>::type & + > + : public insert_copy_proxy +{ + static const bool single_value = true; + + BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy(const typename boost::container::allocator_traits::value_type &v) + : insert_copy_proxy(v) + {} +}; + +}}} //namespace boost { namespace container { namespace dtl { + +#else // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + +#include + +namespace boost { +namespace container { +namespace dtl { + +#define BOOST_CONTAINER_ADVANCED_INSERT_INT_CODE(N) \ +template< class Allocator BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\ +struct insert_nonmovable_emplace_proxy##N\ +{\ + typedef boost::container::allocator_traits alloc_traits;\ + typedef typename alloc_traits::value_type value_type;\ + \ + static const bool single_value = true;\ + \ + BOOST_CONTAINER_FORCEINLINE explicit insert_nonmovable_emplace_proxy##N(BOOST_MOVE_UREF##N)\ + BOOST_MOVE_COLON##N BOOST_MOVE_FWD_INIT##N {}\ + \ + template\ + BOOST_CONTAINER_FORCEINLINE void uninitialized_copy_n_and_update(Allocator &a, Iterator p, std::size_t n)\ + {\ + BOOST_ASSERT(n == 1); (void)n;\ + alloc_traits::construct(a, boost::movelib::iterator_to_raw_pointer(p) BOOST_MOVE_I##N BOOST_MOVE_MFWD##N);\ + }\ + \ + template\ + BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &, Iterator, std::size_t)\ + { BOOST_ASSERT(false); }\ + \ + protected:\ + BOOST_MOVE_MREF##N\ +};\ +\ +template< class Allocator BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\ +struct insert_emplace_proxy_arg##N\ + : insert_nonmovable_emplace_proxy##N< Allocator BOOST_MOVE_I##N BOOST_MOVE_TARG##N >\ +{\ + typedef insert_nonmovable_emplace_proxy##N\ + < Allocator BOOST_MOVE_I##N BOOST_MOVE_TARG##N > base_t;\ + typedef typename base_t::value_type value_type;\ + typedef boost::container::allocator_traits alloc_traits;\ + \ + static const bool single_value = true;\ + \ + BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy_arg##N(BOOST_MOVE_UREF##N)\ + : base_t(BOOST_MOVE_FWD##N){}\ + \ + template\ + BOOST_CONTAINER_FORCEINLINE void copy_n_and_update(Allocator &a, Iterator p, std::size_t n)\ + {\ + BOOST_ASSERT(n == 1); (void)n;\ + typename dtl::aligned_storage::value>::type v;\ + alloc_traits::construct(a, move_detail::force_ptr(&v) BOOST_MOVE_I##N BOOST_MOVE_MFWD##N);\ + value_type *vp = move_detail::force_ptr(&v);\ + BOOST_CONTAINER_TRY{\ + *p = ::boost::move(*vp);\ + }\ + BOOST_CONTAINER_CATCH(...){\ + alloc_traits::destroy(a, vp);\ + BOOST_CONTAINER_RETHROW\ + }\ + BOOST_CONTAINER_CATCH_END\ + alloc_traits::destroy(a, vp);\ + }\ +};\ +// +BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_ADVANCED_INSERT_INT_CODE) +#undef BOOST_CONTAINER_ADVANCED_INSERT_INT_CODE + +#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + +//Specializations to avoid an unneeded temporary when emplacing from a single argument o type value_type +template +struct insert_emplace_proxy_arg1::value_type> > + : public insert_move_proxy +{ + static const bool single_value = true; + + BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy_arg1(typename boost::container::allocator_traits::value_type &v) + : insert_move_proxy(v) + {} +}; + +template +struct insert_emplace_proxy_arg1::value_type> + : public insert_copy_proxy +{ + static const bool single_value = true; + + BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy_arg1(const typename boost::container::allocator_traits::value_type &v) + : insert_copy_proxy(v) + {} +}; + +#else //e.g. MSVC10 & MSVC11 + +//Specializations to avoid an unneeded temporary when emplacing from a single argument o type value_type +template +struct insert_emplace_proxy_arg1::value_type> + : public insert_move_proxy +{ + static const bool single_value = true; + + BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy_arg1(typename boost::container::allocator_traits::value_type &&v) + : insert_move_proxy(v) + {} +}; + +//We use "add_const" here as adding "const" only confuses MSVC10&11 provoking +//compiler error C2752 ("more than one partial specialization matches"). +//Any problem is solvable with an extra layer of indirection? ;-) +template +struct insert_emplace_proxy_arg1::value_type>::type + > + : public insert_copy_proxy +{ + static const bool single_value = true; + + BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy_arg1(const typename boost::container::allocator_traits::value_type &v) + : insert_copy_proxy(v) + {} +}; + +template +struct insert_emplace_proxy_arg1::value_type &> + : public insert_copy_proxy +{ + static const bool single_value = true; + + BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy_arg1(const typename boost::container::allocator_traits::value_type &v) + : insert_copy_proxy(v) + {} +}; + +template +struct insert_emplace_proxy_arg1::value_type>::type & + > + : public insert_copy_proxy +{ + static const bool single_value = true; + + BOOST_CONTAINER_FORCEINLINE explicit insert_emplace_proxy_arg1(const typename boost::container::allocator_traits::value_type &v) + : insert_copy_proxy(v) + {} +}; + +#endif + +}}} //namespace boost { namespace container { namespace dtl { + +#endif // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + +#include + +#endif //#ifndef BOOST_CONTAINER_ADVANCED_INSERT_INT_HPP diff --git a/src/boost/container/detail/algorithm.hpp b/src/boost/container/detail/algorithm.hpp new file mode 100644 index 00000000..ce5582bc --- /dev/null +++ b/src/boost/container/detail/algorithm.hpp @@ -0,0 +1,185 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2014-2014. +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_CONTAINER_DETAIL_ALGORITHM_HPP +#define BOOST_CONTAINER_DETAIL_ALGORITHM_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include + +namespace boost { +namespace container { + +using boost::intrusive::algo_equal; +using boost::intrusive::algo_lexicographical_compare; + +template +class binder1st +{ + public: + typedef typename Func::second_argument_type argument_type; + typedef typename Func::result_type result_type; + + binder1st(const Func& func, const typename Func::first_argument_type& arg) + : op(func), value(arg) + {} + + result_type operator()(const argument_type& arg) const + { return op(value, arg); } + + result_type operator()(argument_type& arg) const + { return op(value, arg); } + + private: + Func op; + typename Func::first_argument_type value; +}; + +template +inline binder1st bind1st(const Func& func, const T& arg) +{ return boost::container::binder1st(func, arg); } + +template +class binder2nd +{ + public: + typedef typename Func::first_argument_type argument_type; + typedef typename Func::result_type result_type; + + binder2nd(const Func& func, const typename Func::second_argument_type& arg) + : op(func), value(arg) + {} + + result_type operator()(const argument_type& arg) const + { return op(arg, value); } + + result_type operator()(argument_type& arg) const + { return op(arg, value); } + + private: + Func op; + typename Func::second_argument_type value; +}; + +template +inline binder2nd bind2nd(const Func& func, const T& arg) +{ + return (boost::container::binder2nd(func, arg)); +} + +template +class unary_negate +{ + public: + typedef typename Func::argument_type argument_type; + typedef typename Func::result_type result_type; + + explicit unary_negate(const Func& func) + : m_func(func) + {} + + bool operator()(const typename Func::argument_type& arg) const + { return !m_func(arg); } + + private: + Func m_func; +}; + +template inline +unary_negate not1(const Func& func) +{ + return boost::container::unary_negate(func); +} + +template +InputIt find_if(InputIt first, InputIt last, UnaryPredicate p) +{ + for (; first != last; ++first) { + if (p(*first)) { + return first; + } + } + return last; +} + +template + ForwardIt1 find_end (ForwardIt1 first1, ForwardIt1 last1 + ,ForwardIt2 first2, ForwardIt2 last2 + ,BinaryPredicate p) +{ + if (first2==last2) + return last1; // specified in C++11 + + ForwardIt1 ret = last1; + + while (first1!=last1) + { + ForwardIt1 it1 = first1; + ForwardIt2 it2 = first2; + while ( p(*it1, *it2) ) { + ++it1; ++it2; + if (it2==last2) { + ret=first1; + break; + } + if (it1==last1) + return ret; + } + ++first1; + } + return ret; +} + +template +InputIt find_first_of(InputIt first1, InputIt last1, ForwardIt first2, ForwardIt last2, BinaryPredicate p) +{ + for (; first1 != last1; ++first1) { + for (ForwardIt it = first2; it != last2; ++it) { + if (p(*first1, *it)) { + return first1; + } + } + } + return last1; +} + +template +ForwardIt1 search(ForwardIt1 first1, ForwardIt1 last1, + ForwardIt2 first2, ForwardIt2 last2, BinaryPredicate p) +{ + for (; ; ++first1) { + ForwardIt1 it = first1; + for (ForwardIt2 it2 = first2; ; ++it, ++it2) { + if (it2 == last2) { + return first1; + } + if (it == last1) { + return last1; + } + if (!p(*it, *it2)) { + break; + } + } + } +} + +} //namespace container { +} //namespace boost { + +#endif //#ifndef BOOST_CONTAINER_DETAIL_ALGORITHM_HPP diff --git a/src/boost/container/detail/alloc_helpers.hpp b/src/boost/container/detail/alloc_helpers.hpp new file mode 100644 index 00000000..5ca2ca72 --- /dev/null +++ b/src/boost/container/detail/alloc_helpers.hpp @@ -0,0 +1,60 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2014-2015. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// +#ifndef BOOST_CONTAINER_DETAIL_ALLOC_TRAITS_HPP +#define BOOST_CONTAINER_DETAIL_ALLOC_TRAITS_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +// move +#include +#include + +namespace boost { +namespace container { +namespace dtl { + +template +BOOST_CONTAINER_FORCEINLINE void swap_alloc(AllocatorType &, AllocatorType &, dtl::false_type) + BOOST_NOEXCEPT_OR_NOTHROW +{} + +template +BOOST_CONTAINER_FORCEINLINE void swap_alloc(AllocatorType &l, AllocatorType &r, dtl::true_type) +{ boost::adl_move_swap(l, r); } + +template +BOOST_CONTAINER_FORCEINLINE void assign_alloc(AllocatorType &, const AllocatorType &, dtl::false_type) + BOOST_NOEXCEPT_OR_NOTHROW +{} + +template +BOOST_CONTAINER_FORCEINLINE void assign_alloc(AllocatorType &l, const AllocatorType &r, dtl::true_type) +{ l = r; } + +template +BOOST_CONTAINER_FORCEINLINE void move_alloc(AllocatorType &, AllocatorType &, dtl::false_type) + BOOST_NOEXCEPT_OR_NOTHROW +{} + +template +BOOST_CONTAINER_FORCEINLINE void move_alloc(AllocatorType &l, AllocatorType &r, dtl::true_type) +{ l = ::boost::move(r); } + +} //namespace dtl { +} //namespace container { +} //namespace boost { + +#endif //#ifndef BOOST_CONTAINER_DETAIL_ALLOC_TRAITS_HPP diff --git a/src/boost/container/detail/allocation_type.hpp b/src/boost/container/detail/allocation_type.hpp new file mode 100644 index 00000000..1e8aa673 --- /dev/null +++ b/src/boost/container/detail/allocation_type.hpp @@ -0,0 +1,58 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2005-2013. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/container for documentation. +// +/////////////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_CONTAINER_ALLOCATION_TYPE_HPP +#define BOOST_CONTAINER_ALLOCATION_TYPE_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include +#include + +namespace boost { +namespace container { + +#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED +enum allocation_type_v +{ + // constants for allocation commands + allocate_new_v = 0x01, + expand_fwd_v = 0x02, + expand_bwd_v = 0x04, +// expand_both = expand_fwd | expand_bwd, +// expand_or_new = allocate_new | expand_both, + shrink_in_place_v = 0x08, + nothrow_allocation_v = 0x10, + zero_memory_v = 0x20, + try_shrink_in_place_v = 0x40 +}; + +typedef unsigned int allocation_type; +#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED +static const allocation_type allocate_new = (allocation_type)allocate_new_v; +static const allocation_type expand_fwd = (allocation_type)expand_fwd_v; +static const allocation_type expand_bwd = (allocation_type)expand_bwd_v; +static const allocation_type shrink_in_place = (allocation_type)shrink_in_place_v; +static const allocation_type try_shrink_in_place= (allocation_type)try_shrink_in_place_v; +static const allocation_type nothrow_allocation = (allocation_type)nothrow_allocation_v; +static const allocation_type zero_memory = (allocation_type)zero_memory_v; + +} //namespace container { +} //namespace boost { + +#include + +#endif //BOOST_CONTAINER_ALLOCATION_TYPE_HPP diff --git a/src/boost/container/detail/allocator_version_traits.hpp b/src/boost/container/detail/allocator_version_traits.hpp new file mode 100644 index 00000000..391f4666 --- /dev/null +++ b/src/boost/container/detail/allocator_version_traits.hpp @@ -0,0 +1,162 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2012-2013. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_CONTAINER_DETAIL_ALLOCATOR_VERSION_TRAITS_HPP +#define BOOST_CONTAINER_DETAIL_ALLOCATOR_VERSION_TRAITS_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include +#include + +#include //allocator_traits +#include +#include //multiallocation_chain +#include //version_type +#include //allocation_type +#include //integral_constant +#include //pointer_traits + +namespace boost { +namespace container { +namespace dtl { + +template::value> +struct allocator_version_traits +{ + typedef ::boost::container::dtl::integral_constant + alloc_version; + + typedef typename Allocator::multiallocation_chain multiallocation_chain; + + typedef typename boost::container::allocator_traits::pointer pointer; + typedef typename boost::container::allocator_traits::size_type size_type; + + //Node allocation interface + BOOST_CONTAINER_FORCEINLINE static pointer allocate_one(Allocator &a) + { return a.allocate_one(); } + + BOOST_CONTAINER_FORCEINLINE static void deallocate_one(Allocator &a, const pointer &p) + { a.deallocate_one(p); } + + BOOST_CONTAINER_FORCEINLINE static void allocate_individual(Allocator &a, size_type n, multiallocation_chain &m) + { return a.allocate_individual(n, m); } + + BOOST_CONTAINER_FORCEINLINE static void deallocate_individual(Allocator &a, multiallocation_chain &holder) + { a.deallocate_individual(holder); } + + BOOST_CONTAINER_FORCEINLINE static pointer allocation_command(Allocator &a, allocation_type command, + size_type limit_size, size_type &prefer_in_recvd_out_size, pointer &reuse) + { return a.allocation_command(command, limit_size, prefer_in_recvd_out_size, reuse); } +}; + +template +struct allocator_version_traits +{ + typedef ::boost::container::dtl::integral_constant + alloc_version; + + typedef typename boost::container::allocator_traits::pointer pointer; + typedef typename boost::container::allocator_traits::size_type size_type; + typedef typename boost::container::allocator_traits::value_type value_type; + + typedef typename boost::intrusive::pointer_traits:: + template rebind_pointer::type void_ptr; + typedef dtl::basic_multiallocation_chain + multialloc_cached_counted; + typedef boost::container::dtl:: + transform_multiallocation_chain + < multialloc_cached_counted, value_type> multiallocation_chain; + + //Node allocation interface + BOOST_CONTAINER_FORCEINLINE static pointer allocate_one(Allocator &a) + { return a.allocate(1); } + + BOOST_CONTAINER_FORCEINLINE static void deallocate_one(Allocator &a, const pointer &p) + { a.deallocate(p, 1); } + + static void deallocate_individual(Allocator &a, multiallocation_chain &holder) + { + size_type n = holder.size(); + typename multiallocation_chain::iterator it = holder.begin(); + while(n){ + --n; + pointer p = boost::intrusive::pointer_traits::pointer_to(*it); + ++it; + a.deallocate(p, 1); + } + } + + struct allocate_individual_rollback + { + BOOST_CONTAINER_FORCEINLINE allocate_individual_rollback(Allocator &a, multiallocation_chain &chain) + : mr_a(a), mp_chain(&chain) + {} + + BOOST_CONTAINER_FORCEINLINE ~allocate_individual_rollback() + { + if(mp_chain) + allocator_version_traits::deallocate_individual(mr_a, *mp_chain); + } + + BOOST_CONTAINER_FORCEINLINE void release() + { + mp_chain = 0; + } + + Allocator &mr_a; + multiallocation_chain * mp_chain; + }; + + static void allocate_individual(Allocator &a, size_type n, multiallocation_chain &m) + { + allocate_individual_rollback rollback(a, m); + while(n--){ + m.push_front(a.allocate(1)); + } + rollback.release(); + } + + static pointer allocation_command(Allocator &a, allocation_type command, + size_type, size_type &prefer_in_recvd_out_size, pointer &reuse) + { + pointer ret = pointer(); + if(BOOST_UNLIKELY(!(command & allocate_new) && !(command & nothrow_allocation))){ + throw_logic_error("version 1 allocator without allocate_new flag"); + } + else{ + BOOST_CONTAINER_TRY{ + ret = a.allocate(prefer_in_recvd_out_size); + } + BOOST_CONTAINER_CATCH(...){ + if(!(command & nothrow_allocation)){ + BOOST_CONTAINER_RETHROW + } + } + BOOST_CONTAINER_CATCH_END + reuse = pointer(); + } + return ret; + } +}; + +} //namespace dtl { +} //namespace container { +} //namespace boost { + +#include + +#endif // ! defined(BOOST_CONTAINER_DETAIL_ALLOCATOR_VERSION_TRAITS_HPP) diff --git a/src/boost/container/detail/compare_functors.hpp b/src/boost/container/detail/compare_functors.hpp new file mode 100644 index 00000000..ae4ffcea --- /dev/null +++ b/src/boost/container/detail/compare_functors.hpp @@ -0,0 +1,134 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2014-2014. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/container for documentation. +// +/////////////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_CONTAINER_DETAIL_COMPARE_FUNCTORS_HPP +#define BOOST_CONTAINER_DETAIL_COMPARE_FUNCTORS_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include +#include + +namespace boost { +namespace container { + +template +class equal_to_value +{ + typedef ValueType value_type; + const value_type &t_; + + public: + BOOST_CONTAINER_FORCEINLINE explicit equal_to_value(const value_type &t) + : t_(t) + {} + + BOOST_CONTAINER_FORCEINLINE bool operator()(const value_type &t)const + { return t_ == t; } +}; + +template +struct value_to_node_compare + : Pred +{ + typedef Pred predicate_type; + typedef Node node_type; + + BOOST_CONTAINER_FORCEINLINE value_to_node_compare() + : Pred() + {} + + BOOST_CONTAINER_FORCEINLINE explicit value_to_node_compare(Pred pred) + : Pred(pred) + {} + + BOOST_CONTAINER_FORCEINLINE Ret operator()(const Node &a, const Node &b) const + { return static_cast(*this)(a.get_data(), b.get_data()); } + + BOOST_CONTAINER_FORCEINLINE Ret operator()(const Node &a) const + { return static_cast(*this)(a.get_data()); } + + BOOST_CONTAINER_FORCEINLINE Ret operator()(const Node &a, const Node &b) + { return static_cast(*this)(a.get_data(), b.get_data()); } + + BOOST_CONTAINER_FORCEINLINE Ret operator()(const Node &a) + { return static_cast(*this)(a.get_data()); } + + BOOST_CONTAINER_FORCEINLINE predicate_type & predicate() { return static_cast(*this); } + BOOST_CONTAINER_FORCEINLINE const predicate_type & predicate() const { return static_cast(*this); } +}; + +template +struct key_node_pred + : public boost::intrusive::detail::ebo_functor_holder +{ + BOOST_CONTAINER_FORCEINLINE explicit key_node_pred(const KeyPred &comp) + : base_t(comp) + {} + + BOOST_CONTAINER_FORCEINLINE explicit key_node_pred() + {} + + typedef boost::intrusive::detail::ebo_functor_holder base_t; + typedef KeyPred key_predicate; + typedef KeyOfValue key_of_value; + typedef typename KeyOfValue::type key_type; + + + BOOST_CONTAINER_FORCEINLINE static const key_type &key_from(const Node &n) + { + return key_of_value()(n.get_data()); + } + + template + BOOST_CONTAINER_FORCEINLINE static const T & + key_from(const T &t) + { return t; } + + BOOST_CONTAINER_FORCEINLINE const key_predicate &key_pred() const + { return static_cast(*this); } + + BOOST_CONTAINER_FORCEINLINE key_predicate &key_pred() + { return static_cast(*this); } + + BOOST_CONTAINER_FORCEINLINE Ret operator()(const key_type &key) const + { return this->key_pred()(key); } + + template + BOOST_CONTAINER_FORCEINLINE Ret operator()(const U &nonkey) const + { return this->key_pred()(this->key_from(nonkey)); } + + BOOST_CONTAINER_FORCEINLINE bool operator()(const key_type &key1, const key_type &key2) const + { return this->key_pred()(key1, key2); } + + template + BOOST_CONTAINER_FORCEINLINE bool operator()(const key_type &key1, const U &nonkey2) const + { return this->key_pred()(key1, this->key_from(nonkey2)); } + + template + BOOST_CONTAINER_FORCEINLINE bool operator()(const U &nonkey1, const key_type &key2) const + { return this->key_pred()(this->key_from(nonkey1), key2); } + + template + BOOST_CONTAINER_FORCEINLINE bool operator()(const U &nonkey1, const V &nonkey2) const + { return this->key_pred()(this->key_from(nonkey1), this->key_from(nonkey2)); } +}; + + +} //namespace container { +} //namespace boost { + +#endif //BOOST_CONTAINER_DETAIL_COMPARE_FUNCTORS_HPP diff --git a/src/boost/container/detail/config_begin.hpp b/src/boost/container/detail/config_begin.hpp new file mode 100644 index 00000000..e1075d1d --- /dev/null +++ b/src/boost/container/detail/config_begin.hpp @@ -0,0 +1,61 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2005-2013. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// +#ifndef BOOST_CONTAINER_CONTAINER_DETAIL_CONFIG_INCLUDED +#define BOOST_CONTAINER_CONTAINER_DETAIL_CONFIG_INCLUDED +#ifndef BOOST_CONFIG_HPP +#include +#endif + +#endif //BOOST_CONTAINER_CONTAINER_DETAIL_CONFIG_INCLUDED + +#ifdef BOOST_MSVC + #pragma warning (push) + #pragma warning (disable : 4619) // there is no warning number 'XXXX' + #pragma warning (disable : 4127) // conditional expression is constant + #pragma warning (disable : 4146) // unary minus operator applied to unsigned type, result still unsigned + #pragma warning (disable : 4197) // top-level volatile in cast is ignored + #pragma warning (disable : 4251) // "identifier" : class "type" needs to have dll-interface to be used by clients of class "type2" + #pragma warning (disable : 4275) // non DLL-interface classkey "identifier" used as base for DLL-interface classkey "identifier" + #pragma warning (disable : 4284) // odd return type for operator-> + #pragma warning (disable : 4290) // C++ exception specification ignored except to indicate a function is not __declspec(nothrow) + #pragma warning (disable : 4324) // structure was padded due to __declspec(align( + #pragma warning (disable : 4345) // behavior change: an object of POD type constructed with an initializer of the form () will be default-initialized + #pragma warning (disable : 4355) // "this" : used in base member initializer list + #pragma warning (disable : 4503) // "identifier" : decorated name length exceeded, name was truncated + #pragma warning (disable : 4510) // default constructor could not be generated + #pragma warning (disable : 4511) // copy constructor could not be generated + #pragma warning (disable : 4512) // assignment operator could not be generated + #pragma warning (disable : 4514) // unreferenced inline removed + #pragma warning (disable : 4521) // Disable "multiple copy constructors specified" + #pragma warning (disable : 4522) // "class" : multiple assignment operators specified + #pragma warning (disable : 4541) // 'typeid' used on polymorphic type '' with /GR-; unpredictable behavior may result + #pragma warning (disable : 4584) // X is already a base-class of Y + #pragma warning (disable : 4610) // struct can never be instantiated - user defined constructor required + #pragma warning (disable : 4671) // the copy constructor is inaccessible + #pragma warning (disable : 4673) // throwing '' the following types will not be considered at the catch site + #pragma warning (disable : 4675) // "method" should be declared "static" and have exactly one parameter + #pragma warning (disable : 4706) // assignment within conditional expression + #pragma warning (disable : 4710) // function not inlined + #pragma warning (disable : 4714) // "function": marked as __forceinline not inlined + #pragma warning (disable : 4711) // function selected for automatic inline expansion + #pragma warning (disable : 4786) // identifier truncated in debug info + #pragma warning (disable : 4996) // "function": was declared deprecated + +#endif //BOOST_MSVC + + +#if defined(BOOST_GCC) && (BOOST_GCC >= 40600) +#pragma GCC diagnostic push +//Sign conversion warnings broken before GCC 9.3 +//(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87519) +#if BOOST_GCC < 90300 +#pragma GCC diagnostic ignored "-Wsign-conversion" +#endif +#endif diff --git a/src/boost/container/detail/config_end.hpp b/src/boost/container/detail/config_end.hpp new file mode 100644 index 00000000..65643ea1 --- /dev/null +++ b/src/boost/container/detail/config_end.hpp @@ -0,0 +1,16 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2005-2013. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// +#if defined BOOST_MSVC + #pragma warning (pop) +#endif + +#if defined(BOOST_GCC) && (BOOST_GCC >= 40600) +#pragma GCC diagnostic pop +#endif diff --git a/src/boost/container/detail/construct_in_place.hpp b/src/boost/container/detail/construct_in_place.hpp new file mode 100644 index 00000000..d824d814 --- /dev/null +++ b/src/boost/container/detail/construct_in_place.hpp @@ -0,0 +1,98 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2014-2014. +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// + +#ifndef BOOST_CONTAINER_DETAIL_CONSTRUCT_IN_PLACE_HPP +#define BOOST_CONTAINER_DETAIL_CONSTRUCT_IN_PLACE_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include +#include +#include + +namespace boost { +namespace container { + +//In place construction + +struct iterator_arg_t{}; + +template +BOOST_CONTAINER_FORCEINLINE void construct_in_place(Allocator &a, T* dest, InpIt source) +{ boost::container::allocator_traits::construct(a, dest, *source); } + +template +BOOST_CONTAINER_FORCEINLINE void construct_in_place(Allocator &a, T *dest, value_init_construct_iterator) +{ + boost::container::allocator_traits::construct(a, dest); +} + +template +class default_init_construct_iterator; + +template +BOOST_CONTAINER_FORCEINLINE void construct_in_place(Allocator &a, T *dest, default_init_construct_iterator) +{ + boost::container::allocator_traits::construct(a, dest, default_init); +} + +template +class emplace_iterator; + +template +BOOST_CONTAINER_FORCEINLINE void construct_in_place(Allocator &a, T *dest, emplace_iterator ei) +{ + ei.construct_in_place(a, dest); +} + +//Assignment + +template +BOOST_CONTAINER_FORCEINLINE void assign_in_place(DstIt dest, InpIt source) +{ *dest = *source; } + +template +BOOST_CONTAINER_FORCEINLINE void assign_in_place(DstIt dest, value_init_construct_iterator) +{ + dtl::value_init val; + *dest = boost::move(val.get()); +} + +template +class default_init_construct_iterator; + +template +BOOST_CONTAINER_FORCEINLINE void assign_in_place(DstIt dest, default_init_construct_iterator) +{ + U u; + *dest = boost::move(u); +} + +template +class emplace_iterator; + +template +BOOST_CONTAINER_FORCEINLINE void assign_in_place(DstIt dest, emplace_iterator ei) +{ + ei.assign_in_place(dest); +} + +} //namespace container { +} //namespace boost { + +#endif //#ifndef BOOST_CONTAINER_DETAIL_CONSTRUCT_IN_PLACE_HPP diff --git a/src/boost/container/detail/container_or_allocator_rebind.hpp b/src/boost/container/detail/container_or_allocator_rebind.hpp new file mode 100644 index 00000000..1525e41d --- /dev/null +++ b/src/boost/container/detail/container_or_allocator_rebind.hpp @@ -0,0 +1,53 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2017-2017. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// +#ifndef BOOST_CONTAINER_DETAIL_CONTAINER_OR_ALLOCATOR_REBIND_HPP +#define BOOST_CONTAINER_DETAIL_CONTAINER_OR_ALLOCATOR_REBIND_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include +#include +#include + +namespace boost { +namespace container { +namespace dtl { + +template::value> +struct container_or_allocator_rebind_impl + : container_rebind +{}; + +template +struct container_or_allocator_rebind_impl + : allocator_traits::template portable_rebind_alloc +{}; + +template +struct container_or_allocator_rebind_impl + : real_allocator +{}; + +template +struct container_or_allocator_rebind + : container_or_allocator_rebind_impl +{}; + +} //namespace dtl { +} //namespace container { +} //namespace boost { + +#endif //#ifndef BOOST_CONTAINER_DETAIL_CONTAINER_OR_ALLOCATOR_REBIND_HPP diff --git a/src/boost/container/detail/container_rebind.hpp b/src/boost/container/detail/container_rebind.hpp new file mode 100644 index 00000000..854291ae --- /dev/null +++ b/src/boost/container/detail/container_rebind.hpp @@ -0,0 +1,163 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2017-2017. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// +#ifndef BOOST_CONTAINER_DETAIL_CONTAINER_REBIND_HPP +#define BOOST_CONTAINER_DETAIL_CONTAINER_REBIND_HPP + +#ifndef BOOST_CONFIG_HPP +# include +#endif + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +#include +#include + + +namespace boost { +namespace container { +namespace dtl { + + template + struct container_rebind; + +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) + + template