|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r55767 - in sandbox/SOC/2009/fusion: . boost/fusion/adapted boost/fusion/adapted/detail/array boost/fusion/adapted/detail/boost_tuple boost/fusion/adapted/detail/mpl boost/fusion/adapted/detail/struct boost/fusion/adapted/struct boost/fusion/algorithm/iteration boost/fusion/algorithm/iteration/detail boost/fusion/algorithm/query boost/fusion/algorithm/query/detail boost/fusion/algorithm/transformation boost/fusion/algorithm/transformation/detail boost/fusion/algorithm/transformation/detail/filter_key_view boost/fusion/algorithm/transformation/detail/pp boost/fusion/algorithm/transformation/detail/variadic_templates boost/fusion/container/detail boost/fusion/container/detail/pp boost/fusion/container/detail/variadic_templates boost/fusion/container/generation boost/fusion/container/generation/detail boost/fusion/container/generation/detail/pp boost/fusion/container/generation/detail/variadic_templates boost/fusion/container/list boost/fusion/container/list/detail/cons boost/fusion/container/list/detail/list boost/fusion/container/map boost/fusion/container/map/detail boost/fusion/container/set boost/fusion/container/set/detail boost/fusion/container/vector boost/fusion/container/vector/detail boost/fusion/container/vector/detail/pp boost/fusion/container/vector/detail/variadic_templates boost/fusion/functional/adapter boost/fusion/functional/adapter/detail/0x boost/fusion/functional/generation/detail boost/fusion/functional/invocation boost/fusion/functional/invocation/detail/0x boost/fusion/include boost/fusion/iterator boost/fusion/iterator/detail boost/fusion/mpl boost/fusion/sequence boost/fusion/sequence/comparison boost/fusion/sequence/comparison/detail boost/fusion/sequence/intrinsic boost/fusion/support boost/fusion/support/internal boost/fusion/support/internal/variadic_templates boost/fusion/support/internal/variadic_templates/detail boost/fusion/tuple boost/fusion/view/detail boost/fusion/view/filter_view boost/fusion/view/filter_view/detail boost/fusion/view/iterator_range boost/fusion/view/iterator_range/detail boost/fusion/view/joint_view boost/fusion/view/joint_view/detail boost/fusion/view/repetitive_view boost/fusion/view/repetitive_view/detail boost/fusion/view/reverse_view boost/fusion/view/reverse_view/detail boost/fusion/view/single_view boost/fusion/view/single_view/detail boost/fusion/view/transform_view boost/fusion/view/transform_view/detail boost/fusion/view/zip_view boost/fusion/view/zip_view/detail libs/fusion/example/performance libs/fusion/example/test libs/fusion/test/sequence
From: mr.chr.schmidt_at_[hidden]
Date: 2009-08-24 16:18:38
Author: cschmidt
Date: 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
New Revision: 55767
URL: http://svn.boost.org/trac/boost/changeset/55767
Log:
cleanup, bugfixes & optimizations
Removed:
sandbox/SOC/2009/fusion/boost/fusion/support/internal/as_fusion_element.hpp
Text files modified:
sandbox/SOC/2009/fusion/boost-build.jam | 11
sandbox/SOC/2009/fusion/boost/fusion/adapted/array.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_array.hpp | 12 +
sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_tuple.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/at_impl.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/begin_impl.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/deref_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/end_impl.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_view_impl.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/tag_of.hpp | 18 ++
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/value_of_impl.hpp | 21 +-
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/begin_impl.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/deref_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/end_impl.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/tag_of.hpp | 35 ++++
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/value_of_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/advance_impl.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/begin_impl.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/category_of_impl.hpp | 31 +--
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/deref_impl.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/distance_impl.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/end_impl.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/equal_to_impl.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/get_mpl_it.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_iterator_impl.hpp | 3
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/mpl_iterator.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/next_impl.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/prior_impl.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/tag_of.hpp | 9
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_of_impl.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_assoc_struct.hpp | 12 +
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_base.hpp | 15 +
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_struct.hpp | 11
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_impl.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/begin_impl.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/category_of_impl.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/deref_data_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/deref_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/end_impl.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/key_of_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_of_data_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_of_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/adapted/std_array.hpp | 11
sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp | 26 ++
sandbox/SOC/2009/fusion/boost/fusion/adapted/struct.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_assoc_struct.hpp | 12 +
sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_struct.hpp | 11
sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp | 32 ++--
sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/for_each.hpp | 3
sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/all.hpp | 9
sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/count.hpp | 7
sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/find_if.hpp | 168 +++++++++------------
sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_key.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/clear.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view.hpp | 25 ++-
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/at_key_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/filter_key_view_fwd.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/has_key_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/value_at_key_impl.hpp | 23 +-
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/is_in_seq.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/pp/zip.hpp | 12 +
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/replace_if.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/variadic_templates/zip.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase_key.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert.hpp | 4
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/join.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_back.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_front.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_back.hpp | 5
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_front.hpp | 5
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove_if.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace.hpp | 7
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp | 7
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/reverse.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp | 15 -
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/zip.hpp | 3
sandbox/SOC/2009/fusion/boost/fusion/container/detail/convert_impl.hpp | 12 +
sandbox/SOC/2009/fusion/boost/fusion/container/detail/forward_ctor.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/as_seq.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/forward_ctor.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/as_seq.hpp | 11
sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/forward_ctor.hpp | 14 +
sandbox/SOC/2009/fusion/boost/fusion/container/generation/cons_tie.hpp | 6
sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/make_seq.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_map.hpp | 15 +
sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_seq.hpp | 14 +
sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/map_tie.hpp | 16 +
sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/seq_tie.hpp | 14 +
sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/seq_tie.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp | 18 +-
sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_seq.hpp | 14 +
sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/map_tie.hpp | 18 +-
sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/seq_tie.hpp | 14 +
sandbox/SOC/2009/fusion/boost/fusion/container/generation/list_tie.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_cons.hpp | 6
sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_list.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_map.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_set.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_vector.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/generation/map_tie.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/generation/pair_tie.hpp | 4
sandbox/SOC/2009/fusion/boost/fusion/container/generation/vector_tie.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_fwd.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_iterator.hpp | 16 +
sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/equal_to_impl.hpp | 3
sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/next_impl.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_at_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_of_impl.hpp | 8
sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/at_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/begin_impl.hpp | 3
sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/deref_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/end_impl.hpp | 3
sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_at_impl.hpp | 27 +-
sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_of_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/list/limits.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/container/list/list.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/container/list/list_fwd.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/container/map/convert.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/begin_impl.hpp | 11
sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/deref_data_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/deref_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/end_impl.hpp | 11
sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/key_of_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_of_data_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_of_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/map/limits.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp | 11
sandbox/SOC/2009/fusion/boost/fusion/container/map/map_fwd.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/container/set/convert.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/begin_impl.hpp | 11
sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/deref_data_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/deref_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/end_impl.hpp | 11
sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/key_of_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_of_data_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_of_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/set/limits.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/container/set/set.hpp | 11
sandbox/SOC/2009/fusion/boost/fusion/container/set/set_fwd.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/container/vector/convert.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/at_impl.hpp | 15 +
sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/begin_impl.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/deref_impl.hpp | 12 +
sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/end_impl.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector.hpp | 56 ++----
sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n.hpp | 113 +++++++-------
sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n_chooser.hpp | 103 ++++--------
sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_at_impl.hpp | 25 ++-
sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_of_impl.hpp | 14 +
sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector.hpp | 300 ++++++++++++++++++++++++++++-----------
sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp | 31 ++--
sandbox/SOC/2009/fusion/boost/fusion/container/vector/limits.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector10.hpp | 15 +
sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector20.hpp | 15 +
sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector30.hpp | 15 +
sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector40.hpp | 15 +
sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector50.hpp | 15 +
sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_fwd.hpp | 6
sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/0x/fused_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/0x/unfused_impl.hpp | 16 +-
sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_function_object.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_procedure.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/limits.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused_typed.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp | 4
sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/0x/invoke_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/0x/invoke_impl_detail.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_function_object.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_procedure.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/include/advance_c.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/include/boost_array.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/include/deref_data.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/include/find_key.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/include/key_of.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/include/std_array.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/include/value_at_c.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/include/value_of_data.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/iterator/advance_c.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/iterator/basic_iterator.hpp | 27 +-
sandbox/SOC/2009/fusion/boost/fusion/iterator/deref_data.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/iterator/detail/advance.hpp | 26 +--
sandbox/SOC/2009/fusion/boost/fusion/iterator/detail/distance.hpp | 15 -
sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp | 16 +
sandbox/SOC/2009/fusion/boost/fusion/iterator/iterator_facade.hpp | 12
sandbox/SOC/2009/fusion/boost/fusion/iterator/key_of.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of_data.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/mpl/clear.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/mpl/erase.hpp | 13 -
sandbox/SOC/2009/fusion/boost/fusion/mpl/erase_key.hpp | 17 -
sandbox/SOC/2009/fusion/boost/fusion/mpl/fusion_iterator.hpp | 4
sandbox/SOC/2009/fusion/boost/fusion/mpl/insert.hpp | 13 -
sandbox/SOC/2009/fusion/boost/fusion/mpl/insert_range.hpp | 13 -
sandbox/SOC/2009/fusion/boost/fusion/mpl/pop_back.hpp | 13 -
sandbox/SOC/2009/fusion/boost/fusion/mpl/pop_front.hpp | 13 -
sandbox/SOC/2009/fusion/boost/fusion/mpl/push_back.hpp | 13 -
sandbox/SOC/2009/fusion/boost/fusion/mpl/push_front.hpp | 13 -
sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/equal_to.hpp | 13 +
sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater.hpp | 7
sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater_equal.hpp | 7
sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less.hpp | 7
sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less_equal.hpp | 7
sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/not_equal_to.hpp | 7
sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less_equal.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/has_key.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_c.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_key.hpp | 11
sandbox/SOC/2009/fusion/boost/fusion/sequence/sequence_facade.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/support/category_of.hpp | 45 ++++-
sandbox/SOC/2009/fusion/boost/fusion/support/deduce.hpp | 169 ++++++++++++++--------
sandbox/SOC/2009/fusion/boost/fusion/support/deduce_sequence.hpp | 34 ++--
sandbox/SOC/2009/fusion/boost/fusion/support/internal/assert.hpp | 16 +
sandbox/SOC/2009/fusion/boost/fusion/support/internal/assign_tags.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/support/internal/ref.hpp | 16 -
sandbox/SOC/2009/fusion/boost/fusion/support/internal/result_of.hpp | 109 ++-----------
sandbox/SOC/2009/fusion/boost/fusion/support/internal/sequence_assign.hpp | 13 +
sandbox/SOC/2009/fusion/boost/fusion/support/internal/template.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/detail/variadic_arguments_to_vector_n.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/variadic_arguments_to_vector.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/variadic_quote.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/support/internal/workaround.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/support/is_iterator.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/support/is_sequence.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/support/is_view.hpp | 12 +
sandbox/SOC/2009/fusion/boost/fusion/support/pair.hpp | 5
sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp | 11
sandbox/SOC/2009/fusion/boost/fusion/support/tag_of_fwd.hpp | 3
sandbox/SOC/2009/fusion/boost/fusion/support/unused.hpp | 13
sandbox/SOC/2009/fusion/boost/fusion/tuple/make_tuple.hpp | 11
sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_fwd.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_tie.hpp | 11
sandbox/SOC/2009/fusion/boost/fusion/view/detail/strictest_traversal.hpp | 6
sandbox/SOC/2009/fusion/boost/fusion/view/detail/view_storage.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_data_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_fwd.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_iterator.hpp | 8
sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/key_of_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/value_of_data_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp | 9
sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/iterator_range_fwd.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp | 15 +
sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/begin_impl.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_data_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/end_impl.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/equal_to_impl.hpp | 3
sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_fwd.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_iterator.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/key_of_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/next_impl.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp | 24 +-
sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/advance_impl.hpp | 26 +-
sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/begin_impl.hpp | 15 +
sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_data_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_impl.hpp | 11
sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/distance_impl.hpp | 31 ++--
sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/end_impl.hpp | 46 ++----
sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/equal_to_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/key_of_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/next_impl.hpp | 11
sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/prior_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/repetitive_view_fwd.hpp | 11
sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/repetitive_view_iterator.hpp | 37 ++++
sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/value_of_data_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/value_of_impl.hpp | 11
sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/repetitive_view.hpp | 25 ++-
sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_data_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/distance_impl.hpp | 21 +-
sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/equal_to_impl.hpp | 3
sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/key_of_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_fwd.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_of_data_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp | 9
sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/equal_to_impl.hpp | 3
sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_fwd.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_iterator.hpp | 9
sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp | 9
sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/advance_impl.hpp | 6
sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/at_impl.hpp | 16 +-
sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/begin_impl.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/deref_impl.hpp | 4
sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/end_impl.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/transform_view_iterator.hpp | 10 +
sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_at_impl.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_of_impl.hpp | 4
sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp | 69 ++++----
sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view_fwd.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/begin_impl.hpp | 4
sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/distance_impl.hpp | 26 +--
sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/end_impl.hpp | 8
sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/equal_to_impl.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_at_impl.hpp | 15 +
sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_of_impl.hpp | 15 +
sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_fwd.hpp | 10
sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_iterator.hpp | 16 +
sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp | 17 +
sandbox/SOC/2009/fusion/build.bat | 13 +
sandbox/SOC/2009/fusion/libs/fusion/example/performance/measure.hpp | 12 +
sandbox/SOC/2009/fusion/libs/fusion/example/performance/sequence_efficiency.cpp | 6
sandbox/SOC/2009/fusion/libs/fusion/example/test/Jamfile.v2 | 11
sandbox/SOC/2009/fusion/libs/fusion/example/test/main.cpp | 25 ++
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp | 6
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_n.cpp | 6
sandbox/SOC/2009/fusion/project-root.jam | 18 +
321 files changed, 2336 insertions(+), 1708 deletions(-)
Modified: sandbox/SOC/2009/fusion/boost-build.jam
==============================================================================
--- sandbox/SOC/2009/fusion/boost-build.jam (original)
+++ sandbox/SOC/2009/fusion/boost-build.jam 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,9 @@
-# Copyright Christopher Schmidt 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)
+#==============================================================================
+# Copyright (c) 2009 Christopher Schmidt
+#
+# Use, modification and distribution is 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)
+#==============================================================================
boost-build $(BOOST_ROOT)/tools/build/v2 ;
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/array.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/array.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/array.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ADAPTED_ARRAY_HPP
#define BOOST_FUSION_ADAPTED_ARRAY_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_array.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_array.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_array.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,11 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2005-2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ADAPTED_BOOST_ARRAY_HPP
#define BOOST_FUSION_ADAPTED_BOOST_ARRAY_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_tuple.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_tuple.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_tuple.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -8,7 +8,7 @@
#ifndef BOOST_FUSION_ADAPTED_BOOST_TUPLE_HPP
#define BOOST_FUSION_ADAPTED_BOOST_TUPLE_HPP
-//TODO adapt std::(tr1::)tuple
+//TODO adapt std::(tr1::)tuple upper limit!!!
#include <boost/fusion/support/internal/ref.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/at_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/begin_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/deref_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ADAPTED_DETAIL_ARRAY_DEREF_IMPL_HPP
#define BOOST_FUSION_ADAPTED_DETAIL_ARRAY_DEREF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/end_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_view_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_view_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_view_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -11,7 +11,6 @@
#include <boost/mpl/bool.hpp>
-//TODO doc!!!
namespace boost { namespace fusion { namespace extension
{
template<typename Tag>
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/tag_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/tag_of.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/tag_of.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,11 +1,13 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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 <boost/config.hpp>
#include <boost/fusion/support/tag_of_fwd.hpp>
#include <cstddef>
@@ -24,17 +26,27 @@
namespace traits
{
-#define BOOST_FUSION_TAG_OF_SPECIALIZATION(COMBINATION,_)\
+#ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+# define BOOST_FUSION_ARRAY_TAG_OF_SPECIALIZATION(COMBINATION,_)\
+ template<typename T, std::size_t N>\
+ struct tag_of<\
+ BOOST_FUSION_ADAPTED_ARRAY_NAMESPACE::array<T,N> COMBINATION,void>\
+ {\
+ typedef array_tag type;\
+ };
+#else
+# define BOOST_FUSION_ARRAY_TAG_OF_SPECIALIZATION(COMBINATION,_)\
template<typename T, std::size_t N>\
struct tag_of<\
BOOST_FUSION_ADAPTED_ARRAY_NAMESPACE::array<T,N> COMBINATION>\
{\
typedef array_tag type;\
};
+#endif
BOOST_FUSION_ALL_CV_REF_NON_REF_COMBINATIONS(
- BOOST_FUSION_TAG_OF_SPECIALIZATION,_)
+ BOOST_FUSION_ARRAY_TAG_OF_SPECIALIZATION,_)
-#undef BOOST_FUSION_TAG_OF_SPECIALIZATION
+#undef BOOST_FUSION_ARRAY_TAG_OF_SPECIALIZATION
}
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/value_of_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ADAPTED_DETAIL_ARRAY_VALUE_OF_IMPL_HPP
#define BOOST_FUSION_ADAPTED_DETAIL_ARRAY_VALUE_OF_IMPL_HPP
@@ -16,13 +18,10 @@
{
template <typename ItRef>
struct apply
- {
- typedef typename
- detail::remove_reference<
- typename detail::remove_reference<ItRef>::type::seq_type
- >::type::value_type
- type;
- };
+ : detail::remove_reference<
+ typename detail::remove_reference<ItRef>::type::seq_type
+ >::type::value_type
+ {};
};
}}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/begin_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/deref_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_DEREF_IMPL_HPP
#define BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_DEREF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/end_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/tag_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/tag_of.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/tag_of.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -8,6 +9,7 @@
#ifndef BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_TAG_OF_HPP
#define BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_TAG_OF_HPP
+#include <boost/config.hpp>
#include <boost/fusion/support/tag_of_fwd.hpp>
namespace boost { namespace fusion
@@ -17,7 +19,33 @@
namespace traits
{
-#define BOOST_FUSION_TAG_OF_SPECIALIZATION(COMBINATION,_)\
+#ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+# define BOOST_FUSION_TUPLE_TAG_OF_SPECIALIZATION(COMBINATION,_)\
+ template <\
+ class T0, class T1, class T2, class T3, class T4, \
+ class T5, class T6, class T7, class T8, class T9\
+ >\
+ struct tag_of<\
+ tuples::tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> COMBINATION\
+ , void\
+ >\
+ {\
+ typedef boost_tuple_tag type;\
+ };\
+ \
+ template <class Head, class Tail>\
+ struct tag_of<tuples::cons<Head, Tail> COMBINATION,void>\
+ {\
+ typedef boost_tuple_tag type;\
+ };\
+ \
+ template <>\
+ struct tag_of<tuples::null_type COMBINATION,void>\
+ {\
+ typedef boost_tuple_tag type;\
+ };
+#else
+# define BOOST_FUSION_TUPLE_TAG_OF_SPECIALIZATION(COMBINATION,_)\
template <\
class T0, class T1, class T2, class T3, class T4, \
class T5, class T6, class T7, class T8, class T9\
@@ -40,11 +68,12 @@
{\
typedef boost_tuple_tag type;\
};
+#endif
BOOST_FUSION_ALL_CV_REF_NON_REF_COMBINATIONS(
- BOOST_FUSION_TAG_OF_SPECIALIZATION,_)
+ BOOST_FUSION_TUPLE_TAG_OF_SPECIALIZATION,_)
-#undef BOOST_FUSION_TAG_OF_SPECIALIZATION
+#undef BOOST_FUSION_TUPLE_TAG_OF_SPECIALIZATION
}
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/value_of_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_VALUE_OF_IMPL_HPP
#define BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_VALUE_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/advance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/advance_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/advance_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/begin_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/category_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/category_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/category_of_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -9,6 +10,8 @@
#ifndef BOOST_FUSION_ADAPTED_DETAIL_MPL_CATEGORY_OF_IMPL_HPP
#define BOOST_FUSION_ADAPTED_DETAIL_MPL_CATEGORY_OF_IMPL_HPP
+//TODO doc
+
#include <boost/mpl/begin.hpp>
#include <boost/mpl/is_sequence.hpp>
#include <boost/mpl/iterator_category.hpp>
@@ -54,17 +57,14 @@
{
template<typename SeqRef>
struct apply
- {
- typedef typename
- detail::mpl_iterator_category<
- typename mpl::iterator_category<
- typename mpl::begin<
- typename detail::identity<SeqRef>::type
- >::type
+ : detail::mpl_iterator_category<
+ typename mpl::iterator_category<
+ typename mpl::begin<
+ typename detail::identity<SeqRef>::type
>::type
>::type
- type;
- };
+ >
+ {};
};
template<>
@@ -72,15 +72,12 @@
{
template<typename ItRef>
struct apply
- {
- typedef typename
- detail::mpl_iterator_category<
- typename mpl::iterator_category<
- typename detail::identity<ItRef>::type
- >::type
+ : detail::mpl_iterator_category<
+ typename mpl::iterator_category<
+ typename detail::identity<ItRef>::type
>::type
- type;
- };
+ >
+ {};
};
}
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/deref_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/distance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/distance_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/distance_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/end_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/equal_to_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/equal_to_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/get_mpl_it.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/get_mpl_it.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/get_mpl_it.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ADAPTED_DETAIL_MPL_GET_MPL_IT_HPP
#define BOOST_FUSION_ADAPTED_DETAIL_MPL_GET_MPL_IT_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_iterator_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_iterator_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_iterator_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
- Copyright (c) 2005-2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/mpl_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/mpl_iterator.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/mpl_iterator.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/next_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/next_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/prior_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/prior_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/prior_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/tag_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/tag_of.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/tag_of.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,8 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ADAPTED_DETAIL_MPL_TAG_OF_HPP
#define BOOST_FUSION_ADAPTED_DETAIL_MPL_TAG_OF_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_of_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_assoc_struct.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_assoc_struct.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_assoc_struct.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,11 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2007 Joel de Guzman
+ Copyright (c) 2007 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_ADAPT_ASSOC_STRUCT_HPP
#define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_ADAPT_ASSOC_STRUCT_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_base.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_base.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_base.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2007 Joel de Guzman
- Copyright (c) 2009 Dan Christopher Schmidt
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -9,6 +8,7 @@
#ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_ADAPT_BASE_HPP
#define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_ADAPT_BASE_HPP
+#include <boost/config.hpp>
#include <boost/fusion/support/tag_of_fwd.hpp>
#include <boost/preprocessor/seq/size.hpp>
@@ -16,12 +16,21 @@
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
-#define BOOST_FUSION_ADAPT_STRUCT_TAG_OF_SPECIALIZATION(COMBINATION, DATA) \
+#ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+# define BOOST_FUSION_ADAPT_STRUCT_TAG_OF_SPECIALIZATION(COMBINATION, DATA) \
+ template <> \
+ struct tag_of<BOOST_PP_TUPLE_ELEM(2,0,DATA) COMBINATION,void> \
+ { \
+ typedef BOOST_PP_TUPLE_ELEM(2,1,DATA) type; \
+ };
+#else
+# define BOOST_FUSION_ADAPT_STRUCT_TAG_OF_SPECIALIZATION(COMBINATION, DATA) \
template <> \
struct tag_of<BOOST_PP_TUPLE_ELEM(2,0,DATA) COMBINATION> \
{ \
typedef BOOST_PP_TUPLE_ELEM(2,1,DATA) type; \
};
+#endif
#define BOOST_FUSION_ADAPT_STRUCT_BASE(NAME,TAG,TUPLE_SEQ,CALLBACK) \
BOOST_PP_SEQ_FOR_EACH_I(CALLBACK,NAME,TUPLE_SEQ) \
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_struct.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_struct.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_struct.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2007 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_ADAPT_STRUCT_HPP
#define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_ADAPT_STRUCT_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/begin_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/category_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/category_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/category_of_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/deref_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/deref_data_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/deref_data_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_DEREF_DATA_IMPL_HPP
#define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_DEREF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/deref_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_DEREF_IMPL_HPP
#define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_DEREF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/end_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/key_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/key_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/key_of_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_KEY_OF_IMPL_HPP
#define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_KEY_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_of_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_of_data_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_of_data_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_VALUE_OF_DATA_IMPL_HPP
#define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_VALUE_OF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_of_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_VALUE_OF_IMPL_HPP
#define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_VALUE_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/std_array.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/std_array.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/std_array.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ADAPTED_STD_ARRAY_HPP
#define BOOST_FUSION_ADAPTED_STD_ARRAY_HPP
@@ -10,7 +12,6 @@
#include <boost/fusion/support/internal/ref.hpp>
#define BOOST_FUSION_ADAPTED_ARRAY_TYPE struct
-//TODO!!!
#ifdef BOOST_HAS_TR1_ARRAY
# define BOOST_FUSION_ADAPTED_ARRAY_NAMESPACE std::tr1
#else
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,24 +1,38 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2005-2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ADAPTED_STD_PAIR_HPP
#define BOOST_FUSION_ADAPTED_STD_PAIR_HPP
-#include <boost/fusion/adapted/struct.hpp>
+#include <boost/config.hpp>
+#include <boost/fusion/adapted/struct/adapt_struct.hpp>
#include <boost/fusion/support/tag_of_fwd.hpp>
#include <boost/fusion/support/internal/ref.hpp>
#include <boost/mpl/int.hpp>
#include <boost/config/no_tr1/utility.hpp>
-#define BOOST_FUSION_STD_PAIR_TAG_OF_SPECIALIZATION(COMBINATION, _) \
+#ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+# define BOOST_FUSION_STD_PAIR_TAG_OF_SPECIALIZATION(COMBINATION, _) \
+ template <typename T1, typename T2> \
+ struct tag_of<std::pair<T1, T2> COMBINATION, void> \
+ { \
+ typedef struct_tag type; \
+ };
+#else
+# define BOOST_FUSION_STD_PAIR_TAG_OF_SPECIALIZATION(COMBINATION, _) \
template <typename T1, typename T2> \
struct tag_of<std::pair<T1, T2> COMBINATION> \
{ \
typedef struct_tag type; \
};
+#endif
namespace boost { namespace fusion { namespace traits \
{ \
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/struct.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/struct.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/struct.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_assoc_struct.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_assoc_struct.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_assoc_struct.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,11 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2007 Joel de Guzman
+ Copyright (c) 2007 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ADAPTED_STRUCT_ADAPT_ASSOC_STRUCT_HPP
#define BOOST_FUSION_ADAPTED_STRUCT_ADAPT_ASSOC_STRUCT_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_struct.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_struct.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_struct.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2007 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ADAPTED_STRUCT_ADAPT_STRUCT_HPP
#define BOOST_FUSION_ADAPTED_STRUCT_ADAPT_STRUCT_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -20,6 +20,7 @@
#include <boost/fusion/support/internal/result_of.hpp>
#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/if.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/mpl/apply.hpp>
#include <boost/mpl/identity.hpp>
@@ -72,7 +73,7 @@
typedef typename result_of::next<It1&>::type It2;
It2 it2 = fusion::next(it1);
- return f(fusion::deref(it2),
+ return f(fusion::deref(fusion::next(it1)),
f(fusion::deref(it1),
f(
fusion::deref(it0),
@@ -93,8 +94,7 @@
BOOST_FUSION_R_ELSE_CLREF(F) f)
{
return f(fusion::deref(fusion::next(it0)),
- f(fusion::deref(it0),
- BOOST_FUSION_FORWARD(State,state)));
+ f(fusion::deref(it0),BOOST_FUSION_FORWARD(State,state)));
}
};
@@ -131,20 +131,21 @@
#ifdef BOOST_NO_RVALUE_REFERENCES
typedef typename
- internal::result_of<
+ boost::result_of<
typename get_func_base<FRef>::type(deref_type, StateRef)
>::type
type;
#else
typedef typename
- mpl::eval_if<
- typename is_lrref<deref_type>::type
- , internal::result_of<
- typename get_func_base<FRef>::type(deref_type, StateRef)
- >
- , internal::result_of<
- typename get_func_base<FRef>::type(deref_type&&, StateRef)
- >
+ boost::result_of<
+ typename get_func_base<FRef>::type(
+ typename mpl::if_<
+ is_lrref<deref_type>
+ , deref_type
+ , deref_type&&
+ >::type
+ , StateRef
+ )
>::type
type;
#endif
@@ -211,11 +212,8 @@
template<typename It0, typename StateRef, typename FRef>
struct result_of_unrolled_fold<It0, StateRef, FRef, 1>
- {
- typedef typename
- fold_apply_r_else_clref<It0, StateRef, FRef>::type
- type;
- };
+ : fold_apply_r_else_clref<It0, StateRef, FRef>
+ {};
template<int SeqSize, typename It0, typename StateRef, typename FRef>
struct fold_impl
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/for_each.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/for_each.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/for_each.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -90,8 +90,7 @@
{
template<typename It, typename F>
static void call(It const&, BOOST_FUSION_R_ELSE_CLREF(F))
- {
- }
+ {}
};
}}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
Copyright (c) 2007 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
Copyright (c) 2007 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2007 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -2,6 +2,7 @@
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005 Eric Niebler
Copyright (c) 2007 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
- Copyright (c) 2007
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2007 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/all.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/all.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/all.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -9,6 +9,7 @@
#ifndef BOOST_FUSION_ALGORITHM_QUERY_DETAIL_ALL_HPP
#define BOOST_FUSION_ALGORITHM_QUERY_DETAIL_ALL_HPP
+#include <boost/config.hpp>
#include <boost/fusion/iterator/advance.hpp>
#include <boost/fusion/iterator/equal_to.hpp>
#include <boost/fusion/iterator/next.hpp>
@@ -115,10 +116,14 @@
struct unrolled_all<0>
{
template <typename It0, typename F>
- static bool
+ static
+#ifndef BOOST_NO_CONSTEXPR
+ constexpr
+#endif
+ bool
call(It0 const& it0, F const& f)
{
- return false;
+ return true;
}
};
}}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/count.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/count.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/count.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -8,6 +8,7 @@
#ifndef BOOST_FUSION_ALGORITHM_QUERY_DETAIL_COUNT_HPP
#define BOOST_FUSION_ALGORITHM_QUERY_DETAIL_COUNT_HPP
+#include <boost/config.hpp>
#include <boost/mpl/or.hpp>
#include <boost/type_traits/is_convertible.hpp>
@@ -33,7 +34,11 @@
struct compare_convertible<false>
{
template <typename T1, typename T2>
- static bool
+ static
+#ifndef BOOST_NO_CONSTEXPR
+ constexpr
+#endif
+ bool
call(BOOST_FUSION_R_ELSE_CLREF(T1) x, BOOST_FUSION_R_ELSE_CLREF(T2) y)
{
return false;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/find_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/find_if.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/find_if.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -32,30 +32,24 @@
template <typename Begin, typename End, typename Pred>
struct recursive_find_if
- {
- typedef typename
- main_find_if<
- typename result_of::next<Begin>::type
- , End
- , Pred
- >::type
- type;
- };
+ : main_find_if<
+ typename result_of::next<Begin>::type
+ , End
+ , Pred
+ >
+ {};
template <typename Begin, typename End, typename Pred>
struct main_find_if
- {
- typedef typename
- mpl::eval_if<
- mpl::or_<
- result_of::equal_to<Begin, End>
- , mpl::apply1<Pred,Begin>
- >
- , mpl::identity<Begin>
- , recursive_find_if<Begin, End, Pred>
- >::type
- type;
- };
+ : mpl::eval_if<
+ mpl::or_<
+ result_of::equal_to<Begin, End>
+ , mpl::apply1<Pred,Begin>
+ >
+ , mpl::identity<Begin>
+ , recursive_find_if<Begin, End, Pred>
+ >
+ {};
template<typename Begin, typename End, typename Pred, bool>
struct choose_find_if;
@@ -78,91 +72,76 @@
template<typename It, typename Pred, int N>
struct unrolled_find_if
- {
- typedef typename
- mpl::eval_if<
- typename mpl::apply1<Pred,It>::type
- , mpl::identity<It>
+ : mpl::eval_if<
+ typename mpl::apply1<Pred,It>::type
+ , mpl::identity<It>
+ , mpl::eval_if<
+ apply_offset_filter<It, Pred, 1>
+ , result_of::next<It>
, mpl::eval_if<
- apply_offset_filter<It, Pred, 1>
- , result_of::next<It>
+ apply_offset_filter<It, Pred, 2>
+ , result_of::advance_c<It, 2>
, mpl::eval_if<
- apply_offset_filter<It, Pred, 2>
- , result_of::advance_c<It, 2>
- , mpl::eval_if<
- apply_offset_filter<It, Pred, 3>
- , result_of::advance_c<It, 3>
- , unroll_again<
- It
- , Pred
- , N
- >
+ apply_offset_filter<It, Pred, 3>
+ , result_of::advance_c<It, 3>
+ , unroll_again<
+ It
+ , Pred
+ , N
>
>
>
- >::type
- type;
- };
+ >
+ >
+ {};
template<typename It, typename Pred, int n>
struct unroll_again
- {
- typedef typename
- unrolled_find_if<
- typename result_of::advance_c<It, 4>::type
- , Pred
- , n-4
- >::type
- type;
- };
+ : unrolled_find_if<
+ typename result_of::advance_c<It, 4>::type
+ , Pred
+ , n-4
+ >
+ {};
template<typename It, typename Pred>
struct unrolled_find_if<It, Pred, 3>
- {
- typedef typename
- mpl::eval_if<
- typename mpl::apply1<Pred,It>::type
- , mpl::identity<It>
+ : mpl::eval_if<
+ typename mpl::apply1<Pred,It>::type
+ , mpl::identity<It>
+ , mpl::eval_if<
+ apply_offset_filter<It, Pred, 1>
+ , result_of::next<It>
, mpl::eval_if<
- apply_offset_filter<It, Pred, 1>
- , result_of::next<It>
- , mpl::eval_if<
- apply_offset_filter<It, Pred, 2>
- , result_of::advance_c<It, 2>
- , result_of::advance_c<It, 3>
- >
+ apply_offset_filter<It, Pred, 2>
+ , result_of::advance_c<It, 2>
+ , result_of::advance_c<It, 3>
>
- >::type
- type;
- };
+ >
+ >
+ {};
template<typename It, typename Pred>
struct unrolled_find_if<It, Pred, 2>
- {
- typedef typename
- mpl::eval_if<
- typename mpl::apply1<Pred,It>::type
- , mpl::identity<It>
- , mpl::eval_if<
- apply_offset_filter<It, Pred, 1>
- , result_of::next<It>
- , result_of::advance_c<It, 2>
- >
- >::type
- type;
- };
+ : mpl::eval_if<
+ typename mpl::apply1<Pred,It>::type
+ , mpl::identity<It>
+ , mpl::eval_if<
+ apply_offset_filter<It, Pred, 1>
+ , result_of::next<It>
+ , result_of::advance_c<It, 2>
+ >
+ >
+ {};
template<typename It, typename Pred>
struct unrolled_find_if<It, Pred, 1>
- {
- typedef typename
- mpl::eval_if<
- typename mpl::apply1<Pred,It>::type
- , mpl::identity<It>
- , result_of::next<It>
- >::type
- type;
- };
+ : mpl::eval_if<
+ typename mpl::apply1<Pred,It>::type
+ , mpl::identity<It>
+ , result_of::next<It>
+ >
+ {};
template<typename It, typename Pred>
struct unrolled_find_if<It, Pred, 0>
@@ -172,15 +151,12 @@
template<typename Begin, typename End, typename Pred>
struct choose_find_if<Begin, End, Pred, true>
- {
- typedef typename
- unrolled_find_if<
- Begin
- , Pred
- , result_of::distance<Begin, End>::value
- >::type
- type;
- };
+ : unrolled_find_if<
+ Begin
+ , Pred
+ , result_of::distance<Begin, End>::value
+ >
+ {};
template <typename Begin, typename End, typename Pred>
struct static_find_if
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_key.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_key.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/clear.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/clear.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/clear.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_FILTER_KEY_VIEW_HPP
#define BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_FILTER_KEY_VIEW_HPP
@@ -10,6 +12,7 @@
#include <boost/fusion/view/detail/view_storage.hpp>
#include <boost/fusion/support/category_of.hpp>
#include <boost/fusion/support/internal/ref.hpp>
+#include <boost/fusion/support/internal/assert.hpp>
#include <boost/mpl/bool.hpp>
@@ -18,8 +21,6 @@
#include <boost/fusion/algorithm/transformation/detail/filter_key_view/at_key_impl.hpp>
#include <boost/fusion/algorithm/transformation/detail/filter_key_view/value_at_key_impl.hpp>
-//TODO: test
-
namespace boost { namespace fusion
{
struct fusion_sequence_tag;
@@ -44,7 +45,9 @@
filter_key_view(filter_key_view<OtherSeq,Pred> COMBINATION view)\
: seq(static_cast<filter_key_view<OtherSeq,Pred>COMBINATION>(\
view).seq)\
- {}
+ {\
+ BOOST_FUSION_TAG_CHECK(OtherSeq,filter_key_view);\
+ }
BOOST_FUSION_ALL_CTOR_COMBINATIONS(
BOOST_FUSION_FILTER_KEY_VIEW_CTOR,_)
@@ -64,11 +67,13 @@
{}
#endif
- template<typename OtherFilterKeyView>
+ template<typename OtherView>
filter_key_view&
- operator=(BOOST_FUSION_R_ELSE_CLREF(OtherFilterKeyView) other_view)
+ operator=(BOOST_FUSION_R_ELSE_CLREF(OtherView) other_view)
{
- seq=BOOST_FUSION_FORWARD(OtherFilterKeyView,other_view).seq;
+ BOOST_FUSION_TAG_CHECK(OtherView, filter_key_view_tag);
+
+ seq=BOOST_FUSION_FORWARD(OtherView,other_view).seq;
return *this;
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/at_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/at_key_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/at_key_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_FILTER_KEY_VIEW_AT_KEY_IMPL_HPP
#define BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_FILTER_KEY_VIEW_AT_KEY_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/filter_key_view_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/filter_key_view_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/filter_key_view_fwd.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_FILTER_KEY_VIEW_FILTER_KEY_VIEW_FWD_HPP
#define BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_FILTER_KEY_VIEW_FILTER_KEY_VIEW_FWD_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/has_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/has_key_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/has_key_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_FILTER_KEY_VIEW_HAS_KEY_IMPL_HPP
#define BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_FILTER_KEY_VIEW_HAS_KEY_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/value_at_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/value_at_key_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/value_at_key_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_FILTER_KEY_VIEW_VALUE_AT_KEY_IMPL_HPP
#define BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_FILTER_KEY_VIEW_VALUE_AT_KEY_IMPL_HPP
@@ -18,14 +20,11 @@
{
template <typename SeqRef,typename Key>
struct apply
- {
- typedef typename
- result_of::value_at_key<
- typename detail::remove_reference<SeqRef>::type_seq_type
- , Key
- >::type
- type;
- };
+ : result_of::value_at_key<
+ typename detail::remove_reference<SeqRef>::type_seq_type
+ , Key
+ >
+ {};
};
}}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/is_in_seq.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/is_in_seq.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/is_in_seq.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_SUPPORT_DETAIL_IS_IN_SEQ_HPP
#define BOOST_FUSION_SUPPORT_DETAIL_IS_IN_SEQ_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/pp/zip.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/pp/zip.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/pp/zip.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,11 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_PP_IS_ITERATING
#ifndef BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_PP_ZIP_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/replace_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/replace_if.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/replace_if.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/variadic_templates/zip.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/variadic_templates/zip.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/variadic_templates/zip.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_VARIADIC_TEMPLATES_ZIP_HPP
#define BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_VARIADIC_TEMPLATES_ZIP_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -13,7 +14,6 @@
#include <boost/fusion/iterator/equal_to.hpp>
#include <boost/fusion/view/joint_view/joint_view.hpp>
#include <boost/fusion/view/iterator_range/iterator_range.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
#include <boost/fusion/support/internal/assert.hpp>
#include <boost/fusion/support/internal/ref.hpp>
#include <boost/fusion/algorithm/transformation/detail/is_in_seq.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase_key.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase_key.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,6 @@
-
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -12,6 +13,7 @@
#include <boost/fusion/algorithm/transformation/insert_range.hpp>
#include <boost/fusion/support/internal/ref.hpp>
#include <boost/fusion/support/internal/assert.hpp>
+#include <boost/fusion/support/deduce.hpp>
#include <boost/fusion/algorithm/transformation/detail/is_in_seq.hpp>
namespace boost { namespace fusion
@@ -24,7 +26,7 @@
Seq
, Pos
, BOOST_FUSION_R_ELSE_CLREF(
- single_view<typename detail::as_fusion_element<T>::type>)
+ single_view<typename traits::deduce<T>::type>)
>
{
BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -12,7 +13,6 @@
#include <boost/fusion/sequence/intrinsic/end.hpp>
#include <boost/fusion/view/joint_view/joint_view.hpp>
#include <boost/fusion/view/iterator_range/iterator_range.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
#include <boost/fusion/support/internal/ref.hpp>
#include <boost/fusion/support/internal/assert.hpp>
#include <boost/fusion/algorithm/transformation/detail/is_in_seq.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/join.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/join.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/join.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_back.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_back.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_back.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_front.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_front.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_front.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_back.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_back.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_back.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -10,7 +11,7 @@
#include <boost/fusion/view/joint_view/joint_view.hpp>
#include <boost/fusion/view/single_view/single_view.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
#include <boost/fusion/support/internal/ref.hpp>
#include <boost/fusion/support/internal/assert.hpp>
@@ -27,7 +28,7 @@
typedef
joint_view<
Seq
- , single_view<typename detail::as_fusion_element<T>::type>
+ , single_view<typename traits::deduce<T>::type>
>
type;
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_front.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_front.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_front.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -10,7 +11,7 @@
#include <boost/fusion/view/joint_view/joint_view.hpp>
#include <boost/fusion/view/single_view/single_view.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
#include <boost/fusion/support/internal/ref.hpp>
#include <boost/fusion/support/internal/assert.hpp>
@@ -26,7 +27,7 @@
typedef
joint_view<
- single_view<typename detail::as_fusion_element<T>::type>
+ single_view<typename traits::deduce<T>::type>
, Seq
>
type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove_if.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove_if.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -9,9 +10,9 @@
#define BOOST_FUSION_ALGORITHM_TRANSFORMATION_REPLACE_HPP
#include <boost/fusion/algorithm/transformation/replace_if.hpp>
+#include <boost/fusion/support/deduce.hpp>
#include <boost/fusion/support/internal/ref.hpp>
#include <boost/fusion/support/internal/assert.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
namespace boost { namespace fusion
{
@@ -60,9 +61,7 @@
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef
- detail::replace_helper<
- typename detail::as_fusion_element<T>::type
- >
+ detail::replace_helper<typename traits::deduce<T>::type>
replacer;
typedef typename
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -10,9 +11,9 @@
#include <boost/fusion/view/transform_view/transform_view.hpp>
#include <boost/fusion/algorithm/transformation/detail/replace_if.hpp>
+#include <boost/fusion/support/deduce.hpp>
#include <boost/fusion/support/internal/ref.hpp>
#include <boost/fusion/support/internal/assert.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
namespace boost { namespace fusion
{
@@ -26,8 +27,8 @@
typedef
detail::replace_if_helper<
- typename detail::as_fusion_element<F>::type
- , typename detail::as_fusion_element<NewValue>::type
+ typename traits::deduce<F>::type
+ , typename traits::deduce<NewValue>::type
>
replacer;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/reverse.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/reverse.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/reverse.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -9,9 +10,9 @@
#define BOOST_FUSION_ALGORITHM_TRANSFORMATION_TRANSFORM_HPP
#include <boost/fusion/view/transform_view/transform_view.hpp>
+#include <boost/fusion/support/deduce.hpp>
#include <boost/fusion/support/internal/ref.hpp>
#include <boost/fusion/support/internal/assert.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
#include <boost/preprocessor/empty.hpp>
@@ -30,16 +31,12 @@
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
typedef
- transform_view<
- Seq1
- , Seq2
- , typename detail::as_fusion_element<F>::type
- >
+ transform_view<Seq1, Seq2, typename traits::deduce<F>::type>
type;
};
template <typename Seq, typename F>
-#if defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
+#ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
struct transform<Seq, F, void_>
#else
struct transform<Seq, F>
@@ -48,9 +45,7 @@
BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
- typedef
- transform_view<Seq, typename detail::as_fusion_element<F>::type>
- type;
+ typedef transform_view<Seq, typename traits::deduce<F>::type> type;
};
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/zip.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/zip.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/zip.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
- Copyright (c) 2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/detail/convert_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/detail/convert_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/detail/convert_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifdef BOOST_NO_VARIADIC_TEMPLATES
# include <boost/fusion/sequence/intrinsic/begin.hpp>
@@ -37,6 +39,7 @@
result_of::size<SeqRef>::value
>
gen;
+
typedef typename
gen::template apply<
typename result_of::begin<SeqRef>::type
@@ -47,6 +50,7 @@
detail::BOOST_PP_CAT(
BOOST_PP_CAT(as_,BOOST_FUSION_SEQ_NAME),_impl)<SeqRef>
gen;
+
typedef typename gen::apply::type type;
#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/detail/forward_ctor.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/detail/forward_ctor.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/detail/forward_ctor.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#if !defined(BOOST_FUSION_SEQ_NAME) && !defined(BOOST_FUSION_CONTAINER_DETAIL_FORWARD_CTOR_HPP)
# define BOOST_FUSION_CONTAINER_DETAIL_FORWARD_CTOR_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/as_seq.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/as_seq.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/as_seq.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_PP_IS_ITERATING
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/forward_ctor.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/forward_ctor.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/forward_ctor.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_PP_IS_ITERATING
# ifndef BOOST_FUSION_SEQ_NAME
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/as_seq.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/as_seq.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/as_seq.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
//cschmidt: to avoid cyclic references - as some of the (here unneeded) mpl
//sequence modification metafunctions might instantiate result_of::as_xxx - just
@@ -29,7 +31,6 @@
namespace boost { namespace fusion { namespace detail
{
-
template<typename SeqRef>
struct BOOST_PP_CAT(BOOST_PP_CAT(as_,BOOST_FUSION_SEQ_NAME),_impl)
{
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/forward_ctor.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/forward_ctor.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/forward_ctor.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,12 +1,16 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_SEQ_NAME
# ifndef BOOST_FUSION_CONTAINER_DETAIL_VARIADIC_TEMPLATES_FORWARD_CTOR_HPP
# define BOOST_FUSION_CONTAINER_DETAIL_VARIADIC_TEMPLATES_FORWARD_CTOR_HPP
-# include <boost/call_traits.hpp>
+# ifdef BOOST_NO_RVALUE_REFERENCES
+# include <boost/call_traits.hpp>
+# endif
# endif
#else
# ifdef BOOST_NO_RVALUE_REFERENCES
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/cons_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/cons_tie.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/cons_tie.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -9,7 +9,7 @@
#define BOOST_FUSION_CONTAINER_GENERATION_CONS_TIE_HPP
#include <boost/fusion/container/list/cons.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
namespace boost { namespace fusion
{
@@ -22,8 +22,8 @@
{
typedef
cons<
- typename detail::as_fusion_element_ref<Car>::type
- , typename detail::as_fusion_element<Cdr>::type
+ typename detail::deduce_ref<Car>::type
+ , typename traits::deduce<Cdr>::type
>
type;
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/make_seq.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/make_seq.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/make_seq.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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 <boost/config.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_map.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_map.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_map.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,14 +1,17 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_PP_IS_ITERATING
#ifndef BOOST_FUSION_CONTAINER_GENERATION_DETAIL_PP_MAKE_MAP_HPP
#define BOOST_FUSION_CONTAINER_GENERATION_DETAIL_PP_MAKE_MAP_HPP
#include <boost/fusion/container/map/map.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
#include <boost/fusion/support/pair.hpp>
#include <boost/preprocessor/iterate.hpp>
@@ -71,7 +74,7 @@
#define BOOST_FUSION_MAP_ELEMENT(Z,N,_)\
pair<\
BOOST_PP_CAT(K,N)\
- , typename detail::as_fusion_element<BOOST_PP_CAT(T,N)>::type\
+ , typename traits::deduce<BOOST_PP_CAT(T,N)>::type\
>
typedef
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_seq.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_seq.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_seq.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,11 +1,13 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_PP_IS_ITERATING
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
#include <boost/fusion/support/internal/template.hpp>
#include <boost/preprocessor/iterate.hpp>
@@ -40,7 +42,7 @@
BOOST_FUSION_SEQ_NAME<
EXPAND_TEMPLATE_ARGUMENTS_BINARY(
BOOST_FUSION_N,
- typename detail::as_fusion_element<,
+ typename traits::deduce<,
>::type
)
>
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/map_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/map_tie.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/map_tie.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,14 +1,18 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_PP_IS_ITERATING
#ifndef BOOST_FUSION_CONTAINER_GENERATION_DETAIL_PP_MAP_TIE_HPP
#define BOOST_FUSION_CONTAINER_GENERATION_DETAIL_PP_MAP_TIE_HPP
#include <boost/fusion/container/map/map.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
#include <boost/fusion/support/pair.hpp>
#include <boost/preprocessor/iterate.hpp>
@@ -71,7 +75,7 @@
#define BOOST_FUSION_MAP_ELEMENT(Z,N,_)\
pair<\
BOOST_PP_CAT(K,N)\
- , typename detail::as_fusion_element_ref<BOOST_PP_CAT(T,N)>::type\
+ , typename detail::deduce_ref<BOOST_PP_CAT(T,N)>::type\
>
typedef
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/seq_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/seq_tie.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/seq_tie.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,11 +1,13 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_PP_IS_ITERATING
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
#include <boost/fusion/support/internal/template.hpp>
#include <boost/preprocessor/iterate.hpp>
@@ -40,7 +42,7 @@
BOOST_FUSION_SEQ_NAME<
EXPAND_TEMPLATE_ARGUMENTS_BINARY(
BOOST_FUSION_N,
- typename detail::as_fusion_element_ref<,
+ typename detail::deduce_ref<,
>::type
)
>
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/seq_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/seq_tie.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/seq_tie.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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 <boost/config.hpp>
#include <boost/fusion/container/generation/ignore.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,13 +1,15 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_GENERATION_DETAIL_VARIADIC_TEMPLATES_MAKE_MAP_HPP
#define BOOST_FUSION_CONTAINER_GENERATION_DETAIL_VARIADIC_TEMPLATES_MAKE_MAP_HPP
#include <boost/fusion/container/map/map.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
#include <boost/fusion/support/internal/variadic_templates/variadic_arguments_to_vector.hpp>
#include <boost/fusion/support/internal/variadic_templates/variadic_quote.hpp>
@@ -20,7 +22,7 @@
#include <boost/mpl/size.hpp>
#include <boost/mpl/apply.hpp>
#include <boost/mpl/unpack_args.hpp>
-#include <boost/mpl/vector.hpp>
+#include <boost/mpl/vector/vector10.hpp>
#include <boost/mpl/zip_view.hpp>
#include <boost/mpl/transform_view.hpp>
@@ -52,9 +54,9 @@
typedef
mpl::transform_view<
- mpl::zip_view<mpl::vector<keys,types> >
+ mpl::zip_view<mpl::vector2<keys,types> >
, mpl::unpack_args<
- pair<mpl::_1, detail::as_fusion_element<mpl::_2> >
+ pair<mpl::_1, traits::deduce<mpl::_2> >
>
>
map_args;
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_seq.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_seq.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_seq.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,9 +1,11 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+ 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 <boost/fusion/support/deduce.hpp>
#include <boost/preprocessor/cat.hpp>
@@ -16,7 +18,7 @@
{
typedef
BOOST_FUSION_SEQ_NAME<
- typename detail::as_fusion_element<Types>::type...
+ typename traits::deduce<Types>::type...
>
type;
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/map_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/map_tie.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/map_tie.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,13 +1,15 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_GENERATION_DETAIL_VARIADIC_TEMPLATES_MAP_TIE_HPP
#define BOOST_FUSION_CONTAINER_GENERATION_DETAIL_VARIADIC_TEMPLATES_MAP_TIE_HPP
#include <boost/fusion/container/map/map.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
#include <boost/fusion/support/internal/variadic_templates/variadic_arguments_to_vector.hpp>
#include <boost/fusion/support/internal/variadic_templates/variadic_quote.hpp>
@@ -20,7 +22,7 @@
#include <boost/mpl/size.hpp>
#include <boost/mpl/apply.hpp>
#include <boost/mpl/unpack_args.hpp>
-#include <boost/mpl/vector.hpp>
+#include <boost/mpl/vector/vector10.hpp>
#include <boost/mpl/zip_view.hpp>
#include <boost/mpl/transform_view.hpp>
@@ -55,9 +57,9 @@
typedef
mpl::transform_view<
- mpl::zip_view<mpl::vector<keys,types> >
+ mpl::zip_view<mpl::vector2<keys,types> >
, mpl::unpack_args<
- pair<mpl::_1, detail::as_fusion_element_ref<mpl::_2> >
+ pair<mpl::_1, detail::deduce_ref<mpl::_2> >
>
>
map_args;
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/seq_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/seq_tie.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/seq_tie.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,9 +1,11 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+ 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 <boost/fusion/support/deduce.hpp>
#include <boost/preprocessor/cat.hpp>
@@ -16,7 +18,7 @@
{
typedef
BOOST_FUSION_SEQ_NAME<
- typename detail::as_fusion_element_ref<Types>::type...
+ typename detail::deduce_ref<Types>::type...
>
type;
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/list_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/list_tie.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/list_tie.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_GENERATION_LIST_TIE_HPP
#define BOOST_FUSION_CONTAINER_GENERATION_LIST_TIE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_cons.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_cons.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_cons.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -10,7 +10,7 @@
#define BOOST_FUSION_CONTAINER_GENERATION_MAKE_CONS_HPP
#include <boost/fusion/container/list/cons.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
namespace boost { namespace fusion
{
@@ -22,8 +22,8 @@
struct make_cons
{
typedef
- cons<typename detail::as_fusion_element<Car>::type
- , typename detail::as_fusion_element<Cdr>::type
+ cons<typename traits::deduce<Car>::type
+ , typename traits::deduce<Cdr>::type
>
type;
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_list.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_list.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_list.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_GENERATION_MAKE_LIST_HPP
#define BOOST_FUSION_CONTAINER_GENERATION_MAKE_LIST_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_map.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_map.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_map.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_GENERATION_MAKE_MAP_HPP
#define BOOST_FUSION_CONTAINER_GENERATION_MAKE_MAP_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_set.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_set.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_set.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_GENERATION_MAKE_SET_HPP
#define BOOST_FUSION_CONTAINER_GENERATION_MAKE_SET_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_vector.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_vector.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_vector.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_GENERATION_MAKE_VECTOR_HPP
#define BOOST_FUSION_CONTAINER_GENERATION_MAKE_VECTOR_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/map_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/map_tie.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/map_tie.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_GENERATION_MAP_TIE_HPP
#define BOOST_FUSION_CONTAINER_GENERATION_MAP_TIE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/pair_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/pair_tie.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/pair_tie.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -9,7 +9,7 @@
#define BOOST_FUSION_PAIR_TIE_20060812_2058
#include <boost/fusion/support/internal/ref.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
namespace boost { namespace fusion
{
@@ -24,7 +24,7 @@
typedef
fusion::pair<
Key
- , typename detail::as_fusion_element_ref<T>::type
+ , typename detail::deduce_ref<T>::type
>
type;
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/vector_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/vector_tie.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/vector_tie.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_GENERATION_VECTOR_TIE_HPP
#define BOOST_FUSION_CONTAINER_GENERATION_VECTOR_TIE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2001-2006 Joel de Guzman
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_fwd.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_CONS_FWD_HPP
#define BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_CONS_FWD_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_iterator.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_iterator.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2005 Joel de Guzman
Copyright (c) 2005 Eric Niebler
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -16,16 +17,16 @@
struct cons_iterator_tag;
struct forward_traversal_tag;
- template <typename Cons = nil>
+ template<typename ConsRef>
struct cons_iterator
- : iterator_base<cons_iterator<Cons> >
+ : iterator_base<cons_iterator<ConsRef> >
{
typedef cons_iterator_tag fusion_tag;
typedef forward_traversal_tag category;
- typedef Cons cons_type;
+ typedef ConsRef cons_type;
- template<typename OtherIt>
- cons_iterator(OtherIt const& it)
+ template<typename OtherConsRef>
+ cons_iterator(cons_iterator<OtherConsRef> const& it)
: cons(it.cons)
{}
@@ -33,9 +34,9 @@
: cons(&cons)
{}
- template<typename OtherIt>
+ template<typename OtherConsRef>
cons_iterator&
- operator=(OtherIt const& other_it)
+ operator=(cons_iterator<OtherConsRef> const& other_it)
{
cons=other_it.cons;
return *this;
@@ -44,6 +45,7 @@
typename detail::remove_reference<cons_type>::type* cons;
};
+ //TODO ref test
struct nil_iterator
: iterator_base<nil_iterator>
{
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/equal_to_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/equal_to_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -30,8 +30,7 @@
>::type::cons_type
>::type
>
- {
- };
+ {};
};
}}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/next_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/next_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2005 Joel de Guzman
Copyright (c) 2005 Eric Niebler
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_at_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -23,17 +23,13 @@
{
typedef typename
detail::remove_reference<Seq>::type
- identity_sequence;
+ seq;
typedef typename
mpl::eval_if<
N
- , mpl::identity<typename identity_sequence::car_type>
- //cschmidt: qualifiers could be moved here, though
- //this is not necessary!
- , apply<typename identity_sequence::cdr_type
- , mpl::int_<N::value-1>
- >
+ , mpl::identity<typename seq::car_type>
+ , apply<typename seq::cdr_type, mpl::int_<N::value-1> >
>::type
type;
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_of_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -21,11 +21,9 @@
struct apply
{
typedef typename
- detail::remove_reference<ItRef>::type::cons_type
- cons_type;
-
- typedef typename
- detail::remove_reference<cons_type>::type::car_type
+ detail::remove_reference<
+ typename detail::remove_reference<ItRef>::type::cons_type
+ >::type::car_type
type;
};
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/at_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_LIST_AT_IMPL_HPP
#define BOOST_FUSION_CONTAINER_LIST_DETAIL_LIST_AT_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/begin_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,5 @@
/*=============================================================================
- Copyright (c) 2005 Joel de Guzman
- Copyright (c) 2005 Eric Niebler
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/deref_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_LIST_DEREF_IMPL_HPP
#define BOOST_FUSION_CONTAINER_LIST_DETAIL_LIST_DEREF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/end_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,5 @@
/*=============================================================================
- Copyright (c) 2005 Joel de Guzman
- Copyright (c) 2005 Eric Niebler
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_at_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_LIST_VALUE_AT_IMPL_HPP
#define BOOST_FUSION_CONTAINER_LIST_DETAIL_LIST_VALUE_AT_IMPL_HPP
@@ -19,16 +21,13 @@
{
template <typename SeqRef, typename N>
struct apply
- {
- typedef typename
- result_of::value_at<
- typename detail::remove_reference<
- SeqRef
- >::type::storage_type
- , N
- >::type
- type;
- };
+ : result_of::value_at<
+ typename detail::remove_reference<
+ SeqRef
+ >::type::storage_type
+ , N
+ >
+ {};
};
}}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_of_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_LIST_VALUE_OF_IMPL_HPP
#define BOOST_FUSION_CONTAINER_LIST_DETAIL_LIST_VALUE_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/limits.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/limits.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/limits.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/list.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/list.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/list.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2005 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/list_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/list_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/list_fwd.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2005 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/convert.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/convert.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/begin_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_BEGIN_IMPL_HPP
#define BOOST_FUSION_CONTAINER_MAP_DETAIL_BEGIN_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/deref_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/deref_data_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/deref_data_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_DEREF_DATA_IMPL_HPP
#define BOOST_FUSION_CONTAINER_MAP_DETAIL_DEREF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/deref_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_DEREF_IMPL_HPP
#define BOOST_FUSION_CONTAINER_MAP_DETAIL_DEREF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/end_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_END_IMPL_HPP
#define BOOST_FUSION_CONTAINER_MAP_DETAIL_END_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/key_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/key_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/key_of_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_KEY_OF_IMPL_HPP
#define BOOST_FUSION_CONTAINER_MAP_DETAIL_KEY_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_of_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_of_data_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_of_data_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_VALUE_OF_DATA_IMPL_HPP
#define BOOST_FUSION_CONTAINER_MAP_DETAIL_VALUE_OF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_of_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_VALUE_OF_IMPL_HPP
#define BOOST_FUSION_CONTAINER_MAP_DETAIL_VALUE_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/limits.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/limits.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/limits.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2005 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_MAP_MAP_HPP
#define BOOST_FUSION_CONTAINER_MAP_MAP_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/map_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/map_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/map_fwd.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2005 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/convert.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/convert.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/begin_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_SET_DETAIL_BEGIN_IMPL_HPP
#define BOOST_FUSION_CONTAINER_SET_DETAIL_BEGIN_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/deref_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/deref_data_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/deref_data_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_SET_DETAIL_DEREF_DATA_IMPL_HPP
#define BOOST_FUSION_CONTAINER_SET_DETAIL_DEREF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/deref_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_SET_DETAIL_DEREF_IMPL_HPP
#define BOOST_FUSION_CONTAINER_SET_DETAIL_DEREF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/end_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_SET_DETAIL_END_IMPL_HPP
#define BOOST_FUSION_CONTAINER_SET_DETAIL_END_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/key_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/key_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/key_of_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_SET_DETAIL_KEY_OF_IMPL_HPP
#define BOOST_FUSION_CONTAINER_SET_DETAIL_KEY_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_of_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_of_data_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_of_data_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_SET_DETAIL_VALUE_OF_DATA_IMPL_HPP
#define BOOST_FUSION_CONTAINER_SET_DETAIL_VALUE_OF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_of_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_SET_DETAIL_VALUE_OF_IMPL_HPP
#define BOOST_FUSION_CONTAINER_SET_DETAIL_VALUE_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/limits.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/limits.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/limits.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/set.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/set.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/set.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2005 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_SET_SET_HPP
#define BOOST_FUSION_CONTAINER_SET_SET_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/set_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/set_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/set_fwd.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2005 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/convert.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/convert.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/at_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -8,7 +9,10 @@
#ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_AT_IMPL_HPP
#define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_AT_IMPL_HPP
-#include <boost/mpl/at.hpp>
+#ifdef BOOST_FUSION_PREFER_MPL
+# include <boost/mpl/at.hpp>
+#endif
+#include <boost/mpl/int.hpp>
namespace boost { namespace fusion { namespace extension
{
@@ -24,19 +28,26 @@
typedef typename
detail::forward_as<
SeqRef
+#ifdef BOOST_FUSION_PREFER_MPL
, typename mpl::at<
typename detail::remove_reference<
SeqRef
>::type::types
, N
>::type
+#else
+ , typename vector_meta_value_at<
+ typename detail::remove_reference<SeqRef>::type
+ , N::value
+ >::type
+#endif
>::type
type;
static type
call(SeqRef seq)
{
- return seq.at_impl(N());
+ return seq.at_impl(mpl::int_<N::value>());
}
};
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/begin_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/deref_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -8,7 +9,9 @@
#ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_DEREF_IMPL_HPP
#define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_DEREF_IMPL_HPP
-#include <boost/mpl/at.hpp>
+#ifdef BOOST_FUSION_PREFER_MPL
+# include <boost/mpl/at.hpp>
+#endif
namespace boost { namespace fusion { namespace extension
{
@@ -27,12 +30,19 @@
typedef
typename detail::forward_as<
vector
+#ifdef BOOST_FUSION_PREFER_MPL
, typename mpl::at<
typename detail::remove_reference<
vector
>::type::types
, typename it::index
>::type
+#else
+ , typename vector_meta_value_at<
+ typename detail::remove_reference<vector>::type
+ , it::index::value
+ >::type
+#endif
>::type
type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/end_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_PP_VECTOR_HPP
#define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_PP_VECTOR_HPP
@@ -21,66 +24,47 @@
VARIADIC_TEMPLATE(FUSION_MAX_VECTOR_SIZE)
struct vector
- : sequence_base<vector<EXPAND_TEMPLATE_ARGUMENTS(FUSION_MAX_VECTOR_SIZE)> >
+ : detail::vector_n_chooser<
+ EXPAND_TEMPLATE_ARGUMENTS(FUSION_MAX_VECTOR_SIZE)
+ >::type
{
+ private:
typedef typename
detail::vector_n_chooser<
EXPAND_TEMPLATE_ARGUMENTS(FUSION_MAX_VECTOR_SIZE)
>::type
- vector_n;
-
- typedef typename vector_n::fusion_tag fusion_tag;
- typedef typename vector_n::tag tag;
- typedef typename vector_n::size size;
- typedef typename vector_n::category category;
- typedef typename vector_n::is_view is_view;
-
- typedef typename vector_n::types types;
- typedef vector<EXPAND_TEMPLATE_ARGUMENTS(FUSION_MAX_VECTOR_SIZE)> self_type;
+ base_type;
+ public:
vector()
{}
#define BOOST_FUSION_VECTOR_CTOR(COMBINATION,_)\
- vector(self_type COMBINATION vec)\
- : data(BOOST_FUSION_FORWARD(self_type COMBINATION,vec).data)\
+ vector(\
+ vector<EXPAND_TEMPLATE_ARGUMENTS(FUSION_MAX_VECTOR_SIZE)>\
+ COMBINATION vec)\
+ : base_type(BOOST_FUSION_FORWARD(base_type COMBINATION,vec))\
{}
BOOST_FUSION_ALL_CTOR_COMBINATIONS(BOOST_FUSION_VECTOR_CTOR,_);
#undef BOOST_FUSION_VECTOR_CTOR
+#define BOOST_FUSION_USE_BASE_TYPE
#define BOOST_FUSION_SEQ_NAME vector
#define BOOST_FUSION_MAX_SEQ_SIZE FUSION_MAX_VECTOR_SIZE
#include <boost/fusion/container/detail/forward_ctor.hpp>
#undef BOOST_FUSION_MAX_SEQ_SIZE
#undef BOOST_FUSION_SEQ_NAME
+#undef BOOST_FUSION_USE_BASE_TYPE
template <typename Seq>
vector&
operator=(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
{
- data = BOOST_FUSION_FORWARD(Seq,seq);
+ *static_cast<base_type*>(this)=BOOST_FUSION_FORWARD(Seq,seq);
return *this;
}
-
- template <typename I>
- typename detail::add_lref<typename mpl::at<types, I>::type>::type
- at_impl(I)
- {
- return data.at_impl(I());
- }
-
- template <typename I>
- typename detail::add_lref<
- typename add_const<typename mpl::at<types, I>::type>::type
- >::type
- at_impl(I) const
- {
- return data.at_impl(I());
- }
-
- vector_n data;
};
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_PP_IS_ITERATING
# include <boost/fusion/container/vector/vector_fwd.hpp>
@@ -15,29 +18,27 @@
# include <boost/fusion/support/sequence_base.hpp>
# include <boost/fusion/support/internal/ref.hpp>
# include <boost/fusion/support/internal/sequence_assign.hpp>
+# include <boost/fusion/support/internal/template.hpp>
# include <boost/preprocessor/cat.hpp>
# include <boost/preprocessor/dec.hpp>
# include <boost/preprocessor/empty.hpp>
# include <boost/preprocessor/repetition/enum.hpp>
-# include <boost/preprocessor/repetition/enum_params.hpp>
-# include <boost/preprocessor/repetition/enum_binary_params.hpp>
# include <boost/preprocessor/repetition/repeat.hpp>
# include <boost/preprocessor/repetition/repeat_from_to.hpp>
# include <boost/preprocessor/iteration/iterate.hpp>
# include <boost/mpl/int.hpp>
# include <boost/mpl/bool.hpp>
-# include <boost/mpl/at.hpp>
+# ifdef BOOST_FUSION_PREFER_MPL
+# include <boost/mpl/at.hpp>
+# endif
# ifdef BOOST_FUSION_ENABLE_STATIC_ASSERTS
# include <boost/mpl/equal_to.hpp>
# endif
# include <boost/type_traits/add_const.hpp>
# include <boost/utility/enable_if.hpp>
-# ifdef BOOST_NO_RVALUE_REFERENCES
-# include <boost/call_traits.hpp>
-# endif
# include <boost/fusion/container/vector/detail/at_impl.hpp>
# include <boost/fusion/container/vector/detail/value_at_impl.hpp>
@@ -46,37 +47,49 @@
# include <boost/fusion/container/vector/detail/deref_impl.hpp>
# include <boost/fusion/container/vector/detail/value_of_impl.hpp>
+namespace boost { namespace fusion
+{
# define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/pp/vector_n.hpp>
# define BOOST_PP_ITERATION_LIMITS (BOOST_FUSION_FROM, BOOST_FUSION_TO)
# include BOOST_PP_ITERATE()
+}}
#else
# define BOOST_FUSION_N BOOST_PP_ITERATION()
-namespace boost { namespace fusion
-{
# if !BOOST_FUSION_N
- struct void_;
-
- template <typename T0=void_>
+ VARIADIC_TEMPLATE_WITH_DEFAULT(1)
struct vector0;
template<>
struct vector0<void_>
: sequence_base<vector0<void_> >
# else
- template <BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, typename T)>
+# ifndef BOOST_FUSION_PREFER_MPL
+ template<typename Vector>
+ struct
+ vector_meta_value_at<Vector,BOOST_PP_DEC(BOOST_FUSION_N)>
+ {
+ typedef typename
+ Vector::BOOST_PP_CAT(t,BOOST_PP_DEC(BOOST_FUSION_N))
+ type;
+ };
+# endif
+
+ VARIADIC_TEMPLATE(BOOST_FUSION_N)
struct BOOST_PP_CAT(vector, BOOST_FUSION_N)
: sequence_base<BOOST_PP_CAT(vector, BOOST_FUSION_N)<
- BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N,T)>
+ EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)>
>
# endif
{
+#ifdef BOOST_FUSION_PREFER_MPL
typedef
mpl::BOOST_PP_CAT(vector, BOOST_FUSION_N)<
- BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, T)
+ EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
>
types;
+#endif
typedef vector_tag fusion_tag;
typedef fusion_sequence_tag tag;
typedef mpl::false_ is_view;
@@ -94,18 +107,17 @@
# undef BOOST_FUSION_DEFAULT_MEMBER_INIT
# if BOOST_FUSION_N
-# define BOOST_FUSION_SELF_TYPE\
- BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N,T)>
-
# define BOOST_FUSION_MEMBER_INIT(Z, N, COMBINATION)\
BOOST_PP_CAT(m,N)(\
- BOOST_FUSION_FORWARD(BOOST_FUSION_SELF_TYPE COMBINATION,vec).\
+ BOOST_FUSION_FORWARD(\
+ BOOST_PP_CAT(vector, N)<EXPAND_TEMPLATE_ARGUMENTS(N)>\
+ COMBINATION,vec).\
BOOST_PP_CAT(m,N))
# define BOOST_FUSION_VECTOR_CTOR(COMBINATION,_)\
BOOST_PP_CAT(vector, BOOST_FUSION_N)(\
BOOST_PP_CAT(vector, BOOST_FUSION_N)<\
- BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N,T)\
+ EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)\
> COMBINATION vec)\
: BOOST_PP_ENUM(BOOST_FUSION_N, BOOST_FUSION_MEMBER_INIT, COMBINATION)\
{}
@@ -113,7 +125,6 @@
BOOST_FUSION_ALL_CTOR_COMBINATIONS(BOOST_FUSION_VECTOR_CTOR,_)
# undef BOOST_FUSION_MEMBER_INIT
-# undef BOOST_FUSION_SELF_TYPE
# else
# define BOOST_FUSION_VECTOR_CTOR(COMBINATION,_)\
BOOST_PP_CAT(vector, BOOST_FUSION_N)(\
@@ -131,22 +142,16 @@
BOOST_FUSION_FORWARD(BOOST_PP_CAT(A,N), BOOST_PP_CAT(_,N)))
#ifndef BOOST_NO_RVALUE_REFERENCES
- template <BOOST_PP_ENUM_PARAMS(N, typename A)>
+ VARIADIC_TEMPLATE_A(BOOST_FUSION_N)
#endif
# if (BOOST_FUSION_N == 1)
explicit
# endif
BOOST_PP_CAT(vector, BOOST_FUSION_N)(
#ifdef BOOST_NO_RVALUE_REFERENCES
- BOOST_PP_ENUM_BINARY_PARAMS(
- BOOST_FUSION_N,
- typename call_traits<T,
- >::param_type _)
+ EXPAND_TEMPLATE_ARGUMENTS_CALL_PARAMS(BOOST_FUSION_N)
#else
- BOOST_PP_ENUM_BINARY_PARAMS(
- BOOST_FUSION_N,
- A,
- BOOST_FUSION_R_ELSE_CLREF(BOOST_PP_EMPTY()) _)
+ EXPAND_TEMPLATE_ARGUMENTS_PARAMETERS_A_R_ELSE_CLREF(BOOST_FUSION_N)
#endif
)
: BOOST_PP_ENUM(BOOST_FUSION_N, BOOST_FUSION_MEMBER_INIT, _)
@@ -190,7 +195,7 @@
template <typename Seq>
BOOST_PP_CAT(vector, BOOST_FUSION_N)<
- BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, T)
+ EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
>&
operator=(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
{
@@ -227,43 +232,38 @@
}
BOOST_PP_CAT(vector, BOOST_FUSION_N)<
- BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, T)
+ EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
>&
operator=(
BOOST_PP_CAT(vector, BOOST_FUSION_N)<
- BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, T)
+ EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
>const& seq)
{
#ifdef BOOST_NO_RVALUE_REFERENCES
return this->operator=<
- BOOST_PP_CAT(vector, BOOST_FUSION_N)
- <BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, T)>
+ BOOST_PP_CAT(vector, BOOST_FUSION_N)<
+ EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
+ >
>(seq);
#else
return this->operator=<
- BOOST_PP_CAT(vector, BOOST_FUSION_N)
- <BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, T)> const&
+ BOOST_PP_CAT(vector, BOOST_FUSION_N)<
+ EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
+ > const&
>(seq);
#endif
}
- template<typename I>
- typename detail::add_lref<typename mpl::at<types, I>::type>::type
- at_impl(I)
- {
- return at_impl(mpl::int_<I::value>());
- }
-
- template<typename I>
- typename detail::add_lref<
- typename add_const<typename mpl::at<types, I>::type>::type
- >::type
- at_impl(I) const
- {
- return at_impl(mpl::int_<I::value>());
- }
+# ifdef BOOST_FUSION_PREFER_MPL
+# define BOOST_FUSION_META_VALUE_AT(N)
+# else
+# define BOOST_FUSION_META_VALUE_AT(N)\
+ typedef BOOST_PP_CAT(T,N) BOOST_PP_CAT(t,N);
+# endif
# define BOOST_FUSION_MEMBER_DECL(Z, N, _)\
+ BOOST_FUSION_META_VALUE_AT(N)\
+ \
typename detail::add_lref<BOOST_PP_CAT(T,N)>::type\
at_impl(mpl::int_<N>)\
{\
@@ -283,8 +283,9 @@
BOOST_PP_REPEAT(BOOST_FUSION_N, BOOST_FUSION_MEMBER_DECL, _)
# undef BOOST_FUSION_MEMBER_DECL
+# undef BOOST_FUSION_META_VALUE_AT
};
-}}
+
# undef BOOST_FUSION_N
#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n_chooser.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n_chooser.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n_chooser.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -6,85 +6,54 @@
==============================================================================*/
#ifndef BOOST_PP_IS_ITERATING
-#ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_PP_VECTOR_N_CHOOSER_HPP
-#define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_PP_VECTOR_N_CHOOSER_HPP
+# ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_PP_VECTOR_N_CHOOSER_HPP
+# define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_PP_VECTOR_N_CHOOSER_HPP
-#include <boost/fusion/container/vector/limits.hpp>
+# include <boost/fusion/container/vector/limits.hpp>
// include vector0..N where N is FUSION_MAX_VECTOR_SIZE
-#include <boost/fusion/container/vector/vector10.hpp>
-#if (FUSION_MAX_VECTOR_SIZE > 10)
-# include <boost/fusion/container/vector/vector20.hpp>
-#endif
-#if (FUSION_MAX_VECTOR_SIZE > 20)
-# include <boost/fusion/container/vector/vector30.hpp>
-#endif
-#if (FUSION_MAX_VECTOR_SIZE > 30)
-# include <boost/fusion/container/vector/vector40.hpp>
-#endif
-#if (FUSION_MAX_VECTOR_SIZE > 40)
-# include <boost/fusion/container/vector/vector50.hpp>
-#endif
-
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
+# include <boost/fusion/container/vector/vector10.hpp>
+# if (FUSION_MAX_VECTOR_SIZE > 10)
+# include <boost/fusion/container/vector/vector20.hpp>
+# endif
+# if (FUSION_MAX_VECTOR_SIZE > 20)
+# include <boost/fusion/container/vector/vector30.hpp>
+# endif
+# if (FUSION_MAX_VECTOR_SIZE > 30)
+# include <boost/fusion/container/vector/vector40.hpp>
+# endif
+# if (FUSION_MAX_VECTOR_SIZE > 40)
+# include <boost/fusion/container/vector/vector50.hpp>
+# endif
+# include <boost/fusion/support/internal/template.hpp>
-#include <boost/mpl/distance.hpp>
-#include <boost/mpl/find.hpp>
-#include <boost/mpl/begin_end.hpp>
-
-namespace boost { namespace fusion
-{
- struct void_;
-}}
+# include <boost/preprocessor/cat.hpp>
namespace boost { namespace fusion { namespace detail
{
- template <int N>
- struct get_vector_n;
+ VARIADIC_TEMPLATE_WITH_DEFAULT(FUSION_MAX_VECTOR_SIZE)
+ struct vector_n_chooser;
+
+# define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/pp/vector_n_chooser.hpp>
+# define BOOST_PP_ITERATION_LIMITS (0, FUSION_MAX_VECTOR_SIZE)
+# include BOOST_PP_ITERATE()
+
+}}}
-#define BOOST_PP_FILENAME_1 \
- <boost/fusion/container/vector/detail/pp/vector_n_chooser.hpp>
-#define BOOST_PP_ITERATION_LIMITS (0, FUSION_MAX_VECTOR_SIZE)
-#include BOOST_PP_ITERATE()
+# endif
+#else
+# define BOOST_FUSION_N BOOST_PP_ITERATION()
- template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, typename T)>
+ VARIADIC_TEMPLATE(BOOST_FUSION_N)
struct vector_n_chooser
+ EXPAND_TEMPLATE_ARGUMENTS_SPECIALIZATION(
+ FUSION_MAX_VECTOR_SIZE,BOOST_FUSION_N)
{
typedef
- mpl::BOOST_PP_CAT(vector, FUSION_MAX_VECTOR_SIZE)
- <BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, T)>
- input;
-
- typedef typename mpl::begin<input>::type begin;
- typedef typename mpl::find<input, void_>::type end;
- typedef typename mpl::distance<begin, end>::type size;
-
- typedef typename get_vector_n<size::value>::template
- call<BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, T)>::type
+ BOOST_PP_CAT(vector, BOOST_FUSION_N)<
+ EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
+ >
type;
};
-}}}
+# undef BOOST_FUSION_N
#endif
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Preprocessor vertical repetition code
-//
-///////////////////////////////////////////////////////////////////////////////
-#else // defined(BOOST_PP_IS_ITERATING)
-
-#define N BOOST_PP_ITERATION()
-
- template <>
- struct get_vector_n<N>
- {
- template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, typename T)>
- struct call
- {
- typedef BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, T)> type;
- };
- };
-
-#undef BOOST_FUSION_N
-#endif // defined(BOOST_PP_IS_ITERATING)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_at_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -8,7 +9,9 @@
#ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_VALUE_AT_IMPL_HPP
#define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_VALUE_AT_IMPL_HPP
-#include <boost/mpl/at.hpp>
+#ifdef BOOST_FUSION_PREFER_MPL
+# include <boost/mpl/at.hpp>
+#endif
namespace boost { namespace fusion { namespace extension
{
@@ -20,14 +23,18 @@
{
template <typename SeqRef, typename N>
struct apply
- {
- typedef typename
- mpl::at<
- typename detail::remove_reference<SeqRef>::type::types
- , N
- >::type
- type;
- };
+#ifdef BOOST_FUSION_PREFER_MPL
+ : mpl::at<
+ typename detail::remove_reference<SeqRef>::type::types
+ , N
+ >
+#else
+ : vector_meta_value_at<
+ typename detail::remove_reference<SeqRef>::type
+ , N::value
+ >
+#endif
+ {};
};
}}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_of_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -8,7 +9,9 @@
#ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_VALUE_OF_IMPL_HPP
#define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_VALUE_OF_IMPL_HPP
-#include <boost/mpl/at.hpp>
+#ifdef BOOST_FUSION_PREFER_MPL
+# include <boost/mpl/at.hpp>
+#endif
namespace boost { namespace fusion { namespace extension
{
@@ -24,12 +27,21 @@
typedef typename detail::remove_reference<ItRef>::type it;
typedef typename
+#ifdef BOOST_FUSION_PREFER_MPL
mpl::at<
typename detail::remove_reference<
typename it::seq_type
>::type::types
, typename it::index
>::type
+#else
+ vector_meta_value_at<
+ typename detail::remove_reference<
+ typename it::seq_type
+ >::type
+ , it::index::value
+ >::type
+#endif
type;
};
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,135 +1,267 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_VARIADIC_TEMPLATES_VECTOR_HPP
#define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_VARIADIC_TEMPLATES_VECTOR_HPP
#include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp>
+#include <boost/fusion/iterator/advance_c.hpp>
#include <boost/fusion/iterator/next.hpp>
#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/support/internal/variadic_templates/variadic_arguments_to_vector.hpp>
+#ifdef BOOST_FUSION_PREFER_MPL
+# include <boost/fusion/support/internal/variadic_templates/variadic_arguments_to_vector.hpp>
+#endif
#include <boost/fusion/support/internal/sequence_assign.hpp>
#include <boost/fusion/support/internal/assign_tags.hpp>
#include <boost/fusion/support/sequence_base.hpp>
#include <boost/fusion/support/internal/assert.hpp>
+#include <boost/preprocessor/inc.hpp>
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/repetition/repeat.hpp>
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+#include <boost/preprocessor/repetition/enum.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>
#include <boost/mpl/int.hpp>
+#ifdef BOOST_NO_RVALUE_REFERENCES
+# include <boost/call_traits.hpp>
+#endif
#include <utility>
namespace boost { namespace fusion
{
- struct void_;
-
namespace detail
{
template<int Index,typename... Elements>
struct vector_impl;
- template<int Index>
- struct vector_impl<Index>
+ template<>
+ struct vector_impl<0>
{
- template<int,typename...>friend struct vector_impl;
- template<typename...>friend struct fusion::vector;
-
- protected:
- typedef void_ head;
-
vector_impl()
{}
- vector_impl(assign_directly)
+ template<typename It>
+ vector_impl(assign_by_deref,It const& it)
{}
- template<typename It>
- vector_impl(assign_by_deref,It const&)
+ vector_impl(assign_directly)
{}
- template<typename It>
+ template<typename It0>
void
- assign(It const&)
+ assign(It0 const& it0)
{}
-
- void at_impl();
};
- template<int Index,typename Head,typename... Others>
- struct vector_impl<Index,Head,Others...>
- : vector_impl<Index+1,Others...>
- {
- template<int,typename...>friend struct vector_impl;
- template<typename...>friend struct fusion::vector;
+#define BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEFAULT_INIT(Z,N,_)\
+ BOOST_PP_CAT(_element,N)()
+
+#define BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEREF_ASSIGN_PARAMS(Z,N,_)\
+ BOOST_PP_CAT(_element,N)(\
+ fusion::deref(fusion::advance_c<N>(it)))
+
+#define BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEREF_ASSIGN(Z,N,_)\
+ BOOST_PP_CAT(_element,N)=fusion::deref(BOOST_PP_CAT(it,N));\
+ \
+ typedef typename\
+ result_of::next<BOOST_PP_CAT(It,N)>::type\
+ BOOST_PP_CAT(It,BOOST_PP_INC(N));\
+ BOOST_PP_CAT(It,BOOST_PP_INC(N)) BOOST_PP_CAT(it,BOOST_PP_INC(N))=\
+ fusion::next(BOOST_PP_CAT(it,N));
+
+#ifdef BOOST_NO_RVALUE_REFERENCES
+# define BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DIRECT_ASSIGN_TEMPLATE_ARGS(N)
+
+# define BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DIRECT_ASSIGN_PARAMS(N)\
+ BOOST_PP_ENUM_BINARY_PARAMS(N, typename call_traits<H,>::type _)
+#else
+# define BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DIRECT_ASSIGN_TEMPLATE_ARGS(N)\
+ template<BOOST_PP_ENUM_PARAMS(N, typename OtherH)>
+
+# define BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DIRECT_ASSIGN_PARAMS(N)\
+ BOOST_PP_ENUM_BINARY_PARAMS(N, OtherH,&& _)
+#endif
+
+#define BOOST_FUSION_UNROLLED_VECTOR_DIRECT_ASSIGN(Z,N,_)\
+ BOOST_PP_CAT(_element,N)(BOOST_PP_CAT(_,N))
+
+#ifdef BOOST_FUSION_PREFER_MPL
+# define BOOST_FUSION_META_VALUE_AT(N)
+#else
+# define BOOST_FUSION_META_VALUE_AT(N)\
+ typedef BOOST_PP_CAT(H,N) BOOST_PP_CAT(h,N);
+#endif
- private:
- typedef vector_impl<Index+1,Others...> base;
+#define BOOST_FUSION_UNROLLED_VECTOR_AT(Z,N,_)\
+ BOOST_FUSION_META_VALUE_AT(N)\
+ \
+ typename detail::add_lref<BOOST_PP_CAT(H,N)>::type\
+ at_impl(mpl::int_<Index+N>)\
+ {\
+ return BOOST_PP_CAT(_element,N) ;\
+ }\
+ \
+ typename detail::add_lref<\
+ typename add_const<BOOST_PP_CAT(H,N)>::type\
+ >::type\
+ at_impl(mpl::int_<Index+N>)const\
+ {\
+ return BOOST_PP_CAT(_element,N) ;\
+ }\
+ \
+ BOOST_PP_CAT(H,N) BOOST_PP_CAT(_element,N);
+
+#define BOOST_FUSION_UNROLLED_VECTOR_IMPL(Z, N, MAX)\
+ template<int Index, BOOST_PP_ENUM_PARAMS(N, typename H)>\
+ struct vector_impl<Index,BOOST_PP_ENUM_PARAMS(N, H)>\
+ {\
+ vector_impl()\
+ : BOOST_PP_ENUM(\
+ N,\
+ BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEFAULT_INIT,\
+ _)\
+ {}\
+ \
+ template<typename It>\
+ vector_impl(assign_by_deref,It const& it)\
+ : BOOST_PP_ENUM(N,\
+ BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEREF_ASSIGN_PARAMS,\
+ _)\
+ {}\
+ \
+ template<typename It0>\
+ void\
+ assign(It0 const& it0)\
+ {\
+ BOOST_PP_REPEAT(N,\
+ BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEREF_ASSIGN,\
+ _)\
+ }\
+ \
+ BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DIRECT_ASSIGN_TEMPLATE_ARGS(N)\
+ vector_impl(\
+ assign_directly,\
+ BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DIRECT_ASSIGN_PARAMS(N)\
+ )\
+ : BOOST_PP_ENUM(N, BOOST_FUSION_UNROLLED_VECTOR_DIRECT_ASSIGN, _)\
+ {}\
+ \
+ BOOST_PP_REPEAT(N,BOOST_FUSION_UNROLLED_VECTOR_AT,_)\
+ };
- public:
- using base::at_impl;
+ BOOST_PP_REPEAT_FROM_TO(1, 5, BOOST_FUSION_UNROLLED_VECTOR_IMPL, _)
- protected:
- typedef Head head;
+ template<
+ int Index
+ , BOOST_PP_ENUM_PARAMS(4, typename H)
+ , typename... Others
+ >
+ struct vector_impl<Index,BOOST_PP_ENUM_PARAMS(4, H),Others...>
+ : vector_impl<Index+4,Others...>
+ {
+ typedef vector_impl<Index+4,Others...> base_type;
+ typedef base_type chain_upper;
- private:
- Head _element;
+ using base_type::at_impl;
- protected:
vector_impl()
- : _element()
+ : BOOST_PP_ENUM(4,
+ BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEFAULT_INIT,
+ _)
{}
template<typename It>
vector_impl(assign_by_deref,It const& it)
- : base(assign_by_deref(),fusion::next(it))
- , _element(fusion::deref(it))
+ : base_type(assign_by_deref(),fusion::advance_c<4>(it))
+ , BOOST_PP_ENUM(4,
+ BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEREF_ASSIGN_PARAMS,
+ _)
{}
- template<typename It>
+ template<typename It0>
void
- assign(It const& it)
+ assign(It0 const& it0)
{
- _element=fusion::deref(it);
- static_cast<base*>(this)->assign(fusion::next(it));
+ BOOST_PP_REPEAT(4,
+ BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEREF_ASSIGN,
+ _)
+
+ static_cast<base_type*>(this)->assign(fusion::next(it4));
}
- template<typename OtherHead,typename... OtherElements>
- vector_impl(assign_directly,
- BOOST_FUSION_R_ELSE_CLREF(OtherHead) head,
- BOOST_FUSION_R_ELSE_CLREF(OtherElements)... elements)
- : base(assign_directly(),
+#ifndef BOOST_NO_RVALUE_REFERENCES
+ template<
+ BOOST_PP_ENUM_PARAMS(4, typename OtherH)
+ , typename... OtherElements
+ >
+#endif
+ vector_impl(
+ assign_directly,
+ BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DIRECT_ASSIGN_PARAMS(4),
+#ifdef BOOST_NO_RVALUE_REFERENCES
+ typename call_traits<Others>::param_type... elements
+#else
+ OtherElements&&... elements
+#endif
+ )
+ : base_type(assign_directly(),
BOOST_FUSION_FORWARD(OtherElements,elements)...)
- , _element(BOOST_FUSION_FORWARD(OtherHead,head))
+ , BOOST_PP_ENUM(4, BOOST_FUSION_UNROLLED_VECTOR_DIRECT_ASSIGN, _)
{}
- typename detail::add_lref<Head>::type
- at_impl(mpl::int_<Index>)
- {
- return _element;
- }
-
- typename detail::add_lref<typename add_const<Head>::type>::type
- at_impl(mpl::int_<Index>)const
- {
- return _element;
- }
+ BOOST_PP_REPEAT(4,BOOST_FUSION_UNROLLED_VECTOR_AT,_)
};
+
+#undef BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEFAULT_INIT
+#undef BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEREF_ASSIGN_PARAMS
+#undef BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEREF_ASSIGN
+#undef BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DIRECT_ASSIGN_TEMPLATE_ARGS
+#undef BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DIRECT_ASSIGN_PARAMS
+#undef BOOST_FUSION_UNROLLED_VECTOR_DIRECT_ASSIGN
+#undef BOOST_FUSION_META_VALUE_AT
+#undef BOOST_FUSION_UNROLLED_VECTOR_AT
+#undef BOOST_FUSION_UNROLLED_VECTOR_IMPL
}
+#ifndef BOOST_FUSION_PREFER_MPL
+ template<typename Vector, int Index>
+ struct vector_meta_value_at
+ : vector_meta_value_at<typename Vector::chain_upper, Index-4>
+ {};
+
+# define BOOST_FUSION_META_VALUE_AT_SPECIALIZATION(Z,N,_)\
+ template<typename Vector>\
+ struct vector_meta_value_at<Vector,N>\
+ {\
+ typedef typename Vector::BOOST_PP_CAT(h,N) type;\
+ };
+
+ BOOST_PP_REPEAT(4, BOOST_FUSION_META_VALUE_AT_SPECIALIZATION, _)
+
+# undef BOOST_FUSION_META_VALUE_AT_SPECIALIZATION
+#endif
+
template<typename... Elements>
struct vector
: sequence_base<vector<Elements...> >
, detail::vector_impl<0,Elements...>
{
- private:
- typedef detail::vector_impl<0,Elements...> base;
+ typedef detail::vector_impl<0,Elements...> base_type;
- public:
- typedef vector<Elements...> this_type;
+#ifdef BOOST_FUSION_PREFER_MPL
typedef typename
detail::variadic_arguments_to_vector<Elements...>::type
types;
+#endif
+
typedef vector_tag fusion_tag;
typedef fusion_sequence_tag tag;
typedef mpl::false_ is_view;
@@ -141,7 +273,7 @@
#define VECTOR_CTOR(COMBINATION,_)\
vector(vector COMBINATION vec)\
- : base(detail::assign_by_deref(),\
+ : base_type(detail::assign_by_deref(),\
fusion::begin(BOOST_FUSION_FORWARD(vector COMBINATION,vec)))\
{}
@@ -149,10 +281,18 @@
#undef VECTOR_CTOR
+#ifndef BOOST_NO_RVALUE_REFERENCES
template<typename... OtherArguments>
+#endif
explicit
- vector(BOOST_FUSION_R_ELSE_CLREF(OtherArguments)... arguments)
- : base(detail::assign_directly(),
+ vector(
+#ifdef BOOST_NO_RVALUE_REFERENCES
+ typename call_traits<Elements>::param_type... arguments
+#else
+ OtherArguments&&... arguments
+#endif
+ )
+ : base_type(detail::assign_directly(),
BOOST_FUSION_FORWARD(OtherArguments,arguments)...)
{
BOOST_FUSION_STATIC_ASSERT((
@@ -162,7 +302,7 @@
#define BOOST_FUSION_VECTOR_ASSIGN_CTOR(COMBINATION,_)\
template<typename SeqRef>\
vector(detail::sequence_assign_type<SeqRef> COMBINATION seq_assign)\
- : base(detail::assign_by_deref(),fusion::begin(seq_assign.get()))\
+ : base_type(detail::assign_by_deref(),fusion::begin(seq_assign.get()))\
{\
BOOST_FUSION_STATIC_ASSERT((\
sizeof...(Elements)==result_of::size<SeqRef>::value));\
@@ -176,7 +316,7 @@
template<typename Seq>
vector(typename enable_if_c<sizeof...(Elements)!=1,
BOOST_FUSION_R_ELSE_CLREF(Seq)>::type seq)
- : base(detail::assign_by_deref(),
+ : base_type(detail::assign_by_deref(),
fusion::begin(BOOST_FUSION_FORWARD(Seq,seq.seq)))
{}
*/
@@ -188,28 +328,10 @@
BOOST_FUSION_STATIC_ASSERT((
sizeof...(Elements)==result_of::size<Seq>::value));
- static_cast<base*>(this)->assign(
+ static_cast<base_type*>(this)->assign(
fusion::begin(BOOST_FUSION_FORWARD(Seq,seq)));
return *this;
}
-
- template<typename I>
- typename detail::add_lref<
- typename mpl::at<types, I>::type
- >::type
- at_impl(I)
- {
- return base::at_impl(mpl::int_<I::value>());
- }
-
- template<typename I>
- typename detail::add_lref<
- typename add_const<typename mpl::at<types, I>::type>::type
- >::type
- at_impl(I) const
- {
- return base::at_impl(mpl::int_<I::value>());
- }
};
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_PP_IS_ITERATING
# include <boost/fusion/container/vector/vector.hpp>
@@ -10,6 +12,7 @@
# include <boost/preprocessor/cat.hpp>
# include <boost/preprocessor/repetition/enum.hpp>
# include <boost/preprocessor/repetition/enum_binary_params.hpp>
+# include <boost/call_traits.hpp>
# define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp>
# define BOOST_PP_ITERATION_LIMITS (BOOST_FUSION_FROM, BOOST_FUSION_TO)
@@ -35,17 +38,15 @@
# endif
: vector<BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, T)>
{
- private:
- typedef vector<BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, T)> base;
+ typedef vector<BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, T)> base_type;
- public:
BOOST_PP_CAT(vector, BOOST_FUSION_N)()
{}
# define BOOST_FUSION_VECTOR_CTOR(COMBINATION,_)\
BOOST_PP_CAT(vector, BOOST_FUSION_N)(\
BOOST_PP_CAT(vector, BOOST_FUSION_N) COMBINATION vec)\
- : base(sequence_assign(BOOST_FUSION_FORWARD(\
+ : base_type(sequence_assign(BOOST_FUSION_FORWARD(\
BOOST_PP_CAT(vector, BOOST_FUSION_N) COMBINATION,vec)))\
{}
@@ -55,23 +56,23 @@
template<typename Arg>
BOOST_PP_CAT(vector, BOOST_FUSION_N)(BOOST_FUSION_R_ELSE_CLREF(Arg) arg)
- : base(BOOST_FUSION_FORWARD(Arg,arg))
+ : base_type(BOOST_FUSION_FORWARD(Arg,arg))
{}
# if BOOST_FUSION_N > 1
# ifdef BOOST_NO_RVALUE_REFERENCES
BOOST_PP_CAT(vector, BOOST_FUSION_N)(
- BOOST_PP_ENUM_BINARY_PARAMS(N, T, const& a))
- : base(BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, a))
+ BOOST_PP_ENUM_BINARY_PARAMS(N, call_traits<T,>::param_type a))
+ : base_type(BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, a))
{}
# else
-# define BOOST_FUSION_FORWARD_ARGUMENT(Z, N, __) std::forward<\
- BOOST_PP_CAT(A,N)>(BOOST_PP_CAT(_,N))
+# define BOOST_FUSION_FORWARD_ARGUMENT(Z, N, __)\
+ std::forward<BOOST_PP_CAT(A,N)>(BOOST_PP_CAT(_,N))
template <BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, typename A)>
BOOST_PP_CAT(vector, BOOST_FUSION_N)(
BOOST_PP_ENUM_BINARY_PARAMS(BOOST_FUSION_N, A,&& _))
- : base(
+ : base_type(
BOOST_PP_ENUM(BOOST_FUSION_N, BOOST_FUSION_FORWARD_ARGUMENT, _))
{}
@@ -83,7 +84,7 @@
BOOST_PP_CAT(vector, BOOST_FUSION_N)&
operator=(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
{
- *static_cast<base*>(this)=BOOST_FUSION_FORWARD(Seq,seq);
+ *static_cast<base_type*>(this)=BOOST_FUSION_FORWARD(Seq,seq);
return *this;
}
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/limits.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/limits.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/limits.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_VECTOR_VECTOR_HPP
#define BOOST_FUSION_CONTAINER_VECTOR_VECTOR_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector10.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector10.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector10.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,13 +1,18 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_VECTOR_VECTOR10_HPP
#define BOOST_FUSION_CONTAINER_VECTOR_VECTOR10_HPP
#include <boost/config.hpp>
-#include <boost/mpl/vector/vector10.hpp>
+#ifdef BOOST_FUSION_PREFER_MPL
+# include <boost/mpl/vector/vector10.hpp>
+#endif
#if defined(BOOST_NO_VARIADIC_TEMPLATES) || !defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
# define BOOST_FUSION_FROM 0
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector20.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector20.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector20.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,13 +1,18 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_VECTOR_VECTOR20_HPP
#define BOOST_FUSION_CONTAINER_VECTOR_VECTOR20_HPP
#include <boost/config.hpp>
-#include <boost/mpl/vector/vector20.hpp>
+#ifdef BOOST_FUSION_PREFER_MPL
+# include <boost/mpl/vector/vector20.hpp>
+#endif
#if defined(BOOST_NO_VARIADIC_TEMPLATES) || !defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
# define BOOST_FUSION_FROM 11
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector30.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector30.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector30.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,13 +1,18 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_VECTOR_VECTOR30_HPP
#define BOOST_FUSION_CONTAINER_VECTOR_VECTOR30_HPP
#include <boost/config.hpp>
-#include <boost/mpl/vector/vector30.hpp>
+#ifdef BOOST_FUSION_PREFER_MPL
+# include <boost/mpl/vector/vector30.hpp>
+#endif
#if defined(BOOST_NO_VARIADIC_TEMPLATES) || !defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
# define BOOST_FUSION_FROM 21
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector40.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector40.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector40.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,13 +1,18 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_VECTOR_VECTOR40_HPP
#define BOOST_FUSION_CONTAINER_VECTOR_VECTOR40_HPP
#include <boost/config.hpp>
-#include <boost/mpl/vector/vector40.hpp>
+#ifdef BOOST_FUSION_PREFER_MPL
+# include <boost/mpl/vector/vector40.hpp>
+#endif
#if defined(BOOST_NO_VARIADIC_TEMPLATES) || !defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
# define BOOST_FUSION_FROM 31
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector50.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector50.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector50.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,13 +1,18 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_CONTAINER_VECTOR_VECTOR50_HPP
#define BOOST_FUSION_CONTAINER_VECTOR_VECTOR50_HPP
#include <boost/config.hpp>
-#include <boost/mpl/vector/vector50.hpp>
+#ifdef BOOST_FUSION_PREFER_MPL
+# include <boost/mpl/vector/vector50.hpp>
+#endif
#if defined(BOOST_NO_VARIADIC_TEMPLATES) || !defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
# define BOOST_FUSION_FROM 41
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_fwd.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 1999-2003 Jaakko Jarvi
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -18,6 +19,11 @@
struct vector_iterator_tag;
struct random_access_traversal_tag;
+#ifndef BOOST_FUSION_PREFER_MPL
+ template<typename Vector, int Index>
+ struct vector_meta_value_at;
+#endif
+
VARIADIC_TEMPLATE_WITH_DEFAULT(FUSION_MAX_VECTOR_SIZE)
struct vector;
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/0x/fused_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/0x/fused_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/0x/fused_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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 <boost/fusion/functional/invocation/invoke.hpp>
#include <boost/fusion/support/internal/ref.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/0x/unfused_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/0x/unfused_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/0x/unfused_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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 <boost/fusion/support/internal/ref.hpp>
#include <boost/fusion/support/internal/result_of.hpp>
@@ -18,8 +20,6 @@
# define BOOST_FUSION_ADAPTER_NAME unfused
#endif
-//TODO cschmidt: handle rvalue ref F
-
namespace boost { namespace fusion
{
template<
@@ -74,7 +74,7 @@
#ifdef BOOST_FUSION_TYPED
# define BOOST_FUSION_CALL_OPERATOR(COMBINATION)\
template<typename... Args>\
- typename detail::internal::result_of<\
+ typename boost::result_of<\
typename detail::get_func_base<\
typename detail::forward_as<int COMBINATION, F>::type\
>::type(typename result_of::as_vector<TransformSeq&&>::type&&)\
@@ -87,7 +87,7 @@
#else
# define BOOST_FUSION_CALL_OPERATOR(COMBINATION)\
template<typename... Args>\
- typename detail::internal::result_of<\
+ typename boost::result_of<\
typename detail::get_func_base<\
typename detail::forward_as<int COMBINATION, F>::type\
>::type(typename result_of::vector_tie<Args&&...>::type&&)\
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_FUNCTIONAL_ADAPTER_FUSED_HPP
#define BOOST_FUSION_FUNCTIONAL_ADAPTER_FUSED_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_function_object.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_function_object.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_function_object.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_FUNCTIONAL_ADAPTER_FUSED_FUNCTION_OBJECT_HPP
#define BOOST_FUSION_FUNCTIONAL_ADAPTER_FUSED_FUNCTION_OBJECT_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_procedure.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_procedure.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_procedure.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_FUNCTIONAL_ADAPTER_FUSED_PROCEDURE_HPP
#define BOOST_FUSION_FUNCTIONAL_ADAPTER_FUSED_PROCEDURE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/limits.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/limits.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/limits.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2006-2007 Tobias Schwinger
+ Copyright (c) 2009 Christopher Schmidt
Use modification and distribution are subject to the Boost Software
License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_FUNCTIONAL_ADAPTER_UNFUSED_HPP
#define BOOST_FUSION_FUNCTIONAL_ADAPTER_UNFUSED_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused_typed.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused_typed.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused_typed.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_FUNCTIONAL_ADAPTER_UNFUSED_TYPED_HPP
#define BOOST_FUSION_FUNCTIONAL_ADAPTER_UNFUSED_TYPED_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -7,7 +7,7 @@
==============================================================================*/
#include <boost/fusion/support/internal/ref.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
#include <boost/preprocessor/cat.hpp>
@@ -22,7 +22,7 @@
{
typedef
BOOST_FUSION_CLASS_TPL_NAME<
- typename detail::as_fusion_element<F>::type
+ typename traits::deduce<F>::type
>
type;
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/0x/invoke_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/0x/invoke_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/0x/invoke_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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 <boost/fusion/functional/invocation/detail/0x/invoke_impl_detail.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/0x/invoke_impl_detail.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/0x/invoke_impl_detail.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/0x/invoke_impl_detail.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_FUNCTIONAL_INVOCATION_DETAIL_DECLTYPE_AND_VARIADIC_TEMPLATES_INVOKE_IMPL_DETAIL_HPP
#define BOOST_FUSION_FUNCTIONAL_INVOCATION_DETAIL_DECLTYPE_AND_VARIADIC_TEMPLATES_INVOKE_IMPL_DETAIL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_FUNCTIONAL_INVOCATION_INVOKE_HPP
#define BOOST_FUSION_FUNCTIONAL_INVOCATION_INVOKE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_function_object.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_function_object.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_function_object.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_FUNCTIONAL_INVOCATION_INVOKE_FUNCTION_OBJECT_HPP
#define BOOST_FUSION_FUNCTIONAL_INVOCATION_INVOKE_FUNCTION_OBJECT_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_procedure.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_procedure.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_procedure.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_FUNCTIONAL_INVOCATION_INVOKE_PROCEDURE_HPP
#define BOOST_FUSION_FUNCTIONAL_INVOCATION_INVOKE_PROCEDURE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/include/advance_c.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/advance_c.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/advance_c.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_INCLUDE_ADVANCE_C_HPP
#define BOOST_FUSION_INCLUDE_ADVANCE_C_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/include/boost_array.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/boost_array.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/boost_array.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_INCLUDE_BOOST_ARRAY_HPP
#define BOOST_FUSION_INCLUDE_BOOST_ARRAY_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/include/deref_data.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/deref_data.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/deref_data.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_INCLUDE_DEREF_DATA_HPP
#define BOOST_FUSION_INCLUDE_DEREF_DATA_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/include/find_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/find_key.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/find_key.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_INCLUDE_FIND_KEY_HPP
#define BOOST_FUSION_INCLUDE_FIND_KEY_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/include/key_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/key_of.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/key_of.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_INCLUDE_KEY_OF_HPP
#define BOOST_FUSION_INCLUDE_KEY_OF_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/include/std_array.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/std_array.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/std_array.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_INCLUDE_STD_ARRAY_HPP
#define BOOST_FUSION_INCLUDE_STD_ARRAY_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/include/value_at_c.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/value_at_c.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/value_at_c.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_INCLUDE_VALUE_AT_C_HPP
#define BOOST_FUSION_INCLUDE_VALUE_AT_C_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/include/value_of_data.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/value_of_data.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/value_of_data.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_INCLUDE_VALUE_OF_DATA_HPP
#define BOOST_FUSION_INCLUDE_VALUE_OF_DATA_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/advance_c.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/advance_c.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/advance_c.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ITERATOR_ADVANCE_C_HPP
#define BOOST_FUSION_ITERATOR_ADVANCE_C_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/basic_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/basic_iterator.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/basic_iterator.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,14 +1,15 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ITERATOR_BASIC_ITERATOR_HPP
#define BOOST_FUSION_ITERATOR_BASIC_ITERATOR_HPP
#include <boost/fusion/iterator/iterator_facade.hpp>
#include <boost/fusion/support/internal/ref.hpp>
-#include <boost/fusion/support/internal/assert.hpp>
#include <boost/mpl/and.hpp>
#include <boost/mpl/equal_to.hpp>
@@ -40,15 +41,15 @@
typename Tag
, typename Category
, typename SeqRef
- , int Pos
+ , int Index
>
struct basic_iterator
: iterator_facade<
- basic_iterator<Tag,Category,SeqRef,Pos>
+ basic_iterator<Tag,Category,SeqRef,Index>
, Category
>
{
- typedef mpl::int_<Pos> index;
+ typedef mpl::int_<Index> index;
typedef SeqRef seq_type;
template <typename ItRef>
@@ -84,7 +85,7 @@
Tag
, Category
, SeqRef
- , Pos + N::value
+ , Index + N::value
>
type;
@@ -129,8 +130,8 @@
type;
};
- template<typename OtherIt>
- basic_iterator(OtherIt const& it)
+ template<typename OtherSeqRef>
+ basic_iterator(basic_iterator<Tag,Category,OtherSeqRef,Index> const& it)
: seq(it.seq)
{}
@@ -138,9 +139,9 @@
: seq(&seq)
{}
- template<typename OtherIt>
+ template<typename OtherSeqRef>
basic_iterator&
- operator=(OtherIt const& it)
+ operator=(basic_iterator<Tag,Category,OtherSeqRef,Index> const& it)
{
seq=it.seq;
return *this;
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/deref_data.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/deref_data.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/deref_data.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/detail/advance.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/detail/advance.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/detail/advance.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -25,14 +25,11 @@
template <typename ItRef, int N>
struct next_forward
- {
- typedef typename
- forward<
- typename result_of::next<ItRef>::type
- , N-1
- >::type
- type;
- };
+ : forward<
+ typename result_of::next<ItRef>::type
+ , N-1
+ >
+ {};
template <typename ItRef, int N>
struct forward
@@ -64,14 +61,11 @@
template <typename ItRef, int N>
struct next_backward
- {
- typedef typename
- backward<
- typename result_of::prior<ItRef>::type
- , N+1
- >::type
- type;
- };
+ : backward<
+ typename result_of::prior<ItRef>::type
+ , N+1
+ >
+ {};
template <typename ItRef, int N>
struct backward
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/detail/distance.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/detail/distance.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/detail/distance.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -27,16 +27,13 @@
template <typename Begin, typename End>
struct next_distance
- {
- typedef typename
- mpl::next<
- typename linear_distance<
- typename result_of::next<Begin>::type
- , End
- >::type
+ : mpl::next<
+ typename linear_distance<
+ typename result_of::next<Begin>::type
+ , End
>::type
- type;
- };
+ >
+ {};
template <typename Begin, typename End>
struct linear_distance
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -8,6 +9,7 @@
#ifndef BOOST_FUSION_ITERATOR_EQUAL_TO_HPP
#define BOOST_FUSION_ITERATOR_EQUAL_TO_HPP
+#include <boost/config.hpp>
#include <boost/fusion/support/tag_of.hpp>
#include <boost/fusion/support/is_iterator.hpp>
#include <boost/fusion/support/internal/assert.hpp>
@@ -15,8 +17,6 @@
#include <boost/mpl/and.hpp>
#include <boost/utility/enable_if.hpp>
-//TODO constexpr
-
namespace boost { namespace fusion
{
struct iterator_facade_tag;
@@ -55,7 +55,11 @@
namespace iterator_operators
{
template <typename It1, typename It2>
- inline typename
+ inline
+#ifndef BOOST_NO_CONSTEXPR
+ constexpr
+#endif
+ typename
enable_if<
mpl::and_<traits::is_iterator<It1>, traits::is_iterator<It2> >
, bool
@@ -66,7 +70,11 @@
}
template <typename It1, typename It2>
- inline typename
+ inline
+#ifndef BOOST_NO_CONSTEXPR
+ constexpr
+#endif
+ typename
enable_if<
mpl::and_<
traits::is_iterator<It1>
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/iterator_facade.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/iterator_facade.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/iterator_facade.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,13 +1,13 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_ITERATOR_ITERATOR_FACADE_HPP
#define BOOST_FUSION_ITERATOR_ITERATOR_FACADE_HPP
-#include <boost/fusion/iterator/equal_to.hpp>
-#include <boost/fusion/iterator/detail/advance.hpp>
#include <boost/fusion/support/iterator_base.hpp>
#include <boost/fusion/support/internal/assert.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/key_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/key_of.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/key_of.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of_data.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of_data.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of_data.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/clear.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/clear.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/clear.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/erase.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/erase.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/erase.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -22,14 +22,11 @@
{
template <typename Seq, typename Begin, typename End>
struct apply
- {
- typedef typename
- fusion::result_of::convert<
- typename fusion::traits::tag_of<Seq>::type
- , typename fusion::result_of::erase<Seq, Begin, End>::type
- >::type
- type;
- };
+ : fusion::result_of::convert<
+ typename fusion::traits::tag_of<Seq>::type
+ , typename fusion::result_of::erase<Seq, Begin, End>::type
+ >
+ {};
};
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/erase_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/erase_key.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/erase_key.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -22,18 +22,11 @@
{
template <typename Seq, typename Key>
struct apply
- {
- typedef typename
- fusion::result_of::erase_key<Seq, Key>::type
- result;
-
- typedef typename
- fusion::result_of::convert<
- typename fusion::traits::tag_of<Seq>::type
- , result
- >::type
- type;
- };
+ : fusion::result_of::convert<
+ typename fusion::traits::tag_of<Seq>::type
+ , typename fusion::result_of::erase_key<Seq, Key>::type
+ >::type
+ {};
};
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/fusion_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/fusion_iterator.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/fusion_iterator.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -23,8 +23,8 @@
{
template <typename It>
struct fusion_iterator
+ : fusion::result_of::value_of<It>
{
- typedef typename fusion::result_of::value_of<It>::type type;
typedef typename fusion::traits::category_of<It>::type category;
typedef It iterator;
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/insert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/insert.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/insert.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -22,14 +22,11 @@
{
template <typename Seq, typename Pos, typename T>
struct apply
- {
- typedef typename
- fusion::result_of::convert<
- typename fusion::traits::tag_of<Seq>::type
- , typename fusion::result_of::insert<Seq, Pos, T>::type
- >::type
- type;
- };
+ : fusion::result_of::convert<
+ typename fusion::traits::tag_of<Seq>::type
+ , typename fusion::result_of::insert<Seq, Pos, T>::type
+ >
+ {};
};
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/insert_range.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/insert_range.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/insert_range.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -22,14 +22,11 @@
{
template <typename Seq, typename Pos, typename Range>
struct apply
- {
- typedef typename
- fusion::result_of::convert<
- typename fusion::traits::tag_of<Seq>::type
- , typename fusion::result_of::insert_range<Seq, Pos, Range>::type
- >::type
- type;
- };
+ : fusion::result_of::convert<
+ typename fusion::traits::tag_of<Seq>::type
+ , typename fusion::result_of::insert_range<Seq, Pos, Range>::type
+ >
+ {};
};
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/pop_back.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/pop_back.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/pop_back.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -22,14 +22,11 @@
{
template <typename Seq>
struct apply
- {
- typedef typename
- fusion::result_of::convert<
- typename fusion::traits::tag_of<Seq>::type
- , typename fusion::result_of::pop_back<Seq>::type
- >::type
- type;
- };
+ : fusion::result_of::convert<
+ typename fusion::traits::tag_of<Seq>::type
+ , typename fusion::result_of::pop_back<Seq>::type
+ >
+ {};
};
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/pop_front.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/pop_front.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/pop_front.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -22,14 +22,11 @@
{
template <typename Seq>
struct apply
- {
- typedef typename
- fusion::result_of::convert<
- typename fusion::traits::tag_of<Seq>::type
- , typename fusion::result_of::pop_front<Seq>::type
- >::type
- type;
- };
+ : fusion::result_of::convert<
+ typename fusion::traits::tag_of<Seq>::type
+ , typename fusion::result_of::pop_front<Seq>::type
+ >
+ {};
};
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/push_back.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/push_back.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/push_back.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -22,14 +22,11 @@
{
template <typename Seq, typename T>
struct apply
- {
- typedef typename
- fusion::result_of::convert<
- typename fusion::traits::tag_of<Seq>::type
- , typename fusion::result_of::push_back<Seq, T>::type
- >::type
- type;
- };
+ : fusion::result_of::convert<
+ typename fusion::traits::tag_of<Seq>::type
+ , typename fusion::result_of::push_back<Seq, T>::type
+ >
+ {};
};
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/push_front.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/push_front.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/push_front.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -22,14 +22,11 @@
{
template <typename Seq, typename T>
struct apply
- {
- typedef typename
- fusion::result_of::convert<
- typename fusion::traits::tag_of<Seq>::type
- , typename fusion::result_of::push_front<Seq, T>::type
- >::type
- type;
- };
+ : fusion::result_of::convert<
+ typename fusion::traits::tag_of<Seq>::type
+ , typename fusion::result_of::push_front<Seq, T>::type
+ >
+ {};
};
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/equal_to.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/equal_to.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/equal_to.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -9,6 +9,7 @@
#ifndef BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_EQUAL_TO_HPP
#define BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_EQUAL_TO_HPP
+#include <boost/config.hpp>
#include <boost/fusion/iterator/deref.hpp>
#include <boost/fusion/iterator/next.hpp>
#include <boost/fusion/iterator/equal_to.hpp>
@@ -24,7 +25,11 @@
typedef typename result_of::end<Seq2Ref>::type end2_type;
template <typename It1, typename It2>
- static bool
+ static
+#ifndef BOOST_NO_CONSTEXPR
+ constexpr
+#endif
+ bool
call(It1 const&, It2 const&, mpl::true_)
{
return true;
@@ -52,7 +57,11 @@
struct sequence_equal_to<Seq1Ref, Seq2Ref, false>
{
template <typename It1, typename It2>
- static bool
+ static
+#ifndef BOOST_NO_CONSTEXPR
+ constexpr
+#endif
+ bool
call(It1 const&, It2 const&)
{
return false;
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -9,6 +9,7 @@
#ifndef BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_GREATER_HPP
#define BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_GREATER_HPP
+#include <boost/config.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/fusion/iterator/deref.hpp>
#include <boost/fusion/iterator/next.hpp>
@@ -23,7 +24,11 @@
typedef typename result_of::end<Seq2>::type end2_type;
template <typename It1, typename I2>
- static bool
+ static
+#ifndef BOOST_NO_CONSTEXPR
+ constexpr
+#endif
+ bool
call(It1 const&, I2 const&, mpl::true_)
{
return false;
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater_equal.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater_equal.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater_equal.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -9,6 +9,7 @@
#ifndef BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_GREATER_EQUAL_HPP
#define BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_GREATER_EQUAL_HPP
+#include <boost/config.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/fusion/iterator/deref.hpp>
#include <boost/fusion/iterator/next.hpp>
@@ -23,7 +24,11 @@
typedef typename result_of::end<Seq2Ref>::type end2_type;
template <typename It1, typename It2>
- static bool
+ static
+#ifndef BOOST_NO_CONSTEXPR
+ constexpr
+#endif
+ bool
call(It1 const&, It2 const&, mpl::true_)
{
return true;
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -9,6 +9,7 @@
#ifndef BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_LESS_HPP
#define BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_LESS_HPP
+#include <boost/config.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/fusion/iterator/deref.hpp>
#include <boost/fusion/iterator/next.hpp>
@@ -23,7 +24,11 @@
typedef typename result_of::end<Seq2>::type end2_type;
template <typename It1, typename It2>
- static bool
+ static
+#ifndef BOOST_NO_CONSTEXPR
+ constexpr
+#endif
+ bool
call(It1 const&, It2 const&, mpl::true_)
{
return false;
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less_equal.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less_equal.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less_equal.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -9,6 +9,7 @@
#ifndef BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_LESS_EQUAL_HPP
#define BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_LESS_EQUAL_HPP
+#include <boost/config.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/fusion/iterator/deref.hpp>
#include <boost/fusion/iterator/next.hpp>
@@ -23,7 +24,11 @@
typedef typename result_of::end<Seq2>::type end2_type;
template <typename It1, typename It2>
- static bool
+ static
+#ifndef BOOST_NO_CONSTEXPR
+ constexpr
+#endif
+ bool
call(It1 const&, It2 const&, mpl::true_)
{
return true;
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/not_equal_to.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/not_equal_to.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/not_equal_to.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -9,6 +9,7 @@
#ifndef BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_NOT_EQUAL_TO_HPP
#define BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_NOT_EQUAL_TO_HPP
+#include <boost/config.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/fusion/iterator/deref.hpp>
#include <boost/fusion/iterator/next.hpp>
@@ -23,7 +24,11 @@
typedef typename result_of::end<Seq2Ref>::type end2_type;
template <typename It1, typename It2>
- static bool
+ static
+#ifndef BOOST_NO_CONSTEXPR
+ constexpr
+#endif
+ bool
call(It1 const&, It2 const&, mpl::true_)
{
return false;
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less_equal.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less_equal.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less_equal.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -72,7 +72,6 @@
#else
// Somehow VC8.0 and VC7.1 does not like this code
// but barfs somewhere else.
-
template <typename Seq1, typename Seq2>
inline typename
enable_if<
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/has_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/has_key.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/has_key.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_c.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_c.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_c.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_SEQUENCE_INTRINSIC_VALUE_AT_C_HPP
#define BOOST_FUSION_SEQUENCE_INTRINSIC_VALUE_AT_C_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_key.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_key.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -31,13 +31,10 @@
{
template <typename SeqRef, typename Key>
struct apply
- {
- typedef typename
- result_of::value_of_data<
- typename result_of::find_key<SeqRef, Key>::type
- >::type
- type;
- };
+ : result_of::value_of_data<
+ typename result_of::find_key<SeqRef, Key>::type
+ >
+ {};
};
template <>
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/sequence_facade.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/sequence_facade.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/sequence_facade.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_SEQUENCE_SEQUENCE_FACADE_HPP
#define BOOST_FUSION_SEQUENCE_SEQUENCE_FACADE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/category_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/category_of.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/category_of.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -8,10 +9,14 @@
#ifndef BOOST_FUSION_SUPPORT_CATEGORY_OF_HPP
#define BOOST_FUSION_SUPPORT_CATEGORY_OF_HPP
+#include <boost/config.hpp>
#include <boost/fusion/support/internal/ref.hpp>
#include <boost/fusion/support/tag_of.hpp>
+#include <boost/fusion/support/internal/assert.hpp>
-#include <boost/config.hpp>
+#ifdef BOOST_FUSION_ENABLE_STATIC_ASSERTS
+# include <boost/mpl/or.hpp>
+#endif
#include <boost/mpl/iterator_tags.hpp>
#include <boost/type_traits/is_base_of.hpp>
@@ -89,6 +94,9 @@
template<typename T>
struct apply
{
+ BOOST_FUSION_MPL_ASSERT((
+ mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
+
typedef typename
detail::remove_reference<T>::type::category
type;
@@ -103,7 +111,10 @@
: extension::category_of_impl<
typename fusion::traits::tag_of<T>::type
>::template apply<typename detail::add_lref<T>::type>
- {};
+ {
+ BOOST_FUSION_MPL_ASSERT((
+ mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
+ };
template <typename T>
struct is_associative
@@ -111,7 +122,10 @@
associative_sequence_tag
, typename category_of<T>::type
>
- {};
+ {
+ BOOST_FUSION_MPL_ASSERT((
+ mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
+ };
template <typename T>
struct is_incrementable
@@ -119,7 +133,10 @@
incrementable_traversal_tag
, typename category_of<T>::type
>
- {};
+ {
+ BOOST_FUSION_MPL_ASSERT((
+ mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
+ };
template <typename T>
struct is_single_pass
@@ -127,7 +144,10 @@
single_pass_traversal_tag
, typename category_of<T>::type
>
- {};
+ {
+ BOOST_FUSION_MPL_ASSERT((
+ mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
+ };
template <typename T>
struct is_forward
@@ -135,7 +155,10 @@
forward_traversal_tag
, typename category_of<T>::type
>
- {};
+ {
+ BOOST_FUSION_MPL_ASSERT((
+ mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
+ };
template <typename T>
struct is_bidirectional
@@ -143,7 +166,10 @@
bidirectional_traversal_tag
, typename category_of<T>::type
>
- {};
+ {
+ BOOST_FUSION_MPL_ASSERT((
+ mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
+ };
template <typename T>
struct is_random_access
@@ -151,7 +177,10 @@
random_access_traversal_tag
, typename category_of<T>::type
>
- {};
+ {
+ BOOST_FUSION_MPL_ASSERT((
+ mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
+ };
}
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/deduce.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/deduce.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/deduce.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,77 +1,120 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2007 Tobias Schwinger
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_SUPPORT_DEDUCE_HPP
#define BOOST_FUSION_SUPPORT_DEDUCE_HPP
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/internal/result_of.hpp>
+#include <boost/fusion/support/internal/ref.hpp>
-#include <boost/config.hpp>
-#ifdef BOOST_NO_RVALUE_REFERENCES
-# include <boost/mpl/eval_if.hpp>
-# include <boost/mpl/identity.hpp>
-#else
-# include <boost/mpl/if.hpp>
-#endif
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/ref.hpp>
-namespace boost { namespace fusion { namespace traits
+//TODO doc
+namespace boost { namespace fusion
{
- //TODO doc!
-#ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename T>
- struct deduce_impl
- {
- typedef T type;
- };
-
- template <typename T>
- struct deduce_impl<T const&>
+ namespace traits
{
- typedef T type;
- };
+ template <typename T>
+ struct deduce
+ {
+ typedef T type;
+ };
+
+ template <typename T>
+ struct deduce<reference_wrapper<T> >
+ {
+ typedef T& type;
+ };
+
+#define BOOST_FUSION_CV_REF_SPECIALIZATION(COMBINATION,_)\
+ template <typename T>\
+ struct deduce<T COMBINATION>\
+ {\
+ typedef detail::is_po_callable<T COMBINATION> is_po_callable;\
+ \
+ typedef typename\
+ mpl::eval_if<\
+ is_po_callable\
+ , mpl::if_<\
+ typename is_po_callable::is_pointer\
+ , T\
+ , T COMBINATION\
+ >\
+ , deduce<T>\
+ >::type\
+ type;\
+ };\
+ \
+ template <typename T>\
+ struct deduce<reference_wrapper<T> COMBINATION>\
+ {\
+ typedef T& type;\
+ };
+
+ BOOST_FUSION_CV_REF_SPECIALIZATION(volatile&,_)
+ BOOST_FUSION_CV_REF_SPECIALIZATION(const volatile&,_)
+#ifndef BOOST_NO_RVALUE_REFERENCES
+ BOOST_FUSION_CV_REF_SPECIALIZATION(volatile&&,_)
+ BOOST_FUSION_CV_REF_SPECIALIZATION(const volatile&&,_)
+#endif
+ BOOST_FUSION_ALL_CV_REF_COMBINATIONS(BOOST_FUSION_CV_REF_SPECIALIZATION,_)
- template <typename T>
- struct deduce_impl<T const volatile&>
- {
- typedef T type;
- };
+#undef BOOST_FUSION_CV_REF_SPECIALIZATION
- template <typename T>
- struct deduce
- {
- typedef typename detail::as_fusion_element<T>::type element;
+ template <typename T, int N>
+ struct deduce<T(&)[N]>
+ {
+ typedef T(&type)[N];
+ };
+
+ template <typename T, int N>
+ struct deduce<const T(&)[N]>
+ {
+ typedef const T(&type)[N];
+ };
+
+ template <typename T, int N>
+ struct deduce<volatile T(&)[N]>
+ {
+ typedef volatile T(&type)[N];
+ };
+
+ template <typename T, int N>
+ struct deduce<const volatile T(&)[N]>
+ {
+ typedef const volatile T(&type)[N];
+ };
+ }
- typedef typename
- mpl::eval_if<
- mpl::and_<
- detail::is_lrref<T>
- , is_same<typename detail::identity<T>::type,element>
- >
- , deduce_impl<T>
- , mpl::identity<element>
- >::type
- type;
- };
-#else
- template <typename T>
- struct deduce
+ namespace detail
{
- typedef typename detail::as_fusion_element<T>::type element;
-
- typedef typename
- mpl::if_<
- mpl::and_<
- detail::is_lrref<T>
- , is_same<typename detail::identity<T>::type,element>
- >
- , T
- , element
- >::type
- type;
- };
-#endif
-}}}
+ template <typename T>
+ struct deduce_ref
+ {
+ typedef typename traits::deduce<T>::type deduced;
+
+ typedef typename
+ mpl::if_<
+ mpl::and_<
+ detail::is_lrref<T>
+ , is_same<typename identity<T>::type,deduced>
+ >
+ , T
+ , typename add_lref<deduced>::type
+ >::type
+ type;
+ };
+ }
+}}
#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/deduce_sequence.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/deduce_sequence.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/deduce_sequence.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2007 Tobias Schwinger
+ Copyright (c) 2009 Christopher Schmidt
Use modification and distribution are subject to the Boost Software
License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -9,32 +10,31 @@
#ifndef BOOST_FUSION_SUPPORT_DEDUCE_SEQUENCE_HPP
#define BOOST_FUSION_SUPPORT_DEDUCE_SEQUENCE_HPP
+#include <boost/fusion/mpl.hpp>
#include <boost/fusion/container/vector/convert.hpp>
-#include <boost/fusion/view/transform_view.hpp>
+#include <boost/fusion/adapted/mpl.hpp>
#include <boost/fusion/support/deduce.hpp>
+#include <boost/fusion/support/internal/ref.hpp>
+#include <boost/fusion/support/internal/assert.hpp>
+
+#include <boost/mpl/transform_view.hpp>
+#include <boost/mpl/quote.hpp>
namespace boost { namespace fusion
{
- namespace detail
- {
- struct deducer
- {
- template <typename Sig>
- struct result;
-
- template<typename Self,typename T>
- struct result<Self(T)>
- : fusion::traits::deduce<T>
- {};
- };
- }
-
namespace traits
{
template <typename Seq>
struct deduce_sequence
- : result_of::as_vector<fusion::transform_view<Seq, detail::deducer> >
- {};
+ : result_of::as_vector<
+ mpl::transform_view<
+ typename detail::remove_reference<Seq>::type
+ , mpl::quote1<traits::deduce>
+ >
+ >
+ {
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
+ };
}
}}
Deleted: sandbox/SOC/2009/fusion/boost/fusion/support/internal/as_fusion_element.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/as_fusion_element.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
+++ (empty file)
@@ -1,106 +0,0 @@
-/*=============================================================================
- Copyright (c) 1999-2003 Jaakko Jarvi
- Copyright (c) 2001-2006 Joel de Guzman
-
- 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)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_SUPPORT_INTERNAL_AS_FUSION_ELEMENT_HPP
-#define BOOST_FUSION_SUPPORT_INTERNAL_AS_FUSION_ELEMENT_HPP
-
-//TODO cschmidt: rref
-
-#include <boost/fusion/support/internal/result_of.hpp>
-#include <boost/fusion/support/internal/ref.hpp>
-
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/ref.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
- template <typename T>
- struct as_fusion_element
- {
- typedef T type;
- };
-
- template <typename T>
- struct as_fusion_element<reference_wrapper<T> >
- {
- typedef T& type;
- };
-
- //TODO preserve rvalues?
-#define BOOST_FUSION_CV_REF_SPECIALIZATION(COMBINATION,_)\
- template <typename T>\
- struct as_fusion_element<T COMBINATION>\
- {\
- typedef typename\
- mpl::eval_if<\
- detail::is_po_callable<T COMBINATION>\
- , mpl::identity<T COMBINATION>\
- , as_fusion_element<T>\
- >::type\
- type;\
- };\
- \
- template <typename T>\
- struct as_fusion_element<reference_wrapper<T> COMBINATION>\
- {\
- typedef T& type;\
- };
-
- BOOST_FUSION_CV_REF_SPECIALIZATION(volatile&,_)
- BOOST_FUSION_CV_REF_SPECIALIZATION(const volatile&,_)
- BOOST_FUSION_ALL_CV_REF_COMBINATIONS(BOOST_FUSION_CV_REF_SPECIALIZATION,_)
-
-#undef BOOST_FUSION_CV_REF_SPECIALIZATION
-
- template <typename T, int N>
- struct as_fusion_element<T(&)[N]>
- {
- typedef T(&type)[N];
- };
-
- template <typename T, int N>
- struct as_fusion_element<const T(&)[N]>
- {
- typedef const T(&type)[N];
- };
-
- template <typename T, int N>
- struct as_fusion_element<volatile T(&)[N]>
- {
- typedef volatile T(&type)[N];
- };
-
- template <typename T, int N>
- struct as_fusion_element<const volatile T(&)[N]>
- {
- typedef const volatile T(&type)[N];
- };
-
- template <typename T>
- struct as_fusion_element_ref
- {
- typedef typename as_fusion_element<T>::type element;
-
- typedef typename
- mpl::if_<
- mpl::and_<
- is_lrref<T>
- , is_same<typename identity<T>::type,element>
- >
- , T
- , typename add_lref<element>::type
- >::type
- type;
- };
-}}}
-
-#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/assert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/assert.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/assert.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_SUPPORT_INTERNAL_ASSERT_HPP
#define BOOST_FUSION_SUPPORT_INTERNAL_ASSERT_HPP
@@ -94,13 +96,17 @@
"Index (" BOOST_PP_STRINGIZE(INDEX) ") out of range " \
"( [0..." BOOST_PP_STRINGIZE(MAX) ") )" \
)
+#define BOOST_FUSION_TAG_CHECK(TYPE,TAG)\
+ BOOST_FUSION_MPL_ASSERT((is_same<typename traits::tag_of<TYPE>::type,TAG>))
#ifdef BOOST_FUSION_ENABLE_STATIC_ASSERTS
-# include <boost/fusion/support/is_view.hpp>
# include <boost/fusion/support/is_sequence.hpp>
+# include <boost/fusion/support/is_view.hpp>
# include <boost/fusion/support/is_iterator.hpp>
# include <boost/fusion/support/category_of.hpp>
# include <boost/fusion/support/tag_of.hpp>
+
+# include <boost/type_traits/is_same.hpp>
#endif
#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/assign_tags.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/assign_tags.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/assign_tags.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_SUPPORT_INTERNAL_ASSIGN_TAGS_HPP
#define BOOST_FUSION_SUPPORT_INTERNAL_ASSIGN_TAGS_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/ref.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/ref.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/ref.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_SUPPORT_INTERNAL_REF_HPP
#define BOOST_FUSION_SUPPORT_INTERNAL_REF_HPP
@@ -144,12 +146,6 @@
>::type type;
};
- template <typename T>
- struct non_ref_parameter
- {
- typedef typename boost::remove_cv<T>::type const& type;
- };
-
template <typename TestType,typename Type>
struct forward_as
{
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/result_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/result_of.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/result_of.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_SUPPORT_INTERNAL_RESULT_OF_HPP
#define BOOST_FUSION_SUPPORT_INTERNAL_RESULT_OF_HPP
@@ -13,17 +15,12 @@
#include <boost/fusion/support/internal/ref.hpp>
#include <boost/mpl/if.hpp>
-#include <boost/utility/result_of.hpp>
+#include <boost/mpl/or.hpp>
+#include <boost/type_traits/is_pointer.hpp>
#include <boost/type_traits/remove_pointer.hpp>
#include <boost/type_traits/is_function.hpp>
#include <boost/type_traits/is_member_function_pointer.hpp>
-
-#if defined(BOOST_NO_DECLTYPE) || defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
-# include <boost/mpl/if.hpp>
-#else
-# include <boost/mpl/eval_if.hpp>
-# include <boost/mpl/has_xxx.hpp>
-#endif
+#include <boost/utility/result_of.hpp>
namespace boost { namespace fusion { namespace detail
{
@@ -51,24 +48,23 @@
template<typename FRef>
struct is_po_callable_impl
{
- typedef typename
- remove_pointer<
- typename detail::identity<FRef>::type
- >::type
- f;
-
- typedef
- mpl::or_<
- typename is_function<f>::type
- , typename is_member_function_pointer<f>::type
- >
- type;
+ typedef typename detail::identity<FRef>::type f;
+ typedef typename is_pointer<f>::type is_pointer;
+
+ typedef
+ mpl::or_<
+ is_function<typename remove_pointer<f>::type>
+ , is_member_function_pointer<f>
+ >
+ type;
};
template<typename FRef>
struct is_po_callable
: is_po_callable_impl<FRef>::type
- {};
+ {
+ typedef typename is_po_callable_impl<FRef>::is_pointer is_pointer;
+ };
//cschmidt: a pp implementation won't be worth the effort
#ifdef BOOST_NO_VARIADIC_TEMPLATES
@@ -139,12 +135,6 @@
{};
#endif
-#if defined(BOOST_NO_DECLTYPE) || defined(BOOST_NO_VARIADIC_TEMPLATES) || defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
- namespace internal
- {
- using boost::result_of;
- }
-
//cschmidt: The non-decltype result_of does not like ref-qualified
//'class type' functions
template<typename FRef>
@@ -167,63 +157,6 @@
>::type
type;
};
-#else
- BOOST_MPL_HAS_XXX_TRAIT_DEF(result_type)
-
- template<typename IdentityF>
- struct get_result_type
- {
- typedef typename IdentityF::result_type type;
- };
-
- template<typename IdentityF, typename Sig>
- struct get_result
- : IdentityF::template result<Sig>
- {};
-
- template<typename IdentityF,typename F,typename... Args>
- struct result_of_class_type
- {
- typedef typename
- mpl::eval_if<
- detail::has_result_type<IdentityF>
- , detail::get_result_type<IdentityF>
- //TODO cschmidt: fallback to boost::result_of (decltype) if
- //'F::template result' does not exist.
- //Is this even possible?
- , detail::get_result<IdentityF,F(Args...)>
- >::type
- type;
- };
-
- namespace internal
- {
- template<typename Sig>
- struct result_of
- : boost::result_of<Sig>
- {};
-
- template<typename F, typename... Args>
- struct result_of<F(Args...)>
- {
- typedef typename detail::identity<F>::type f;
-
- typedef typename
- mpl::eval_if<
- is_function<f>
- , boost::result_of<F(Args...)>
- , result_of_class_type<f,F,Args...>
- >::type
- type;
- };
- }
-
- template<typename FRef>
- struct get_func_base
- {
- typedef FRef type;
- };
-#endif
}}}
#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/sequence_assign.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/sequence_assign.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/sequence_assign.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,12 +1,15 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_SUPPORT_INTERNAL_SEQUENCE_ASSIGN_HPP
#define BOOST_FUSION_SUPPORT_INTERNAL_SEQUENCE_ASSIGN_HPP
#include <boost/fusion/support/internal/ref.hpp>
+#include <boost/fusion/support/internal/assert.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/mpl/if.hpp>
@@ -38,6 +41,8 @@
detail::sequence_assign_type<BOOST_FUSION_R_ELSE_CLREF(Seq)>
sequence_assign(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
{
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
+
return seq;
}
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/template.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/template.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/template.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_SUPPORT_INTERNAL_TEMPLATE_HPP
#define BOOST_FUSION_SUPPORT_INTERNAL_TEMPLATE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/detail/variadic_arguments_to_vector_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/detail/variadic_arguments_to_vector_n.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/detail/variadic_arguments_to_vector_n.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
template<BOOST_PP_ENUM_PARAMS_Z(1, BOOST_PP_ITERATION(), typename T)>
struct variadic_arguments_to_vector<
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/variadic_arguments_to_vector.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/variadic_arguments_to_vector.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/variadic_arguments_to_vector.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_SUPPORT_INTERNAL_VARIADIC_TEMPLATES_VARIADIC_ARGUMENTS_TO_VECTOR_HPP
#define BOOST_FUSION_SUPPORT_INTERNAL_VARIADIC_TEMPLATES_VARIADIC_ARGUMENTS_TO_VECTOR_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/variadic_quote.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/variadic_quote.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/variadic_quote.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_SUPPORT_INTERNAL_VARIADIC_TEMPLATES_VARIADIC_QUOTE_HPP
#define BOOST_FUSION_SUPPORT_INTERNAL_VARIADIC_TEMPLATES_VARIADIC_QUOTE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/workaround.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/workaround.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/workaround.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_SUPPORT_INTERNAL_WORKAROUND_HPP
#define BOOST_FUSION_SUPPORT_INTERNAL_WORKAROUND_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/is_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/is_iterator.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/is_iterator.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/is_sequence.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/is_sequence.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/is_sequence.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/is_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/is_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/is_view.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -10,6 +11,7 @@
#include <boost/fusion/support/tag_of.hpp>
#include <boost/fusion/support/internal/ref.hpp>
+#include <boost/fusion/support/internal/assert.hpp>
namespace boost { namespace fusion
{
@@ -27,11 +29,13 @@
namespace traits
{
- template <typename T>
+ template <typename Seq>
struct is_view
- : extension::is_view_impl<typename fusion::traits::tag_of<T>::type>::
- template apply<typename detail::add_lref<T>::type>::type
- {};
+ : extension::is_view_impl<typename fusion::traits::tag_of<Seq>::type>::
+ template apply<typename detail::add_lref<Seq>::type>::type
+ {
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
+ };
}
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/pair.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/pair.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/pair.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2005 Joel de Guzman
Copyright (c) 2006 Tobias Schwinger
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -10,7 +11,7 @@
#define BOOST_FUSION_SUPPORT_PAIR_HPP
#include <boost/fusion/support/internal/ref.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
#if defined(BOOST_NO_VARIADIC_TEMPLATES) && defined(BOOST_NO_RVALUE_REFERENCES)
# include <boost/call_traits.hpp>
@@ -85,7 +86,7 @@
typedef
fusion::pair<
First
- , typename detail::as_fusion_element<Second>::type
+ , typename traits::deduce<Second>::type
>
type;
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_SUPPORT_TAG_OF_HPP
#define BOOST_FUSION_SUPPORT_TAG_OF_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/tag_of_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/tag_of_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/tag_of_fwd.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -9,7 +9,8 @@
#ifndef BOOST_FUSION_SUPPORT_TAG_OF_FWD_HPP
#define BOOST_FUSION_SUPPORT_TAG_OF_FWD_HPP
-//cschmidt: only provided for backwards compatibility
+#include <boost/config.hpp>
+
namespace boost { namespace fusion
{
namespace traits
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/unused.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/unused.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/unused.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -10,21 +10,20 @@
#include <boost/config.hpp>
#if defined(BOOST_MSVC)
-# pragma warning(push)
-# pragma warning(disable: 4522) // multiple assignment operators specified warning
+# pragma warning(push)
+// multiple assignment operators specified warning
+# pragma warning(disable: 4522)
#endif
namespace boost { namespace fusion {
struct unused_type
{
unused_type()
- {
- }
+ {}
template <typename T>
unused_type(T const&)
- {
- }
+ {}
template <typename T>
unused_type const&
@@ -57,7 +56,7 @@
}}
#if defined(BOOST_MSVC)
-# pragma warning(pop)
+# pragma warning(pop)
#endif
#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/tuple/make_tuple.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/tuple/make_tuple.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/tuple/make_tuple.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_TUPLE_MAKE_TUPLE_HPP
#define BOOST_FUSION_TUPLE_MAKE_TUPLE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2005 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_fwd.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2005 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_tie.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_tie.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_TUPLE_TUPLE_TIE_HPP
#define BOOST_FUSION_TUPLE_TUPLE_TIE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/detail/strictest_traversal.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/detail/strictest_traversal.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/detail/strictest_traversal.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -41,6 +41,12 @@
>::type
type;
};
+
+ template<typename NextSeq,typename StrictestSoFar>
+ typename result<
+ strictest_traversal_impl(NextSeq const&, StrictestSoFar const&)
+ >::type
+ operator()(NextSeq const&,StrictestSoFar const&);
};
template<typename Seq>
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/detail/view_storage.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/detail/view_storage.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/detail/view_storage.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_DETAIL_VIEW_STORAGE_HPP
#define BOOST_FUSION_VIEW_DETAIL_VIEW_STORAGE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_data_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_data_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_DEREF_DATA_IMPL_HPP
#define BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_DEREF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_fwd.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_FILTER_VIEW_FWD_HPP
#define BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_FILTER_VIEW_FWD_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_iterator.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_iterator.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -11,6 +12,7 @@
#include <boost/fusion/iterator/value_of.hpp>
#include <boost/fusion/algorithm/query/detail/find_if.hpp>
#include <boost/fusion/support/iterator_base.hpp>
+#include <boost/fusion/support/internal/assert.hpp>
#include <boost/mpl/quote.hpp>
#include <boost/mpl/lambda.hpp>
@@ -46,7 +48,9 @@
template<typename OtherIt>
filter_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
: first(BOOST_FUSION_FORWARD(OtherIt,it).first)
- {}
+ {
+ BOOST_FUSION_TAG_CHECK(OtherIt,filter_view_iterator_tag);
+ }
filter_iterator(Begin const& first,int)
: first(filter::call(first))
@@ -56,6 +60,8 @@
filter_iterator&
operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
{
+ BOOST_FUSION_TAG_CHECK(OtherIt,filter_view_iterator_tag);
+
first=BOOST_FUSION_FORWARD(OtherIt,it).first;
return *this;
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/key_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/key_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/key_of_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_KEY_OF_IMPL_HPP
#define BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_KEY_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/value_of_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/value_of_data_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/value_of_data_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP
#define BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -84,11 +85,13 @@
{}
#endif
- template<typename OtherFilterView>
+ template<typename OtherView>
filter_view&
- operator=(BOOST_FUSION_R_ELSE_CLREF(OtherFilterView) other_view)
+ operator=(BOOST_FUSION_R_ELSE_CLREF(OtherView) other_view)
{
- seq=BOOST_FUSION_FORWARD(OtherFilterView,other_view).seq;
+ BOOST_FUSION_TAG_CHECK(OtherView,filter_view_tag);
+
+ seq=BOOST_FUSION_FORWARD(OtherView,other_view).seq;
return *this;
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/iterator_range_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/iterator_range_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/iterator_range_fwd.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_ITERATOR_RANGE_DETAIL_ITERATOR_RANGE_FWD_HPP
#define BOOST_FUSION_VIEW_ITERATOR_RANGE_DETAIL_ITERATOR_RANGE_FWD_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -51,21 +52,25 @@
typedef fusion_sequence_tag tag;
typedef mpl::true_ is_view;
- template<typename OtherIteratorRange>
- iterator_range(BOOST_FUSION_R_ELSE_CLREF(OtherIteratorRange) range)
+ template<typename OtherRange>
+ iterator_range(BOOST_FUSION_R_ELSE_CLREF(OtherRange) range)
: first(range.first)
, last(range.last)
- {}
+ {
+ BOOST_FUSION_TAG_CHECK(OtherRange,iterator_range_tag);
+ }
iterator_range(Begin const& first, End const& last)
: first(first)
, last(last)
{}
- template<typename OtherIteratorRange>
+ template<typename OtherRange>
iterator_range&
- operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIteratorRange) other_range)
+ operator=(BOOST_FUSION_R_ELSE_CLREF(OtherRange) other_range)
{
+ BOOST_FUSION_TAG_CHECK(OtherRange,iterator_range_tag);
+
first=other_range.first;
last=other_range.last;
return *this;
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/begin_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_data_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_data_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_DEREF_DATA_IMPL_HPP
#define BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_DEREF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/end_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/equal_to_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/equal_to_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
- Copyright (c) 2005-2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_fwd.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_JOINT_VIEW_FWD_HPP
#define BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_JOINT_VIEW_FWD_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_iterator.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_iterator.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/key_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/key_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/key_of_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_KEY_OF_IMPL_HPP
#define BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_KEY_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/next_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/next_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP
#define BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -68,7 +69,6 @@
typedef joint_view_tag fusion_tag;
typedef fusion_sequence_tag tag;
typedef mpl::true_ is_view;
-
typedef typename
mpl::plus<
result_of::size<seq1_type>
@@ -76,11 +76,13 @@
>::type
size;
- template<typename OtherJointView>
- joint_view(BOOST_FUSION_R_ELSE_CLREF(OtherJointView) view)
- : seq1(BOOST_FUSION_FORWARD(OtherJointView,view).seq1)
- , seq2(BOOST_FUSION_FORWARD(OtherJointView,view).seq2)
- {}
+ template<typename OtherView>
+ joint_view(BOOST_FUSION_R_ELSE_CLREF(OtherView) view)
+ : seq1(BOOST_FUSION_FORWARD(OtherView,view).seq1)
+ , seq2(BOOST_FUSION_FORWARD(OtherView,view).seq2)
+ {
+ BOOST_FUSION_TAG_CHECK(OtherView,joint_view_tag);
+ }
#ifdef BOOST_NO_RVALUE_REFERENCES
joint_view(typename storage1_type::call_param seq1,
@@ -97,12 +99,14 @@
{}
#endif
- template<typename OtherJointView>
+ template<typename OtherView>
joint_view&
- operator=(BOOST_FUSION_R_ELSE_CLREF(OtherJointView) other_view)
+ operator=(BOOST_FUSION_R_ELSE_CLREF(OtherView) other_view)
{
- seq1=BOOST_FUSION_FORWARD(OtherJointView,other_view).seq1;
- seq2=BOOST_FUSION_FORWARD(OtherJointView,other_view).seq2;
+ BOOST_FUSION_TAG_CHECK(OtherView,joint_view_tag);
+
+ seq1=BOOST_FUSION_FORWARD(OtherView,other_view).seq1;
+ seq2=BOOST_FUSION_FORWARD(OtherView,other_view).seq2;
return *this;
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/advance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/advance_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/advance_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_ADVANCE_IMPL_HPP
#define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_ADVANCE_IMPL_HPP
@@ -20,8 +22,7 @@
namespace detail
{
template<
- typename ItRef
- , typename It
+ typename It
, typename N
, bool /*ReuseOldIterator*/=
mpl::or_<
@@ -39,14 +40,14 @@
type;
static type
- call(ItRef it)
+ call(It const& it)
{
return fusion::advance<N>(it.it);
}
};
- template<typename ItRef, typename It, typename N>
- struct get_cyclic_next_iterator<ItRef,It,N,/*ReuseOldIterator*/false>
+ template<typename It, typename N>
+ struct get_cyclic_next_iterator<It,N,/*ReuseOldIterator*/false>
{
typedef
mpl::modulus<
@@ -63,9 +64,9 @@
type;
static type
- call(ItRef it)
+ call(It const& it)
{
- return fusion::advance<real_n>(begin(it.seq));
+ return fusion::advance<real_n>(fusion::begin(it.seq));
}
};
}
@@ -82,7 +83,7 @@
struct apply
{
typedef typename detail::remove_reference<ItRef>::type it;
- typedef detail::get_cyclic_next_iterator<ItRef, it, N> gen;
+ typedef detail::get_cyclic_next_iterator<it, N> gen;
typedef
repetitive_view_iterator<
@@ -99,6 +100,7 @@
}
};
};
+
}
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/begin_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2007 Tobias Schwinger
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_BEGIN_IMPL_HPP
#define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_BEGIN_IMPL_HPP
@@ -24,7 +27,7 @@
typedef
repetitive_view_iterator<
typename seq::seq_type
- , typename result_of::begin<seq>::type
+ , typename result_of::begin<typename seq::seq_type>::type
, 0
>
type;
@@ -32,7 +35,7 @@
static type
call(SeqRef seq)
{
- return type(fusion::begin(seq.seq.get()));
+ return type(seq.seq.get(),fusion::begin(seq.seq.get()));
}
};
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_data_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_data_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_DEREF_DATA_IMPL_HPP
#define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_DEREF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2007 Tobias Schwinger
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_DEREF_IMPL_HPP
#define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_DEREF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/distance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/distance_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/distance_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_DISTANCE_IMPL_HPP
#define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_DISTANCE_IMPL_HPP
@@ -18,18 +20,15 @@
{
template<typename BeginRef, typename EndRef>
struct apply
- {
- typedef
- mpl::minus<
- typename detail::remove_reference<
- BeginRef
- >::type::index
- , typename detail::remove_reference<
- EndRef
- >::type::index
- >
- type;
- };
+ : mpl::minus<
+ typename detail::remove_reference<
+ BeginRef
+ >::type::index
+ , typename detail::remove_reference<
+ EndRef
+ >::type::index
+ >
+ {};
};
}}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/end_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,15 +1,18 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2007 Tobias Schwinger
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_END_IMPL_HPP
#define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_END_IMPL_HPP
#include <boost/fusion/sequence/intrinsic/empty.hpp>
#include <boost/fusion/sequence/intrinsic/end.hpp>
+#include <boost/fusion/iterator/advance_c.hpp>
#include <boost/fusion/support/category_of.hpp>
-#include <boost/fusion/iterator/detail/advance.hpp>
#include <boost/mpl/modulus.hpp>
#include <boost/mpl/negate.hpp>
@@ -28,42 +31,25 @@
mpl::or_<
result_of::empty<SeqRef>
, mpl::not_<traits::is_bidirectional<SeqRef> >
- >::type/*false*/
+ >::value/*false*/
>
struct get_real_end_it
{
- typedef typename result_of::end<SeqRef>::type seq_end;
typedef
- mpl::modulus<MaxIndex, result_of::size<SeqRef> >
+ mpl::negate<mpl::modulus<MaxIndex, result_of::size<SeqRef> > >
backwards_n;
typedef typename
- mpl::eval_if<
- traits::is_random_access<SeqRef>
- , result_of::advance<seq_end, mpl::negate<backwards_n> >
- , detail::backward<seq_end, backwards_n::value>
+ result_of::advance<
+ typename result_of::end<SeqRef>::type
+ , typename backwards_n::type
>::type
type;
static type
- call_impl(SeqRef seq, mpl::true_ /*is_random_access*/)
- {
- return fusion::advance<mpl::negate<backwards_n> >(
- fusion::end(seq));
- }
-
- static type
- call_impl(SeqRef seq, mpl::false_ /*is_random_access*/)
- {
- return detail::backward<seq_end, backwards_n::value>::call(
- fusion::end(seq));
- }
-
- static type
call(SeqRef seq)
{
- return call_impl(seq,
- typename traits::is_random_access<SeqRef>::type());
+ return fusion::advance<backwards_n>(fusion::end(seq));
}
};
@@ -79,7 +65,7 @@
static type
call(SeqRef seq)
{
- return fusion::end(seq);
+ return type(seq,fusion::end(seq));
}
};
}
@@ -114,7 +100,7 @@
static type
call(SeqRef seq)
{
- return type(gen::call(seq.seq.get()));
+ return type(seq.seq.get(),gen::call(seq.seq.get()));
}
};
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/equal_to_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/equal_to_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_EQUAL_TO_IMPL_HPP
#define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_EQUAL_TO_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/key_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/key_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/key_of_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_KEY_OF_IMPL_HPP
#define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_KEY_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/next_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/next_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2007 Tobias Schwinger
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_NEXT_IMPL_HPP
#define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_NEXT_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/prior_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/prior_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/prior_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_PRIOR_IMPL_HPP
#define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_PRIOR_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/repetitive_view_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/repetitive_view_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/repetitive_view_fwd.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2007 Tobias Schwinger
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_REPETITIVE_VIEW_FWD_HPP
#define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_REPETITIVE_VIEW_FWD_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/repetitive_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/repetitive_view_iterator.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/repetitive_view_iterator.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,13 +1,17 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2007 Tobias Schwinger
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_REPETITIVE_VIEW_ITERATOR_HPP
#define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_REPETITIVE_VIEW_ITERATOR_HPP
#include <boost/fusion/support/iterator_base.hpp>
#include <boost/fusion/support/category_of.hpp>
+#include <boost/fusion/support/internal/assert.hpp>
#include <boost/mpl/int.hpp>
@@ -30,10 +34,31 @@
typedef repetitive_view_iterator_tag fusion_tag;
typedef typename traits::category_of<It>::type category;
- repetitive_view_iterator(It const& it)
- : it(it)
+ template<typename OtherIt>
+ repetitive_view_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+ : seq(BOOST_FUSION_FORWARD(OtherIt,it).seq)
+ , it(BOOST_FUSION_FORWARD(OtherIt,it).it)
+ {
+ BOOST_FUSION_TAG_CHECK(OtherIt,repetitive_view_iterator_tag);
+ }
+
+ repetitive_view_iterator(SeqRef seq, It const& it)
+ : seq(seq)
+ , it(it)
{}
+ template<typename OtherIt>
+ repetitive_view_iterator&
+ operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it_)
+ {
+ BOOST_FUSION_TAG_CHECK(OtherIt,repetitive_view_iterator_tag);
+
+ seq=BOOST_FUSION_FORWARD(OtherIt,it_).seq;
+ it=BOOST_FUSION_FORWARD(OtherIt,it_).it;
+ return *this;
+ }
+
+ SeqRef seq;
It it;
};
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/value_of_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/value_of_data_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/value_of_data_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP
#define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/value_of_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2007 Tobias Schwinger
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_VALUE_OF_IMPL_HPP
#define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_VALUE_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/repetitive_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/repetitive_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/repetitive_view.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2007 Tobias Schwinger
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_REPETITIVE_VIEW_HPP
#define BOOST_FUSION_VIEW_REPETITIVE_VIEW_REPETITIVE_VIEW_HPP
@@ -15,7 +18,7 @@
#include <boost/fusion/view/detail/view_storage.hpp>
#include <boost/mpl/bool.hpp>
-#include <boost/mpl/int.hpp>
+#include <boost/mpl/long.hpp>
#include <boost/integer_traits.hpp>
#include <boost/fusion/view/repetitive_view/detail/repetitive_view_fwd.hpp>
@@ -47,8 +50,8 @@
typedef typename storage_type::type seq_type;
typedef typename traits::category_of<seq_type>::type category;
- typedef mpl::int_<integer_traits<int>::const_max> size;
- typedef reverse_view_tag fusion_tag;
+ typedef mpl::int_<integer_traits<int>::const_max-1> size;
+ typedef repetitive_view_tag fusion_tag;
typedef fusion_sequence_tag tag;
typedef mpl::true_ is_view;
@@ -76,11 +79,13 @@
{}
#endif
- template<typename OtherRepetitiveView>
+ template<typename OtherView>
repetitive_view&
- operator=(BOOST_FUSION_R_ELSE_CLREF(OtherRepetitiveView) other_view)
+ operator=(BOOST_FUSION_R_ELSE_CLREF(OtherView) other_view)
{
- seq=BOOST_FUSION_FORWARD(OtherRepetitiveView,other_view).seq;
+ BOOST_FUSION_TAG_CHECK(OtherView,reverse_view_tag);
+
+ seq=BOOST_FUSION_FORWARD(OtherView,other_view).seq;
return *this;
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_data_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_data_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_DEREF_DATA_IMPL_HPP
#define BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_DEREF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/distance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/distance_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/distance_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -21,18 +21,15 @@
{
template<typename BeginRef, typename EndRef>
struct apply
- {
- typedef typename
- result_of::distance<
- typename detail::remove_reference<
- BeginRef
- >::type::it_type
- , typename detail::remove_reference<
- EndRef
- >::type::it_type
- >::type
- type;
- };
+ : result_of::distance<
+ typename detail::remove_reference<
+ BeginRef
+ >::type::it_type
+ , typename detail::remove_reference<
+ EndRef
+ >::type::it_type
+ >
+ {};
};
}}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/equal_to_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/equal_to_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
- Copyright (c) 2005-2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/key_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/key_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/key_of_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_KEY_OF_IMPL_HPP
#define BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_KEY_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_fwd.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_REVERSE_VIEW_FWD_HPP
#define BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_REVERSE_VIEW_FWD_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_of_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_of_data_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_of_data_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP
#define BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -86,11 +87,13 @@
{}
#endif
- template<typename OtherReverseView>
+ template<typename OtherView>
reverse_view&
- operator=(BOOST_FUSION_R_ELSE_CLREF(OtherReverseView) other_view)
+ operator=(BOOST_FUSION_R_ELSE_CLREF(OtherView) other_view)
{
- seq=BOOST_FUSION_FORWARD(OtherReverseView,other_view).seq;
+ BOOST_FUSION_TAG_CHECK(OtherView,reverse_view_tag);
+
+ seq=BOOST_FUSION_FORWARD(OtherView,other_view).seq;
return *this;
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/equal_to_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/equal_to_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,5 @@
/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
- Copyright (c) 2005-2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_fwd.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_SINGLE_VIEW_FWD_HPP
#define BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_SINGLE_VIEW_FWD_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_iterator.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_iterator.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -44,8 +45,8 @@
typedef single_view_iterator_tag fusion_tag;
typedef forward_traversal_tag category;
- template<typename OtherIt>
- single_view_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+ template<typename OtherSingleViewRef>
+ single_view_iterator(single_view_iterator<OtherSingleViewRef> const& it)
: view(it.view)
{}
@@ -53,9 +54,9 @@
: view(&view)
{}
- template<typename OtherIt>
+ template<typename OtherSingleViewRef>
single_view_iterator&
- operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+ operator=(single_view_iterator<OtherSingleViewRef> const& it)
{
view=it.view;
return *this;
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -14,8 +15,8 @@
#include <boost/fusion/sequence/intrinsic/front.hpp>
#include <boost/fusion/support/internal/ref.hpp>
#include <boost/fusion/support/sequence_base.hpp>
+#include <boost/fusion/support/deduce.hpp>
#include <boost/fusion/support/internal/sequence_assign.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/mpl/int.hpp>
@@ -117,15 +118,13 @@
template <typename T>
inline single_view<
- typename detail::as_fusion_element<BOOST_FUSION_R_ELSE_CLREF(T)>::type
+ typename traits::deduce<BOOST_FUSION_R_ELSE_CLREF(T)>::type
>
make_single_view(BOOST_FUSION_R_ELSE_CLREF(T) v)
{
typedef
single_view<
- typename detail::as_fusion_element<
- BOOST_FUSION_R_ELSE_CLREF(T)
- >::type
+ typename traits::deduce<BOOST_FUSION_R_ELSE_CLREF(T)>::type
>
view;
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/advance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/advance_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/advance_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -37,7 +37,7 @@
static type
call(ItRef it)
{
- return type(boost::fusion::advance<N>(it.it), *it.f);
+ return type(fusion::advance<N>(it.it), *it.f);
}
};
};
@@ -64,8 +64,8 @@
static type
call(ItRef it)
{
- return type(boost::fusion::advance<N>(it.it1),
- boost::fusion::advance<N>(it.it2),
+ return type(fusion::advance<N>(it.it1),
+ fusion::advance<N>(it.it2),
it.f);
}
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/at_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -26,7 +26,7 @@
typedef typename detail::remove_reference<SeqRef>::type seq;
typedef typename
- detail::internal::result_of<
+ boost::result_of<
typename detail::get_func_base<
typename seq::transform_type
>::type(
@@ -38,7 +38,7 @@
static type
call(SeqRef seq)
{
- return seq.f(boost::fusion::at<N>(seq.seq.get()));
+ return seq.f(fusion::at<N>(seq.seq.get()));
}
};
};
@@ -52,15 +52,15 @@
typedef typename detail::remove_reference<SeqRef>::type seq;
typedef typename
- detail::internal::result_of<
+ boost::result_of<
typename detail::get_func_base<
typename seq::transform_type
>::type(
- typename boost::fusion::result_of::at<
- typename seq::seq1_type
+ typename fusion::result_of::at<
+ typename seq::seq1_type
, N
>::type
- , typename boost::fusion::result_of::at<
+ , typename fusion::result_of::at<
typename seq::seq2_type
, N
>::type)
@@ -70,8 +70,8 @@
static type call(SeqRef seq)
{
return seq.f(
- boost::fusion::at<N>(seq.seq1.get()),
- boost::fusion::at<N>(seq.seq2.get()));
+ fusion::at<N>(seq.seq1.get()),
+ fusion::at<N>(seq.seq2.get()));
}
};
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/begin_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/deref_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -29,7 +29,7 @@
it;
typedef typename
- detail::internal::result_of<
+ boost::result_of<
typename detail::get_func_base<
typename it::transform_type
>::type(
@@ -56,7 +56,7 @@
typedef typename detail::remove_reference<ItRef>::type it;
typedef typename
- detail::internal::result_of<
+ boost::result_of<
typename detail::get_func_base<
typename it::transform_type
>::type(
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/end_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/transform_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/transform_view_iterator.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/transform_view_iterator.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -10,6 +11,7 @@
#include <boost/fusion/support/iterator_base.hpp>
#include <boost/fusion/support/category_of.hpp>
+#include <boost/fusion/support/internal/assert.hpp>
namespace boost { namespace fusion
{
@@ -30,7 +32,9 @@
transform_view_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
: it(BOOST_FUSION_FORWARD(OtherIt,it).it)
, f(BOOST_FUSION_FORWARD(OtherIt,it).f)
- {}
+ {
+ BOOST_FUSION_TAG_CHECK(OtherIt,transform_view_iterator_tag);
+ }
transform_view_iterator(It const& it, transform_type f)
: it(it)
@@ -41,6 +45,8 @@
transform_view_iterator&
operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it_)
{
+ BOOST_FUSION_TAG_CHECK(OtherIt,transform_view_iterator_tag);
+
it=BOOST_FUSION_FORWARD(OtherIt,it_).it;
f=BOOST_FUSION_FORWARD(OtherIt,it_).f;
return *this;
@@ -82,6 +88,8 @@
transform_view_iterator2&
operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
{
+ BOOST_FUSION_TAG_CHECK(OtherIt,transform_view_iterator2_tag);
+
it1=BOOST_FUSION_FORWARD(OtherIt,it).it1;
it2=BOOST_FUSION_FORWARD(OtherIt,it).it2;
f=BOOST_FUSION_FORWARD(OtherIt,it).f;
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_at_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -26,11 +26,11 @@
typedef typename detail::remove_reference<SeqRef>::type seq;
typedef typename
- detail::internal::result_of<
+ boost::result_of<
typename detail::get_func_base<
typename seq::transform_type
>::type(
- typename boost::fusion::result_of::value_at<
+ typename fusion::result_of::value_at<
typename seq::seq_type
, N
>::type)
@@ -48,14 +48,14 @@
typedef typename detail::remove_reference<SeqRef>::type seq;
typedef typename
- detail::internal::result_of<
+ boost::result_of<
typename detail::get_func_base<
typename seq::transform_type
>::type(
- typename boost::fusion::result_of::value_at<
+ typename fusion::result_of::value_at<
typename seq::seq1_type, N
>::type
- , typename boost::fusion::result_of::value_at<
+ , typename fusion::result_of::value_at<
typename seq::seq2_type, N
>::type)
>::type
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_of_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -26,7 +26,7 @@
typedef typename detail::remove_reference<ItRef>::type it;
typedef typename
- detail::internal::result_of<
+ boost::result_of<
typename detail::get_func_base<
typename it::transform_type
>::type(
@@ -46,7 +46,7 @@
typedef typename detail::remove_reference<ItRef>::type it;
typedef typename
- detail::internal::result_of<
+ boost::result_of<
typename detail::get_func_base<
typename it::transform_type
>::type(
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -96,11 +97,11 @@
category;
typedef typename result_of::size<seq1_type>::type size;
- template<typename OtherTransformView>
- transform_view(BOOST_FUSION_R_ELSE_CLREF(OtherTransformView) view)
- : seq1(BOOST_FUSION_FORWARD(OtherTransformView,view).seq1)
- , seq2(BOOST_FUSION_FORWARD(OtherTransformView,view).seq2)
- , f(BOOST_FUSION_FORWARD(OtherTransformView,view).f)
+ template<typename OtherView>
+ transform_view(BOOST_FUSION_R_ELSE_CLREF(OtherView) view)
+ : seq1(BOOST_FUSION_FORWARD(OtherView,view).seq1)
+ , seq2(BOOST_FUSION_FORWARD(OtherView,view).seq2)
+ , f(BOOST_FUSION_FORWARD(OtherView,view).f)
{}
#ifdef BOOST_NO_RVALUE_REFERENCES
@@ -122,13 +123,15 @@
{}
#endif
- template<typename OtherTransformView>
- OtherTransformView&
- operator=(BOOST_FUSION_R_ELSE_CLREF(OtherTransformView) other_view)
+ template<typename OtherView>
+ OtherView&
+ operator=(BOOST_FUSION_R_ELSE_CLREF(OtherView) other_view)
{
- seq1=BOOST_FUSION_FORWARD(OtherTransformView,other_view).seq1;
- seq2=BOOST_FUSION_FORWARD(OtherTransformView,other_view).seq2;
- f=BOOST_FUSION_FORWARD(OtherTransformView,other_view).f;
+ BOOST_FUSION_TAG_CHECK(OtherView,transform_view2_tag);
+
+ seq1=BOOST_FUSION_FORWARD(OtherView,other_view).seq1;
+ seq2=BOOST_FUSION_FORWARD(OtherView,other_view).seq2;
+ f=BOOST_FUSION_FORWARD(OtherView,other_view).f;
return *this;
}
@@ -162,10 +165,10 @@
typedef fusion_sequence_tag tag;
typedef mpl::true_ is_view;
- template<typename OtherTransformView>
- unary_transform_view(BOOST_FUSION_R_ELSE_CLREF(OtherTransformView) view)
- : seq(BOOST_FUSION_FORWARD(OtherTransformView,view).seq)
- , f(BOOST_FUSION_FORWARD(OtherTransformView,view).f)
+ template<typename OtherView>
+ unary_transform_view(BOOST_FUSION_R_ELSE_CLREF(OtherView) view)
+ : seq(BOOST_FUSION_FORWARD(OtherView,view).seq)
+ , f(BOOST_FUSION_FORWARD(OtherView,view).f)
{}
#ifdef BOOST_NO_RVALUE_REFERENCES
@@ -183,12 +186,14 @@
{}
#endif
- template<typename OtherTransformView>
+ template<typename OtherView>
unary_transform_view&
- operator=(BOOST_FUSION_R_ELSE_CLREF(OtherTransformView) view)
+ operator=(BOOST_FUSION_R_ELSE_CLREF(OtherView) view)
{
- seq=BOOST_FUSION_FORWARD(OtherTransformView,view).seq;
- f=BOOST_FUSION_FORWARD(OtherTransformView,view).f;
+ BOOST_FUSION_TAG_CHECK(OtherView,transform_view_tag);
+
+ seq=BOOST_FUSION_FORWARD(OtherView,view).seq;
+ f=BOOST_FUSION_FORWARD(OtherView,view).f;
return *this;
}
@@ -203,9 +208,9 @@
{
typedef unary_transform_view<Seq, F, mpl::true_> base;
- template<typename OtherTransformView>
- transform_view(BOOST_FUSION_R_ELSE_CLREF(OtherTransformView) view)
- : base(BOOST_FUSION_FORWARD(OtherTransformView,view))
+ template<typename OtherView>
+ transform_view(BOOST_FUSION_R_ELSE_CLREF(OtherView) view)
+ : base(BOOST_FUSION_FORWARD(OtherView,view))
{}
#ifdef BOOST_NO_RVALUE_REFERENCES
@@ -221,12 +226,11 @@
{}
#endif
- template<typename OtherTransformView>
+ template<typename OtherView>
transform_view&
- operator=(BOOST_FUSION_R_ELSE_CLREF(OtherTransformView) view)
+ operator=(BOOST_FUSION_R_ELSE_CLREF(OtherView) view)
{
- *static_cast<base*>(this)=
- BOOST_FUSION_FORWARD(OtherTransformView,view);
+ *static_cast<base*>(this)=BOOST_FUSION_FORWARD(OtherView,view);
return *this;
}
};
@@ -237,9 +241,9 @@
{
typedef unary_transform_view<Seq, F, mpl::false_> base;
- template<typename OtherTransformView>
- transform_view(BOOST_FUSION_R_ELSE_CLREF(OtherTransformView) view)
- : base(BOOST_FUSION_FORWARD(OtherTransformView,view))
+ template<typename OtherView>
+ transform_view(BOOST_FUSION_R_ELSE_CLREF(OtherView) view)
+ : base(BOOST_FUSION_FORWARD(OtherView,view))
{}
#ifdef BOOST_NO_RVALUE_REFERENCES
@@ -255,12 +259,11 @@
{}
#endif
- template<typename OtherTransformView>
+ template<typename OtherView>
transform_view&
- operator=(BOOST_FUSION_R_ELSE_CLREF(OtherTransformView) view)
+ operator=(BOOST_FUSION_R_ELSE_CLREF(OtherView) view)
{
- *static_cast<base*>(this)=
- BOOST_FUSION_FORWARD(OtherTransformView,view);
+ *static_cast<base*>(this)=BOOST_FUSION_FORWARD(OtherView,view);
return *this;
}
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view_fwd.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009 Christopher Schmidt
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)
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/begin_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -79,8 +79,8 @@
call(SeqRef seq)
{
return type(
- fusion::transform(seq.seqs, detail::poly_begin())
- , 0);
+ fusion::transform(seq.seqs, detail::poly_begin()),
+ 0);
}
};
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/distance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/distance_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/distance_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -27,20 +27,17 @@
{
template<typename FoundIt, typename SearchIt>
struct best_distance
- {
- typedef typename
- result_of::distance<
- FoundIt
- , typename result_of::find_if<
- typename SearchIt::iterators
- , is_same<
- traits::category_of<mpl::_1>
- , random_access_iterator_tag
- >
- >::type
+ : result_of::distance<
+ FoundIt
+ , typename result_of::find_if<
+ typename SearchIt::iterators
+ , is_same<
+ traits::category_of<mpl::_1>
+ , random_access_iterator_tag
+ >
>::type
- type;
- };
+ >
+ {};
template<typename It1, typename It2>
struct default_distance
@@ -88,8 +85,7 @@
typename detail::remove_reference<ItRef1>::type
, typename detail::remove_reference<ItRef2>::type
>
- {
- };
+ {};
};
}
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/end_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -91,10 +91,10 @@
{
return type(
fusion::transform(
- seq.seqs
- , detail::endpoints<typename seq::size>()
- )
- , 0);
+ seq.seqs,
+ detail::endpoints<typename seq::size>()
+ ),
+ 0);
}
};
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/equal_to_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/equal_to_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -15,7 +15,7 @@
#include <boost/mpl/and.hpp>
#include <boost/mpl/transform_view.hpp>
#include <boost/mpl/zip_view.hpp>
-#include <boost/mpl/vector.hpp>
+#include <boost/mpl/vector/vector10.hpp>
#include <boost/mpl/unpack_args.hpp>
#include <boost/mpl/find_if.hpp>
#include <boost/mpl/end.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_at_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -36,6 +36,10 @@
, result_of::value_at<SeqRef, N>
>
{};
+
+ template<typename Seq>
+ typename result<poly_value_at(Seq const&)>::type
+ operator()(Seq const&);
};
}
@@ -49,18 +53,15 @@
{
template<typename SeqRef, typename N>
struct apply
- {
- typedef typename
- result_of::transform<
+ : result_of::as_vector<
+ typename result_of::transform<
typename detail::remove_reference<
SeqRef
>::type::seqs_type
, detail::poly_value_at<N>
>::type
- values;
-
- typedef typename result_of::as_vector<values>::type type;
- };
+ >
+ {};
};
}
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_of_impl.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -35,6 +35,10 @@
, result_of::value_of<ItRef>
>
{};
+
+ template<typename It>
+ typename result<poly_value_of(It const&)>::type
+ operator()(It const&);
};
}
@@ -48,18 +52,15 @@
{
template<typename ItRef>
struct apply
- {
- typedef typename
- result_of::transform<
+ : result_of::as_vector<
+ typename result_of::transform<
typename detail::remove_reference<
ItRef
>::type::iterators
, detail::poly_value_of
>::type
- values;
-
- typedef typename result_of::as_vector<values>::type type;
- };
+ >
+ {};
};
}
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_fwd.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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)
+==============================================================================*/
#ifndef BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_ZIP_VIEW_FWD_HPP
#define BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_ZIP_VIEW_FWD_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_iterator.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_iterator.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -12,6 +13,7 @@
#include <boost/fusion/container/vector/convert.hpp>
#include <boost/fusion/support/iterator_base.hpp>
#include <boost/fusion/support/internal/ref.hpp>
+#include <boost/fusion/support/internal/assert.hpp>
namespace boost { namespace fusion {
@@ -29,20 +31,24 @@
template<typename OtherIt>
zip_view_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
- : iterators_(sequence_assign(it.iterators_))
- {}
+ : iterators_(sequence_assign(
+ BOOST_FUSION_FORWARD(OtherIt,it).iterators_))
+ {
+ BOOST_FUSION_TAG_CHECK(OtherIt,zip_view_iterator_tag);
+ }
template<typename Seq>
zip_view_iterator(BOOST_FUSION_R_ELSE_CLREF(Seq) seq,int)
- : iterators_(
- sequence_assign(BOOST_FUSION_FORWARD(Seq,seq)))
+ : iterators_(sequence_assign(BOOST_FUSION_FORWARD(Seq,seq)))
{}
template<typename OtherIt>
zip_view_iterator&
operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
{
- iterators_=it.iterators_;
+ BOOST_FUSION_TAG_CHECK(OtherIt,zip_view_iterator_tag);
+
+ iterators_=BOOST_FUSION_FORWARD(OtherIt,it).iterators_;
return *this;
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2006 Dan Marsden
+ Copyright (c) 2009 Christopher Schmidt
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)
@@ -86,6 +87,10 @@
struct result<Self(Seq)>
: result_of::size<Seq>
{};
+
+ template<typename Seq>
+ typename result<seq_size(Seq const&)>::type
+ operator()(Seq const&);
};
struct poly_min
@@ -100,6 +105,10 @@
typename detail::remove_reference<SeqSize>::type
>
{};
+
+ template<typename MinSize,typename SeqSize>
+ typename result<poly_min(MinSize const&,SeqSize const&)>::type
+ operator()(MinSize const&, SeqSize const&);
};
template<typename Seqs>
@@ -173,11 +182,13 @@
BOOST_FUSION_FORWARD(OtherSeqs,seqs)))
{}
- template<typename OtherZipView>
+ template<typename OtherView>
zip_view&
- operator=(BOOST_FUSION_R_ELSE_CLREF(OtherZipView) other_zip_view)
+ operator=(BOOST_FUSION_R_ELSE_CLREF(OtherView) other_zip_view)
{
- seqs=BOOST_FUSION_FORWARD(OtherZipView,other_zip_view).seqs;
+ BOOST_FUSION_TAG_CHECK(OtherView,zip_view_tag);
+
+ seqs=BOOST_FUSION_FORWARD(OtherView,other_zip_view).seqs;
return *this;
}
Modified: sandbox/SOC/2009/fusion/build.bat
==============================================================================
--- sandbox/SOC/2009/fusion/build.bat (original)
+++ sandbox/SOC/2009/fusion/build.bat 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,8 +1,11 @@
@echo off
-rem Copyright Christopher Schmidt 2009.
-rem Distributed under the Boost Software License, Version 1.0.
-rem (See accompanying file LICENSE_1_0.txt or copy at
-rem http://www.boost.org/LICENSE_1_0.txt)
+rem ===========================================================================
+rem Copyright (c) 2009 Christopher Schmidt
+rem
+rem Use, modification and distribution is subject to the Boost Software
+rem License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+rem http://www.boost.org/LICENSE_1_0.txt)
+rem ===========================================================================
rem (re-)set environment variables
set BOOST_ROOT=d:/projekte/libs/boost
@@ -19,7 +22,7 @@
call :gcc3
) else (
if "%1" == "" (
- call :vc9
+ call :gcc4
) else (
echo Unknown toolset '%1'
goto :eof
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/performance/measure.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/performance/measure.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/performance/measure.hpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,11 @@
-// Copyright David Abrahams, Matthias Troyer, Michael Gauckler
-// 2005. 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)
+/*=============================================================================
+ Copyright (c) 2005 David Abrahams
+ Copyright (c) 2005 Matthias Troyer
+ Copyright (c) 2005 Michael Gauckler
+
+ 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)
+==============================================================================*/
#if !defined(LIVE_CODE_TYPE)
# define LIVE_CODE_TYPE int
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/performance/sequence_efficiency.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/performance/sequence_efficiency.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/performance/sequence_efficiency.cpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -167,9 +167,7 @@
>
lmedium(BOOST_PP_ENUM(10, INIT, _));
- //TODO cschmidt: uncomment this once mpl got variadic templates
- //and we are not limited to BOOST_MPL_MAX_VECTOR_SIZE any more!
- /*vector<
+ vector<
int, int, int, int, int, int, int, int, int, int
, int, int, int, int, int, int, int, int, int, int
, int, int, int, int, int, int, int, int, int, int
@@ -181,7 +179,7 @@
, int, int, int, int, int, int, int, int, int, int
, int, int, int, int, int, int, int, int, int, int
>
- lbig(BOOST_PP_ENUM(30, INIT, _));*/
+ lbig(BOOST_PP_ENUM(30, INIT, _));
// first decide how many repetitions to measure
long repeats = 100;
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/test/Jamfile.v2
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/test/Jamfile.v2 (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/test/Jamfile.v2 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-# Copyright Christopher Schmidt 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)
+#==============================================================================
+# Copyright (c) 2009 Christopher Schmidt
+#
+# Use, modification and distribution is 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)
+#==============================================================================
project test ;
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/test/main.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/test/main.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/test/main.cpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 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)
+/*=============================================================================
+ Copyright (c) 2009 Christopher Schmidt
+
+ 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 <boost/fusion/sequence.hpp>
#include <boost/fusion/iterator.hpp>
@@ -101,9 +103,18 @@
//beg=cbeg2;
- deref(begin(std::forward<Seq>(seq)));
- advance_c<1>(begin(std::forward<Seq>(seq)));
- end(std::forward<Seq>(seq));
+ {
+ auto it=begin(std::forward<Seq>(seq));
+ it=begin(std::forward<Seq>(seq));
+ }
+ {
+ auto it=advance_c<1>(begin(std::forward<Seq>(seq)));
+ it=advance_c<1>(begin(std::forward<Seq>(seq)));
+ }
+ {
+ auto it=end(std::forward<Seq>(seq));
+ it=end(std::forward<Seq>(seq));
+ }
}
struct identity_int
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -62,10 +62,11 @@
int main()
{
+ //TODO !!!
+ /*
TEST_SAME_TYPE(deduce<int &>::type, int &);
TEST_SAME_TYPE(deduce<int volatile &>::type, int volatile &);
- //TODO rvalue tests
TEST_SAME_TYPE(deduce<int>::type, int);
#ifdef BOOST_NO_RVALUE_REFERENCES
TEST_SAME_TYPE(deduce<int const&>::type, int);
@@ -85,10 +86,13 @@
TEST_SAME_TYPE(deduce< int volatile (&)[2] >::type, int volatile (&)[2]);
TEST_SAME_TYPE(deduce< int const volatile (&)[2] >::type, int const volatile (&)[2]);
+ TEST_SAME_TYPE(deduce< void(*&)() >::type, void(*)());
+
TEST_SAME_ELEMENTS(deduce_sequence<args1>::type,storable1);
TEST_SAME_ELEMENTS(deduce_sequence<args2>::type,storable2);
TEST_SAME_ELEMENTS(deduce_sequence<args3>::type,storable3);
TEST_SAME_ELEMENTS(deduce_sequence<args4>::type,storable4);
+ */
return boost::report_errors();
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_n.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_n.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_n.cpp 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -173,9 +173,7 @@
cout << "vector20 of int: " << sizeof(vec) << endl;
}
- //TODO: Due to limitations in Boost.MPL vector only up to
- //BOOST_MPL_LIMIT_VECTOR_SIZE
- /*{
+ {
typedef vector30<
int, int, int, int, int, int, int, int, int, int
, int, int, int, int, int, int, int, int, int, int
@@ -206,7 +204,7 @@
type vec; // compile check only
cout << "vector50 of int: " << sizeof(vec) << endl;
- }*/
+ }
{
// testing copy and assign from a view
Modified: sandbox/SOC/2009/fusion/project-root.jam
==============================================================================
--- sandbox/SOC/2009/fusion/project-root.jam (original)
+++ sandbox/SOC/2009/fusion/project-root.jam 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-# Copyright Christopher Schmidt 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)
+#==============================================================================
+# Copyright (c) 2009 Christopher Schmidt
+#
+# Use, modification and distribution is 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)
+#==============================================================================
import os ;
local BOOST_INCLUDES_PATH = [ os.environ BOOST_INCLUDES_PATH ] ;
@@ -10,14 +13,15 @@
: requirements <include>.
<include>$(BOOST_INCLUDES_PATH)
<define>BOOST_FUSION_ENABLE_STATIC_ASSERTS
- <toolset>gcc-4:<cxxflags>-std=c++0x
+ <define>BOOST_FUSION_PREFER_MPL
+ <toolset>gcc:<cxxflags>-std=c++0x
: build-dir ../bin
: default-build debug <link>shared <runtime-link>shared <threading>multi
;
build-project libs/fusion/example/test ;
-#build-project libs/fusion/doc ;
+build-project libs/fusion/doc ;
#build-project libs/fusion/example/extension ;
-#build-project libs/fusion/example/performance ;
+build-project libs/fusion/example/performance ;
build-project libs/fusion/test ;
\ No newline at end of file
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk