Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r62410 - in sandbox/SOC/2009/fusion: boost/fusion/adapted/class boost/fusion/adapted/detail/array boost/fusion/adapted/detail/class boost/fusion/adapted/detail/mpl boost/fusion/adapted/detail/po_array boost/fusion/adapted/detail/struct boost/fusion/adapted/detail/tuple boost/fusion/adapted/struct boost/fusion/algorithm/iteration boost/fusion/algorithm/iteration/detail boost/fusion/algorithm/iteration/ext_ boost/fusion/algorithm/query boost/fusion/algorithm/query/detail boost/fusion/algorithm/query/ext_ boost/fusion/algorithm/transformation boost/fusion/algorithm/transformation/detail boost/fusion/algorithm/transformation/detail/filter_key_view 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 boost/fusion/container/list/detail/pp boost/fusion/container/map boost/fusion/container/map/detail boost/fusion/container/set boost/fusion/container/set/detail 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 boost/fusion/functional/adapter/detail/pp boost/fusion/functional/generation/detail boost/fusion/functional/invocation/detail boost/fusion/functional/invocation/detail/pp 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/sequence/intrinsic/ext_ boost/fusion/sequence/io boost/fusion/sequence/io/detail boost/fusion/support boost/fusion/support/internal boost/fusion/tuple 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/nview boost/fusion/view/nview/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/detail boost/fusion/view/zip_view boost/fusion/view/zip_view/detail libs/fusion/example/cookbook libs/fusion/example/extension/vtuple libs/fusion/example/performance libs/fusion/test/suite1/algorithm libs/fusion/test/suite1/sequence libs/fusion/test/suite2 libs/fusion/test/suite2/container libs/fusion/test/suite2/sequence
From: mr.chr.schmidt_at_[hidden]
Date: 2010-06-03 12:17:41


Author: cschmidt
Date: 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
New Revision: 62410
URL: http://svn.boost.org/trac/boost/changeset/62410

Log:
VC10 fixes
Added:
   sandbox/SOC/2009/fusion/boost/fusion/support/internal/facade_generation.hpp (contents, props changed)
   sandbox/SOC/2009/fusion/libs/fusion/test/suite2/Jamfile (contents, props changed)
   sandbox/SOC/2009/fusion/libs/fusion/test/suite2/container/
   sandbox/SOC/2009/fusion/libs/fusion/test/suite2/sequence/
   sandbox/SOC/2009/fusion/libs/fusion/test/suite2/sequence/test_base.hpp (contents, props changed)
Text files modified:
   sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_assoc_class.hpp | 11 ++
   sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_assoc_class_named.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_class.hpp | 10 ++
   sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_class_named.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/begin_impl.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/deref_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/end_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/value_at_impl.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/value_of_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/class/extension.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/advance_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/at_impl.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/begin_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/category_of_impl.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/deref_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/distance_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/empty_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/end_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/equal_to_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/get_mpl_it.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/has_key_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/mpl_iterator.hpp | 30 +++---
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/next_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/prior_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/size_impl.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/tag_of.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_at_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_of_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/po_array/begin_impl.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/po_array/deref_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/po_array/end_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/po_array/value_at_impl.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/po_array/value_of_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_base.hpp | 18 +++
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/begin_impl.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/define_struct.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/deref_data_impl.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/deref_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/end_impl.hpp | 10 +-
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp | 9 +
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/is_sequence_impl.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/is_view_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/key_of_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/size_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_at_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_of_data_impl.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_of_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/at_impl.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/begin_impl.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/deref_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/end_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/size_impl.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/tag_of.hpp | 24 ++--
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/value_at_impl.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/value_of_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_assoc_struct.hpp | 15 ++
   sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_assoc_struct_named.hpp | 22 ++--
   sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_struct.hpp | 11 ++
   sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_struct_named.hpp | 21 ++--
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/ext_/for_each_s.hpp | 10 +-
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp | 10 -
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/all.hpp | 10 +-
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/count.hpp | 24 +++--
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/find_if.hpp | 16 +-
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/ext_/find_if_s.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_if.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_key.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/none.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/clear.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/at_key_impl.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/has_key_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/value_at_key_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/replace_if.hpp | 9 +
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase.hpp | 12 +-
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase_key.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter_if.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_back.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_front.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_back.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_front.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove_if.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace.hpp | 12 +-
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/reverse.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp | 19 ++--
   sandbox/SOC/2009/fusion/boost/fusion/container/detail/convert_impl.hpp | 12 +-
   sandbox/SOC/2009/fusion/boost/fusion/container/detail/forward_interface.hpp | 12 +-
   sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/as_seq.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/as_seq_n.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/forward_interface_n.hpp | 9 +
   sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/forward_interface.hpp | 3
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/cons_tie.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/map_tie.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/map_tie_n.hpp | 18 +++
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/seq_tie.hpp | 5 +
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/seq_tie_n.hpp | 18 +++
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/seq_tie.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_seq.hpp | 4
   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 | 18 ++-
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_cons.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/list/cons.hpp | 23 ++++
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/at_impl.hpp | 12 +-
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/begin_impl.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/build_cons.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons_fwd.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons_iterator.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/convert_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/deref_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/end_impl.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/equal_to_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/next_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/pp/list_forward_ctor_n.hpp | 13 +-
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/value_at_impl.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/value_of_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/list/list.hpp | 21 +++-
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/begin_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/deref_data_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/deref_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/end_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/key_of_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_of_data_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_of_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp | 15 ++
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/begin_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/deref_data_impl.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/deref_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/end_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/key_of_impl.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_of_data_impl.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_of_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/set/set.hpp | 13 ++
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/at_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/begin_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/deref_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/end_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector.hpp | 15 ++
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n.hpp | 175 ++++++++++++++++++++-------------------
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_at_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_of_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/fused_impl.hpp | 15 +++
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/pp/unfused_invocation_n.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/pp/unfused_typed_impl_n.hpp | 8 +
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused.hpp | 14 ++
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused_typed.hpp | 14 ++
   sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/invoke.hpp | 18 ++-
   sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/pp/invoke_impl.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/pp/invoke_impl_n.hpp | 19 ++--
   sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/that_ptr.hpp | 22 +++-
   sandbox/SOC/2009/fusion/boost/fusion/iterator/advance.hpp | 21 +---
   sandbox/SOC/2009/fusion/boost/fusion/iterator/basic_iterator.hpp | 34 +++---
   sandbox/SOC/2009/fusion/boost/fusion/iterator/deref.hpp | 20 +---
   sandbox/SOC/2009/fusion/boost/fusion/iterator/deref_data.hpp | 19 ---
   sandbox/SOC/2009/fusion/boost/fusion/iterator/detail/advance.hpp | 16 +-
   sandbox/SOC/2009/fusion/boost/fusion/iterator/detail/distance.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/iterator/distance.hpp | 20 +---
   sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp | 21 +---
   sandbox/SOC/2009/fusion/boost/fusion/iterator/iterator_facade.hpp | 41 ++++----
   sandbox/SOC/2009/fusion/boost/fusion/iterator/key_of.hpp | 18 ---
   sandbox/SOC/2009/fusion/boost/fusion/iterator/next.hpp | 18 ---
   sandbox/SOC/2009/fusion/boost/fusion/iterator/prior.hpp | 18 ---
   sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of.hpp | 16 --
   sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of_data.hpp | 18 ---
   sandbox/SOC/2009/fusion/boost/fusion/mpl/at.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/mpl/back.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/mpl/begin.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/mpl/clear.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/mpl/empty.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/mpl/end.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/mpl/erase.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/mpl/erase_key.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/mpl/front.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/mpl/fusion_iterator.hpp | 10 +-
   sandbox/SOC/2009/fusion/boost/fusion/mpl/has_key.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/mpl/insert.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/mpl/insert_range.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/mpl/pop_back.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/mpl/pop_front.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/mpl/push_back.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/mpl/push_front.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/mpl/size.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/enable_comparison.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/equal_to.hpp | 12 +-
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater_equal.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less_equal.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/not_equal_to.hpp | 12 +-
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/equal_to.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater_equal.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less_equal.hpp | 10 +-
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/not_equal_to.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/sequence/convert.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at.hpp | 25 +---
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp | 24 +----
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/back.hpp | 10 -
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/begin.hpp | 20 +---
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/empty.hpp | 20 +---
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/end.hpp | 19 ---
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/ext_/segments.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/front.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/has_key.hpp | 19 ---
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/size.hpp | 19 ---
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at.hpp | 19 ---
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_key.hpp | 18 ---
   sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/in.hpp | 14 +-
   sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/manip.hpp | 28 +++---
   sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/out.hpp | 14 +-
   sandbox/SOC/2009/fusion/boost/fusion/sequence/io/in.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/sequence/io/out.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/sequence/sequence_facade.hpp | 81 ++++-------------
   sandbox/SOC/2009/fusion/boost/fusion/support/category_of.hpp | 14 +-
   sandbox/SOC/2009/fusion/boost/fusion/support/deduce.hpp | 90 ++++++++++++++++----
   sandbox/SOC/2009/fusion/boost/fusion/support/deduce_sequence.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/support/internal/is_explicitly_convertible.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/support/internal/ref.hpp | 140 +++++++++++++++++++++++++------
   sandbox/SOC/2009/fusion/boost/fusion/support/internal/workaround.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/support/is_iterator.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/support/is_sequence.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/support/is_view.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/support/iterator_base.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/support/pair.hpp | 16 +-
   sandbox/SOC/2009/fusion/boost/fusion/support/sequence_base.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/support/unused.hpp | 9 +
   sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple.hpp | 21 +++-
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/begin_impl.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_data_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_impl.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/end_impl.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_iterator.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/key_of_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/next_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/size_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/value_of_data_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/value_of_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/at_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/begin_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/end_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/value_at_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/begin_impl.hpp | 10 +-
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_data_impl.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/end_impl.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/equal_to_impl.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_iterator.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/key_of_impl.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/next_impl.hpp | 10 +-
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/value_of_impl.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/view/nview/detail/next_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/nview/detail/prior_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/nview/nview.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/begin_impl.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_data_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/end_impl.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/key_of_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/next_impl.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/prior_impl.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/value_of_data_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/value_of_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/repetitive_view.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/at_impl.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/begin_impl.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_data_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/end_impl.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/key_of_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/next_impl.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/prior_impl.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_fwd.hpp | 9 +
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_iterator.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_at_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_of_data_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_of_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/at_impl.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/begin_impl.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/deref_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/end_impl.hpp | 8
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/next_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/prior_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/value_of_impl.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp | 18 +++
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/begin_impl.hpp | 22 ++--
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/deref_data_impl.hpp | 10 +-
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/deref_impl.hpp | 10 +-
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/end_impl.hpp | 20 ++--
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/key_of_impl.hpp | 10 +-
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/next_impl.hpp | 10 +-
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/transform_view_iterator.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_of_data_impl.hpp | 10 +-
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_of_impl.hpp | 10 +-
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/begin_impl.hpp | 16 +--
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/end_impl.hpp | 10 +-
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp | 2
   sandbox/SOC/2009/fusion/libs/fusion/example/cookbook/do_the_bind.cpp | 50 +++++-----
   sandbox/SOC/2009/fusion/libs/fusion/example/extension/vtuple/tuple142plus.cpp | 28 +++---
   sandbox/SOC/2009/fusion/libs/fusion/example/performance/functional.cpp | 6
   sandbox/SOC/2009/fusion/libs/fusion/example/performance/measure.hpp | 4
   sandbox/SOC/2009/fusion/libs/fusion/example/performance/sequence_efficiency.cpp | 14 +-
   sandbox/SOC/2009/fusion/libs/fusion/example/performance/zip_efficiency.cpp | 8
   sandbox/SOC/2009/fusion/libs/fusion/test/suite1/algorithm/replace_if.cpp | 3
   sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_class.cpp | 3
   sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_class_named.cpp | 5
   sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_struct.cpp | 3
   sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_struct_named.cpp | 5
   sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_tpl_class.cpp | 3
   sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_tpl_struct.cpp | 3
   sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_class.cpp | 3
   sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_class_named.cpp | 5
   sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_struct.cpp | 3
   sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_struct_named.cpp | 5
   sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_tpl_class.cpp | 3
   sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_tpl_struct.cpp | 3
   sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/construction.hpp | 3
   sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/define_assoc_struct.cpp | 3
   sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/define_assoc_tpl_struct.cpp | 3
   sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/define_struct.cpp | 3
   sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/define_tpl_struct.cpp | 3
   sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/make.hpp | 5
   sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/misc.hpp | 3
   sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/vector_n.cpp | 3
   346 files changed, 1742 insertions(+), 1563 deletions(-)

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_assoc_class.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_assoc_class.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_assoc_class.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -60,6 +60,7 @@
         (1)TEMPLATE_PARAMS_SEQ, \
         (1)NAME_SEQ, \
         assoc_struct_tag, \
+ 0, \
         BOOST_PP_CAT(BOOST_FUSION_ADAPT_ASSOC_CLASS_FILLER_0 ATTRIBUTES,_END), \
         BOOST_FUSION_ADAPT_ASSOC_CLASS_C)
 
@@ -68,6 +69,16 @@
         (0), \
         (0)(NAME), \
         assoc_struct_tag, \
+ 0, \
+ BOOST_PP_CAT(BOOST_FUSION_ADAPT_ASSOC_CLASS_FILLER_0 ATTRIBUTES,_END), \
+ BOOST_FUSION_ADAPT_ASSOC_CLASS_C)
+
+#define BOOST_FUSION_ADAPT_ASSOC_CLASS_AS_VIEW(NAME, ATTRIBUTES) \
+ BOOST_FUSION_ADAPT_STRUCT_BASE( \
+ (0), \
+ (0)(NAME), \
+ assoc_struct_tag, \
+ 1, \
         BOOST_PP_CAT(BOOST_FUSION_ADAPT_ASSOC_CLASS_FILLER_0 ATTRIBUTES,_END), \
         BOOST_FUSION_ADAPT_ASSOC_CLASS_C)
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_assoc_class_named.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_assoc_class_named.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_assoc_class_named.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -17,7 +17,7 @@
     BOOST_FUSION_ADAPT_STRUCT_DEFINE_PROXY_TYPE_IMPL( \
         WRAPPED_TYPE,(0)NAMESPACE_SEQ,NAME) \
                                                                                 \
- BOOST_FUSION_ADAPT_ASSOC_CLASS( \
+ BOOST_FUSION_ADAPT_ASSOC_CLASS_AS_VIEW( \
         BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DECLARATION((0)NAMESPACE_SEQ)NAME, \
         ATTRIBUTES)
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_class.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_class.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_class.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -45,6 +45,7 @@
         (1)TEMPLATE_PARAMS_SEQ, \
         (1)NAME_SEQ, \
         struct_tag, \
+ 0, \
         BOOST_PP_CAT(BOOST_FUSION_ADAPT_CLASS_FILLER_0 ATTRIBUTES,_END), \
         BOOST_FUSION_ADAPT_CLASS_C)
 
@@ -53,8 +54,17 @@
         (0), \
         (0)(NAME), \
         struct_tag, \
+ 0, \
         BOOST_PP_CAT(BOOST_FUSION_ADAPT_CLASS_FILLER_0 ATTRIBUTES,_END), \
         BOOST_FUSION_ADAPT_CLASS_C)
 
+#define BOOST_FUSION_ADAPT_CLASS_AS_VIEW(NAME, ATTRIBUTES) \
+ BOOST_FUSION_ADAPT_STRUCT_BASE( \
+ (0), \
+ (0)(NAME), \
+ struct_tag, \
+ 1, \
+ BOOST_PP_CAT(BOOST_FUSION_ADAPT_CLASS_FILLER_0 ATTRIBUTES,_END), \
+ BOOST_FUSION_ADAPT_CLASS_C)
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_class_named.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_class_named.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_class_named.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -19,7 +19,7 @@
     BOOST_FUSION_ADAPT_STRUCT_DEFINE_PROXY_TYPE_IMPL( \
         WRAPPED_TYPE,(0)NAMESPACE_SEQ,NAME) \
                                                                                 \
- BOOST_FUSION_ADAPT_CLASS( \
+ BOOST_FUSION_ADAPT_CLASS_AS_VIEW( \
         BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DECLARATION((0)NAMESPACE_SEQ)NAME, \
         ATTRIBUTES)
 

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -17,10 +17,10 @@
     template<typename>
     struct begin_impl;
 
- template <>
+ template<>
     struct begin_impl<array_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,13 +10,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_impl;
 
- template <>
+ template<>
     struct deref_impl<array_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -14,13 +14,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct end_impl;
 
- template <>
+ template<>
     struct end_impl<array_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/value_at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/value_at_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -14,10 +14,10 @@
     template<typename>
     struct value_at_impl;
 
- template <>
+ template<>
     struct value_at_impl<array_tag>
     {
- template <typename Seq, typename N>
+ template<typename Seq, typename N>
         struct apply
         {
             typedef typename

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,13 +10,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_impl;
 
- template <>
+ template<>
     struct value_of_impl<array_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
           : detail::remove_reference<
                 typename detail::remove_reference<It>::type::seq_type

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/class/extension.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/class/extension.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/class/extension.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -14,7 +14,7 @@
 {
     namespace detail
     {
- template <typename T, typename Dummy>
+ template<typename T, typename Dummy>
         struct get_identity
           : identity<T>
         {};
@@ -22,7 +22,7 @@
 
     namespace extension
     {
- template <typename T, int N>
+ template<typename T, int N>
         struct class_member_proxy;
     }
 }}

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct advance_impl;
 
- template <>
+ template<>
     struct advance_impl<mpl_iterator_tag>
     {
- template <typename It, typename N>
+ template<typename It, typename N>
         struct apply
         {
             typedef

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/at_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -16,10 +16,10 @@
     template<typename>
     struct at_impl;
 
- template <>
+ template<>
     struct at_impl<mpl_sequence_tag>
     {
- template <typename Seq, typename N>
+ template<typename Seq, typename N>
         struct apply
         {
             typedef typename

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -14,13 +14,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct begin_impl;
 
- template <>
+ template<>
     struct begin_impl<mpl_sequence_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -25,22 +25,22 @@
 
     namespace detail
     {
- template <typename Category>
+ template<typename Category>
         struct mpl_iterator_category;
 
- template <>
+ template<>
         struct mpl_iterator_category<mpl::forward_iterator_tag>
         {
             typedef forward_traversal_tag type;
         };
 
- template <>
+ template<>
         struct mpl_iterator_category<mpl::bidirectional_iterator_tag>
         {
             typedef bidirectional_traversal_tag type;
         };
 
- template <>
+ template<>
         struct mpl_iterator_category<mpl::random_access_iterator_tag>
         {
             typedef random_access_traversal_tag 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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_impl;
 
- template <>
+ template<>
     struct deref_impl<mpl_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct distance_impl;
 
- template <>
+ template<>
     struct distance_impl<mpl_iterator_tag>
     {
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         struct apply
           : mpl::distance<
                 typename detail::identity<It1>::type

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/empty_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/empty_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/empty_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct empty_impl;
 
- template <>
+ template<>
     struct empty_impl<mpl_sequence_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
           : mpl::empty<typename detail::identity<Seq>::type>
         {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -14,13 +14,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct end_impl;
 
- template <>
+ template<>
     struct end_impl<mpl_sequence_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct equal_to_impl;
 
- template <>
+ template<>
     struct equal_to_impl<mpl_iterator_tag>
     {
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         struct apply
           : is_same<
                 typename detail::identity<It1>::type

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,13 +10,13 @@
 
 namespace boost { namespace fusion { namespace detail
 {
- template <typename It, typename Active = void>
+ template<typename It, typename Active = void>
     struct get_mpl_it
     {
         typedef It type;
     };
 
- template <typename It>
+ template<typename It>
     struct get_mpl_it<It, typename It::void_>
     {
         typedef typename It::it_type type;

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/has_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/has_key_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/has_key_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct has_key_impl;
 
- template <>
+ template<>
     struct has_key_impl<mpl_sequence_tag>
     {
- template <typename Seq, typename Key>
+ template<typename Seq, typename Key>
         struct apply
           : mpl::has_key<typename detail::identity<Seq>::type, Key>
         {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -23,29 +23,29 @@
 
     namespace extension
     {
- template <typename>
+ template<typename>
         struct value_of_impl;
 
- template <typename>
+ template<typename>
         struct equal_to_impl;
 
- template <typename>
+ template<typename>
         struct deref_impl;
 
- template <typename>
+ template<typename>
         struct next_impl;
 
- template <typename>
+ template<typename>
         struct prior_impl;
 
- template <typename>
+ template<typename>
         struct advance_impl;
 
- template <typename>
+ template<typename>
         struct distance_impl;
     }
 
- template <typename It>
+ template<typename It>
     struct mpl_iterator
       : iterator_facade<
             mpl_iterator<It>
@@ -56,49 +56,49 @@
         typedef void void_;
         typedef It it_type;
 
- template <typename>
+ template<typename>
         struct value_of
           : extension::value_of_impl<
                 typename mpl::apply1<mpl::always<mpl_iterator_tag>,It>::type
>::template apply<It>
         {};
 
- template <typename, typename It2>
+ template<typename, typename It2>
         struct equal_to
           : extension::equal_to_impl<
                 typename mpl::apply1<mpl::always<mpl_iterator_tag>,It>::type
>::template apply<It,It2>
         {};
 
- template <typename>
+ template<typename>
         struct deref
           : extension::deref_impl<
                 typename mpl::apply1<mpl::always<mpl_iterator_tag>,It>::type
>::template apply<It>
         {};
 
- template <typename>
+ template<typename>
         struct next
           : extension::next_impl<
                 typename mpl::apply1<mpl::always<mpl_iterator_tag>,It>::type
>::template apply<It>
         {};
 
- template <typename>
+ template<typename>
         struct prior
           : extension::prior_impl<
                 typename mpl::apply1<mpl::always<mpl_iterator_tag>,It>::type
>::template apply<It>
         {};
 
- template <typename, typename N>
+ template<typename, typename N>
         struct advance
           : extension::advance_impl<
                 typename mpl::apply1<mpl::always<mpl_iterator_tag>,It>::type
>::template apply<It,N>
         {};
 
- template <typename, typename It2>
+ template<typename, typename It2>
         struct distance
           : extension::distance_impl<
                 typename mpl::apply1<mpl::always<mpl_iterator_tag>,It>::type

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct next_impl;
 
- template <>
+ template<>
     struct next_impl<mpl_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct prior_impl;
 
- template <>
+ template<>
     struct prior_impl<mpl_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/size_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/size_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/size_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -16,10 +16,10 @@
     template<typename>
     struct size_impl;
 
- template <>
+ template<>
     struct size_impl<mpl_sequence_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
           : mpl::size<typename detail::identity<Seq>::type>
         {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -38,7 +38,7 @@
               : mpl::equal_to<typename T::category, Category>
             {};
 
- template <typename T, typename Enable>
+ template<typename T, typename Enable>
             struct tag_of_fallback;
 
             template<typename T>

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_at_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_at_impl;
 
- template <>
+ template<>
     struct value_at_impl<mpl_sequence_tag>
     {
- template <typename Seq, typename N>
+ template<typename Seq, typename N>
         struct apply
           : mpl::at<typename detail::identity<Seq>::type, N>
         {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_impl;
 
- template <>
+ template<>
     struct value_of_impl<mpl_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
           : mpl::deref<typename detail::identity<It>::type>
         {};

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/po_array/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/po_array/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/po_array/begin_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -15,10 +15,10 @@
     template<typename>
     struct begin_impl;
 
- template <>
+ template<>
     struct begin_impl<po_array_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/po_array/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/po_array/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/po_array/deref_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_impl;
 
- template <>
+ template<>
     struct deref_impl<po_array_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/po_array/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/po_array/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/po_array/end_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -14,13 +14,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct end_impl;
 
- template <>
+ template<>
     struct end_impl<po_array_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef typename detail::remove_reference<Seq>::type seq;

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/po_array/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/po_array/value_at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/po_array/value_at_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -15,10 +15,10 @@
     template<typename>
     struct value_at_impl;
 
- template <>
+ template<>
     struct value_at_impl<po_array_tag>
     {
- template <typename Seq, typename N>
+ template<typename Seq, typename N>
         struct apply
           : remove_extent<typename detail::remove_reference<Seq>::type>
         {};

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/po_array/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/po_array/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/po_array/value_of_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_impl;
 
- template <>
+ template<>
     struct value_of_impl<po_array_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
           : remove_extent<
                 typename detail::remove_reference<

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -22,6 +22,7 @@
 #include <boost/preprocessor/seq/seq.hpp>
 #include <boost/preprocessor/tuple/eat.hpp>
 #include <boost/preprocessor/tuple/elem.hpp>
+#include <boost/mpl/bool.hpp>
 #include <boost/mpl/tag.hpp>
 
 #define BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME_TEMPLATE_PARAMS(SEQ) \
@@ -130,7 +131,12 @@
     };
 
 #define BOOST_FUSION_ADAPT_STRUCT_BASE( \
- TEMPLATE_PARAMS_SEQ,NAME_SEQ,TAG,ATTRIBUTES_SEQ,ATTRIBUTES_CALLBACK) \
+ TEMPLATE_PARAMS_SEQ, \
+ NAME_SEQ, \
+ TAG, \
+ IS_VIEW, \
+ ATTRIBUTES_SEQ, \
+ ATTRIBUTES_CALLBACK) \
                                                                                 \
 namespace boost \
 { \
@@ -158,6 +164,16 @@
             struct struct_size<BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)> \
               : mpl::int_<BOOST_PP_SEQ_SIZE(ATTRIBUTES_SEQ)> \
             {}; \
+ \
+ template< \
+ BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS( \
+ TEMPLATE_PARAMS_SEQ) \
+ > \
+ struct struct_is_view< \
+ BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) \
+ > \
+ : mpl::BOOST_PP_IF(IS_VIEW,true_,false_) \
+ {}; \
         } \
     } \
                                                                                 \

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -17,10 +17,10 @@
     template<typename>
     struct at_impl;
 
- template <>
+ template<>
     struct at_impl<struct_tag>
     {
- template <typename Seq, typename N>
+ template<typename Seq, typename N>
         struct apply
           : extension::struct_member<
                 typename detail::identity<Seq>::type
@@ -29,7 +29,7 @@
         {};
     };
 
- template <>
+ template<>
     struct at_impl<assoc_struct_tag>
       : at_impl<struct_tag>
     {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -17,10 +17,10 @@
     template<typename>
     struct begin_impl;
 
- template <>
+ template<>
     struct begin_impl<struct_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef
@@ -40,10 +40,10 @@
         };
     };
 
- template <>
+ template<>
     struct begin_impl<assoc_struct_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/define_struct.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/define_struct.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/define_struct.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -276,8 +276,8 @@
         template<typename Arg> \
         explicit \
         NAME(Arg&& arg \
- , typename enable_if< \
- detail::is_explicitly_convertible< \
+ , typename boost::enable_if< \
+ boost::fusion::detail::is_explicitly_convertible< \
                     Arg&& \
                   , BOOST_PP_TUPLE_ELEM( \
                       ATTRIBUTE_TUPEL_SIZE,0,BOOST_PP_SEQ_HEAD(ATTRIBUTES_SEQ)) \

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,10 +10,10 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_data_impl;
 
- template <>
+ template<>
     struct deref_data_impl<struct_iterator_tag>
       : deref_impl<struct_iterator_tag>
     {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,13 +10,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_impl;
 
- template <>
+ template<>
     struct deref_impl<struct_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
            typedef typename detail::remove_reference<It>::type it;

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -14,13 +14,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct end_impl;
 
- template <>
+ template<>
     struct end_impl<struct_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef
@@ -40,10 +40,10 @@
         };
     };
 
- template <>
+ template<>
     struct end_impl<assoc_struct_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -33,11 +33,14 @@
         template<typename Seq, int N>
         struct struct_member_name;
 
- template<typename Seq, int N>
- struct struct_assoc_key;
-
         template<typename Seq>
         struct struct_size;
+
+ template<typename Seq>
+ struct struct_is_view;
+
+ template<typename Seq, int N>
+ struct struct_assoc_key;
     }
 }}
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/is_sequence_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/is_sequence_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/is_sequence_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -26,7 +26,7 @@
         {};
     };
 
- template <>
+ template<>
     struct is_sequence_impl<assoc_struct_tag>
       : is_sequence_impl<struct_tag>
     {};

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/is_view_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/is_view_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/is_view_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,8 +10,6 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_IS_VIEW_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_IS_VIEW_IMPL_HPP
 
-#include <boost/mpl/bool.hpp>
-
 namespace boost { namespace fusion { namespace extension
 {
     template<typename>
@@ -22,11 +20,11 @@
     {
         template<typename Seq>
         struct apply
- : mpl::false_
+ : struct_is_view<typename detail::identity<Seq>::type>
         {};
     };
 
- template <>
+ template<>
     struct is_view_impl<assoc_struct_tag>
       : is_view_impl<struct_tag>
     {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,13 +10,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct key_of_impl;
 
- template <>
+ template<>
     struct key_of_impl<struct_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/size_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/size_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/size_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -15,16 +15,16 @@
     template<typename>
     struct size_impl;
 
- template <>
+ template<>
     struct size_impl<struct_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
           : struct_size<typename detail::identity<Seq>::type>
         {};
     };
 
- template <>
+ template<>
     struct size_impl<assoc_struct_tag>
       : size_impl<struct_tag>
     {};

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_at_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -15,16 +15,16 @@
     template<typename>
     struct value_at_impl;
 
- template <>
+ template<>
     struct value_at_impl<struct_tag>
     {
- template <typename Seq, typename N>
+ template<typename Seq, typename N>
         struct apply
           : struct_member<typename detail::identity<Seq>::type, N::value>
         {};
     };
 
- template <>
+ template<>
     struct value_at_impl<assoc_struct_tag>
       : value_at_impl<struct_tag>
     {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,10 +10,10 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_data_impl;
 
- template <>
+ template<>
     struct value_of_data_impl<struct_iterator_tag>
       : value_of_impl<struct_iterator_tag>
     {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,13 +10,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_impl;
 
- template <>
+ template<>
     struct value_of_impl<struct_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/at_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,10 +10,10 @@
     template<typename>
     struct at_impl;
 
- template <>
+ template<>
     struct at_impl<BOOST_FUSION_ADAPTED_TUPLE_TAG>
     {
- template <typename Seq, typename N>
+ template<typename Seq, typename N>
         struct apply
         {
             typedef typename

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/begin_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,10 +13,10 @@
     template<typename>
     struct begin_impl;
 
- template <>
+ template<>
     struct begin_impl<BOOST_FUSION_ADAPTED_TUPLE_TAG>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/deref_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,13 +10,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_impl;
 
- template <>
+ template<>
     struct deref_impl<BOOST_FUSION_ADAPTED_TUPLE_ITERATOR_TAG>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/end_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,13 +10,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct end_impl;
 
- template <>
+ template<>
     struct end_impl<BOOST_FUSION_ADAPTED_TUPLE_TAG>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/size_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/size_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/size_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,10 +13,10 @@
     template<typename>
     struct size_impl;
 
- template <>
+ template<>
     struct size_impl<BOOST_FUSION_ADAPTED_TUPLE_TAG>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
           : mpl::int_<
 #ifdef BOOST_FUSION_ADAPTED_STD_TUPLE

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/tag_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/tag_of.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/tag_of.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -58,7 +58,7 @@
 #else
 # ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
 # define BOOST_FUSION_TUPLE_TAG_OF_SPECIALIZATION(MODIFIER,_)\
- template <\
+ template<\
                 class T0, class T1, class T2, class T3, class T4, \
                 class T5, class T6, class T7, class T8, class T9\
>\
@@ -70,20 +70,20 @@
                 typedef boost_tuple_tag type;\
             };\
             \
- template <class Head, class Tail>\
+ template<class Head, class Tail>\
             struct tag_of<tuples::cons<Head, Tail> MODIFIER,void>\
             {\
                 typedef boost_tuple_tag type;\
             };\
             \
- template <>\
+ template<>\
             struct tag_of<tuples::null_type MODIFIER,void>\
             {\
                 typedef boost_tuple_tag type;\
             };
 # else
 # define BOOST_FUSION_TUPLE_TAG_OF_SPECIALIZATION(MODIFIER,_)\
- template <\
+ template<\
                 class T0, class T1, class T2, class T3, class T4, \
                 class T5, class T6, class T7, class T8, class T9\
>\
@@ -94,13 +94,13 @@
                 typedef boost_tuple_tag type;\
             };\
             \
- template <class Head, class Tail>\
+ template<class Head, class Tail>\
             struct tag_of<tuples::cons<Head, Tail> MODIFIER>\
             {\
                 typedef boost_tuple_tag type;\
             };\
             \
- template <>\
+ template<>\
             struct tag_of<tuples::null_type MODIFIER>\
             {\
                 typedef boost_tuple_tag type;\
@@ -159,7 +159,7 @@
         };
 # endif
 #else
- template <
+ template<
             class T0, class T1, class T2, class T3, class T4,
             class T5, class T6, class T7, class T8, class T9
>
@@ -170,7 +170,7 @@
             typedef fusion::fusion_sequence_tag type;
         };
 
- template <
+ template<
             class T0, class T1, class T2, class T3, class T4,
             class T5, class T6, class T7, class T8, class T9
>
@@ -181,25 +181,25 @@
             typedef fusion::fusion_sequence_tag type;
         };
 
- template <class Head, class Tail>
+ template<class Head, class Tail>
         struct sequence_tag<tuples::cons<Head, Tail> >
         {
             typedef fusion::fusion_sequence_tag type;
         };
 
- template <class Head, class Tail>
+ template<class Head, class Tail>
         struct sequence_tag<tuples::cons<Head, Tail> const>
         {
             typedef fusion::fusion_sequence_tag type;
         };
 
- template <>
+ template<>
         struct sequence_tag<tuples::null_type>
         {
             typedef fusion::fusion_sequence_tag type;
         };
 
- template <>
+ template<>
         struct sequence_tag<tuples::null_type const>
         {
             typedef fusion::fusion_sequence_tag type;

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/value_at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/value_at_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -11,10 +11,10 @@
     template<typename>
     struct value_at_impl;
 
- template <>
+ template<>
     struct value_at_impl<BOOST_FUSION_ADAPTED_TUPLE_TAG>
     {
- template <typename Seq, typename N>
+ template<typename Seq, typename N>
         struct apply
           : BOOST_FUSION_ADAPTED_TUPLE_NAMESPACE(element)<
                 N::value

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/tuple/value_of_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -7,13 +7,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_impl;
 
- template <>
+ template<>
     struct value_of_impl<BOOST_FUSION_ADAPTED_TUPLE_ITERATOR_TAG>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -31,9 +31,9 @@
 #include <boost/fusion/adapted/detail/struct/key_of_impl.hpp>
 #include <boost/fusion/adapted/detail/struct/value_of_data_impl.hpp>
 
-#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_0(X, Y, Z)\
+#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_0(X, Y, Z) \
     ((X, Y, Z)) BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_1
-#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_1(X, Y, Z)\
+#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_1(X, Y, Z) \
     ((X, Y, Z)) BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_0
 #define BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_0_END
 #define BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_1_END
@@ -65,6 +65,7 @@
         (1)TEMPLATE_PARAMS_SEQ, \
         (1)NAME_SEQ, \
         assoc_struct_tag, \
+ 0, \
         BOOST_PP_CAT(BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_0 ATTRIBUTES,_END), \
         BOOST_FUSION_ADAPT_ASSOC_STRUCT_C)
 
@@ -73,6 +74,16 @@
         (0), \
         (0)(NAME), \
         assoc_struct_tag, \
+ 0, \
+ BOOST_PP_CAT(BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_0 ATTRIBUTES,_END), \
+ BOOST_FUSION_ADAPT_ASSOC_STRUCT_C)
+
+#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_AS_VIEW(NAME, ATTRIBUTES) \
+ BOOST_FUSION_ADAPT_STRUCT_BASE( \
+ (0), \
+ (0)(NAME), \
+ assoc_struct_tag, \
+ 1, \
         BOOST_PP_CAT(BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_0 ATTRIBUTES,_END), \
         BOOST_FUSION_ADAPT_ASSOC_STRUCT_C)
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_assoc_struct_named.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_assoc_struct_named.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_assoc_struct_named.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -11,11 +11,12 @@
 #include <boost/fusion/adapted/struct/adapt_assoc_struct.hpp>
 #include <boost/fusion/adapted/detail/struct/proxy_type.hpp>
 
-#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED_C( \
- TEMPLATE_PARAMS_SEQ,NAME_SEQ, I, ATTRIBUTE) \
- \
- BOOST_FUSION_ADAPT_ASSOC_STRUCT_C_BASE( \
- TEMPLATE_PARAMS_SEQ,NAME_SEQ, I, obj., ATTRIBUTE)
+#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED_FILLER_0(X, Y, Z) \
+ (X, obj.Y, Z) BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED_FILLER_1
+#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED_FILLER_1(X, Y, Z) \
+ (X, obj.Y, Z) BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED_FILLER_0
+#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED_FILLER_0_END
+#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED_FILLER_1_END
 
 #define BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED_NS( \
     WRAPPED_TYPE, NAMESPACE_SEQ, NAME, ATTRIBUTES) \
@@ -23,13 +24,10 @@
     BOOST_FUSION_ADAPT_STRUCT_DEFINE_PROXY_TYPE_IMPL( \
         WRAPPED_TYPE,(0)NAMESPACE_SEQ,NAME) \
                                                                                 \
- BOOST_FUSION_ADAPT_STRUCT_BASE( \
- (0), \
- (0)(BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DECLARATION( \
- (0)NAMESPACE_SEQ)NAME), \
- assoc_struct_tag, \
- BOOST_PP_CAT(BOOST_FUSION_ADAPT_ASSOC_STRUCT_FILLER_0 ATTRIBUTES,_END), \
- BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED_C)
+ BOOST_FUSION_ADAPT_ASSOC_STRUCT_AS_VIEW( \
+ BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DECLARATION((0)NAMESPACE_SEQ)NAME, \
+ BOOST_PP_CAT( \
+ BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED_FILLER_0 ATTRIBUTES,_END))
 
 #define BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED(WRAPPED_TYPE, NAME, ATTRIBUTES) \
     BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED_NS( \

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -42,6 +42,7 @@
         (1)TEMPLATE_PARAMS_SEQ, \
         (1)NAME_SEQ, \
         struct_tag, \
+ 0, \
         BOOST_PP_CAT(BOOST_FUSION_ADAPT_STRUCT_FILLER_0 ATTRIBUTES,_END), \
         BOOST_FUSION_ADAPT_STRUCT_C)
 
@@ -50,6 +51,16 @@
         (0), \
         (0)(NAME), \
         struct_tag, \
+ 0, \
+ BOOST_PP_CAT(BOOST_FUSION_ADAPT_STRUCT_FILLER_0 ATTRIBUTES,_END), \
+ BOOST_FUSION_ADAPT_STRUCT_C)
+
+#define BOOST_FUSION_ADAPT_STRUCT_AS_VIEW(NAME, ATTRIBUTES) \
+ BOOST_FUSION_ADAPT_STRUCT_BASE( \
+ (0), \
+ (0)(NAME), \
+ struct_tag, \
+ 1, \
         BOOST_PP_CAT(BOOST_FUSION_ADAPT_STRUCT_FILLER_0 ATTRIBUTES,_END), \
         BOOST_FUSION_ADAPT_STRUCT_C)
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_struct_named.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_struct_named.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_struct_named.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -14,11 +14,12 @@
 #include <boost/fusion/adapted/detail/struct/proxy_type.hpp>
 #include <boost/preprocessor/empty.hpp>
 
-#define BOOST_FUSION_ADAPT_STRUCT_NAMED_C( \
- TEMPLATE_PARAMS_SEQ, NAME_SEQ, I, ATTRIBUTE) \
- \
- BOOST_FUSION_ADAPT_STRUCT_C_BASE( \
- TEMPLATE_PARAMS_SEQ,NAME_SEQ, I, obj., ATTRIBUTE, 2)
+#define BOOST_FUSION_ADAPT_STRUCT_NAMED_FILLER_0(X, Y) \
+ (X, obj.Y) BOOST_FUSION_ADAPT_STRUCT_NAMED_FILLER_1
+#define BOOST_FUSION_ADAPT_STRUCT_NAMED_FILLER_1(X, Y) \
+ (X, obj.Y) BOOST_FUSION_ADAPT_STRUCT_NAMED_FILLER_0
+#define BOOST_FUSION_ADAPT_STRUCT_NAMED_FILLER_0_END
+#define BOOST_FUSION_ADAPT_STRUCT_NAMED_FILLER_1_END
 
 #define BOOST_FUSION_ADAPT_STRUCT_NAMED_NS( \
     WRAPPED_TYPE, NAMESPACE_SEQ, NAME, ATTRIBUTES) \
@@ -26,13 +27,9 @@
     BOOST_FUSION_ADAPT_STRUCT_DEFINE_PROXY_TYPE_IMPL( \
         WRAPPED_TYPE,(0)NAMESPACE_SEQ,NAME) \
                                                                                 \
- BOOST_FUSION_ADAPT_STRUCT_BASE( \
- (0), \
- (0)(BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DECLARATION( \
- (0)NAMESPACE_SEQ)NAME), \
- struct_tag, \
- BOOST_PP_CAT(BOOST_FUSION_ADAPT_STRUCT_FILLER_0 ATTRIBUTES,_END), \
- BOOST_FUSION_ADAPT_STRUCT_NAMED_C)
+ BOOST_FUSION_ADAPT_STRUCT_AS_VIEW( \
+ BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DECLARATION((0)NAMESPACE_SEQ)NAME, \
+ BOOST_PP_CAT(BOOST_FUSION_ADAPT_STRUCT_NAMED_FILLER_0 ATTRIBUTES,_END))
 
 #define BOOST_FUSION_ADAPT_STRUCT_NAMED(WRAPPED_TYPE, NAME, ATTRIBUTES) \
     BOOST_FUSION_ADAPT_STRUCT_NAMED_NS( \

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -17,7 +17,7 @@
 {
     namespace result_of
     {
- template <typename Seq, typename State, typename F>
+ template<typename Seq, typename State, typename F>
         struct accumulate
           : fold<Seq, State, F>
         {
@@ -26,7 +26,7 @@
         };
     }
 
- template <typename Seq, typename State, typename F>
+ template<typename Seq, typename State, typename F>
     inline typename result_of::accumulate<
         BOOST_FUSION_R_ELSE_CLREF(Seq)
       , BOOST_FUSION_R_ELSE_CLREF(State)
@@ -43,7 +43,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Seq, typename State, typename F>
+ template<typename Seq, typename State, typename F>
     inline typename
         result_of::accumulate<Seq&, State const&, F>::type
     accumulate(Seq& seq,State const& state,F f)

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -132,7 +132,7 @@
         }
     };
 
- template <typename StateRef, typename It, typename F>
+ template<typename StateRef, typename It, typename F>
     struct fold_apply
       : boost::result_of<
             F(

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/ext_/for_each_s.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/ext_/for_each_s.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/ext_/for_each_s.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -16,11 +16,11 @@
 // fwd declarations
 namespace boost { namespace fusion
 {
- template <typename Sequence, typename F>
+ template<typename Sequence, typename F>
     void
     for_each_s(Sequence& seq, F const& f);
 
- template <typename Sequence, typename F>
+ template<typename Sequence, typename F>
     void
     for_each_s(Sequence const& seq, F const& f);
 }}
@@ -66,21 +66,21 @@
 {
     namespace result_of
     {
- template <typename Sequence, typename F>
+ template<typename Sequence, typename F>
         struct for_each_s
         {
             typedef void type;
         };
     }
 
- template <typename Sequence, typename F>
+ template<typename Sequence, typename F>
     inline void
     for_each_s(Sequence& seq, F const& f)
     {
         detail::for_each_s(seq, f, traits::is_segmented<Sequence>());
     }
 
- template <typename Sequence, typename F>
+ template<typename Sequence, typename F>
     inline void
     for_each_s(Sequence const& seq, F const& 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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -25,7 +25,7 @@
 {
     namespace result_of
     {
- template <typename Seq, typename State, typename F>
+ template<typename Seq, typename State, typename F>
         struct fold
           : detail::fold_impl<
                 size<Seq>::value
@@ -47,7 +47,7 @@
         };
     }
 
- template <typename Seq, typename State, typename F>
+ template<typename Seq, typename State, typename F>
     inline typename result_of::fold<
         BOOST_FUSION_R_ELSE_CLREF(Seq)
       , BOOST_FUSION_R_ELSE_CLREF(State)
@@ -68,11 +68,9 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Seq, typename State, typename F>
+ template<typename Seq, typename State, typename F>
     inline typename result_of::fold<Seq&,State const&,F>::type
- fold(Seq& seq,
- State const& state,
- F f)
+ fold(Seq& seq,State const& state,F f)
     {
         return result_of::fold<Seq&,State const&,F>::call(
                 state, fusion::begin(seq), f);

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -20,7 +20,7 @@
 {
     namespace result_of
     {
- template <typename Seq, typename>
+ template<typename Seq, typename>
         struct for_each
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
@@ -30,7 +30,7 @@
         };
     }
 
- template <typename Seq, typename F>
+ template<typename Seq, typename F>
     inline typename
         result_of::for_each<
             BOOST_FUSION_R_ELSE_CLREF(Seq)
@@ -46,7 +46,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Seq, typename F>
+ template<typename Seq, typename F>
     inline typename result_of::for_each<Seq&,F>::type
     for_each(Seq& seq,F f)
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -21,7 +21,7 @@
 {
     namespace result_of
     {
- template <typename Seq, typename>
+ template<typename Seq, typename>
         struct all
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
@@ -31,7 +31,7 @@
         };
     }
 
- template <typename Seq, typename F>
+ template<typename Seq, typename F>
     inline typename
         result_of::all<
             BOOST_FUSION_R_ELSE_CLREF(Seq)
@@ -46,7 +46,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Seq, typename F>
+ template<typename Seq, typename F>
     inline typename result_of::all<Seq&, F>::type
     all(Seq& seq, F f)
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -41,7 +41,7 @@
 
     namespace result_of
     {
- template <typename Seq, typename>
+ template<typename Seq, typename>
         struct any
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
@@ -51,7 +51,7 @@
         };
     }
 
- template <typename Seq, typename F>
+ template<typename Seq, typename F>
     inline typename
         result_of::any<
             BOOST_FUSION_R_ELSE_CLREF(Seq)
@@ -66,7 +66,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Seq, typename F>
+ template<typename Seq, typename F>
     inline typename result_of::any<Seq&,F>::type
     any(Seq& seq, F f)
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -19,7 +19,7 @@
 {
     namespace result_of
     {
- template <typename Seq, typename>
+ template<typename Seq, typename>
         struct count
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
@@ -29,7 +29,7 @@
         };
     }
 
- template <typename Seq, typename T>
+ template<typename Seq, typename T>
     inline typename result_of::count<
         BOOST_FUSION_R_ELSE_CLREF(Seq)
       , BOOST_FUSION_R_ELSE_CLREF(T)
@@ -43,7 +43,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Seq, typename T>
+ template<typename Seq, typename T>
     inline typename result_of::count<Seq&, T const&>::type
     count(Seq& seq, T const& x)
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -40,7 +40,7 @@
 
     namespace result_of
     {
- template <typename Seq, typename>
+ template<typename Seq, typename>
         struct count_if
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
@@ -50,7 +50,7 @@
         };
     }
 
- template <typename Seq, typename F>
+ template<typename Seq, typename F>
     inline typename
         result_of::count_if<
             BOOST_FUSION_R_ELSE_CLREF(Seq)
@@ -66,7 +66,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Seq, typename F>
+ template<typename Seq, typename F>
     inline typename result_of::count_if<Seq&,F>::type
     count_if(Seq& seq, F f)
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -24,7 +24,7 @@
     template<int N>
     struct unrolled_all
     {
- template <typename It0, typename F>
+ template<typename It0, typename F>
         static bool
         call(It0 const& it0, BOOST_FUSION_RREF_ELSE_OBJ(F) f)
         {
@@ -63,7 +63,7 @@
     template<>
     struct unrolled_all<3>
     {
- template <typename It0, typename F>
+ template<typename It0, typename F>
         static bool
         call(It0 const& it0, BOOST_FUSION_RREF_ELSE_OBJ(F) f)
         {
@@ -88,7 +88,7 @@
     template<>
     struct unrolled_all<2>
     {
- template <typename It0, typename F>
+ template<typename It0, typename F>
         static bool
         call(It0 const& it0, BOOST_FUSION_RREF_ELSE_OBJ(F) f)
         {
@@ -106,7 +106,7 @@
     template<>
     struct unrolled_all<1>
     {
- template <typename It0, typename F>
+ template<typename It0, typename F>
         static bool
         call(It0 const& it0, BOOST_FUSION_RREF_ELSE_OBJ(F) f)
         {
@@ -117,7 +117,7 @@
     template<>
     struct unrolled_all<0>
     {
- template <typename It0, typename F>
+ template<typename It0, typename F>
         static BOOST_FUSION_CONSTEXPR
         bool
         call(It0 const& it0, BOOST_FUSION_RREF_ELSE_OBJ(F) f)

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -15,14 +15,14 @@
 
 namespace boost { namespace fusion { namespace detail
 {
- template <bool is_convertible>
+ template<bool is_convertible>
     struct compare_convertible;
 
     // T1 is convertible to T2 or vice versa
- template <>
+ template<>
     struct compare_convertible<true>
     {
- template <typename T1, typename T2>
+ template<typename T1, typename T2>
         static bool
         call(BOOST_FUSION_R_ELSE_CLREF(T1) x, BOOST_FUSION_R_ELSE_CLREF(T2) y)
         {
@@ -31,10 +31,10 @@
     };
 
     // T1 is NEITHER convertible to T2 NOR vice versa
- template <>
+ template<>
     struct compare_convertible<false>
     {
- template <typename T1, typename T2>
+ template<typename T1, typename T2>
         static BOOST_FUSION_CONSTEXPR
         bool
         call(BOOST_FUSION_R_ELSE_CLREF(T1) x, BOOST_FUSION_R_ELSE_CLREF(T2) y)
@@ -43,14 +43,20 @@
         }
     };
 
- template <typename T1Ref>
+ template<typename T1Ref>
     struct count_helper
     {
+#ifdef BOOST_NO_RVALUE_REFERENCES
+ typedef T1Ref x_type;
+#else
+ typedef typename remove_reference<T1Ref>::type& x_type;
+#endif
+
         count_helper(T1Ref x)
- : x(static_cast<T1Ref>(x))
+ : x(static_cast<x_type>(x))
         {}
 
- template <typename T2>
+ template<typename T2>
         bool
         operator()(BOOST_FUSION_R_ELSE_CLREF(T2) y)const
         {
@@ -69,7 +75,7 @@
>::call(static_cast<T1Ref>(x),BOOST_FUSION_FORWARD(T2,y));
         }
 
- T1Ref x;
+ x_type x;
     };
 }}}
 

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -27,10 +27,10 @@
 {
     namespace detail
     {
- template <typename Begin, typename End, typename Pred>
+ template<typename Begin, typename End, typename Pred>
         struct main_find_if;
 
- template <typename Begin, typename End, typename Pred>
+ template<typename Begin, typename End, typename Pred>
         struct next_find_if
           : main_find_if<
                 typename result_of::next<Begin>::type
@@ -39,7 +39,7 @@
>
         {};
 
- template <typename Begin, typename End, typename Pred>
+ template<typename Begin, typename End, typename Pred>
         struct main_find_if
           : mpl::eval_if<
                 mpl::or_<
@@ -64,7 +64,7 @@
         template<typename It, typename Pred, int N>
         struct unroll_again;
 
- template <typename It, typename Pred, int Offset>
+ template<typename It, typename Pred, int Offset>
         struct apply_offset_filter
           : mpl::apply1<
                 Pred
@@ -160,7 +160,7 @@
>
         {};
 
- template <typename Begin, typename End, typename Pred>
+ template<typename Begin, typename End, typename Pred>
         struct static_find_if
         {
             typedef typename
@@ -172,7 +172,7 @@
>::type
             type;
 
- template <typename It>
+ template<typename It>
             static type
             call(It const& it)
             {
@@ -183,11 +183,11 @@
             }
         };
 
- template <typename Begin, typename End, typename Pred>
+ template<typename Begin, typename End, typename Pred>
         struct static_seq_find_if
           : static_find_if<Begin, End, Pred>
         {
- template <typename Seq>
+ template<typename Seq>
             static typename static_find_if<Begin, End, Pred>::type
             call(BOOST_FUSION_R_ELSE_LREF(Seq) seq)
             {

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/ext_/find_if_s.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/ext_/find_if_s.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/ext_/find_if_s.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -222,7 +222,7 @@
     
     namespace result_of
     {
- template <typename Seq, typename Pred>
+ template<typename Seq, typename Pred>
         struct find_if_s
           : detail::static_find_if_s<Seq, Pred>
         {};
@@ -238,7 +238,7 @@
         return detail::static_find_if_s<Sequence, Pred>::call(seq);
     }
 
- template <typename Pred, typename Sequence>
+ template<typename Pred, typename Sequence>
     typename result_of::find_if_s<Sequence const, Pred>::type
     find_if_s(Sequence const& seq)
     {

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -25,7 +25,7 @@
 {
     namespace result_of
     {
- template <typename Seq, typename T>
+ template<typename Seq, typename T>
         struct find
           : detail::static_seq_find_if<
                 typename begin<Seq>::type
@@ -38,7 +38,7 @@
         };
     }
 
- template <typename T, typename Seq>
+ template<typename T, typename Seq>
     inline typename
         result_of::find<BOOST_FUSION_R_ELSE_CLREF(Seq), T>::type const
     find(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
@@ -47,7 +47,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename T, typename Seq>
+ template<typename T, typename Seq>
     inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
             result_of::find<,Seq,&, T>) const
     find(Seq& seq)

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_if.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_if.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -27,7 +27,7 @@
 {
     namespace result_of
     {
- template <typename Seq, typename Pred>
+ template<typename Seq, typename Pred>
         struct find_if
           : detail::static_find_if<
                 typename begin<Seq>::type
@@ -43,7 +43,7 @@
         };
     }
 
- template <typename Pred, typename Seq>
+ template<typename Pred, typename Seq>
     inline typename
         result_of::find_if<BOOST_FUSION_R_ELSE_CLREF(Seq), Pred>::type
     find_if(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
@@ -55,7 +55,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Pred, typename Seq>
+ template<typename Pred, typename Seq>
     inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
             result_of::find_if<,Seq,&,Pred>)
     find_if(Seq& seq)

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -23,7 +23,7 @@
 {
     namespace result_of
     {
- template <typename Seq, typename T>
+ template<typename Seq, typename T>
         struct find_key
           : detail::static_seq_find_if<
                 typename begin<Seq>::type
@@ -37,7 +37,7 @@
         };
     }
 
- template <typename T, typename Seq>
+ template<typename T, typename Seq>
     inline typename
         result_of::find_key<BOOST_FUSION_R_ELSE_CLREF(Seq), T>::type const
     find_key(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
@@ -47,7 +47,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename T, typename Seq>
+ template<typename T, typename Seq>
     inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
             result_of::find_key<,Seq,&, T>) const
     find_key(Seq& seq)

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/none.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/none.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/none.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -17,7 +17,7 @@
 {
     namespace result_of
     {
- template <typename Seq, typename F>
+ template<typename Seq, typename F>
         struct none
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
@@ -27,7 +27,7 @@
         };
     }
 
- template <typename Seq, typename F>
+ template<typename Seq, typename F>
     inline typename
         result_of::none<
             BOOST_FUSION_R_ELSE_CLREF(Seq)
@@ -41,7 +41,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Seq, typename F>
+ template<typename Seq, typename F>
     inline typename result_of::none<Seq&, F>::type
     none(Seq& seq, F f)
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -25,7 +25,7 @@
     namespace result_of
     {
         //TODO empty sequence!!!
- template <typename Seq>
+ template<typename Seq>
         struct clear
 #ifdef BOOST_NO_VARIADIC_TEMPLATES
           : convert<typename traits::tag_of<Seq>::type, vector0<> >
@@ -38,7 +38,7 @@
         };
     }
 
- template <typename Seq>
+ template<typename Seq>
     inline typename result_of::clear<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
     clear(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -27,7 +27,7 @@
 
     namespace detail
     {
- template <typename Seq, typename Pred>
+ template<typename Seq, typename Pred>
         struct filter_key_view
           : sequence_base<filter_key_view<Seq, Pred> >
         {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,18 +12,18 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct at_key_impl;
 
- template <>
+ template<>
     struct at_key_impl<detail::filter_key_view_tag>
     {
- template <typename Seq,typename Key>
+ template<typename Seq,typename Key>
         struct apply
         {
             typedef typename
                 result_of::at_key<
- typename detail::forward_as<
+ typename detail::forward_as_lref<
                         Seq
                       , typename detail::remove_reference<Seq>::type_seq_type
>::type

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -17,13 +17,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct has_key_impl;
 
- template <>
+ template<>
     struct has_key_impl<detail::filter_key_view_tag>
     {
- template <typename Seq,typename Key>
+ template<typename Seq,typename Key>
         struct apply
         {
             typedef typename detail::remove_reference<Seq>::type seq;

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_at_key;
 
- template <>
+ template<>
     struct value_at_key<detail::filter_key_view_tag>
     {
- template <typename Seq,typename Key>
+ template<typename Seq,typename Key>
         struct apply
           : result_of::value_at_key<
                 typename detail::remove_reference<Seq>::type_seq_type

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -16,7 +16,7 @@
 
 namespace boost { namespace fusion { namespace detail
 {
- template <typename F, typename NewValue>
+ template<typename F, typename NewValue>
     struct replace_if_helper
     {
         template<typename Sig>
@@ -29,6 +29,7 @@
             typedef U type;
         };
 #else
+ //TODO!!!
           : mpl::if_<
                 mpl::and_<
                     is_convertible<
@@ -67,14 +68,14 @@
             return *this;
         }
 
- template <typename U>
+ template<typename U>
         U&
         call_impl(U& x, mpl::false_ /*is_convertible*/) const
         {
             return x;
         }
 
- template <typename U>
+ template<typename U>
         U&
         call_impl(U& x, mpl::true_ /*is_convertible*/) const
         {
@@ -86,7 +87,7 @@
             return x;
         }
 
- template <typename U>
+ template<typename U>
         typename result<replace_if_helper(U&)>::type
         operator()(U& x) const
         {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -25,7 +25,7 @@
 {
     namespace detail
     {
- template <typename Seq, typename BeginRef>
+ template<typename Seq, typename BeginRef>
         struct compute_erase_last
         {
             typedef typename result_of::end<Seq>::type end_type;
@@ -61,7 +61,7 @@
 
     namespace result_of
     {
- template <
+ template<
             typename Seq
           , typename Begin
           , typename End=typename detail::compute_erase_last<Seq, Begin>::type
@@ -101,7 +101,7 @@
         };
     }
 
- template <typename Seq, typename Begin, typename End>
+ template<typename Seq, typename Begin, typename End>
     typename result_of::erase<
         BOOST_FUSION_R_ELSE_CLREF(Seq)
       , Begin const&
@@ -133,7 +133,7 @@
                 ));
     }
 
- template <typename Seq, typename Begin>
+ template<typename Seq, typename Begin>
     typename result_of::erase<BOOST_FUSION_R_ELSE_CLREF(Seq), Begin const&>::type
     erase(BOOST_FUSION_R_ELSE_CLREF(Seq) seq, Begin const& first)
     {
@@ -147,7 +147,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Seq, typename Begin, typename End>
+ template<typename Seq, typename Begin, typename End>
     typename result_of::erase<Seq&, Begin const&, End const&>::type
     erase(Seq& seq,Begin const& first,End const& last)
     {
@@ -167,7 +167,7 @@
                 ));
     }
 
- template <typename Seq, typename Begin>
+ template<typename Seq, typename Begin>
     typename result_of::erase<Seq&, Begin const&>::type
     erase(Seq& seq, Begin const& first)
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -26,7 +26,7 @@
 {
     namespace result_of
     {
- template <typename Seq, typename Key>
+ template<typename Seq, typename Key>
         struct erase_key
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
@@ -70,7 +70,7 @@
         };
     }
 
- template <typename Key, typename Seq>
+ template<typename Key, typename Seq>
     inline typename
         result_of::erase_key<BOOST_FUSION_R_ELSE_CLREF(Seq), Key>::type
     erase_key(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
@@ -81,7 +81,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Key, typename Seq>
+ template<typename Key, typename Seq>
     inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
             result_of::erase_key<,Seq,&, Key>)
     erase_key(Seq& seq)

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -21,7 +21,7 @@
 {
     namespace result_of
     {
- template <typename Seq, typename T>
+ template<typename Seq, typename T>
         struct filter
           : filter_if<Seq, is_same<mpl::_1, T> >
         {
@@ -30,7 +30,7 @@
         };
     }
 
- template <typename T, typename Seq>
+ template<typename T, typename Seq>
     inline typename result_of::filter<BOOST_FUSION_R_ELSE_CLREF(Seq), T>::type
     filter(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
@@ -38,7 +38,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename T, typename Seq>
+ template<typename T, typename Seq>
     inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
             result_of::filter<,Seq,&, T>)
     filter(Seq& seq)

Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter_if.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter_if.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -17,7 +17,7 @@
 {
     namespace result_of
     {
- template <typename Seq, typename Pred>
+ template<typename Seq, typename Pred>
         struct filter_if
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
@@ -27,7 +27,7 @@
         };
     }
     
- template <typename Pred, typename Seq>
+ template<typename Pred, typename Seq>
     inline typename
         result_of::filter_if<BOOST_FUSION_R_ELSE_CLREF(Seq), Pred>::type
     filter_if(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
@@ -38,7 +38,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Pred, typename Seq>
+ template<typename Pred, typename Seq>
     inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
             result_of::filter_if<,Seq,&, Pred>)
     filter_if(Seq& seq)

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -20,7 +20,7 @@
 {
     namespace result_of
     {
- template <typename Seq, typename Pos, typename T>
+ template<typename Seq, typename Pos, typename T>
         struct insert
           : insert_range<
                 Seq
@@ -36,7 +36,7 @@
         };
     }
 
- template <typename Seq, typename Pos, typename T>
+ template<typename Seq, typename Pos, typename T>
     inline typename
         result_of::insert<
             BOOST_FUSION_R_ELSE_CLREF(Seq)
@@ -54,7 +54,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Seq, typename Pos, typename T>
+ template<typename Seq, typename Pos, typename T>
     inline typename result_of::insert<Seq&, Pos const&, T const&>::type
     insert(Seq& seq,Pos const& pos,T const& x)
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -23,7 +23,7 @@
 {
     namespace result_of
     {
- template <typename Seq, typename Pos, typename Range>
+ template<typename Seq, typename Pos, typename Range>
         struct insert_range
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
@@ -54,7 +54,7 @@
     }
 
 #define BOOST_FUSION_INSERT_RANGE(SEQ_CV_REF_MODIFIER,RANGE_CV_REF_MODIFIER)\
- template <typename Seq, typename Pos, typename Range>\
+ template<typename Seq, typename Pos, typename Range>\
     inline typename\
         result_of::insert_range<\
             Seq SEQ_CV_REF_MODIFIER\

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -20,7 +20,7 @@
 {
     namespace result_of
     {
- template <typename Seq>
+ template<typename Seq>
         struct pop_back
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
@@ -36,7 +36,7 @@
         };
     }
 
- template <typename Seq>
+ template<typename Seq>
     inline typename result_of::pop_back<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
     pop_back(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
@@ -47,7 +47,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Seq>
+ template<typename Seq>
     inline typename result_of::pop_back<Seq&>::type
     pop_back(Seq& seq)
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -20,7 +20,7 @@
 {
     namespace result_of
     {
- template <typename Seq>
+ template<typename Seq>
         struct pop_front
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
@@ -36,7 +36,7 @@
         };
     }
 
- template <typename Seq>
+ template<typename Seq>
     inline typename result_of::pop_front<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
     pop_front(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
@@ -49,7 +49,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Seq>
+ template<typename Seq>
     inline typename result_of::pop_front<Seq&>::type
     pop_front(Seq& seq)
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -19,7 +19,7 @@
 {
     namespace result_of
     {
- template <typename Seq, typename T>
+ template<typename Seq, typename T>
         struct push_back
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
@@ -34,7 +34,7 @@
         };
     }
 
- template <typename Seq, typename T>
+ template<typename Seq, typename T>
     inline typename
         result_of::push_back<
             BOOST_FUSION_R_ELSE_CLREF(Seq)
@@ -51,7 +51,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Seq, typename T>
+ template<typename Seq, typename T>
     inline typename result_of::push_back<Seq&, T const&>::type
     push_back(Seq& seq, T const& x)
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -19,7 +19,7 @@
 {
     namespace result_of
     {
- template <typename Seq, typename T>
+ template<typename Seq, typename T>
         struct push_front
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
@@ -34,7 +34,7 @@
         };
     }
 
- template <typename Seq, typename T>
+ template<typename Seq, typename T>
     inline typename result_of::push_front<
         BOOST_FUSION_R_ELSE_CLREF(Seq)
       , BOOST_FUSION_R_ELSE_CLREF(T)
@@ -51,7 +51,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Seq, typename T>
+ template<typename Seq, typename T>
     inline typename result_of::push_front<Seq&, T const&>::type
     push_front(Seq& seq, T const& x)
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -22,7 +22,7 @@
 {
     namespace result_of
     {
- template <typename Seq, typename T>
+ template<typename Seq, typename T>
         struct remove
           : remove_if<Seq, is_same<mpl::_1, T> >
         {
@@ -31,7 +31,7 @@
         };
     }
 
- template <typename T, typename Seq>
+ template<typename T, typename Seq>
     inline typename result_of::remove<BOOST_FUSION_R_ELSE_CLREF(Seq), T>::type
     remove(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
@@ -40,7 +40,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename T, typename Seq>
+ template<typename T, typename Seq>
     inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
         result_of::remove<,Seq,&, T>)
     remove_if(Seq& seq)

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -20,7 +20,7 @@
 {
     namespace result_of
     {
- template <typename Seq, typename Pred>
+ template<typename Seq, typename Pred>
         struct remove_if
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
@@ -30,7 +30,7 @@
         };
     }
 
- template <typename Pred, typename Seq>
+ template<typename Pred, typename Seq>
     inline typename result_of::remove_if<
         BOOST_FUSION_R_ELSE_CLREF(Seq)
       , Pred
@@ -44,7 +44,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Pred, typename Seq>
+ template<typename Pred, typename Seq>
     inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
             result_of::remove_if<,Seq,&, Pred>)
     remove_if(Seq& seq)

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -22,10 +22,10 @@
 {
     namespace detail
     {
- template <typename OldValue>
+ template<typename OldValue>
         struct replace_helper
         {
- template <typename OtherOldValue>
+ template<typename OtherOldValue>
             replace_helper(
                 BOOST_FUSION_R_ELSE_CLREF(OtherOldValue) old_value
               , int)
@@ -45,7 +45,7 @@
                 return *this;
             }
 
- template <typename U>
+ template<typename U>
             bool
             operator()(BOOST_FUSION_R_ELSE_LREF(U) x) const
             {
@@ -58,7 +58,7 @@
 
     namespace result_of
     {
- template <typename Seq, typename T>
+ template<typename Seq, typename T>
         struct replace
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
@@ -74,7 +74,7 @@
         };
     }
 
- template <typename Seq, typename OldValue, typename NewValue>
+ template<typename Seq, typename OldValue, typename NewValue>
     inline typename
         result_of::replace<
             BOOST_FUSION_R_ELSE_CLREF(Seq)
@@ -108,7 +108,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Seq, typename OldValue, typename NewValue>
+ template<typename Seq, typename OldValue, typename NewValue>
     inline typename result_of::replace<Seq&, OldValue const&>::type
     replace(Seq& seq, OldValue const& old_value, NewValue const& new_value)
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -20,7 +20,7 @@
 {
     namespace result_of
     {
- template <typename Seq, typename F, typename NewValue>
+ template<typename Seq, typename F, typename NewValue>
         struct replace_if
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
@@ -37,7 +37,7 @@
         };
     }
 
- template <typename Seq, typename F, typename NewValue>
+ template<typename Seq, typename F, typename NewValue>
     inline typename result_of::replace_if<
         BOOST_FUSION_R_ELSE_CLREF(Seq)
       , BOOST_FUSION_RREF_ELSE_OBJ(F)
@@ -63,7 +63,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Seq, typename F, typename NewValue>
+ template<typename Seq, typename F, typename NewValue>
     inline typename result_of::replace_if<Seq&, F, NewValue const&>::type
     replace_if(Seq& seq,F pred,NewValue const& new_value)
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -17,7 +17,7 @@
 {
     namespace result_of
     {
- template <typename Seq>
+ template<typename Seq>
         struct reverse
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
@@ -27,7 +27,7 @@
         };
     }
 
- template <typename Seq>
+ template<typename Seq>
     inline typename result_of::reverse<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
     reverse(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
@@ -37,7 +37,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Seq>
+ template<typename Seq>
     inline typename result_of::reverse<Seq&>::type
     reverse(Seq& seq)
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,6 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
- Copyright (c) 2009 Christopher Schmidt
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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 +9,7 @@
 #ifndef BOOST_FUSION_ALGORITHM_TRANSFORMATION_TRANSFORM_HPP
 #define BOOST_FUSION_ALGORITHM_TRANSFORMATION_TRANSFORM_HPP
 
+#include <boost/config.hpp>
 #include <boost/fusion/view/transform_view/transform_view.hpp>
 #include <boost/fusion/support/deduce.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
@@ -45,7 +46,7 @@
             type;
         };
 
- template <typename Seq, typename F>
+ template<typename Seq, typename F>
         struct transform<Seq, F, mpl::false_, mpl::false_>
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
@@ -60,7 +61,7 @@
             type;
         };
 
- template <typename Seq, typename F>
+ template<typename Seq, typename F>
         struct transform<Seq, F, mpl::true_, mpl::false_>
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
@@ -78,7 +79,7 @@
 
     //TODO boost config macro for default arguments for function templates
 
- template <typename IsAssociative,typename Seq, typename F>
+ template<typename IsAssociative,typename Seq, typename F>
     inline typename
         result_of::transform<
             BOOST_FUSION_R_ELSE_CLREF(Seq)
@@ -96,7 +97,7 @@
>::type(BOOST_FUSION_FORWARD(Seq,seq), BOOST_FUSION_FORWARD(F,f));
     }
 
- template <typename Seq, typename F>
+ template<typename Seq, typename F>
     inline typename
         result_of::transform<
             BOOST_FUSION_R_ELSE_CLREF(Seq)
@@ -113,7 +114,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename IsAssociative,typename Seq, typename F>
+ template<typename IsAssociative,typename Seq, typename F>
     inline typename result_of::transform<Seq&, F>::type
     transform(Seq& seq, F f)
     {
@@ -128,7 +129,7 @@
 #endif
     }
 
- template <typename Seq, typename F>
+ template<typename Seq, typename F>
     inline typename result_of::transform<Seq&, F>::type
     transform(Seq& seq, F f)
     {
@@ -137,7 +138,7 @@
 #endif
 
 #define BOOST_FUSION_TRANSFORM_BINARY(SEQ1_CV_REF_MODIFIER,SEQ2_CV_REF_MODIFIER)\
- template <typename IsAssociative,typename Seq1, typename Seq2, typename F>\
+ template<typename IsAssociative,typename Seq1, typename Seq2, typename F>\
     inline typename\
         result_of::transform<\
             Seq1 SEQ1_CV_REF_MODIFIER\
@@ -160,7 +161,7 @@
                   , BOOST_FUSION_FORWARD(F,f));\
     }\
     \
- template <typename Seq1, typename Seq2, typename F>\
+ template<typename Seq1, typename Seq2, typename F>\
     inline typename\
         result_of::transform<\
             Seq1 SEQ1_CV_REF_MODIFIER\

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -15,7 +15,7 @@
 #include <boost/preprocessor/cat.hpp>
 
 //cschmidt: mpl's maximum supported arity is set to 5 by default. We need more
-//for the variadic templates implementations though. Therefore use the pp
+//for the variadic templates implementations though. Therefore we use the pp
 //implementation for now.
 //TODO: native variadic template unrolled workaround!.
 
@@ -29,13 +29,13 @@
 {
     namespace extension
     {
- template <typename T>
+ template<typename T>
         struct convert_impl;
 
- template <>
+ template<>
         struct convert_impl<BOOST_PP_CAT(BOOST_FUSION_SEQ_NAME,_tag)>
         {
- template <typename Seq>
+ template<typename Seq>
             struct apply
             {
 //#ifdef BOOST_NO_VARIADIC_TEMPLATES
@@ -68,7 +68,7 @@
 
     namespace result_of
     {
- template <typename Seq>
+ template<typename Seq>
         struct BOOST_PP_CAT(as_,BOOST_FUSION_SEQ_NAME)
           : extension::convert_impl<
                 BOOST_PP_CAT(BOOST_FUSION_SEQ_NAME,_tag)
@@ -79,7 +79,7 @@
         };
     }
 
- template <typename Seq>
+ template<typename Seq>
     inline typename
         result_of::BOOST_PP_CAT(as_,BOOST_FUSION_SEQ_NAME)<
             BOOST_FUSION_R_ELSE_CLREF(Seq)

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/detail/forward_interface.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/detail/forward_interface.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/detail/forward_interface.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -46,14 +46,16 @@
 # include <boost/fusion/container/detail/variadic_templates/forward_interface.hpp>
 # endif
 
- template<typename SeqAssign>
- BOOST_FUSION_SEQ_NAME(BOOST_FUSION_R_ELSE_CLREF(SeqAssign) seq_assign)
- : BOOST_FUSION_INIT_BASE(BOOST_FUSION_FORWARD(SeqAssign,seq_assign))
- {}
+#ifdef BOOST_NO_RVALUE_REFERENCES
+ template<typename Arg>
+ BOOST_FUSION_SEQ_NAME(BOOST_FUSION_R_ELSE_CLREF(Arg) arg)
+ : BOOST_FUSION_INIT_BASE(BOOST_FUSION_FORWARD(Arg, arg))
+ {}
+#endif
 
 # undef BOOST_FUSION_INIT_BASE
 
- template <typename Seq>
+ template<typename Seq>
         BOOST_FUSION_SEQ_NAME&
         operator=(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
         {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -18,7 +18,7 @@
 
 namespace boost { namespace fusion { namespace detail
 {
- template <int Size>
+ template<int Size>
     struct BOOST_PP_CAT(BOOST_PP_CAT(as_,BOOST_FUSION_SEQ_NAME),_impl);
 
 #define BOOST_PP_FILENAME_1 <boost/fusion/container/detail/pp/as_seq_n.hpp>

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/as_seq_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/as_seq_n.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/as_seq_n.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -7,12 +7,12 @@
 
 #define BOOST_FUSION_N BOOST_PP_ITERATION()
 
- template <>
+ template<>
     struct BOOST_PP_CAT(BOOST_PP_CAT(as_,BOOST_FUSION_SEQ_NAME),_impl)<
         BOOST_FUSION_N
>
     {
- template <typename It0>
+ template<typename It0>
         struct apply
         {
 #if BOOST_FUSION_N

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/forward_interface_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/forward_interface_n.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/forward_interface_n.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,13 +10,14 @@
 #ifndef BOOST_NO_RVALUE_REFERENCES
     VARIADIC_TEMPLATE_A(BOOST_FUSION_N)
 #endif
-#if BOOST_FUSION_N == 1
- explicit
-#endif
 #ifdef BOOST_NO_RVALUE_REFERENCES
+# if BOOST_FUSION_N == 1
+ explicit
+# endif
     BOOST_FUSION_SEQ_NAME(EXPAND_TEMPLATE_ARGUMENTS_CALL_PARAMS(BOOST_FUSION_N))
 #else
- BOOST_FUSION_SEQ_NAME(EXPAND_TEMPLATE_ARGUMENTS_A(BOOST_FUSION_N))
+ BOOST_FUSION_SEQ_NAME(\
+ EXPAND_TEMPLATE_ARGUMENTS_PARAMETERS_A_R_ELSE_CLREF(BOOST_FUSION_N))
 #endif
       : BOOST_FUSION_INIT_BASE(EXPAND_PARAMETERS_A(BOOST_FUSION_N))
     {}

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/forward_interface.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/forward_interface.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/forward_interface.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -21,8 +21,7 @@
           : BOOST_FUSION_INIT_BASE(arguments)
         {}
 # else
- template <typename... OtherArguments>
- explicit
+ template<typename... OtherArguments>
         BOOST_FUSION_SEQ_NAME(OtherArguments&&... arguments)
           : BOOST_FUSION_INIT_BASE(std::forward<OtherArguments>(arguments)...)
         {}

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -17,7 +17,7 @@
 
     namespace result_of
     {
- template <typename Car, typename Cdr = nil>
+ template<typename Car, typename Cdr = nil>
         struct cons_tie
         {
             typedef
@@ -30,7 +30,7 @@
     }
 
     // $$$ do we really want a cons_tie? $$$
- template <typename Car>
+ template<typename Car>
     inline typename result_of::cons_tie<BOOST_FUSION_R_ELSE_LREF(Car)>::type
     cons_tie(BOOST_FUSION_R_ELSE_LREF(Car) car)
     {
@@ -39,7 +39,7 @@
                 BOOST_FUSION_FORWARD(Car,car));
     }
 
- template <typename Car, typename Cdr>
+ template<typename Car, typename Cdr>
     inline typename
         result_of::cons_tie<
             BOOST_FUSION_R_ELSE_LREF(Car)

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,6 +10,7 @@
 #ifndef BOOST_FUSION_CONTAINER_GENERATION_DETAIL_PP_MAP_TIE_HPP
 #define BOOST_FUSION_CONTAINER_GENERATION_DETAIL_PP_MAP_TIE_HPP
 
+#include <boost/config.hpp>
 #include <boost/fusion/container/map/map.hpp>
 #include <boost/fusion/support/deduce.hpp>
 #include <boost/fusion/support/pair.hpp>
@@ -21,6 +22,9 @@
 #include <boost/preprocessor/repetition/enum_params.hpp>
 #include <boost/preprocessor/repetition/enum_binary_params.hpp>
 #include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
+#ifndef BOOST_NO_RVALUE_REFERENCES
+# include <boost/preprocessor/repetition/enum.hpp>
+#endif
 
 namespace boost { namespace fusion
 {

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/map_tie_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/map_tie_n.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/map_tie_n.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -69,7 +69,23 @@
                 BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, K)
                 BOOST_FUSION_COMMA
                 EXPAND_TEMPLATE_ARGUMENTS_A_R_ELSE_LREF(BOOST_FUSION_N)
- >::type(EXPAND_PARAMETERS_A(BOOST_FUSION_N));
+ >::type(
+#ifdef BOOST_NO_RVALUE_REFERENCES
+ EXPAND_PARAMETERS_A(BOOST_FUSION_N)
+#else
+
+# define BOOST_FUSION_MAP_TIE_FORWARD_ARGS(Z,N,__)\
+ static_cast<\
+ typename detail::deduce_ref<BOOST_PP_CAT(A,N)&&>::type\
+ >(BOOST_PP_CAT(_,N))
+
+ BOOST_PP_ENUM(
+ BOOST_FUSION_N,BOOST_FUSION_MAP_TIE_FORWARD_ARGS,_)
+
+# undef BOOST_FUSION_MAP_TIE_FORWARD_ARGS
+
+#endif
+ );
     }
 
 #undef BOOST_FUSION_COMMA

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -5,11 +5,16 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
+#include <boost/config.hpp>
 #include <boost/fusion/support/deduce.hpp>
 #include <boost/fusion/support/internal/template.hpp>
 
 #include <boost/preprocessor/iterate.hpp>
 #include <boost/preprocessor/cat.hpp>
+#ifndef BOOST_NO_RVALUE_REFERENCES
+# include <boost/preprocessor/cat.hpp>
+# include <boost/preprocessor/repetition/enum.hpp>
+#endif
 
 namespace boost { namespace fusion
 {

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/seq_tie_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/seq_tie_n.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/seq_tie_n.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -43,7 +43,23 @@
 #endif
             result_of::BOOST_FUSION_FUNCTION_NAME<
                 EXPAND_TEMPLATE_ARGUMENTS_A_R_ELSE_LREF(BOOST_FUSION_N)
- >::type(EXPAND_PARAMETERS_A(BOOST_FUSION_N));
+ >::type(
+#ifdef BOOST_NO_RVALUE_REFERENCES
+ EXPAND_PARAMETERS_A(BOOST_FUSION_N)
+#else
+
+# define BOOST_FUSION_SEQ_TIE_FORWARD_ARGS(Z,N,__)\
+ static_cast<\
+ typename detail::deduce_ref<BOOST_PP_CAT(A,N)&&>::type\
+ >(BOOST_PP_CAT(_,N))
+
+ BOOST_PP_ENUM(
+ BOOST_FUSION_N,BOOST_FUSION_SEQ_TIE_FORWARD_ARGS,_)
+
+# undef BOOST_FUSION_MAP_TIE_FORWARD_ARGS
+
+#endif
+ );
     }
 
 #undef BOOST_FUSION_N

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -15,9 +15,11 @@
 # ifdef BOOST_NO_VARIADIC_TEMPLATES
 # include <boost/preprocessor/empty.hpp>
 
-# define BOOST_FUSION_FUNCTION_NAME BOOST_PP_CAT(BOOST_FUSION_SEQ_NAME(BOOST_PP_EMPTY()),_tie)
+# define BOOST_FUSION_FUNCTION_NAME\
+ BOOST_PP_CAT(BOOST_FUSION_SEQ_NAME(BOOST_PP_EMPTY()),_tie)
 # else
-# define BOOST_FUSION_FUNCTION_NAME BOOST_PP_CAT(BOOST_FUSION_SEQ_NAME,_tie)
+# define BOOST_FUSION_FUNCTION_NAME\
+ BOOST_PP_CAT(BOOST_FUSION_SEQ_NAME,_tie)
 # endif
 #endif
 

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -29,7 +29,7 @@
 {
     namespace result_of
     {
- template <typename... KeysTypes>
+ template<typename... KeysTypes>
         struct make_map
         {
             typedef typename
@@ -69,7 +69,7 @@
         };
     }
 
- template <typename... Keys, typename... Types>
+ template<typename... Keys, typename... Types>
     inline typename
         result_of::make_map<Keys...,BOOST_FUSION_R_ELSE_CLREF(Types)...>::type
     make_map(BOOST_FUSION_R_ELSE_CLREF(Types)... types)

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,7 +13,7 @@
 {
     namespace result_of
     {
- template <typename... Types>
+ template<typename... Types>
         struct BOOST_PP_CAT(make_,BOOST_FUSION_SEQ_NAME)
         {
             typedef
@@ -24,7 +24,7 @@
         };
     }
 
- template <typename... Types>
+ template<typename... Types>
     inline typename
         result_of::BOOST_PP_CAT(make_,BOOST_FUSION_SEQ_NAME)<
             BOOST_FUSION_R_ELSE_CLREF(Types)...

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -29,7 +29,7 @@
 {
     namespace result_of
     {
- template <typename... KeysTypes>
+ template<typename... KeysTypes>
         struct map_tie
         {
             typedef typename
@@ -72,15 +72,21 @@
         };
     }
 
- template <typename... Keys, typename... Types>
+ template<typename... Keys, typename... Types>
     inline typename
- result_of::map_tie<Keys...,BOOST_FUSION_R_ELSE_CLREF(Types)...>::type
- map_tie(BOOST_FUSION_R_ELSE_CLREF(Types)... types)
+ result_of::map_tie<Keys...,BOOST_FUSION_R_ELSE_LREF(Types)...>::type
+ map_tie(BOOST_FUSION_R_ELSE_LREF(Types)... types)
     {
         return typename result_of::map_tie<
             Keys...
- , BOOST_FUSION_R_ELSE_CLREF(Types)...
- >::type(BOOST_FUSION_FORWARD(Types, types)...);
+ , BOOST_FUSION_R_ELSE_LREF(Types)...
+ >::type(
+#if BOOST_NO_RVALUE_REFERENCES
+ types
+#else
+ static_cast<typename detail::deduce_ref<Types&&>::type>(types)...
+#endif
+ );
     }
 }}
 

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,7 +13,7 @@
 {
     namespace result_of
     {
- template <typename... Types>
+ template<typename... Types>
         struct BOOST_FUSION_FUNCTION_NAME
         {
             typedef
@@ -24,15 +24,21 @@
         };
     }
 
- template <typename... Types>
+ template<typename... Types>
     inline typename result_of::BOOST_FUSION_FUNCTION_NAME<
- BOOST_FUSION_R_ELSE_CLREF(Types)...
+ BOOST_FUSION_R_ELSE_LREF(Types)...
>::type
- BOOST_FUSION_FUNCTION_NAME(BOOST_FUSION_R_ELSE_CLREF(Types)... types)
+ BOOST_FUSION_FUNCTION_NAME(BOOST_FUSION_R_ELSE_LREF(Types)... types)
     {
         return typename result_of::BOOST_FUSION_FUNCTION_NAME<
- BOOST_FUSION_R_ELSE_CLREF(Types)...
- >::type(BOOST_FUSION_FORWARD(Types, types)...);
+ BOOST_FUSION_R_ELSE_LREF(Types)...
+ >::type(
+#if BOOST_NO_RVALUE_REFERENCES
+ types
+#else
+ static_cast<typename detail::deduce_ref<Types&&>::type>(types)...
+#endif
+ );
     }
 }}
 

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -18,7 +18,7 @@
 
     namespace result_of
     {
- template <typename Car, typename Cdr = nil>
+ template<typename Car, typename Cdr = nil>
         struct make_cons
         {
             typedef
@@ -30,7 +30,7 @@
         };
     }
 
- template <typename Car>
+ template<typename Car>
     inline typename result_of::make_cons<BOOST_FUSION_R_ELSE_CLREF(Car)>::type
     make_cons(BOOST_FUSION_R_ELSE_CLREF(Car) car)
     {
@@ -41,7 +41,7 @@
         return type(BOOST_FUSION_FORWARD(Car,car));
     }
 
- template <typename Car, typename Cdr>
+ template<typename Car, typename Cdr>
     inline typename
         result_of::make_cons<
             BOOST_FUSION_R_ELSE_CLREF(Car)

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/cons.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/cons.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/cons.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,7 +1,7 @@
 /*=============================================================================
     Copyright (c) 2005 Joel de Guzman
     Copyright (c) 2005 Eric Niebler
- Copyright (c) 2009 Christopher Schmidt
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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 +10,7 @@
 #ifndef BOOST_FUSION_CONTAINER_LIST_CONS_HPP
 #define BOOST_FUSION_CONTAINER_LIST_CONS_HPP
 
+#include <boost/config.hpp>
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 #include <boost/fusion/sequence/intrinsic/front.hpp>
 #include <boost/fusion/iterator/next.hpp>
@@ -45,6 +46,12 @@
     struct void_;
     struct fusion_sequence_tag;
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+ //'class' : multiple copy constructors specified
+# pragma warning(disable:4521)
+#endif
+
     struct nil
       : sequence_base<nil>
     {
@@ -95,7 +102,7 @@
         {}
     };
 
- template <typename Car, typename Cdr = nil>
+ template<typename Car, typename Cdr = nil>
     struct cons
       : sequence_base<cons<Car, Cdr> >
     {
@@ -149,7 +156,13 @@
 # else
         template<typename OtherCar>
         explicit
- cons(OtherCar&& car)
+ cons(OtherCar&& car,
+ typename enable_if<
+ detail::is_explicitly_convertible<
+ BOOST_FUSION_R_ELSE_CLREF(OtherCar)
+ , car_type
+ >
+ >::type* =0)
           : car(std::forward<OtherCar>(car))
         {}
 
@@ -242,6 +255,10 @@
         car_type car;
         cdr_type cdr;
     };
+
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
 }}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/at_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -14,13 +14,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct at_impl;
 
- template <>
+ template<>
     struct at_impl<cons_tag>
     {
- template <typename Seq, typename N>
+ template<typename Seq, typename N>
         struct apply
         {
             typedef typename
@@ -32,14 +32,14 @@
>::type
             type;
 
- template <typename Cons, int N2>
+ template<typename Cons, int N2>
             static type
             call(Cons& cons, mpl::int_<N2>)
             {
                 return call(cons.cdr, mpl::int_<N2-1>());
             }
 
- template <typename Cons>
+ template<typename Cons>
             static type
             call(Cons& cons, mpl::int_<0>)
             {
@@ -54,7 +54,7 @@
         };
     };
 
- template <>
+ template<>
     struct at_impl<list_tag>
       : at_impl<cons_tag>
     {};

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/begin_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -11,13 +11,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct begin_impl;
 
- template <>
+ template<>
     struct begin_impl<cons_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef cons_iterator<typename detail::add_lref<Seq>::type> type;
@@ -30,7 +30,7 @@
         };
     };
 
- template <>
+ template<>
     struct begin_impl<list_tag>
       : begin_impl<cons_tag>
     {};

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/build_cons.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/build_cons.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/build_cons.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -15,14 +15,14 @@
 
 namespace boost { namespace fusion { namespace detail
 {
- template <
+ template<
         typename Begin
       , typename End
       , bool is_empty = result_of::equal_to<Begin, End>::value
>
     struct build_cons;
 
- template <typename Begin, typename End>
+ template<typename Begin, typename End>
     struct build_cons<Begin, End, true>
     {
         typedef nil type;
@@ -34,7 +34,7 @@
         }
     };
 
- template <typename Begin, typename End>
+ template<typename Begin, typename End>
     struct build_cons<Begin, End, false>
     {
         typedef

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons_fwd.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -14,7 +14,7 @@
     struct cons_tag;
     struct nil;
 
- template <typename Car, typename Cdr>
+ template<typename Car, typename Cdr>
     struct cons;
 }}
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons_iterator.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons_iterator.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -61,7 +61,7 @@
     };
 
 #define BOOST_FUSION_NIL_ITERATOR(MODIFIER,_)\
- template <>\
+ template<>\
       struct cons_iterator<nil MODIFIER>\
         : nil_iterator\
       {\
@@ -73,7 +73,7 @@
           {}\
       };\
       \
- template <>\
+ template<>\
       struct cons_iterator<list<> MODIFIER>\
         : nil_iterator\
       {\

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/convert_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/convert_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/convert_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -15,13 +15,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename T>
+ template<typename T>
     struct convert_impl;
 
- template <>
+ template<>
     struct convert_impl<cons_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/deref_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -11,13 +11,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_impl;
 
- template <>
+ template<>
     struct deref_impl<cons_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/end_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -11,13 +11,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct end_impl;
 
- template <>
+ template<>
     struct end_impl<cons_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef
@@ -32,7 +32,7 @@
         };
     };
 
- template <>
+ template<>
     struct end_impl<list_tag>
       : end_impl<cons_tag>
     {};

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/equal_to_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/equal_to_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct equal_to_impl;
 
- template <>
+ template<>
     struct equal_to_impl<cons_iterator_tag>
     {
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         struct apply
           : is_same<
                 typename detail::identity<

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/next_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/next_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct next_impl;
 
- template <>
+ template<>
     struct next_impl<cons_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/pp/list_forward_ctor_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/pp/list_forward_ctor_n.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/pp/list_forward_ctor_n.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -24,14 +24,13 @@
 # else
 # ifdef BOOST_NO_RVALUE_REFERENCES
       : base_type(vector<
- BOOST_PP_ENUM_BINARY_PARAMS(BOOST_FUSION_N,
- typename call_traits<T,
- >::param_type BOOST_PP_INTERCEPT)
- >(EXPAND_PARAMETERS_A(BOOST_FUSION_N)))
+ BOOST_PP_ENUM_BINARY_PARAMS(
+ BOOST_FUSION_N,
+ typename call_traits<T,
+ >::param_type BOOST_PP_INTERCEPT)
+ >(EXPAND_PARAMETERS_A(BOOST_FUSION_N)))
 # else
- : base_type(vector<
- BOOST_PP_ENUM_BINARY_PARAMS(N, A,&& BOOST_PP_INTERCEPT)
- >(EXPAND_PARAMETERS_A(BOOST_FUSION_N)))
+ : base_type(fusion::vector_tie(EXPAND_PARAMETERS_A(BOOST_FUSION_N)))
 # endif
 # endif
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/value_at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/value_at_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_at_impl;
 
- template <>
+ template<>
     struct value_at_impl<cons_tag>
     {
- template <typename Seq, typename N>
+ template<typename Seq, typename N>
         struct apply
         {
             typedef typename
@@ -35,7 +35,7 @@
         };
     };
 
- template <>
+ template<>
     struct value_at_impl<list_tag>
       : value_at_impl<cons_tag>
     {};

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/value_of_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -11,13 +11,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_impl;
 
- template <>
+ template<>
     struct value_of_impl<cons_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,6 +1,6 @@
 /*=============================================================================
     Copyright (c) 2005 Joel de Guzman
- Copyright (c) 2009 Christopher Schmidt
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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 +9,7 @@
 #ifndef BOOST_FUSION_CONTAINER_LIST_LIST_HPP
 #define BOOST_FUSION_CONTAINER_LIST_LIST_HPP
 
+#include <boost/config.hpp>
 #include <boost/fusion/container/list/list_fwd.hpp>
 #include <boost/fusion/container/list/cons.hpp>
 #include <boost/fusion/container/generation/vector_tie.hpp>
@@ -17,6 +18,12 @@
 
 namespace boost { namespace fusion
 {
+#ifdef BOOST_MSVC
+# pragma warning(push)
+ //'class' : multiple copy constructors specified
+# pragma warning(disable:4521)
+#endif
+
     VARIADIC_TEMPLATE(FUSION_MAX_LIST_SIZE)
     struct list
       : detail::cons_gen<EXPAND_TEMPLATE_ARGUMENTS(FUSION_MAX_LIST_SIZE)>::type
@@ -42,12 +49,12 @@
 
 # include <boost/fusion/container/list/detail/pp/list_forward_ctor.hpp>
 
- template<typename SeqAssign>
- list(SeqAssign const& seq_assign)
- : base_type(seq_assign)
+ template<typename Seq>
+ list(Seq const& seq)
+ : base_type(seq)
         {}
 
- template <typename Seq>
+ template<typename Seq>
         list&
         operator=(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
         {
@@ -64,6 +71,10 @@
 # undef BOOST_FUSION_USE_BASE_TYPE
 #endif
     };
+
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
 }}
 
 #endif

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct begin_impl;
 
- template <>
+ template<>
     struct begin_impl<map_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_data_impl;
 
- template <>
+ template<>
     struct deref_data_impl<map_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_impl;
 
- template <>
+ template<>
     struct deref_impl<map_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct end_impl;
 
- template <>
+ template<>
     struct end_impl<map_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct key_of_impl;
 
- template <>
+ template<>
     struct key_of_impl<map_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_data_impl;
 
- template <>
+ template<>
     struct value_of_data_impl<map_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_impl;
 
- template <>
+ template<>
     struct value_of_impl<map_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,6 +1,6 @@
 /*=============================================================================
     Copyright (c) 2005 Joel de Guzman
- Copyright (c) 2009 Christopher Schmidt
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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,12 +9,12 @@
 #ifndef BOOST_FUSION_CONTAINER_MAP_MAP_HPP
 #define BOOST_FUSION_CONTAINER_MAP_MAP_HPP
 
+#include <boost/config.hpp>
 #include <boost/fusion/container/map/map_fwd.hpp>
 #include <boost/fusion/container/vector/vector.hpp>
 #include <boost/fusion/support/pair.hpp>
 #include <boost/fusion/support/sequence_base.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
-
 #include <boost/mpl/bool.hpp>
 
 #include <boost/fusion/container/map/detail/begin_impl.hpp>
@@ -24,13 +24,18 @@
 #include <boost/fusion/container/map/detail/value_of_data_impl.hpp>
 #include <boost/fusion/container/map/detail/deref_data_impl.hpp>
 #include <boost/fusion/container/map/detail/key_of_impl.hpp>
-
 #include <boost/fusion/container/detail/forward_interface.hpp>
 
 namespace boost { namespace fusion
 {
     struct fusion_sequence_tag;
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+ //'class' : multiple copy constructors specified
+# pragma warning(disable:4521)
+#endif
+
     VARIADIC_TEMPLATE(FUSION_MAX_MAP_SIZE)
     struct map
       : sequence_base<map<EXPAND_TEMPLATE_ARGUMENTS(FUSION_MAX_MAP_SIZE)> >
@@ -57,6 +62,10 @@
     private:
         storage_type data;
     };
+
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
 }}
 
 #endif

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct begin_impl;
 
- template <>
+ template<>
     struct begin_impl<set_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,10 +12,10 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_data_impl;
 
- template <>
+ template<>
     struct deref_data_impl<set_iterator_tag>
       : deref_impl<set_iterator_tag>
     {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_impl;
 
- template <>
+ template<>
     struct deref_impl<set_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct end_impl;
 
- template <>
+ template<>
     struct end_impl<set_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,10 +12,10 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct key_of_impl;
 
- template <>
+ template<>
     struct key_of_impl<set_iterator_tag>
       : value_of_impl<set_iterator_tag>
     {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,10 +12,10 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_data_impl;
 
- template <>
+ template<>
     struct value_of_data_impl<set_iterator_tag>
       : value_of_impl<set_iterator_tag>
     {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_impl;
 
- template <>
+ template<>
     struct value_of_impl<set_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,6 +1,6 @@
 /*=============================================================================
     Copyright (c) 2005 Joel de Guzman
- Copyright (c) 2009 Christopher Schmidt
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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 +9,7 @@
 #ifndef BOOST_FUSION_CONTAINER_SET_SET_HPP
 #define BOOST_FUSION_CONTAINER_SET_SET_HPP
 
+#include <boost/config.hpp>
 #include <boost/fusion/container/set/set_fwd.hpp>
 #include <boost/fusion/container/vector/vector.hpp>
 #include <boost/fusion/support/sequence_base.hpp>
@@ -30,6 +31,12 @@
 {
     struct fusion_sequence_tag;
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+ //'class' : multiple copy constructors specified
+# pragma warning(disable:4521)
+#endif
+
     VARIADIC_TEMPLATE(FUSION_MAX_SET_SIZE)
     struct set
       : sequence_base<set<EXPAND_TEMPLATE_ARGUMENTS(FUSION_MAX_SET_SIZE)> >
@@ -56,6 +63,10 @@
     private:
         storage_type data;
     };
+
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
 }}
 
 #endif

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -16,13 +16,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct at_impl;
 
- template <>
+ template<>
     struct at_impl<vector_tag>
     {
- template <typename Seq, typename N>
+ template<typename Seq, typename N>
         struct apply
         {
             typedef typename

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct begin_impl;
 
- template <>
+ template<>
     struct begin_impl<vector_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -15,13 +15,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_impl;
 
- template <>
+ template<>
     struct deref_impl<vector_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct end_impl;
 
- template <>
+ template<>
     struct end_impl<vector_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,6 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
- Copyright (c) 2009 Christopher Schmidt
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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,19 +9,24 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_PP_VECTOR_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_PP_VECTOR_HPP
 
+#include <boost/config.hpp>
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 #include <boost/fusion/container/vector/detail/pp/vector_n_chooser.hpp>
-
 #include <boost/mpl/at.hpp>
 #include <boost/mpl/bool.hpp>
 #include <boost/type_traits/add_const.hpp>
-
 #include <boost/fusion/container/detail/forward_interface.hpp>
 
 namespace boost { namespace fusion
 {
     struct fusion_sequence_tag;
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+ //'class' : multiple copy constructors specified
+# pragma warning(disable:4521)
+#endif
+
     VARIADIC_TEMPLATE(FUSION_MAX_VECTOR_SIZE)
     struct vector
       : detail::vector_n_chooser<
@@ -44,6 +49,10 @@
 #undef BOOST_FUSION_SEQ_NAME
 #undef BOOST_FUSION_USE_BASE_TYPE
     };
+
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
 }}
 
 #endif

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,12 +1,13 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
- Copyright (c) 2009 Christopher Schmidt
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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/config.hpp>
 # include <boost/fusion/container/vector/vector_fwd.hpp>
 # ifdef BOOST_FUSION_TAGGED_VECTOR
 # include <boost/fusion/container/vector/detail/variadic_templates/tagged_impl.hpp>
@@ -49,9 +50,19 @@
 {
     struct fusion_sequence_tag;
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+ //'class' : multiple copy constructors specified
+# pragma warning(disable:4521)
+#endif
+
 # 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()
+
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
 }}
 
 #else
@@ -83,15 +94,15 @@
>
 # endif
     {
-#ifdef BOOST_FUSION_PREFER_MPL
+# ifdef BOOST_FUSION_PREFER_MPL
         typedef
             mpl::BOOST_PP_CAT(vector, BOOST_FUSION_N)<
                 EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
>
         types;
-#endif
+# endif
         typedef vector_tag fusion_tag;
- typedef fusion_sequence_tag tag;
+ typedef fusion_sequence_tag tag;
         typedef mpl::false_ is_view;
         typedef random_access_traversal_tag category;
         typedef mpl::int_<BOOST_FUSION_N> size;
@@ -107,19 +118,21 @@
 # undef BOOST_FUSION_DEFAULT_MEMBER_INIT
 
 # if BOOST_FUSION_N
-# define BOOST_FUSION_MEMBER_INIT(Z, N, MODIFIER)\
- BOOST_PP_CAT(m,N)(\
- BOOST_FUSION_FORWARD(\
- BOOST_PP_CAT(vector, N)<\
- EXPAND_TEMPLATE_ARGUMENTS(N)\
- > MODIFIER,vec).\
- BOOST_PP_CAT(m,N))
+# ifdef BOOST_NO_RVALUE_REFERENCES
+# define BOOST_FUSION_MEMBER_INIT(Z, N, MODIFIER)\
+ BOOST_PP_CAT(m,N)(vec.BOOST_PP_CAT(m,N))
+# else
+# define BOOST_FUSION_MEMBER_INIT(Z, N, MODIFIER)\
+ BOOST_PP_CAT(m,N)(static_cast<\
+ typename detail::forward_as<\
+ int MODIFIER\
+ , BOOST_PP_CAT(T,N)\
+ >::type>(vec.BOOST_PP_CAT(m,N)))
+# endif
 
 # define BOOST_FUSION_VECTOR_CTOR(MODIFIER,_)\
         BOOST_PP_CAT(vector, BOOST_FUSION_N)(\
- BOOST_PP_CAT(vector, BOOST_FUSION_N)<\
- EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)\
- > MODIFIER vec)\
+ BOOST_PP_CAT(vector, BOOST_FUSION_N) MODIFIER vec)\
           : BOOST_PP_ENUM(BOOST_FUSION_N, BOOST_FUSION_MEMBER_INIT, MODIFIER)\
         {}
 
@@ -129,31 +142,14 @@
 # else
 # define BOOST_FUSION_VECTOR_CTOR(MODIFIER,_)\
         BOOST_PP_CAT(vector, BOOST_FUSION_N)(\
- BOOST_PP_CAT(vector, BOOST_FUSION_N)<void_> MODIFIER vec)\
+ BOOST_PP_CAT(vector, BOOST_FUSION_N) MODIFIER vec)\
         {}
 
         BOOST_FUSION_ALL_CTOR_COMBINATIONS(BOOST_FUSION_VECTOR_CTOR,_)
-
 # endif
 # undef BOOST_FUSION_VECTOR_CTOR
 
 # if BOOST_FUSION_N
-# if BOOST_FUSION_N==1
- template<class Seq>
- explicit
- vector1(BOOST_FUSION_R_ELSE_LREF(Seq) seq,
- typename disable_if<
- detail::is_explicitly_convertible<
- BOOST_FUSION_R_ELSE_LREF(Seq)
- , T0
- >
- >::type* =0)
- : m0(fusion::front(seq))
- {
- BOOST_FUSION_STATIC_ASSERT((result_of::size<Seq>::value==1));
- }
-# endif
-
 # define BOOST_FUSION_MEMBER_INIT(Z, N, _)\
         BOOST_PP_CAT(m,N)(\
             BOOST_FUSION_FORWARD(BOOST_PP_CAT(A,N), BOOST_PP_CAT(_,N)))
@@ -161,40 +157,59 @@
 # ifndef BOOST_NO_RVALUE_REFERENCES
         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
             EXPAND_TEMPLATE_ARGUMENTS_CALL_PARAMS(BOOST_FUSION_N)
 # else
             EXPAND_TEMPLATE_ARGUMENTS_PARAMETERS_A_R_ELSE_CLREF(BOOST_FUSION_N)
+# if BOOST_FUSION_N==1
+ , typename enable_if<
+ detail::is_explicitly_convertible<A0&&, T0>
+ >::type* =0
+# endif
 # endif
             )
           : BOOST_PP_ENUM(BOOST_FUSION_N, BOOST_FUSION_MEMBER_INIT, _)
         {}
 
 # undef BOOST_FUSION_MEMBER_INIT
-# endif
-
-# if BOOST_FUSION_N
-# define BOOST_FUSION_MEMBER_INIT(Z, N, SEQ)\
- BOOST_PP_CAT(m,N)(fusion::deref(\
- fusion::advance_c<N>(fusion::begin(SEQ))))
 
 # if BOOST_FUSION_N==1
-# define BOOST_FUSION_VECTOR_SEQ_ASSIGN_CTOR(MODIFIER)
+# define BOOST_FUSION_MEMBER_INIT(Z, N, SEQ)\
+ m0(fusion::front(SEQ))
 # else
-# define BOOST_FUSION_VECTOR_SEQ_ASSIGN_CTOR(MODIFIER)\
- template<typename Seq>\
- BOOST_PP_CAT(vector,BOOST_FUSION_N)(Seq MODIFIER seq)\
- : BOOST_PP_ENUM(BOOST_FUSION_N,\
- BOOST_FUSION_MEMBER_INIT,\
- static_cast<Seq MODIFIER>(seq))\
- {\
- BOOST_FUSION_MPL_ASSERT((\
- mpl::equal_to<size,result_of::size<Seq> >));\
+# define BOOST_FUSION_MEMBER_INIT(Z, N, SEQ)\
+ BOOST_PP_CAT(m,N)(fusion::deref(\
+ fusion::advance_c<N>(fusion::begin(SEQ))))
+# endif
+
+ template<class Seq>
+ BOOST_PP_CAT(vector,BOOST_FUSION_N)(
+ BOOST_FUSION_R_ELSE_CLREF(Seq) seq
+# if BOOST_FUSION_N==1
+ , typename disable_if<
+ detail::is_explicitly_convertible<
+ BOOST_FUSION_R_ELSE_CLREF(Seq)
+ , T0
+ >
+ >::type* =0
+# endif
+ )
+ : BOOST_PP_ENUM(BOOST_FUSION_N,
+ BOOST_FUSION_MEMBER_INIT,
+ BOOST_FUSION_FORWARD(Seq,seq))
+ {
+ BOOST_FUSION_MPL_ASSERT((
+ mpl::equal_to<
+ size
+ , result_of::size<BOOST_FUSION_R_ELSE_CLREF(Seq)>
+ >));
         }
- #endif
 
-# define BOOST_FUSION_VECTOR_ASSIGN_CTOR(MODIFIER,_)\
+# define BOOST_FUSION_VECTOR_SEQ_ASSIGN_CTOR(MODIFIER,_)\
         template<typename SeqRef>\
         BOOST_PP_CAT(vector,BOOST_FUSION_N)(\
             detail::sequence_assign_type<SeqRef> MODIFIER seq_assign)\
@@ -203,14 +218,12 @@
                   seq_assign.get())\
         {\
             BOOST_FUSION_MPL_ASSERT((\
- mpl::equal_to<size,result_of::size<SeqRef> >));\
- }\
- \
- BOOST_FUSION_VECTOR_SEQ_ASSIGN_CTOR(MODIFIER)
+ mpl::equal_to<size,result_of::size<SeqRef> >));\
+ }
 
- BOOST_FUSION_ALL_CTOR_COMBINATIONS(BOOST_FUSION_VECTOR_ASSIGN_CTOR,_);
+ BOOST_FUSION_ALL_CTOR_COMBINATIONS(
+ BOOST_FUSION_VECTOR_SEQ_ASSIGN_CTOR,_);
 
-# undef BOOST_FUSION_VECTOR_ASSIGN_CTOR
 # undef BOOST_FUSION_VECTOR_SEQ_ASSIGN_CTOR
 # undef BOOST_FUSION_MEMBER_INIT
 # else
@@ -220,23 +233,21 @@
             detail::sequence_assign_type<SeqRef> MODIFIER seq_assign)\
         {\
             BOOST_FUSION_MPL_ASSERT((result_of::empty<SeqRef>));\
- }\
- \
- template<typename Seq>\
- BOOST_PP_CAT(vector,BOOST_FUSION_N)(Seq MODIFIER seq)\
- {\
- BOOST_FUSION_MPL_ASSERT((result_of::empty<Seq>));\
         }
 
         BOOST_FUSION_ALL_CTOR_COMBINATIONS(BOOST_FUSION_VECTOR_ASSIGN_CTOR,_);
 
+ template<typename Seq>
+ BOOST_PP_CAT(vector,BOOST_FUSION_N)(Seq const& seq)
+ {
+ BOOST_FUSION_MPL_ASSERT((result_of::empty<Seq const&>));
+ }
+
 # undef BOOST_FUSION_VECTOR_ASSIGN_CTOR
 # endif
 
- template <typename Seq>
- BOOST_PP_CAT(vector, BOOST_FUSION_N)<
- EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
- >&
+ template<typename Seq>
+ BOOST_PP_CAT(vector, BOOST_FUSION_N)&
         operator=(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
         {
             BOOST_FUSION_MPL_ASSERT((
@@ -271,26 +282,14 @@
             return *this;
         }
 
- BOOST_PP_CAT(vector, BOOST_FUSION_N)<
- EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
- >&
- operator=(
- BOOST_PP_CAT(vector, BOOST_FUSION_N)<
- EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
- >const& seq)
+ BOOST_PP_CAT(vector, BOOST_FUSION_N)&
+ operator=(BOOST_PP_CAT(vector, BOOST_FUSION_N)const& seq)
         {
 #ifdef BOOST_NO_RVALUE_REFERENCES
- return this->operator=<
- BOOST_PP_CAT(vector, BOOST_FUSION_N)<
- EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
- >
- >(seq);
+ return this->operator=<BOOST_PP_CAT(vector, BOOST_FUSION_N)>(seq);
 #else
- return this->operator=<
- BOOST_PP_CAT(vector, BOOST_FUSION_N)<
- EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
- > const&
- >(seq);
+ return this->operator=<BOOST_PP_CAT(vector, BOOST_FUSION_N) const&>(
+ seq);
 #endif
         }
 
@@ -307,7 +306,9 @@
         typename detail::add_lref<BOOST_PP_CAT(T,N)>::type\
         at_impl(mpl::int_<N>)\
         {\
- return BOOST_PP_CAT(m,N);\
+ return static_cast<\
+ typename detail::add_lref<BOOST_PP_CAT(T,N)>::type\
+ >(BOOST_PP_CAT(m,N));\
         }\
         \
         typename detail::add_lref<\
@@ -315,7 +316,11 @@
>::type\
         at_impl(mpl::int_<N>) const\
         {\
- return BOOST_PP_CAT(m,N);\
+ return static_cast<\
+ typename detail::add_lref<\
+ typename add_const<BOOST_PP_CAT(T,N)>::type\
+ >::type\
+ >(BOOST_PP_CAT(m,N));\
         }\
         \
         BOOST_PP_CAT(T,N) BOOST_PP_CAT(m,N);

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -15,13 +15,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_at_impl;
 
- template <>
+ template<>
     struct value_at_impl<vector_tag>
     {
- template <typename Seq, typename N>
+ template<typename Seq, typename N>
         struct apply
 #ifdef BOOST_FUSION_TAGGED_VECTOR
         {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -15,13 +15,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_impl;
 
- template <>
+ template<>
     struct value_of_impl<vector_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -28,13 +28,13 @@
 # if !BOOST_FUSION_N
     struct void_;
 
- template <typename T0=void_>
+ template<typename T0=void_>
     struct vector0;
 
     template<>
     struct vector0<void_>
 # else
- template <BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, typename T)>
+ template<BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, typename T)>
     struct BOOST_PP_CAT(vector, BOOST_FUSION_N)
 # endif
       : vector<BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, T)>
@@ -70,7 +70,7 @@
 # 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)>
+ 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_type(

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/fused_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/fused_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/fused_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -9,6 +9,7 @@
 #include <boost/fusion/support/internal/ref.hpp>
 #include <boost/fusion/support/internal/result_of.hpp>
 #include <boost/fusion/support/internal/assert.hpp>
+#include <boost/fusion/support/internal/template.hpp>
 #include <boost/preprocessor/empty.hpp>
 #include <boost/preprocessor/cat.hpp>
 #include <boost/type_traits/add_const.hpp>
@@ -18,6 +19,14 @@
 
 namespace boost { namespace fusion
 {
+#ifdef BOOST_MSVC
+# pragma warning(push)
+ //'class' : multiple copy constructors specified
+# pragma warning(disable:4521)
+ //'class' : multiple assignment operators specified
+# pragma warning(disable:4522)
+#endif
+
     template<typename F>
     struct BOOST_PP_CAT(fused,BOOST_FUSION_ADAPTER_POSTFIX)
     {
@@ -27,7 +36,7 @@
         template<class Self, class Seq>
         struct result<Self(Seq)>
           : result_of::BOOST_PP_CAT(invoke,BOOST_FUSION_ADAPTER_POSTFIX)<
- typename detail::forward_as<Self,F>::type
+ typename detail::forward_as_lref<Self,F>::type
               , Seq
>
         {};
@@ -121,5 +130,9 @@
 
         F f;
     };
+
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
 }}
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/pp/unfused_invocation_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/pp/unfused_invocation_n.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/pp/unfused_invocation_n.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -16,7 +16,7 @@
         struct result<Self(EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N))>
           : boost::result_of<
                 typename detail::get_func_base<
- typename detail::forward_as<Self,F>::type
+ typename detail::forward_as_lref<Self,F>::type
>::type(BOOST_FUSION_R_ELSE_LREF(
                     BOOST_PP_IF(BOOST_FUSION_N, typename, BOOST_PP_EMPTY())
                     result_of::vector_tie<

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/pp/unfused_typed_impl_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/pp/unfused_typed_impl_n.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/pp/unfused_typed_impl_n.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -27,7 +27,7 @@
         struct result<Self(EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N))>
           : boost::result_of<
                 typename detail::get_func_base<
- typename detail::forward_as<Self,F>::type
+ typename detail::forward_as_lref<Self,F>::type
>::type(transformed_args_arg)
>
         {};
@@ -51,11 +51,13 @@
         }
 #else
 # define BOOST_FUSION_CALL_OPERATOR(F_,MODIFIER)\
- BOOST_FUSION_VARIADIC_TEMPLATES_A(BOOST_FUSION_N)\
+ VARIADIC_TEMPLATE_A(BOOST_FUSION_N)\
         typename boost::result_of<\
             typename detail::get_func_base<F_>::type(transformed_args_arg)\
>::type\
- operator()(EXPAND_TEMPLATE_ARGUMENTS_A_R_ELSE_LREF(BOOST_FUSION_N))\
+ operator()(\
+ EXPAND_TEMPLATE_ARGUMENTS_PARAMETERS_A_R_ELSE_LREF(\
+ BOOST_FUSION_N))\
             MODIFIER\
         {\
             return static_cast<unfused_typed<F,TransformSeq> MODIFIER&>(*this).\

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -23,6 +23,14 @@
 
 namespace boost { namespace fusion
 {
+#ifdef BOOST_MSVC
+# pragma warning(push)
+ //'class' : multiple copy constructors specified
+# pragma warning(disable:4521)
+ //'class' : multiple assignment operators specified
+# pragma warning(disable:4522)
+#endif
+
     template<
         typename F
         //TODO remove?
@@ -38,7 +46,7 @@
         struct result<Self(Args...)>
           : boost::result_of<
               typename detail::get_func_base<
- typename detail::forward_as<Self,F>::type
+ typename detail::forward_as_lref<Self,F>::type
>::type(BOOST_FUSION_R_ELSE_LREF(
                    typename result_of::vector_tie<Args...>::type))
>
@@ -122,6 +130,10 @@
 
         F f;
     };
+
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
 }}
 
 #endif

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -49,6 +49,14 @@
     }
 #endif
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+ //'class' : multiple copy constructors specified
+# pragma warning(disable:4521)
+ //'class' : multiple assignment operators specified
+# pragma warning(disable:4522)
+#endif
+
     template<typename F, typename TransformSeq>
     struct unfused_typed
 #if defined(BOOST_NO_VARIADIC_TEMPLATES) || defined(BOOST_NO_RVALUE_REFERENCES)
@@ -71,7 +79,7 @@
         struct result<Self(Args...)>
           : boost::result_of<
                 typename detail::get_func_base<
- typename detail::forward_as<Self,F>::type
+ typename detail::forward_as_lref<Self,F>::type
>::type(transformed_args&&)
>
         {};
@@ -148,6 +156,10 @@
 
         F f;
     };
+
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
 }}
 
 #undef BOOST_FUSION_ADAPTER_NAME

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -17,7 +17,7 @@
 {
     namespace result_of
     {
- template <typename F>
+ template<typename F>
         struct BOOST_FUSION_FUNC_NAME
         {
             typedef

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/invoke.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/invoke.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/invoke.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -35,22 +35,28 @@
         };
     }
 
-#ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename F, typename Seq>
+#if defined(BOOST_NO_RVALUE_REFERENCES) ||\
+ defined(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS)
+ template<typename F, typename Seq>
     inline typename result_of::BOOST_FUSION_INVOKE_NAME<F, Seq const&>::type
- BOOST_FUSION_INVOKE_NAME(F f, Seq const& seq)
+ BOOST_FUSION_INVOKE_NAME(F f, BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
- return result_of::BOOST_FUSION_INVOKE_NAME<F, Seq const&>::call(f,seq);
+ return result_of::BOOST_FUSION_INVOKE_NAME<
+ F
+ , BOOST_FUSION_R_ELSE_CLREF(Seq)
+ >::call(f,BOOST_FUSION_FORWARD(Seq,seq));
     }
 
- template <typename F, typename Seq>
+# ifdef BOOST_NO_RVALUE_REFERENCES
+ template<typename F, typename Seq>
     inline typename result_of::BOOST_FUSION_INVOKE_NAME<F,Seq&>::type
     BOOST_FUSION_INVOKE_NAME(F f,Seq& seq)
     {
         return result_of::BOOST_FUSION_INVOKE_NAME<F,Seq&>::call(f,seq);
     }
+# endif
 #else
- template <typename FQualified=void,typename F=void, typename Seq=void>
+ template<typename FQualified=void,typename F=void, typename Seq=void>
     inline typename result_of::BOOST_FUSION_INVOKE_NAME<
         typename mpl::if_<
             is_same<FQualified, void>

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/pp/invoke_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/pp/invoke_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/pp/invoke_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -171,7 +171,7 @@
                   , SeqRef
                   , type
>
- >::type::call(f_, seq);
+ >::type::call(f_, static_cast<SeqRef>(seq));
         }
     };
 }}}

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/pp/invoke_impl_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/pp/invoke_impl_n.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/pp/invoke_impl_n.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -68,8 +68,9 @@
             return
 # endif
                 (that_ptr<typename preevaluate<F>::gen::class_type>::get(
- fusion::front(seq))->*f)(BOOST_PP_ENUM_SHIFTED_1(
- BOOST_FUSION_N,BOOST_FUSION_SEQ_AT_N,_));
+ fusion::front(static_cast<SeqRef>(seq)))->*f)(
+ BOOST_PP_ENUM_SHIFTED_1(
+ BOOST_FUSION_N,BOOST_FUSION_SEQ_AT_N,_));
         }
     };
 
@@ -93,7 +94,7 @@
                             Instance
                           , typename remove_reference<F>::type
>::cv_class_type&
- >::get(fusion::front(seq))->*f);
+ >::get(fusion::front(static_cast<SeqRef>(seq)))->*f);
         }
     };
 # endif
@@ -151,7 +152,7 @@
 
 # define BOOST_FUSION_DEFINE_ITS()\
         typedef typename result_of::begin<SeqRef>::type It0;\
- It0 it0=fusion::begin(seq);\
+ It0 it0=fusion::begin(static_cast<SeqRef>(seq));\
         \
         BOOST_PP_REPEAT_FROM_TO(1, BOOST_FUSION_N, BOOST_FUSION_IT_N, _)
 
@@ -222,11 +223,11 @@
             typedef typename result_of::front<SeqRef>::type Instance;
 
             return (that_ptr<
- typename get_object_pointer_result_type<
- Instance
- , typename remove_reference<F>::type
- >::cv_class_type&
- >::get(fusion::front(seq))->*f);
+ typename get_object_pointer_result_type<
+ Instance
+ , typename remove_reference<F>::type
+ >::cv_class_type&
+ >::get(fusion::front(static_cast<SeqRef>(seq)))->*f);
         }
     };
 # endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/that_ptr.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/that_ptr.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/that_ptr.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,10 +13,13 @@
 #include <boost/fusion/support/internal/small_big_type.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
 
+#include <boost/mpl/or.hpp>
 #include <boost/mpl/bool.hpp>
+#include <boost/type_traits/is_convertible.hpp>
 #include <boost/type_traits/config.hpp>
 #include <boost/type_traits/add_volatile.hpp>
 #include <boost/get_pointer.hpp>
+#include <boost/utility/enable_if.hpp>
 #include <boost/utility/addressof.hpp>
 
 namespace boost { namespace fusion { namespace detail
@@ -54,9 +57,16 @@
             return ptr;
         }
 
- template <typename T>
+ template<typename T>
         static inline wanted
- get(BOOST_FUSION_R_ELSE_LREF(T) t)
+ get(BOOST_FUSION_R_ELSE_LREF(T) t,
+ //TODO
+ typename disable_if<
+ mpl::or_<
+ is_convertible<BOOST_FUSION_R_ELSE_LREF(T),wanted>
+ , is_convertible<BOOST_FUSION_R_ELSE_LREF(T),WantedRef>
+ >
+ >::type* =NULL)
         {
             return do_get_pointer(
                     BOOST_FUSION_FORWARD(T,t),
@@ -75,7 +85,7 @@
         template<typename T>
         big_type const_tester(T const*);
 
- template <typename Ptr>
+ template<typename Ptr>
         struct const_pointee_impl
         {
             static Ptr* what;
@@ -94,7 +104,7 @@
         template<typename T>
         big_type volatile_tester(T volatile*);
 
- template <typename Ptr>
+ template<typename Ptr>
         struct volatile_pointee_impl
         {
             static Ptr* what;
@@ -108,14 +118,14 @@
         };
     }
 
- template <typename PtrOrSmartPtr>
+ template<typename PtrOrSmartPtr>
     struct const_pointee
         : adl_barrier::const_pointee_impl<
               typename identity<PtrOrSmartPtr>::type
>::type
     {};
 
- template <typename PtrOrSmartPtr>
+ template<typename PtrOrSmartPtr>
     struct volatile_pointee
         : adl_barrier::volatile_pointee_impl<
               typename identity<PtrOrSmartPtr>::type

Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/advance.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/advance.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/advance.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -15,14 +16,13 @@
 namespace boost { namespace fusion
 {
     struct random_access_traversal_tag;
- struct iterator_facade_tag;
 
     namespace extension
     {
- template <typename>
+ template<typename>
         struct advance_impl
         {
- template <typename It, typename N>
+ template<typename It, typename N>
             struct apply
               : mpl::if_c<
                     (N::value > 0)
@@ -31,20 +31,11 @@
>::type
             {};
         };
-
- template <>
- struct advance_impl<iterator_facade_tag>
- {
- template <typename It, typename N>
- struct apply
- : detail::remove_reference<It>::type::template advance<It, N>
- {};
- };
     }
 
     namespace result_of
     {
- template <typename It, int N>
+ template<typename It, int N>
         struct advance_c
           : extension::advance_impl<typename traits::tag_of<It>::type>::
                 template apply<It, mpl::int_<N> >
@@ -56,7 +47,7 @@
 
         };
 
- template <typename It, typename N>
+ template<typename It, typename N>
         struct advance
           : extension::advance_impl<typename traits::tag_of<It>::type>::
                 template apply<It, N>
@@ -68,7 +59,7 @@
         };
     }
 
- template <int N, typename It>
+ template<int N, typename It>
     inline typename result_of::advance_c<It const&, N>::type const
     advance_c(It const& it)
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,5 +1,5 @@
 /*=============================================================================
- Copyright (c) 2009 Christopher Schmidt
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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 +10,7 @@
 
 #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>
 #include <boost/mpl/minus.hpp>
@@ -21,19 +21,19 @@
 {
     namespace extension
     {
- template <typename>
+ template<typename>
         struct value_of_impl;
 
- template <typename>
+ template<typename>
         struct deref_impl;
 
- template <typename>
+ template<typename>
         struct value_of_data_impl;
 
- template <typename>
+ template<typename>
         struct key_of_impl;
 
- template <typename>
+ template<typename>
         struct deref_data_impl;
     }
 
@@ -47,32 +47,32 @@
         typedef SeqRef seq_type;
         typedef typename detail::remove_reference<SeqRef>::type* seq_ptr_type;
 
- template <typename It>
+ template<typename It>
         struct value_of
           : extension::value_of_impl<Tag>::template apply<It>
         {};
 
- template <typename It>
+ template<typename It>
         struct deref
           : extension::deref_impl<Tag>::template apply<It>
         {};
 
- template <typename It>
+ template<typename It>
         struct value_of_data
           : extension::value_of_data_impl<Tag>::template apply<It>
         {};
 
- template <typename It>
+ template<typename It>
         struct key_of
           : extension::key_of_impl<Tag>::template apply<It>
         {};
 
- template <typename It>
+ template<typename It>
         struct deref_data
           : extension::deref_data_impl<Tag>::template apply<It>
         {};
 
- template <typename It, typename N>
+ template<typename It, typename N>
         struct advance
         {
             typedef
@@ -86,17 +86,17 @@
             }
         };
 
- template <typename It>
+ template<typename It>
         struct next
           : advance<It, mpl::int_<1> >
         {};
 
- template <typename It>
+ template<typename It>
         struct prior
           : advance<It, mpl::int_<-1> >
         {};
 
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         struct distance
           : mpl::minus<
                 typename detail::remove_reference<It2>::type::index
@@ -104,7 +104,7 @@
>
         {};
 
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         struct equal_to
         {
             typedef typename detail::remove_reference<It2>::type it2;

Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/deref.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/deref.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/deref.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -15,26 +16,15 @@
 
 namespace boost { namespace fusion
 {
- struct iterator_facade_tag;
-
     namespace extension
     {
- template <typename>
+ template<typename>
         struct deref_impl;
-
- template <>
- struct deref_impl<iterator_facade_tag>
- {
- template <typename It>
- struct apply
- : detail::remove_reference<It>::type::template deref<It>
- {};
- };
     }
 
     namespace result_of
     {
- template <typename It>
+ template<typename It>
         struct deref
           : extension::deref_impl<typename traits::tag_of<It>::type>::
                 template apply<It>
@@ -43,14 +33,14 @@
         };
     }
 
- template <typename It>
+ template<typename It>
     typename result_of::deref<It const&>::type
     deref(It const& it)
     {
         return result_of::deref<It const&>::call(it);
     }
 
- template <typename It>
+ template<typename It>
     typename result_of::deref<It const&>::type
     operator*(iterator_base<It> const& it)
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,5 +1,5 @@
 /*=============================================================================
- Copyright (c) 2009 Christopher Schmidt
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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,26 +14,15 @@
 
 namespace boost { namespace fusion
 {
- struct iterator_facade_tag;
-
     namespace extension
     {
- template <typename>
+ template<typename>
         struct deref_data_impl;
-
- template <>
- struct deref_data_impl<iterator_facade_tag>
- {
- template <typename It>
- struct apply
- : detail::remove_reference<It>::type::template deref_data<It>
- {};
- };
     }
 
     namespace result_of
     {
- template <typename It>
+ template<typename It>
         struct deref_data
           : extension::deref_data_impl<typename traits::tag_of<It>::type>::
                 template apply<It>
@@ -43,7 +32,7 @@
         };
     }
 
- template <typename It>
+ template<typename It>
     typename result_of::deref_data<It const&>::type
     deref_data(It const& it)
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -20,10 +20,10 @@
     // Default advance implementation, perform next(it)
     // or prior(it) N times.
 
- template <typename It, int N>
+ template<typename It, int N>
     struct forward;
 
- template <typename It, int N>
+ template<typename It, int N>
     struct next_forward
       : forward<
             typename result_of::next<It>::type
@@ -31,7 +31,7 @@
>
     {};
 
- template <typename It, int N>
+ template<typename It, int N>
     struct forward
     {
         typedef typename
@@ -48,7 +48,7 @@
             return it;
         }
 
- template <typename OtherIt>
+ template<typename OtherIt>
         static type
         call(OtherIt const& it)
         {
@@ -56,10 +56,10 @@
         }
     };
 
- template <typename It, int N>
+ template<typename It, int N>
     struct backward;
 
- template <typename It, int N>
+ template<typename It, int N>
     struct next_backward
       : backward<
             typename result_of::prior<It>::type
@@ -67,7 +67,7 @@
>
     {};
 
- template <typename It, int N>
+ template<typename It, int N>
     struct backward
     {
         typedef typename
@@ -84,7 +84,7 @@
             return it;
         }
 
- template <typename OtherIt>
+ template<typename OtherIt>
         static type
         call(OtherIt const& it)
         {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -22,10 +22,10 @@
     // Default distance implementation, linear
     // search for the End iterator.
 
- template <typename Begin, typename End>
+ template<typename Begin, typename End>
     struct linear_distance;
 
- template <typename Begin, typename End>
+ template<typename Begin, typename End>
     struct next_distance
       : mpl::next<
             typename linear_distance<
@@ -35,7 +35,7 @@
>
     {};
 
- template <typename Begin, typename End>
+ template<typename Begin, typename End>
     struct linear_distance
       : mpl::eval_if<
             result_of::equal_to<Begin, End>

Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/distance.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/distance.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/distance.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -15,33 +16,22 @@
 namespace boost { namespace fusion
 {
     struct random_access_traversal_tag;
- struct iterator_facade_tag;
 
     namespace extension
     {
- template <typename>
+ template<typename>
         struct distance_impl
         {
- template <typename BeginRef, typename EndRef>
+ template<typename BeginRef, typename EndRef>
             struct apply
               : distance_detail::linear_distance<BeginRef, EndRef>
             {};
         };
-
- template <>
- struct distance_impl<iterator_facade_tag>
- {
- template <typename BeginRef, typename EndRef>
- struct apply
- : detail::remove_reference<BeginRef>::type::
- template distance<BeginRef, EndRef>
- {};
- };
     }
 
     namespace result_of
     {
- template <typename Begin, typename End>
+ template<typename Begin, typename End>
         struct distance
           : extension::distance_impl<typename traits::tag_of<Begin>::type>::
                 template apply<Begin, End>::type
@@ -51,7 +41,7 @@
         };
     }
 
- template <typename Begin, typename End>
+ template<typename Begin, typename End>
     inline typename result_of::distance<Begin const&, End const&>::type
     distance(Begin const& a, End const& b)
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,6 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
- Copyright (c) 2009 Christopher Schmidt
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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,26 +18,15 @@
 
 namespace boost { namespace fusion
 {
- struct iterator_facade_tag;
-
     namespace extension
     {
- template <typename>
+ template<typename>
         struct equal_to_impl;
-
- template <>
- struct equal_to_impl<iterator_facade_tag>
- {
- template <typename It1, typename It2>
- struct apply
- : detail::remove_reference<It1>::type::template equal_to<It1, It2>
- {};
- };
     }
 
     namespace result_of
     {
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         struct equal_to
           : extension::equal_to_impl<typename traits::tag_of<It1>::type>::
                 template apply<It1, It2>::type
@@ -49,7 +38,7 @@
 
     namespace iterator_operators
     {
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         inline BOOST_FUSION_CONSTEXPR
         typename enable_if<
             mpl::and_<traits::is_iterator<It1>, traits::is_iterator<It2> >
@@ -60,7 +49,7 @@
             return result_of::equal_to<It1 const&, It1 const&>::value;
         }
 
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         inline BOOST_FUSION_CONSTEXPR
         typename enable_if<
             mpl::and_<

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,5 +1,5 @@
 /*=============================================================================
- Copyright (c) 2009 Christopher Schmidt
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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,23 +9,26 @@
 #define BOOST_FUSION_ITERATOR_ITERATOR_FACADE_HPP
 
 #include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/support/internal/assert.hpp>
+#include <boost/fusion/support/internal/facade_generation.hpp>
 
-#include <boost/mpl/always.hpp>
-#include <boost/mpl/apply.hpp>
+#define BOOST_FUSION_ITERATOR_INTRINSIC_FUNCS \
+ ((advance, 1, 1)) \
+ ((deref_data, 0, 0)) \
+ ((deref, 0, 0)) \
+ ((distance, 1, 0)) \
+ ((equal_to, 1, 0)) \
+ ((key_of, 0, 0)) \
+ ((next, 0, 0)) \
+ ((prior, 0, 0)) \
+ ((value_of_data, 0, 0)) \
+ ((value_of, 0, 0))
+
+BOOST_FUSION_FACADE_DEFINE_INTRINSIC_FUNCS_WRAPPER(
+ iterator_facade_tag, BOOST_FUSION_ITERATOR_INTRINSIC_FUNCS)
 
 namespace boost { namespace fusion
 {
- struct void_;
- struct iterator_facade_tag;
-
- namespace extension
- {
- template<typename>
- struct advance_impl;
- }
-
- template <typename Derived, typename Category>
+ template<typename Derived, typename Category>
     struct iterator_facade
       : iterator_base<Derived>
     {
@@ -35,13 +38,11 @@
 
         //TODO doc
 
- template <typename It, typename N>
- struct advance
- : extension::advance_impl<
- typename mpl::apply1<mpl::always<void_>,It>::type
- >::template apply<It,N>
- {};
+ BOOST_FUSION_FACADE_DEFINE_INTRINSIC_FUNCS_FORWARDER(
+ BOOST_FUSION_ITERATOR_INTRINSIC_FUNCS)
     };
 }}
 
+#undef BOOST_FUSION_ITERATOR_INTRINSIC_FUNCS
+
 #endif

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,5 +1,5 @@
 /*=============================================================================
- Copyright (c) 2009 Christopher Schmidt
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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,27 +13,15 @@
 
 namespace boost { namespace fusion
 {
- struct iterator_facade_tag;
-
     namespace extension
     {
- template <typename>
+ template<typename>
         struct key_of_impl;
-
- template <>
- struct key_of_impl<iterator_facade_tag>
- {
- template <typename It>
- struct apply
- : detail::remove_reference<It>::type::
- template key_of<It>
- {};
- };
     }
 
     namespace result_of
     {
- template <typename It>
+ template<typename It>
         struct key_of
           : extension::key_of_impl<typename traits::tag_of<It>::type>::
                 template apply<It>

Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/next.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/next.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/next.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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,26 +14,15 @@
 
 namespace boost { namespace fusion
 {
- struct iterator_facade_tag;
-
     namespace extension
     {
- template <typename>
+ template<typename>
         struct next_impl;
-
- template <>
- struct next_impl<iterator_facade_tag>
- {
- template <typename It>
- struct apply
- : detail::remove_reference<It>::type::template next<It>
- {};
- };
     }
 
     namespace result_of
     {
- template <typename It>
+ template<typename It>
         struct next
           : extension::next_impl<typename traits::tag_of<It>::type>::
                 template apply<It>
@@ -41,7 +31,7 @@
         };
     }
 
- template <typename It>
+ template<typename It>
     typename result_of::next<It const&>::type const
     next(It const& it)
     {

Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/prior.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/prior.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/prior.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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,26 +14,15 @@
 
 namespace boost { namespace fusion
 {
- struct iterator_facade_tag;
-
     namespace extension
     {
- template <typename>
+ template<typename>
         struct prior_impl;
-
- template <>
- struct prior_impl<iterator_facade_tag>
- {
- template <typename It>
- struct apply
- : detail::remove_reference<It>::type::template prior<It>
- {};
- };
     }
 
     namespace result_of
     {
- template <typename It>
+ template<typename It>
         struct prior
           : extension::prior_impl<typename traits::tag_of<It>::type>::
                 template apply<It>
@@ -41,7 +31,7 @@
         };
     }
 
- template <typename It>
+ template<typename It>
     typename result_of::prior<It const&>::type const
     prior(It const& it)
     {

Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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,26 +14,15 @@
 
 namespace boost { namespace fusion
 {
- struct iterator_facade_tag;
-
     namespace extension
     {
- template <typename>
+ template<typename>
         struct value_of_impl;
-
- template <>
- struct value_of_impl<iterator_facade_tag>
- {
- template <typename It>
- struct apply
- : detail::remove_reference<It>::type::template value_of<It>
- {};
- };
     }
 
     namespace result_of
     {
- template <typename It>
+ template<typename It>
         struct value_of
           : extension::value_of_impl<typename traits::tag_of<It>::type>::
                 template apply<It>

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,5 +1,5 @@
 /*=============================================================================
- Copyright (c) 2009 Christopher Schmidt
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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,27 +13,15 @@
 
 namespace boost { namespace fusion
 {
- struct iterator_facade_tag;
-
     namespace extension
     {
- template <typename>
+ template<typename>
         struct value_of_data_impl;
-
- template <>
- struct value_of_data_impl<iterator_facade_tag>
- {
- template <typename It>
- struct apply
- : detail::remove_reference<It>::type::
- template value_of_data<It>
- {};
- };
     }
 
     namespace result_of
     {
- template <typename It>
+ template<typename It>
         struct value_of_data
           : extension::value_of_data_impl<typename traits::tag_of<It>::type>::
                 template apply<It>

Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/at.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/at.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/at.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -19,13 +19,13 @@
 
     namespace mpl
     {
- template <typename>
+ template<typename>
         struct at_impl;
 
- template <>
+ template<>
         struct at_impl<fusion::fusion_sequence_tag>
         {
- template <typename Seq, typename N>
+ template<typename Seq, typename N>
             struct apply
               : fusion::result_of::value_at<Seq, N>
             {};

Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/back.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/back.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/back.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -14,13 +14,13 @@
 
 namespace boost { namespace mpl
 {
- template <typename>
+ template<typename>
     struct back_impl;
 
- template <>
+ template<>
     struct back_impl<fusion::fusion_sequence_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
           : fusion::result_of::value_of<
                 typename fusion::result_of::prior<

Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/begin.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/begin.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/begin.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -14,13 +14,13 @@
 
 namespace boost { namespace mpl
 {
- template <typename>
+ template<typename>
     struct begin_impl;
 
- template <>
+ template<>
     struct begin_impl<fusion::fusion_sequence_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -14,13 +14,13 @@
 
 namespace boost { namespace mpl
 {
- template <typename>
+ template<typename>
     struct clear_impl;
 
- template <>
+ template<>
     struct clear_impl<fusion::fusion_sequence_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
           : fusion::result_of::clear<Seq>
         {};

Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/empty.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/empty.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/empty.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace mpl
 {
- template <typename>
+ template<typename>
     struct empty_impl;
 
- template <>
+ template<>
     struct empty_impl<fusion::fusion_sequence_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
           : fusion::result_of::empty<Seq>
         {};

Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/end.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/end.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/end.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -14,13 +14,13 @@
 
 namespace boost { namespace mpl
 {
- template <typename>
+ template<typename>
     struct end_impl;
 
- template <>
+ template<>
     struct end_impl<fusion::fusion_sequence_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace mpl
 {
- template <typename>
+ template<typename>
     struct erase_impl;
 
- template <>
+ template<>
     struct erase_impl<fusion::fusion_sequence_tag>
     {
- template <typename Seq, typename Begin, typename End>
+ template<typename Seq, typename Begin, typename End>
         struct apply
           : fusion::result_of::erase<Seq, Begin, End>
         {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace mpl
 {
- template <typename>
+ template<typename>
     struct erase_key_impl;
 
- template <>
+ template<>
     struct erase_key_impl<fusion::fusion_sequence_tag>
     {
- template <typename Seq, typename Key>
+ template<typename Seq, typename Key>
         struct apply
           : fusion::result_of::erase_key<Seq, Key>
         {};

Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/front.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/front.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/front.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace mpl
 {
- template <typename>
+ template<typename>
     struct front_impl;
 
- template <>
+ template<>
     struct front_impl<fusion::fusion_sequence_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
           : fusion::result_of::value_of<
                 typename fusion::result_of::begin<Seq>::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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -21,7 +21,7 @@
 
 namespace boost { namespace mpl
 {
- template <typename It>
+ template<typename It>
     struct fusion_iterator
       : fusion::result_of::value_of<It>
     {
@@ -29,7 +29,7 @@
         typedef It iterator;
     };
 
- template <typename It>
+ template<typename It>
     struct next<fusion_iterator<It> >
     {
         typedef
@@ -37,7 +37,7 @@
         type;
     };
 
- template <typename It>
+ template<typename It>
     struct prior<fusion_iterator<It> >
     {
         typedef
@@ -45,7 +45,7 @@
         type;
     };
 
- template <typename It, typename N>
+ template<typename It, typename N>
     struct advance<fusion_iterator<It>, N>
     {
         typedef
@@ -55,7 +55,7 @@
         type;
     };
 
- template <typename Begin, typename End>
+ template<typename Begin, typename End>
     struct distance<fusion_iterator<Begin>, fusion_iterator<End> >
       : fusion::result_of::distance<Begin, End>
     {};

Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/has_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/has_key.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/has_key.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace mpl
 {
- template <typename>
+ template<typename>
     struct has_key_impl;
 
- template <>
+ template<>
     struct has_key_impl<fusion::fusion_sequence_tag>
     {
- template <typename Seq, typename Key>
+ template<typename Seq, typename Key>
         struct apply
           : fusion::result_of::has_key<Seq, Key>
         {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace mpl
 {
- template <typename>
+ template<typename>
     struct insert_impl;
 
- template <>
+ template<>
     struct insert_impl<fusion::fusion_sequence_tag>
     {
- template <typename Seq, typename Pos, typename T>
+ template<typename Seq, typename Pos, typename T>
         struct apply
           : fusion::result_of::insert<Seq, Pos, T>
         {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace mpl
 {
- template <typename>
+ template<typename>
     struct insert_range_impl;
 
- template <>
+ template<>
     struct insert_range_impl<fusion::fusion_sequence_tag>
     {
- template <typename Seq, typename Pos, typename Range>
+ template<typename Seq, typename Pos, typename Range>
         struct apply
           : fusion::result_of::insert_range<Seq, Pos, Range>
         {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace mpl
 {
- template <typename>
+ template<typename>
     struct pop_back_impl;
 
- template <>
+ template<>
     struct pop_back_impl<fusion::fusion_sequence_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
           : fusion::result_of::pop_back<Seq>
         {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace mpl
 {
- template <typename>
+ template<typename>
     struct pop_front_impl;
 
- template <>
+ template<>
     struct pop_front_impl<fusion::fusion_sequence_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
           : fusion::result_of::pop_front<Seq>
         {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace mpl
 {
- template <typename>
+ template<typename>
     struct push_back_impl;
 
- template <>
+ template<>
     struct push_back_impl<fusion::fusion_sequence_tag>
     {
- template <typename Seq, typename T>
+ template<typename Seq, typename T>
         struct apply
           : fusion::result_of::push_back<Seq, T>
         {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace mpl
 {
- template <typename>
+ template<typename>
     struct push_front_impl;
 
- template <>
+ template<>
     struct push_front_impl<fusion::fusion_sequence_tag>
     {
- template <typename Seq, typename T>
+ template<typename Seq, typename T>
         struct apply
           : fusion::result_of::push_front<Seq, T>
         {};

Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/size.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/size.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/size.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace mpl
 {
- template <typename>
+ template<typename>
     struct size_impl;
 
- template <>
+ template<>
     struct size_impl<fusion::fusion_sequence_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
           : fusion::result_of::size<Seq>
         {};

Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/enable_comparison.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/enable_comparison.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/enable_comparison.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -18,7 +18,7 @@
 
 namespace boost { namespace fusion { namespace detail
 {
- template <typename Seq1Ref, typename Seq2Ref>
+ template<typename Seq1Ref, typename Seq2Ref>
     struct enable_equality
       : mpl::or_<
             traits::is_sequence<Seq1Ref>
@@ -26,7 +26,7 @@
>
     {};
 
- template <typename Seq1Ref, typename Seq2Ref>
+ template<typename Seq1Ref, typename Seq2Ref>
     struct enable_comparison
         : mpl::and_<
             mpl::or_<

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -18,13 +18,13 @@
 
 namespace boost { namespace fusion { namespace detail
 {
- template <typename Seq1Ref, typename Seq2Ref, bool same_size>
+ template<typename Seq1Ref, typename Seq2Ref, bool same_size>
     struct sequence_equal_to
     {
         typedef typename result_of::end<Seq1Ref>::type end1_type;
         typedef typename result_of::end<Seq2Ref>::type end2_type;
 
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         static BOOST_FUSION_CONSTEXPR
         bool
         call(It1 const&, It2 const&, mpl::true_)
@@ -32,7 +32,7 @@
             return true;
         }
 
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         static bool
         call(It1 const& it1, It2 const& it2, mpl::false_)
         {
@@ -40,7 +40,7 @@
                    call(fusion::next(it1), fusion::next(it2));
         }
 
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         static bool
         call(It1 const& it1, It2 const& it2)
         {
@@ -50,10 +50,10 @@
         }
     };
 
- template <typename Seq1Ref, typename Seq2Ref>
+ template<typename Seq1Ref, typename Seq2Ref>
     struct sequence_equal_to<Seq1Ref, Seq2Ref, false>
     {
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         static BOOST_FUSION_CONSTEXPR
         bool
         call(It1 const&, It2 const&)

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -17,13 +17,13 @@
 
 namespace boost { namespace fusion { namespace detail
 {
- template <typename Seq1, typename Seq2>
+ template<typename Seq1, typename Seq2>
     struct sequence_greater
     {
         typedef typename result_of::end<Seq1>::type end1_type;
         typedef typename result_of::end<Seq2>::type end2_type;
 
- template <typename It1, typename I2>
+ template<typename It1, typename I2>
         static BOOST_FUSION_CONSTEXPR
         bool
         call(It1 const&, I2 const&, mpl::true_)
@@ -31,7 +31,7 @@
             return false;
         }
 
- template <typename It1, typename I2>
+ template<typename It1, typename I2>
         static bool
         call(It1 const& it1, It2 const& it2, mpl::false_)
         {
@@ -40,7 +40,7 @@
                        call(fusion::next(it1), fusion::next(it2)));
         }
 
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         static bool
         call(It1 const& it1, It2 const& it2)
         {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -17,13 +17,13 @@
 
 namespace boost { namespace fusion { namespace detail
 {
- template <typename Seq1Ref, typename Seq2Ref>
+ template<typename Seq1Ref, typename Seq2Ref>
     struct sequence_greater_equal
     {
         typedef typename result_of::end<Seq1Ref>::type end1_type;
         typedef typename result_of::end<Seq2Ref>::type end2_type;
 
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         static BOOST_FUSION_CONSTEXPR
         bool
         call(It1 const&, It2 const&, mpl::true_)
@@ -31,7 +31,7 @@
             return true;
         }
 
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         static bool
         call(It1 const& it1, It2 const& it1, mpl::false_)
         {
@@ -40,7 +40,7 @@
                        call(fusion::next(a), fusion::next(b)));
         }
 
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         static bool
         call(It1 const& it1, It2 const& it2)
         {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -17,13 +17,13 @@
 
 namespace boost { namespace fusion { namespace detail
 {
- template <typename Seq1, typename Seq2>
+ template<typename Seq1, typename Seq2>
     struct sequence_less
     {
         typedef typename result_of::end<Seq1>::type end1_type;
         typedef typename result_of::end<Seq2>::type end2_type;
 
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         static BOOST_FUSION_CONSTEXPR
         bool
         call(It1 const&, It2 const&, mpl::true_)
@@ -31,7 +31,7 @@
             return false;
         }
 
- template <typename It1, typename I2>
+ template<typename It1, typename I2>
         static bool
         call(It1 const& it1, I2 const& it2, mpl::false_)
         {
@@ -40,7 +40,7 @@
                        call(fusion::next(it1), fusion::next(it2)));
         }
 
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         static bool
         call(It1 const& it1, It2 const& it2)
         {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -17,13 +17,13 @@
 
 namespace boost { namespace fusion { namespace detail
 {
- template <typename Seq1, typename Seq2>
+ template<typename Seq1, typename Seq2>
     struct sequence_less_equal
     {
         typedef typename result_of::end<Seq1>::type end1_type;
         typedef typename result_of::end<Seq2>::type end2_type;
 
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         static BOOST_FUSION_CONSTEXPR
         bool
         call(It1 const&, It2 const&, mpl::true_)
@@ -31,7 +31,7 @@
             return true;
         }
 
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         static bool
         call(It1 const& it1, It2 const& it2, mpl::false_)
         {
@@ -40,7 +40,7 @@
                        call(fusion::next(it1), fusion::next(it2)));
         }
 
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         static bool
         call(It1 const& it1, It2 const& it2)
         {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -17,13 +17,13 @@
 
 namespace boost { namespace fusion { namespace detail
 {
- template <typename Seq1Ref, typename Seq2Ref, bool same_size>
+ template<typename Seq1Ref, typename Seq2Ref, bool same_size>
     struct sequence_not_equal_to
     {
         typedef typename result_of::end<Seq1Ref>::type end1_type;
         typedef typename result_of::end<Seq2Ref>::type end2_type;
 
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         static BOOST_FUSION_CONSTEXPR
         bool
         call(It1 const&, It2 const&, mpl::true_)
@@ -31,7 +31,7 @@
             return false;
         }
 
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         static bool
         call(It1 const& it1, It2 const& it2, mpl::false_)
         {
@@ -39,7 +39,7 @@
                    call(fusion::next(it1), fusion::next(it2));
         }
 
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         static bool
         call(It1 const& it1, It2 const& it2)
         {
@@ -50,10 +50,10 @@
         }
     };
 
- template <typename Seq1Ref, typename Seq2Ref>
+ template<typename Seq1Ref, typename Seq2Ref>
     struct sequence_not_equal_to<Seq1Ref, Seq2Ref, false>
     {
- template <typename It1, typename It2>
+ template<typename It1, typename It2>
         static bool
         call(It1 const&, It2 const&)
         {

Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/equal_to.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/equal_to.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/equal_to.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -19,7 +19,7 @@
 
 namespace boost { namespace fusion
 {
- template <typename Seq1, typename Seq2>
+ template<typename Seq1, typename Seq2>
     inline bool
     equal_to(Seq1 const& seq1, Seq2 const& seq2)
     {
@@ -39,7 +39,7 @@
 
     namespace operators
     {
- template <typename Seq1, typename Seq2>
+ template<typename Seq1, typename Seq2>
         inline typename
             enable_if<
                 detail::enable_equality<Seq1 const&, Seq2 const&>

Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -22,7 +22,7 @@
 
 namespace boost { namespace fusion
 {
- template <typename Seq1, typename Seq2>
+ template<typename Seq1, typename Seq2>
     inline bool
     greater(Seq1 const& seq1, Seq2 const& seq2)
     {
@@ -44,7 +44,7 @@
 
     namespace operators
     {
- template <typename Seq1, typename Seq2>
+ template<typename Seq1, typename Seq2>
         inline typename
             enable_if<
                 detail::enable_comparison<Seq1 const&, Seq2 const&>

Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater_equal.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater_equal.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater_equal.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -22,7 +22,7 @@
 
 namespace boost { namespace fusion
 {
- template <typename Seq1, typename Seq2>
+ template<typename Seq1, typename Seq2>
     inline bool
     greater_equal(Seq1 const& seq1, Seq2 const& seq2)
     {
@@ -44,7 +44,7 @@
 
     namespace operators
     {
- template <typename Seq1, typename Seq2>
+ template<typename Seq1, typename Seq2>
         inline typename
             enable_if<
                 detail::enable_comparison<Seq1 const&, Seq2 const&>

Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -18,7 +18,7 @@
 
 namespace boost { namespace fusion
 {
- template <typename Seq1, typename Seq2>
+ template<typename Seq1, typename Seq2>
     inline bool
     less(Seq1 const& seq1, Seq2 const& seq2)
     {
@@ -36,7 +36,7 @@
 
     namespace operators
     {
- template <typename Seq1, typename Seq2>
+ template<typename Seq1, typename Seq2>
         inline typename
             enable_if<
                 detail::enable_equality<Seq1 const&, Seq2 const&>

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -22,7 +22,7 @@
 
 namespace boost { namespace fusion
 {
- template <typename Seq1, typename Seq2>
+ template<typename Seq1, typename Seq2>
     inline bool
     less_equal(Seq1 const& seq1, Seq2 const& seq2)
     {
@@ -48,21 +48,21 @@
     {
 #if defined(BOOST_MSVC) && (BOOST_MSVC <= 1400)
 // Workaround for VC8.0 and VC7.1
- template <typename Seq1, typename Seq2>
+ template<typename Seq1, typename Seq2>
         inline bool
         operator<=(sequence_base<Seq1> const& seq1, sequence_base<Seq2 const&> const& seq2)
         {
             return less_equal(seq1.derived(), seq2.derived());
         }
 
- template <typename Seq1, typename Seq2>
+ template<typename Seq1, typename Seq2>
         inline typename disable_if<detail::is_native_fusion_sequence<Seq2 const&>, bool>::type
         operator<=(sequence_base<Seq1> const& seq1, Seq2 const& seq2)
         {
             return less_equal(seq1.derived(), seq2);
         }
 
- template <typename Seq1, typename Seq2>
+ template<typename Seq1, typename Seq2>
         inline typename disable_if<detail::is_native_fusion_sequence<Seq1 const&>, bool>::type
         operator<=(Seq1 const& seq1, sequence_base<Seq2> const& b)
         {
@@ -72,7 +72,7 @@
 #else
 // Somehow VC8.0 and VC7.1 does not like this code
 // but barfs somewhere else.
- template <typename Seq1, typename Seq2>
+ template<typename Seq1, typename Seq2>
         inline typename
             enable_if<
                 detail::enable_comparison<Seq1 const&, Seq2 const&>

Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/not_equal_to.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/not_equal_to.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/not_equal_to.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -22,7 +22,7 @@
 
 namespace boost { namespace fusion
 {
- template <typename Seq1, typename Seq2>
+ template<typename Seq1, typename Seq2>
     inline bool
     not_equal_to(Seq1 const& seq1, Seq2 const& seq2)
     {
@@ -46,7 +46,7 @@
 
     namespace operators
     {
- template <typename Seq1, typename Seq2>
+ template<typename Seq1, typename Seq2>
         inline typename
             enable_if<
                 detail::enable_equality<Seq1 const&, Seq2 const&>

Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/convert.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/convert.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -18,7 +18,7 @@
 {
     namespace extension
     {
- template <typename>
+ template<typename>
         struct convert_impl
         {
             template<typename Seq>
@@ -37,7 +37,7 @@
 
     namespace result_of
     {
- template <typename Tag, typename Seq>
+ template<typename Tag, typename Seq>
         struct convert
           : extension::convert_impl<Tag>::template apply<Seq>
         {
@@ -46,7 +46,7 @@
         };
     }
 
- template <typename Tag, typename Seq>
+ template<typename Tag, typename Seq>
     inline typename
         result_of::convert<Tag, BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
     convert(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)

Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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,7 +17,6 @@
 
 namespace boost { namespace fusion
 {
- struct sequence_facade_tag;
 #ifdef BOOST_FUSION_ENABLE_STATIC_ASSERTS
     struct list_tag;
     struct cons_tag;
@@ -24,22 +24,13 @@
 
     namespace extension
     {
- template <typename>
+ template<typename>
         struct at_impl;
-
- template <>
- struct at_impl<sequence_facade_tag>
- {
- template <typename Seq, typename N>
- struct apply
- : detail::remove_reference<Seq>::type::template at<Seq, N>
- {};
- };
     }
 
     namespace result_of
     {
- template <typename Seq, typename N>
+ template<typename Seq, typename N>
         struct at
           : extension::at_impl<typename traits::tag_of<Seq>::type>::
                 template apply<Seq, N>
@@ -61,7 +52,7 @@
             BOOST_FUSION_INDEX_CHECK(N::value,size<Seq>::value);
         };
 
- template <typename Seq, int N>
+ template<typename Seq, int N>
         struct at_c
           : at<Seq, mpl::int_<N> >
         {
@@ -82,7 +73,7 @@
         };
     }
 
- template <typename N, typename Seq>
+ template<typename N, typename Seq>
     inline typename result_of::at<BOOST_FUSION_R_ELSE_CLREF(Seq), N>::type
     at(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
@@ -91,7 +82,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename N, typename Seq>
+ template<typename N, typename Seq>
     inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
             result_of::at<,Seq,&,N>)
     at(Seq& seq)
@@ -100,7 +91,7 @@
     }
 #endif
 
- template <int N, typename Seq>
+ template<int N, typename Seq>
     inline typename
         result_of::at_c<BOOST_FUSION_R_ELSE_CLREF(Seq), N>::type
     at_c(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
@@ -109,7 +100,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <int N, typename Seq>
+ template<int N, typename Seq>
     inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
             result_of::at_c<,Seq,&, N>)
     at_c(Seq& seq)

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,7 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2006 Dan Marsden
- Copyright (c) 2009 Christopher Schmidt
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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,14 +18,12 @@
 
 namespace boost { namespace fusion
 {
- struct sequence_facade_tag;
-
     namespace extension
     {
- template <typename>
+ template<typename>
         struct at_key_impl
         {
- template <typename Seq, typename Key>
+ template<typename Seq, typename Key>
             struct apply
             {
                 typedef typename
@@ -42,21 +40,11 @@
                 }
             };
         };
-
- template <>
- struct at_key_impl<sequence_facade_tag>
- {
- template <typename Seq, typename Key>
- struct apply
- : detail::remove_reference<Seq>::type::
- template at_key<Seq, Key>
- {};
- };
     }
 
     namespace result_of
     {
- template <typename Seq, typename Key>
+ template<typename Seq, typename Key>
         struct at_key
             : extension::at_key_impl<typename traits::tag_of<Seq>::type>::
                 template apply<Seq, Key>
@@ -67,7 +55,7 @@
         };
     }
 
- template <typename Key, typename Seq>
+ template<typename Key, typename Seq>
     inline typename
         result_of::at_key<
             BOOST_FUSION_R_ELSE_CLREF(Seq)
@@ -80,7 +68,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Key, typename Seq>
+ template<typename Key, typename Seq>
     inline typename result_of::at_key<Seq&, Key>::type
     at_key(Seq& seq)
     {

Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/back.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/back.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/back.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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,16 +14,13 @@
 #include <boost/fusion/iterator/deref.hpp>
 #include <boost/fusion/support/internal/assert.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
-
 #include <boost/mpl/bool.hpp>
 
 namespace boost { namespace fusion
 {
- struct sequence_facade_tag;
-
     namespace result_of
     {
- template <typename Seq>
+ template<typename Seq>
         struct back
           : deref<typename prior<typename end<Seq>::type>::type>
         {
@@ -32,7 +30,7 @@
         };
     }
 
- template <typename Seq>
+ template<typename Seq>
     inline typename result_of::back<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
     back(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
@@ -41,7 +39,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Seq>
+ template<typename Seq>
     inline typename result_of::back<Seq&>::type
     back(Seq& seq)
     {

Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/begin.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/begin.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/begin.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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,26 +15,15 @@
 
 namespace boost { namespace fusion
 {
- struct sequence_facade_tag;
-
     namespace extension
     {
- template <typename>
+ template<typename>
         struct begin_impl;
-
- template <>
- struct begin_impl<sequence_facade_tag>
- {
- template <typename Seq>
- struct apply
- : detail::remove_reference<Seq>::type::template begin<Seq>
- {};
- };
     }
 
     namespace result_of
     {
- template <typename Seq>
+ template<typename Seq>
         struct begin
             : extension::begin_impl<typename traits::tag_of<Seq>::type>::
                 template apply<Seq>
@@ -43,7 +33,7 @@
         };
     }
 
- template <typename Seq>
+ template<typename Seq>
     inline typename
         result_of::begin<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
     begin(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
@@ -53,7 +43,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Seq>
+ template<typename Seq>
     inline typename result_of::begin<Seq&>::type
     begin(Seq& seq)
     {

Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/empty.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/empty.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/empty.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -17,32 +18,21 @@
 
 namespace boost { namespace fusion
 {
- struct sequence_facade_tag;
-
     namespace extension
     {
- template <typename>
+ template<typename>
         struct empty_impl
         {
- template <typename Seq>
+ template<typename Seq>
             struct apply
               : mpl::bool_<!result_of::size<Seq>::value>
             {};
         };
-
- template <>
- struct empty_impl<sequence_facade_tag>
- {
- template <typename Seq>
- struct apply
- : detail::remove_reference<Seq>::type::template empty<Seq>
- {};
- };
     }
 
     namespace result_of
     {
- template <typename Seq>
+ template<typename Seq>
         struct empty
           : extension::empty_impl<typename traits::tag_of<Seq>::type>::
                 template apply<Seq>::type
@@ -52,7 +42,7 @@
         };
     }
 
- template <typename Seq>
+ template<typename Seq>
     inline typename result_of::empty<Seq const&>::type
     empty(Seq const&)
     {

Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/end.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/end.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/end.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -14,26 +14,15 @@
 
 namespace boost { namespace fusion
 {
- struct sequence_facade_tag;
-
     namespace extension
     {
- template <typename>
+ template<typename>
         struct end_impl;
-
- template <>
- struct end_impl<sequence_facade_tag>
- {
- template <typename Seq>
- struct apply
- : detail::remove_reference<Seq>::type::template end<Seq>
- {};
- };
     }
 
     namespace result_of
     {
- template <typename Seq>
+ template<typename Seq>
         struct end
           : extension::end_impl<typename traits::tag_of<Seq>::type>::
                 template apply<Seq>
@@ -42,7 +31,7 @@
         };
     }
 
- template <typename Seq>
+ template<typename Seq>
     inline typename
         result_of::end<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type const
     end(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
@@ -52,7 +41,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Seq>
+ template<typename Seq>
     inline typename result_of::end<Seq&>::type
     end(Seq& seq)
     {

Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/ext_/segments.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/ext_/segments.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/ext_/segments.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -16,7 +16,7 @@
 {
     namespace extension
     {
- template <typename>
+ template<typename>
         struct segments_impl;
     }
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/front.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/front.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/front.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -21,7 +21,7 @@
 
     namespace result_of
     {
- template <typename Seq>
+ template<typename Seq>
         struct front
           : deref<typename begin<Seq>::type>
         {
@@ -31,7 +31,7 @@
         };
     }
 
- template <typename Seq>
+ template<typename Seq>
     inline typename result_of::front<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
     front(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
@@ -39,7 +39,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename Seq>
+ template<typename Seq>
     inline typename result_of::front<Seq&>::type
     front(Seq& seq)
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -20,14 +20,12 @@
 
 namespace boost { namespace fusion
 {
- struct sequence_facade_tag;
-
     namespace extension
     {
- template <typename>
+ template<typename>
         struct has_key_impl
         {
- template <typename Seq, typename Key>
+ template<typename Seq, typename Key>
             struct apply
               : mpl::not_<
                     typename result_of::equal_to<
@@ -37,20 +35,11 @@
>::type
             {};
         };
-
- template <>
- struct has_key_impl<sequence_facade_tag>
- {
- template <typename Seq, typename Key>
- struct apply
- : detail::remove_reference<Seq>::type::template has_key<Seq, Key>
- {};
- };
     }
 
     namespace result_of
     {
- template <typename Seq, typename Key>
+ template<typename Seq, typename Key>
         struct has_key
           : extension::has_key_impl<typename traits::tag_of<Seq>::type>::
                 template apply<Seq, Key>
@@ -60,7 +49,7 @@
         };
     }
 
- template <typename Key, typename Seq>
+ template<typename Key, typename Seq>
     inline typename result_of::has_key<Seq const&, Key>::type
     has_key(Seq const& seq)
     {

Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/size.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/size.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/size.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -16,32 +16,21 @@
 
 namespace boost { namespace fusion
 {
- struct sequence_facade_tag;
-
     namespace extension
     {
- template <typename>
+ template<typename>
         struct size_impl
         {
- template <typename Seq>
+ template<typename Seq>
             struct apply
               : detail::remove_reference<Seq>::type::size
             {};
         };
-
- template <>
- struct size_impl<sequence_facade_tag>
- {
- template <typename Seq>
- struct apply
- : detail::remove_reference<Seq>::type::template size<Seq>::type
- {};
- };
     }
 
     namespace result_of
     {
- template <typename Seq>
+ template<typename Seq>
         struct size
           : extension::size_impl<typename traits::tag_of<Seq>::type>::
                 template apply<Seq>::type
@@ -51,7 +40,7 @@
         };
     }
 
- template <typename Seq>
+ template<typename Seq>
     inline typename result_of::size<Seq const&>::type
     size(Seq const&)
     {

Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -15,7 +15,6 @@
 
 namespace boost { namespace fusion
 {
- struct sequence_facade_tag;
 #ifdef BOOST_FUSION_ENABLE_STATIC_ASSERTS
     struct list_tag;
     struct cons_tag;
@@ -23,23 +22,13 @@
 
     namespace extension
     {
- template <typename>
+ template<typename>
         struct value_at_impl;
-
- template <>
- struct value_at_impl<sequence_facade_tag>
- {
- template <typename Seq, typename N>
- struct apply
- : detail::remove_reference<Seq>::type::
- template value_at<Seq, N>
- {};
- };
     }
 
     namespace result_of
     {
- template <typename Seq, typename N>
+ template<typename Seq, typename N>
         struct value_at
           : extension::value_at_impl<typename traits::tag_of<Seq>::type>::
                 template apply<Seq, N>
@@ -61,9 +50,9 @@
             BOOST_FUSION_INDEX_CHECK(N::value,size<Seq>::value);
         };
 
- template <typename Seq, int N>
+ template<typename Seq, int N>
         struct value_at_c
- : result_of::value_at<Seq,mpl::int_<N> >
+ : value_at<Seq,mpl::int_<N> >
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -19,35 +19,23 @@
 
 namespace boost { namespace fusion
 {
- struct sequence_facade_tag;
-
     namespace extension
     {
- template <typename>
+ template<typename>
         struct value_at_key_impl
         {
- template <typename Seq, typename Key>
+ template<typename Seq, typename Key>
             struct apply
               : result_of::value_of_data<
                     typename result_of::find_key<Seq, Key>::type
>
             {};
         };
-
- template <>
- struct value_at_key_impl<sequence_facade_tag>
- {
- template <typename Seq, typename Key>
- struct apply
- : detail::remove_reference<Seq>::type::
- template value_at_key<Seq, Key>
- {};
- };
     }
 
     namespace result_of
     {
- template <typename Seq, typename Key>
+ template<typename Seq, typename Key>
         struct value_at_key
           : extension::value_at_key_impl<typename traits::tag_of<Seq>::type>::
                 template apply<Seq, Key>

Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/in.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/in.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/in.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -23,11 +23,11 @@
 
 namespace boost { namespace fusion { namespace detail
 {
- template <typename Tag>
+ template<typename Tag>
     struct delimiter_in
     {
         // read a delimiter
- template <typename IS>
+ template<typename IS>
         static void
         read(IS& is, char const* delim, mpl::false_ = mpl::false_())
         {
@@ -35,7 +35,7 @@
             manip.read(delim);
         }
 
- template <typename IS>
+ template<typename IS>
         static void
         read(IS& is, char const* delim, mpl::true_)
         {
@@ -44,13 +44,13 @@
 
     struct read_sequence_loop
     {
- template <typename IS, typename Begin, typename End>
+ template<typename IS, typename Begin, typename End>
         static void
         call(IS& is, Begin const&, End const&, mpl::true_)
         {
         }
 
- template <typename IS, typename Begin, typename End>
+ template<typename IS, typename Begin, typename End>
         static void
         call(IS& is, Begin const& first, End const& last, mpl::false_)
         {
@@ -66,7 +66,7 @@
             call(is, fusion::next(first), last, is_last());
         }
 
- template <typename IS, typename Begin, typename End>
+ template<typename IS, typename Begin, typename End>
         static void
         call(IS& is, Begin const& first, End const& last)
         {
@@ -80,7 +80,7 @@
         }
     };
 
- template <typename IS, typename Seq>
+ template<typename IS, typename Seq>
     inline void
     read_sequence(IS& is, Seq& seq)
     {

Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/manip.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/manip.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/manip.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -36,7 +36,7 @@
 {
     namespace detail
     {
- template <typename Tag>
+ template<typename Tag>
         int get_xalloc_index(Tag* = 0)
         {
             // each Tag will have a unique index
@@ -44,7 +44,7 @@
             return index;
         }
 
- template <typename Stream, typename Tag, typename T>
+ template<typename Stream, typename Tag, typename T>
         struct stream_data
         {
             struct arena
@@ -76,7 +76,7 @@
             }
         };
 
- template <typename Tag, typename Stream>
+ template<typename Tag, typename Stream>
         class string_ios_manip
         {
         public:
@@ -128,7 +128,7 @@
 
         private:
 
- template <typename Char>
+ template<typename Char>
             void
             check_delim(Char c) const
             {
@@ -161,14 +161,14 @@
             name##_type(const string_type& d): data(d) {} \
         }; \
                                                                                 \
- template <typename Stream> \
+ template<typename Stream> \
         Stream& operator>>(Stream& s, const name##_type& m) \
         { \
             string_ios_manip<name##_tag, Stream>(s).set(m.data); \
             return s; \
         } \
                                                                                 \
- template <typename Stream> \
+ template<typename Stream> \
         Stream& operator<<(Stream& s, const name##_type& m) \
         { \
             string_ios_manip<name##_tag, Stream>(s).set(m.data); \
@@ -200,7 +200,7 @@
 #if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
 
 #define STD_TUPLE_DEFINE_MANIPULATOR_FUNCTIONS(name) \
- template <typename Char, typename Traits> \
+ template<typename Char, typename Traits> \
     inline detail::name##_type<Char, Traits> \
     name(const std::basic_string<Char, Traits>& s) \
     { \
@@ -234,28 +234,28 @@
 #else // defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
 
 #define STD_TUPLE_DEFINE_MANIPULATOR_FUNCTIONS(name) \
- template <typename Char, typename Traits> \
+ template<typename Char, typename Traits> \
     inline detail::name##_type<Char, Traits> \
     name(const std::basic_string<Char, Traits>& s) \
     { \
         return detail::name##_type<Char, Traits>(s); \
     } \
                                                                                 \
- template <typename Char> \
+ template<typename Char> \
     inline detail::name##_type<Char> \
     name(Char s[]) \
     { \
         return detail::name##_type<Char>(std::basic_string<Char>(s)); \
     } \
                                                                                 \
- template <typename Char> \
+ template<typename Char> \
     inline detail::name##_type<Char> \
     name(Char const s[]) \
     { \
         return detail::name##_type<Char>(std::basic_string<Char>(s)); \
     } \
                                                                                 \
- template <typename Char> \
+ template<typename Char> \
     inline detail::name##_type<Char> \
     name(Char c) \
     { \
@@ -269,7 +269,7 @@
     { \
         struct name##_tag; \
                                                                                 \
- template <typename Char, typename Traits = std::char_traits<Char> > \
+ template<typename Char, typename Traits = std::char_traits<Char> > \
         struct name##_type \
         { \
             typedef std::basic_string<Char, Traits> string_type; \
@@ -277,14 +277,14 @@
             name##_type(const string_type& d): data(d) {} \
         }; \
                                                                                 \
- template <typename Stream, typename Char, typename Traits> \
+ template<typename Stream, typename Char, typename Traits> \
         Stream& operator>>(Stream& s, const name##_type<Char,Traits>& m) \
         { \
             string_ios_manip<name##_tag, Stream>(s).set(m.data); \
             return s; \
         } \
                                                                                 \
- template <typename Stream, typename Char, typename Traits> \
+ template<typename Stream, typename Char, typename Traits> \
         Stream& operator<<(Stream& s, const name##_type<Char,Traits>& m) \
         { \
             string_ios_manip<name##_tag, Stream>(s).set(m.data); \

Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/out.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/out.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/out.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -22,11 +22,11 @@
 
 namespace boost { namespace fusion { namespace detail
 {
- template <typename Tag>
+ template<typename Tag>
     struct delimiter_out
     {
         // print a delimiter
- template <typename OS>
+ template<typename OS>
         static void
         print(OS& os, char const* delim, mpl::false_ = mpl::false_())
         {
@@ -34,7 +34,7 @@
             manip.print(delim);
         }
 
- template <typename OS>
+ template<typename OS>
         static void
         print(OS& os, char const* delim, mpl::true_)
         {
@@ -43,13 +43,13 @@
 
     struct print_sequence_loop
     {
- template <typename OS, typename Begin, typename End>
+ template<typename OS, typename Begin, typename End>
         static void
         call(OS& os, Begin const&, End const&, mpl::true_)
         {
         }
 
- template <typename OS, typename Begin, typename End>
+ template<typename OS, typename Begin, typename End>
         static void
         call(OS& os, Begin const& first, End const& last, mpl::false_)
         {
@@ -65,7 +65,7 @@
             call(os, fusion::next(first), last, is_last());
         }
 
- template <typename OS, typename Begin, typename End>
+ template<typename OS, typename Begin, typename End>
         static void
         call(OS& os, Begin const& first, End const& last)
         {
@@ -79,7 +79,7 @@
         }
     };
 
- template <typename OS, typename Seq>
+ template<typename OS, typename Seq>
     inline void
     print_sequence(OS& os, Seq const& seq)
     {

Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/io/in.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/io/in.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/io/in.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -19,7 +19,7 @@
 
 namespace boost { namespace fusion
 {
- template <typename Seq>
+ template<typename Seq>
     inline std::istream&
     in(std::istream& is, Seq& seq)
     {
@@ -32,7 +32,7 @@
 
     namespace operators
     {
- template <typename Seq>
+ template<typename Seq>
         inline typename
             enable_if<
                fusion::traits::is_sequence<Seq>

Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/io/out.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/io/out.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/io/out.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -22,7 +22,7 @@
 
 namespace boost { namespace fusion
 {
- template <typename Seq>
+ template<typename Seq>
     inline std::ostream&
     out(std::ostream& os, Seq& seq)
     {
@@ -35,7 +35,7 @@
     
     namespace operators
     {
- template <typename Seq>
+ template<typename Seq>
         inline typename
             enable_if<
                 fusion::traits::is_sequence<Seq>

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,5 +1,5 @@
 /*=============================================================================
- Copyright (c) 2009 Christopher Schmidt
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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,34 +9,26 @@
 #define BOOST_FUSION_SEQUENCE_SEQUENCE_FACADE_HPP
 
 #include <boost/fusion/support/sequence_base.hpp>
-
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/always.hpp>
+#include <boost/fusion/support/internal/facade_generation.hpp>
 #include <boost/mpl/bool.hpp>
 
-namespace boost { namespace fusion
-{
- struct void_;
- struct sequence_facade_tag;
-
- namespace extension
- {
- template<typename>
- struct at_key_impl;
-
- template<typename>
- struct empty_impl;
+#define BOOST_FUSION_SEQUENCE_INTRINSIC_FUNCS \
+ ((at_key, 1, 1)) \
+ ((at, 1, 0)) \
+ ((back, 0, 0)) \
+ ((begin, 0, 0)) \
+ ((empty, 0, 1)) \
+ ((end, 0, 0)) \
+ ((has_key, 1, 1)) \
+ ((size, 0, 1)) \
+ ((value_at_key, 1, 1)) \
+ ((value_at, 1, 0))
 
- template<typename>
- struct size_impl;
-
- template<typename>
- struct has_key_impl;
-
- template<typename>
- struct value_at_key_impl;
- }
+BOOST_FUSION_FACADE_DEFINE_INTRINSIC_FUNCS_WRAPPER(
+ sequence_facade_tag, BOOST_FUSION_SEQUENCE_INTRINSIC_FUNCS)
 
+namespace boost { namespace fusion
+{
     template<
         typename Derived
       , typename Category
@@ -51,42 +43,11 @@
         typedef Category category;
         typedef IsView is_view;
 
- template<typename Seq,typename Key>
- struct at_key
- : extension::at_key_impl<
- typename mpl::apply1<mpl::always<void_>,Seq>::type
- >::template apply<Seq,Key>
- {};
-
- template<typename Seq>
- struct empty
- : extension::empty_impl<
- typename mpl::apply1<mpl::always<void_>,Seq>::type
- >::template apply<Seq>
- {};
-
- template<typename Seq>
- struct size
- : extension::size_impl<
- typename mpl::apply1<mpl::always<void_>,Seq>::type
- >::template apply<Seq>
- {};
-
- template<typename Seq,typename Key>
- struct has_key
- : extension::has_key_impl<
- typename mpl::apply1<mpl::always<void_>,Seq>::type
- >::template apply<Seq,Key>
- {};
-
- template<typename Seq,typename Key>
- struct value_at_key
- : extension::value_at_key_impl<
- typename mpl::apply1<mpl::always<void_>,Seq>::type
- >::template apply<Seq,Key>
- {};
-
+ BOOST_FUSION_FACADE_DEFINE_INTRINSIC_FUNCS_FORWARDER(
+ BOOST_FUSION_SEQUENCE_INTRINSIC_FUNCS)
     };
 }}
 
+ #undef BOOST_FUSION_SEQUENCE_INTRINSIC_FUNCS
+
 #endif

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -101,7 +101,7 @@
 
     namespace traits
     {
- template <typename T>
+ template<typename T>
         struct category_of
           : extension::category_of_impl<
                 typename fusion::traits::tag_of<T>::type
@@ -111,7 +111,7 @@
                 mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
         };
 
- template <typename T>
+ template<typename T>
         struct is_associative
           : is_base_of<
                 associative_tag
@@ -122,7 +122,7 @@
                 mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
         };
 
- template <typename T>
+ template<typename T>
         struct is_incrementable
           : is_base_of<
                 incrementable_traversal_tag
@@ -133,7 +133,7 @@
                 mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
         };
 
- template <typename T>
+ template<typename T>
         struct is_single_pass
           : is_base_of<
                 single_pass_traversal_tag
@@ -144,7 +144,7 @@
                 mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
         };
 
- template <typename T>
+ template<typename T>
         struct is_forward
           : is_base_of<
                 forward_traversal_tag
@@ -155,7 +155,7 @@
                 mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
         };
 
- template <typename T>
+ template<typename T>
         struct is_bidirectional
           : is_base_of<
                 bidirectional_traversal_tag
@@ -166,7 +166,7 @@
                 mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
         };
 
- template <typename T>
+ template<typename T>
         struct is_random_access
           : is_base_of<
                 random_access_traversal_tag

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -9,13 +9,17 @@
 #ifndef BOOST_FUSION_SUPPORT_DEDUCE_HPP
 #define BOOST_FUSION_SUPPORT_DEDUCE_HPP
 
+#include <boost/config.hpp>
 #include <boost/fusion/support/internal/result_of.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
-
+#include <boost/detail/workaround.hpp>
 #include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/identity.hpp>
 #include <boost/mpl/if.hpp>
 #include <boost/mpl/and.hpp>
+#ifndef BOOST_NO_RVALUE_REFERENCES
+# include <boost/mpl/not.hpp>
+#endif
 #include <boost/type_traits/is_same.hpp>
 #include <boost/ref.hpp>
 
@@ -24,21 +28,34 @@
 {
     namespace traits
     {
- template <typename T>
+#if BOOST_WORKAROUND(BOOST_MSVC,==1600)
+ template<typename T>
+ struct deduce_stage2
+ {
+ typedef T type;
+ };
+
+ template<typename T>
+ struct deduce
+ : deduce_stage2<T>
+ {};
+#else
+ template<typename T>
         struct deduce
         {
             typedef T type;
         };
+#endif
 
- template <typename T>
+ template<typename T>
         struct deduce<reference_wrapper<T> >
         {
             typedef T& type;
         };
 
-#define BOOST_FUSION_DEDUCE_CV_REF_SPECIALIZATION(MODIFIER,_)\
- template <typename T>\
- struct deduce<T MODIFIER>\
+#define BOOST_FUSION_DEDUCE_CV_REF_SPECIALIZATION(MODIFIER,DEDUCE)\
+ template<typename T>\
+ struct DEDUCE<T MODIFIER>\
         {\
             typedef detail::is_po_callable<T MODIFIER> is_po_callable;\
             \
@@ -55,24 +72,37 @@
             type;\
         };\
         \
- template <typename T>\
+ template<typename T>\
         struct deduce<reference_wrapper<T> MODIFIER>\
         {\
             typedef T& type;\
         };
 
- BOOST_FUSION_DEDUCE_CV_REF_SPECIALIZATION(volatile&,_)
- BOOST_FUSION_DEDUCE_CV_REF_SPECIALIZATION(const volatile&,_)
-#ifndef BOOST_NO_RVALUE_REFERENCES
- BOOST_FUSION_DEDUCE_CV_REF_SPECIALIZATION(volatile&&,_)
- BOOST_FUSION_DEDUCE_CV_REF_SPECIALIZATION(const volatile&&,_)
+ BOOST_FUSION_DEDUCE_CV_REF_SPECIALIZATION(volatile&,deduce)
+ BOOST_FUSION_DEDUCE_CV_REF_SPECIALIZATION(const volatile&,deduce)
+
+#if BOOST_WORKAROUND(BOOST_MSVC,==1600)
+ BOOST_FUSION_DEDUCE_CV_REF_SPECIALIZATION(volatile&&,deduce_stage2)
+ BOOST_FUSION_DEDUCE_CV_REF_SPECIALIZATION(
+ const volatile&&,deduce_stage2)
+
+ BOOST_FUSION_DEDUCE_CV_REF_SPECIALIZATION(&,deduce)
+ BOOST_FUSION_DEDUCE_CV_REF_SPECIALIZATION(const&,deduce)
+ BOOST_FUSION_DEDUCE_CV_REF_SPECIALIZATION(&&,deduce_stage2)
+ BOOST_FUSION_DEDUCE_CV_REF_SPECIALIZATION(const&&,deduce_stage2)
+#else
+# ifndef BOOST_NO_RVALUE_REFERENCES
+ BOOST_FUSION_DEDUCE_CV_REF_SPECIALIZATION(volatile&&,deduce)
+ BOOST_FUSION_DEDUCE_CV_REF_SPECIALIZATION(const volatile&&,deduce)
+# endif
+ BOOST_FUSION_ALL_CV_REF_COMBINATIONS(
+ BOOST_FUSION_DEDUCE_CV_REF_SPECIALIZATION,deduce)
 #endif
- BOOST_FUSION_ALL_CV_REF_COMBINATIONS(BOOST_FUSION_DEDUCE_CV_REF_SPECIALIZATION,_)
 
 #undef BOOST_FUSION_DEDUCE_CV_REF_SPECIALIZATION
 
 #define BOOST_FUSION_DEDUCE_ARRAY_SPECIALIZATION(MODIFIER1,MODIFIER2,MODIFIER3)\
- template <typename T, int N>\
+ template<typename T, int N>\
         struct deduce<T MODIFIER1[N]>\
         {\
             typedef T MODIFIER2(MODIFIER3 type)[N];\
@@ -101,21 +131,43 @@
 
     namespace detail
     {
- template <typename T>
+ template<typename T>
         struct deduce_ref
         {
             typedef typename traits::deduce<T>::type deduced;
+ typedef
+ mpl::and_<
+ is_lrref<T>
+ , is_same<typename identity<T>::type,deduced>
+ >
+ is_regular_reference;
 
+#ifdef BOOST_NO_RVALUE_REFERENCES
             typedef typename
                 mpl::if_<
- mpl::and_<
- detail::is_lrref<T>
- , is_same<typename identity<T>::type,deduced>
- >
+ is_regular_reference
                   , T
                   , typename add_lref<deduced>::type
>::type
             type;
+#else
+ //8.5.3p5...
+ typedef typename
+ mpl::eval_if<
+ is_regular_reference
+ , mpl::if_<
+ mpl::or_<
+ mpl::not_<is_rref<T> >
+ , is_class<deduced>
+ , is_array<deduced>
+ >
+ , T
+ , deduced&
+ >
+ , add_lref<deduced>
+ >::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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -24,7 +24,7 @@
 {
     namespace traits
     {
- template <typename Seq>
+ template<typename Seq>
         struct deduce_sequence
           : result_of::as_vector<
                 mpl::transform_view<

Added: sandbox/SOC/2009/fusion/boost/fusion/support/internal/facade_generation.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/facade_generation.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -0,0 +1,83 @@
+/*=============================================================================
+ Copyright (c) 2010 Christopher Schmidt
+
+ Distributed under the 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_FACADE_GENERATION_HPP
+#define BOOST_FUSION_SUPPORT_INTERNAL_FACADE_GENERATION_HPP
+
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/if.hpp>
+#include <boost/preprocessor/punctuation/comma_if.hpp>
+#include <boost/preprocessor/seq/for_each.hpp>
+#include <boost/preprocessor/tuple/elem.hpp>
+#include <boost/preprocessor/tuple/eat.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/always.hpp>
+
+#define BOOST_FUSION_DEFINE_SEQUENCE_FACADE_INTRINSIC_FUNC_WRAPPER(R, TAG, FUNC)\
+ template<typename> \
+ struct BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(3, 0, FUNC),_impl); \
+ \
+ template<> \
+ struct BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(3, 0, FUNC),_impl)<TAG> \
+ { \
+ template< \
+ typename T \
+ BOOST_PP_COMMA_IF(BOOST_PP_TUPLE_ELEM(3, 1, FUNC)) \
+ BOOST_PP_ENUM_PARAMS( \
+ BOOST_PP_TUPLE_ELEM(3, 1, FUNC), typename T) \
+ > \
+ struct apply \
+ : detail::remove_reference<T>::type:: \
+ template BOOST_PP_TUPLE_ELEM(3, 0, FUNC)< \
+ T \
+ BOOST_PP_COMMA_IF(BOOST_PP_TUPLE_ELEM(3, 1, FUNC)) \
+ BOOST_PP_ENUM_PARAMS(BOOST_PP_TUPLE_ELEM(3, 1, FUNC), T) \
+ > \
+ {}; \
+ };
+
+#define BOOST_FUSION_FACADE_DEFINE_INTRINSIC_FUNCS_WRAPPER(TAG, FUNCS) \
+namespace boost { namespace fusion \
+{ \
+ struct TAG; \
+ struct void_; \
+ \
+ namespace extension \
+ { \
+ BOOST_PP_SEQ_FOR_EACH( \
+ BOOST_FUSION_DEFINE_SEQUENCE_FACADE_INTRINSIC_FUNC_WRAPPER, \
+ TAG, \
+ FUNCS) \
+ } \
+}}
+
+
+#define BOOST_FUSION_DEFINE_SEQUENCE_FACADE_INTRINSIC_FUNC_FORDER(R, _, FUNC) \
+ template< \
+ typename T \
+ BOOST_PP_COMMA_IF(BOOST_PP_TUPLE_ELEM(3, 1, FUNC)) \
+ BOOST_PP_ENUM_PARAMS( \
+ BOOST_PP_TUPLE_ELEM(3, 1, FUNC), typename T) \
+ > \
+ struct BOOST_PP_TUPLE_ELEM(3, 0, FUNC) \
+ : extension::BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(3, 0, FUNC),_impl)< \
+ typename mpl::apply1<mpl::always<void_>,T>::type \
+ >::template apply< \
+ T \
+ BOOST_PP_COMMA_IF(BOOST_PP_TUPLE_ELEM(3, 1, FUNC)) \
+ BOOST_PP_ENUM_PARAMS(BOOST_PP_TUPLE_ELEM(3, 1, FUNC), T) \
+ > \
+ {};
+
+#define BOOST_FUSION_FACADE_DEFINE_INTRINSIC_FUNCS_FORWARDER(FUNCS) \
+ BOOST_PP_SEQ_FOR_EACH( \
+ BOOST_FUSION_DEFINE_SEQUENCE_FACADE_INTRINSIC_FUNC_FORDER, \
+ _, \
+ FUNCS)
+
+#endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/is_explicitly_convertible.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/is_explicitly_convertible.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/is_explicitly_convertible.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -8,7 +8,7 @@
 #ifndef BOOST_FUSION_SUPPORT_INTERNAL_IS_EXPLICITLY_CONVERTIBLE_HPP
 #define BOOST_FUSION_SUPPORT_INTERNAL_IS_EXPLICITLY_CONVERTIBLE_HPP
 
-#include <boost/config.hpp>
+#include <boost/detail/workaround.hpp>
 #if BOOST_WORKAROUND(__GNUC__,<4)
 # include <boost/type_traits/is_convertible.hpp>
 #else

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -1,5 +1,5 @@
 /*=============================================================================
- Copyright (c) 2009 Christopher Schmidt
+ Copyright (c) 2009-2010 Christopher Schmidt
 
     Distributed under the 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,8 +8,14 @@
 #ifndef BOOST_FUSION_SUPPORT_INTERNAL_REF_HPP
 #define BOOST_FUSION_SUPPORT_INTERNAL_REF_HPP
 
-#include <boost/config.hpp>
+#include <boost/detail/workaround.hpp>
+#if !defined(BOOST_NO_RVALUE_REFERENCES) && \
+ BOOST_WORKAROUND(__GNUC__,==4)&& \
+ BOOST_WORKAROUND(__GNUC_MINOR__,<5)
+# error The c++0x extension of your compiler is not supported!
+#endif
 
+#include <boost/config.hpp>
 #include <boost/preprocessor/empty.hpp>
 #include <boost/mpl/if.hpp>
 #ifndef BOOST_NO_RVALUE_REFERENCES
@@ -23,7 +29,10 @@
 #include <boost/type_traits/is_array.hpp>
 #include <boost/type_traits/is_const.hpp>
 #include <boost/type_traits/add_const.hpp>
-#ifndef BOOST_FUSION_NO_PROPAGATE_VOLATILE
+#if BOOST_WORKAROUND(BOOST_MSVC,==1600)
+# include <boost/type_traits/is_function.hpp>
+#endif
+#ifdef BOOST_FUSION_PROPAGATE_VOLATILE
 # include <boost/type_traits/is_volatile.hpp>
 # include <boost/type_traits/add_volatile.hpp>
 # include <boost/type_traits/remove_cv.hpp>
@@ -73,23 +82,42 @@
 namespace boost { namespace fusion { namespace detail
 {
     //cschmidt: workaround until boost::is_reference supports rvalues
+#if BOOST_WORKAROUND(BOOST_MSVC, == 1600)
     template<typename T>
- struct is_lrref
+ struct is_lrref_stage2
       : mpl::false_
     {};
 
     template<typename T>
- struct is_lrref<T&>
+ struct is_lrref_stage2<T&&>
       : mpl::true_
     {};
 
-#ifndef BOOST_NO_RVALUE_REFERENCES
+ template<typename T>
+ struct is_lrref
+ : is_lrref_stage2<T>
+ {};
+#else
+ template<typename T>
+ struct is_lrref
+ : mpl::false_
+ {};
+
+# ifndef BOOST_NO_RVALUE_REFERENCES
     template<typename T>
     struct is_lrref<T&&>
       : mpl::true_
     {};
+# endif
+#endif
 
     template<typename T>
+ struct is_lrref<T&>
+ : mpl::true_
+ {};
+
+#ifndef BOOST_NO_RVALUE_REFERENCES
+ template<typename T>
     struct is_rref
       : mpl::false_
     {};
@@ -100,51 +128,88 @@
     {};
 #endif
 
- //cschmidt: workaround until boost::is_reference supports rvalues
+#if BOOST_WORKAROUND(BOOST_MSVC, == 1600)
     template<typename T>
- struct remove_reference
+ struct remove_reference_stage2
     {
         typedef T type;
     };
 
     template<typename T>
- struct remove_reference<T&>
+ struct remove_reference_stage2<T&&>
     {
         typedef T type;
     };
 
-#ifndef BOOST_NO_RVALUE_REFERENCES
+ template<typename T>
+ struct remove_reference
+ : remove_reference_stage2<T>
+ {};
+#else
+ template<typename T>
+ struct remove_reference
+ {
+ typedef T type;
+ };
+
+# ifndef BOOST_NO_RVALUE_REFERENCES
     template<typename T>
     struct remove_reference<T&&>
     {
         typedef T type;
     };
+# endif
 #endif
 
- template <typename T>
- struct add_lref
+ template<typename T>
+ struct remove_reference<T&>
+ {
+ typedef T type;
+ };
+
+#if BOOST_WORKAROUND(BOOST_MSVC, == 1600)
+ template<typename T>
+ struct add_lref_stage2
     {
         typedef T& type;
     };
 
- template <typename T>
- struct add_lref<T&>
+ template<typename T>
+ struct add_lref_stage2<T&&>
+ {
+ typedef T&& type;
+ };
+
+ template<typename T>
+ struct add_lref
+ : add_lref_stage2<T>
+ {};
+#else
+ template<typename T>
+ struct add_lref
     {
         typedef T& type;
     };
 
-#ifndef BOOST_NO_RVALUE_REFERENCES
- template <typename T>
+# ifndef BOOST_NO_RVALUE_REFERENCES
+ template<typename T>
     struct add_lref<T&&>
     {
         typedef T&& type;
     };
+# endif
 #endif
 
- template <typename T>
+ template<typename T>
+ struct add_lref<T&>
+ {
+ typedef T& type;
+ };
+
+ template<typename T>
     struct identity
       :
- #ifdef BOOST_FUSION_NO_PROPAGATE_VOLATILE
+#ifndef BOOST_FUSION_PROPAGATE_VOLATILE
         remove_const<
 #else
         remove_cv<
@@ -153,7 +218,7 @@
>
     {};
 
- template <typename TestType,typename Type>
+ template<typename TestType,typename Type>
     struct forward_as
     {
         typedef typename remove_reference<TestType>::type test_type;
@@ -164,7 +229,7 @@
               , typename add_const<Type>::type
               , Type
>::type
-#ifndef BOOST_FUSION_NO_PROPAGATE_VOLATILE
+#ifdef BOOST_FUSION_PROPAGATE_VOLATILE
         const_type;
 
         typedef typename
@@ -194,24 +259,45 @@
 #endif
     };
 
+#if !defined(BOOST_MSVC) || BOOST_MSVC!=1600
+ template<typename TestType,typename Type>
+ struct forward_as<TestType,Type&>
+ {
+ typedef Type& type;
+ };
+#endif
+
 #ifndef BOOST_NO_RVALUE_REFERENCES
     //8.5.3p5...
- template <typename TestType,typename Type>
+ template<typename TestType,typename Type>
     struct forward_as<TestType,Type&&>
       : mpl::if_<
             mpl::or_<is_class<Type>, is_array<Type> >
           , Type&&
+#if BOOST_WORKAROUND(BOOST_MSVC,==1600)
+ , typename mpl::if_<
+ is_function<Type>
+ , Type&
+ , Type
+ >::type
+#else
           , Type
+#endif
>
     {};
 #endif
 
- //Optimization
- template <typename TestType,typename Type>
- struct forward_as<TestType,Type&>
- {
- typedef Type& type;
- };
+ template<typename TestType, typename Type>
+ struct forward_as_lref
+ : forward_as<TestType, Type>
+ {};
+
+#ifndef BOOST_NO_RVALUE_REFERENCES
+ template<typename TestType,typename Type>
+ struct forward_as_lref<TestType,Type&&>
+ : forward_as<TestType, Type&>
+ {};
+#endif
 }}}
 
 #endif

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -9,6 +9,8 @@
 #define BOOST_FUSION_SUPPORT_INTERNAL_WORKAROUND_HPP
 
 #include <boost/config.hpp>
+#include <boost/detail/workaround.hpp>
+
 #ifdef BOOST_NO_RVALUE_REFERENCES
 //cschmidt: see https://svn.boost.org/trac/boost/ticket/3305
 # if defined(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS) || BOOST_WORKAROUND(__GNUC__,<4)

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -24,7 +24,7 @@
         template<typename>
         struct is_iterator_impl
         {
- template <typename T>
+ template<typename T>
             struct apply
               : is_base_of<iterator_root, typename detail::identity<T>::type>
             {};
@@ -33,7 +33,7 @@
 
     namespace traits
     {
- template <typename T>
+ template<typename T>
         struct is_iterator
           : extension::is_iterator_impl<
                 typename fusion::traits::tag_of<T>::type

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -19,10 +19,10 @@
 {
     namespace extension
     {
- template <typename>
+ template<typename>
         struct is_sequence_impl
         {
- template <typename Seq>
+ template<typename Seq>
             struct apply
               : is_base_of<
                     sequence_root
@@ -34,7 +34,7 @@
 
     namespace traits
     {
- template <typename T>
+ template<typename T>
         struct is_sequence
           : extension::is_sequence_impl<typename traits::tag_of<T>::type>::
                 template apply<T>

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -20,7 +20,7 @@
         template<typename>
         struct is_view_impl
         {
- template <typename Seq>
+ template<typename Seq>
             struct apply
               : detail::remove_reference<Seq>::type::is_view
             {};
@@ -29,7 +29,7 @@
 
     namespace traits
     {
- template <typename Seq>
+ template<typename Seq>
         struct is_view
           : extension::is_view_impl<typename fusion::traits::tag_of<Seq>::type>::
                 template apply<Seq>::type

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/iterator_base.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/iterator_base.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/iterator_base.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,7 +13,7 @@
     struct iterator_root
     {};
 
- template <typename It>
+ template<typename It>
     struct iterator_base
       : iterator_root
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -27,7 +27,7 @@
 namespace boost { namespace fusion
 {
     // A half runtime pair where the first type does not have data
- template <typename First, typename Second>
+ template<typename First, typename Second>
     struct pair
     {
         typedef First first_type;
@@ -59,7 +59,7 @@
         pair(Arg&& arg,
             typename enable_if<
                 detail::is_explicitly_convertible<Arg&&,second_type>
- >::type* =0);
+ >::type* =0)
           : second(std::forward<Arg>(arg))
         {}
 # endif
@@ -82,7 +82,7 @@
         {}
 #endif
 
- template <typename Second2>
+ template<typename Second2>
         pair& operator=(pair<First, Second2>
             BOOST_FUSION_R_ELSE_CLREF(BOOST_PP_EMPTY()) rhs)
         {
@@ -119,7 +119,7 @@
         };
     }
 
- template <typename First, typename Second>
+ template<typename First, typename Second>
     inline typename
         result_of::make_pair<First,BOOST_FUSION_R_ELSE_CLREF(Second)>::type
     make_pair(BOOST_FUSION_R_ELSE_CLREF(Second) second)
@@ -131,7 +131,7 @@
>::type(BOOST_FUSION_FORWARD(Second,second));
     }
 
- template <typename OStream, typename First, typename Second>
+ template<typename OStream, typename First, typename Second>
     inline BOOST_FUSION_R_ELSE_LREF(OStream)
     operator<<(
             BOOST_FUSION_R_ELSE_LREF(OStream) os,
@@ -141,7 +141,7 @@
         return os;
     }
 
- template <typename IStream, typename First, typename Second>
+ template<typename IStream, typename First, typename Second>
     inline BOOST_FUSION_R_ELSE_LREF(IStream)
     operator>>(
             BOOST_FUSION_R_ELSE_LREF(IStream) is
@@ -153,7 +153,7 @@
         return is;
     }
 
- template <typename First, typename SecondLhs, typename SecondRhs>
+ template<typename First, typename SecondLhs, typename SecondRhs>
     inline bool
     operator==(pair<First, SecondLhs> const& lhs,
             pair<First, SecondRhs> const& rhs)
@@ -161,7 +161,7 @@
         return lhs.second == rhs.second;
     }
 
- template <typename First, typename SecondLhs, typename SecondRhs>
+ template<typename First, typename SecondLhs, typename SecondRhs>
     inline bool
     operator!=(pair<First, SecondLhs> const& lhs,
             pair<First, SecondRhs> const& rhs)

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/sequence_base.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/sequence_base.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/sequence_base.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -18,7 +18,7 @@
         struct sequence_root
         {};
 
- template <typename Seq>
+ template<typename Seq>
         struct sequence_base
           : sequence_root
         {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -30,7 +30,7 @@
             typedef typename IdentityT::fusion_tag type;
         };
 
- template <typename T, typename Enable=void>
+ template<typename T, typename Enable=void>
         struct tag_of_fallback
         {
             typedef non_fusion_tag type;
@@ -39,7 +39,7 @@
 
     namespace traits
     {
- template <typename T, typename Enable>
+ template<typename T, typename Enable>
         struct tag_of
         {
             typedef typename detail::identity<T>::type identity_t;

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -15,24 +15,25 @@
 # pragma warning(disable: 4522)
 #endif
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion
+{
     struct unused_type
     {
         unused_type()
         {}
 
- template <typename T>
+ template<typename T>
         unused_type(T const&)
         {}
 
- template <typename T>
+ template<typename T>
         unused_type const&
         operator=(T const&) const
         {
             return *this;
         }
 
- template <typename T>
+ template<typename T>
         unused_type&
         operator=(T const&)
         {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -9,6 +9,7 @@
 #ifndef BOOST_FUSION_TUPLE_TUPLE_HPP
 #define BOOST_FUSION_TUPLE_TUPLE_HPP
 
+#include <boost/config.hpp>
 #include <boost/fusion/tuple/tuple_fwd.hpp>
 #include <boost/fusion/container/vector/vector.hpp>
 #include <boost/fusion/sequence/intrinsic/size.hpp>
@@ -24,6 +25,12 @@
 
 namespace boost { namespace fusion
 {
+#ifdef BOOST_MSVC
+# pragma warning(push)
+ //'class' : multiple copy constructors specified
+# pragma warning(disable:4521)
+#endif
+
     VARIADIC_TEMPLATE(FUSION_MAX_VECTOR_SIZE)
     struct tuple
       : vector<EXPAND_TEMPLATE_ARGUMENTS(FUSION_MAX_VECTOR_SIZE)>
@@ -33,7 +40,7 @@
         base_type;
 
 #define TUPLE_CTOR(MODIFIER,_)\
- template <typename A1, typename A2>\
+ template<typename A1, typename A2>\
         tuple(std::pair<A1, A2> MODIFIER pair)\
           : base_type(static_cast<std::pair<A1, A2> MODIFIER>(pair))\
         {}
@@ -51,17 +58,17 @@
 #undef BOOST_FUSION_USE_BASE_TYPE
     };
 
- template <typename Tuple>
+ template<typename Tuple>
     struct tuple_size
       : result_of::size<Tuple>
     {};
 
- template <int N, typename Tuple>
+ template<int N, typename Tuple>
     struct tuple_element
       : result_of::value_at_c<Tuple, N>
     {};
 
- template <int N, typename Tuple>
+ template<int N, typename Tuple>
     inline typename result_of::at_c<BOOST_FUSION_R_ELSE_CLREF(Tuple), N>::type
     get(BOOST_FUSION_R_ELSE_CLREF(Tuple) tuple)
     {
@@ -69,7 +76,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <int N, typename Tuple>
+ template<int N, typename Tuple>
     inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
             result_of::at_c<,Tuple,&, N>)
     get(Tuple& tuple)
@@ -77,6 +84,10 @@
         return at_c<N>(tuple);
     }
 #endif
+
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
 }}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/begin_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,18 +13,18 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct begin_impl;
 
- template <>
+ template<>
     struct begin_impl<filter_view_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef typename detail::remove_reference<Seq>::type seq;
             typedef typename
- detail::forward_as<Seq, typename seq::seq_type>::type
+ detail::forward_as_lref<Seq, typename seq::seq_type>::type
             underlying_seq_type;
 
             typedef

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_data_impl;
 
- template <>
+ template<>
     struct deref_data_impl<filter_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,10 +12,10 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_impl;
 
- template <>
+ template<>
     struct deref_impl<filter_view_iterator_tag>
     {
         template<typename It>

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/end_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,18 +12,18 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct end_impl;
 
- template <>
+ template<>
     struct end_impl<filter_view_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef typename detail::remove_reference<Seq>::type seq;
             typedef typename
- detail::forward_as<Seq, typename seq::seq_type>::type
+ detail::forward_as_lref<Seq, typename seq::seq_type>::type
             underlying_seq_type;
 
             typedef

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -23,7 +23,7 @@
 {
     struct filter_view_iterator_tag;
 
- template <typename Category,typename Begin, typename End, typename Pred>
+ template<typename Category,typename Begin, typename End, typename Pred>
     struct filter_iterator
       : iterator_base<filter_iterator<Category, Begin, End, Pred> >
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct key_of_impl;
 
- template <>
+ template<>
     struct key_of_impl<filter_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
           : result_of::key_of<
                 typename detail::remove_reference<It>::type::begin_type

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/next_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/next_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct next_impl;
 
- template <>
+ template<>
     struct next_impl<filter_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/size_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/size_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/size_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -14,13 +14,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct size_impl;
 
- template <>
+ template<>
     struct size_impl<filter_view_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
           : result_of::distance<
                 typename result_of::begin<Seq>::type

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_data_impl;
 
- template <>
+ template<>
     struct value_of_data_impl<filter_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
           : result_of::value_of_data<
                 typename detail::remove_reference<It>::type::begin_type

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/value_of_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_impl;
 
- template <>
+ template<>
     struct value_of_impl<filter_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
           : result_of::value_of<
                 typename detail::remove_reference<It>::type::begin_type

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -38,7 +38,7 @@
 {
     struct fusion_sequence_tag;
 
- template <typename Seq, typename Pred>
+ template<typename Seq, typename Pred>
     struct filter_view
       : sequence_base<filter_view<Seq, Pred> >
     {

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/at_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct at_impl;
 
- template <>
+ template<>
     struct at_impl<iterator_range_tag>
     {
- template <typename Seq, typename N>
+ template<typename Seq, typename N>
         struct apply
         {
             typedef typename

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/begin_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,13 +10,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct begin_impl;
 
- template <>
+ template<>
     struct begin_impl<iterator_range_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef typename

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/end_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,13 +10,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct end_impl;
 
- template <>
+ template<>
     struct end_impl<iterator_range_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef typename

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/value_at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/value_at_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_at_impl;
 
- template <>
+ template<>
     struct value_at_impl<iterator_range_tag>
     {
- template <typename Seq, typename N>
+ template<typename Seq, typename N>
         struct apply
         {
             typedef typename

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -30,7 +30,7 @@
     struct iterator_range_tag;
     struct fusion_sequence_tag;
 
- template <typename Begin, typename End>
+ template<typename Begin, typename End>
     struct iterator_range
       : sequence_base<iterator_range<Begin, End> >
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -17,18 +17,18 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct begin_impl;
 
- template <>
+ template<>
     struct begin_impl<joint_view_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef typename detail::remove_reference<Seq>::type seq;
             typedef typename
- detail::forward_as<Seq, typename seq::seq1_type>::type
+ detail::forward_as_lref<Seq, typename seq::seq1_type>::type
             underlying_seq1_type;
             typedef typename
                 result_of::begin<underlying_seq1_type>::type
@@ -38,7 +38,7 @@
             end_type;
             typedef typename
                 result_of::begin<
- typename detail::forward_as<
+ typename detail::forward_as_lref<
                         Seq
                       , typename seq::seq2_type
>::type

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_data_impl;
 
- template <>
+ template<>
     struct deref_data_impl<joint_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename
@@ -35,7 +35,7 @@
         };
     };
 
- template <>
+ template<>
     struct deref_data_impl<concat_iterator_tag>
       : deref_data_impl<joint_view_iterator_tag>
     {};

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,10 +12,10 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_impl;
 
- template <>
+ template<>
     struct deref_impl<joint_view_iterator_tag>
     {
         template<typename It>
@@ -37,7 +37,7 @@
         };
     };
 
- template <>
+ template<>
     struct deref_impl<concat_iterator_tag>
       : deref_impl<joint_view_iterator_tag>
     {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -15,13 +15,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct end_impl;
 
- template <>
+ template<>
     struct end_impl<joint_view_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef typename detail::remove_reference<Seq>::type seq;
@@ -30,7 +30,7 @@
                 concat_iterator<
                     typename seq::category
                   , typename result_of::end<
- typename detail::forward_as<
+ typename detail::forward_as_lref<
                             Seq
                           , typename seq::seq2_type
>::type

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -52,7 +52,7 @@
             };
         };
 
- template <>
+ template<>
         struct equal_to_impl<concat_iterator_tag>
           : equal_to_impl<joint_view_iterator_tag>
         {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -16,7 +16,7 @@
     struct joint_view_iterator_tag;
     struct concat_iterator_tag;
 
- template <typename Category, typename Begin, typename End, typename Concat>
+ template<typename Category, typename Begin, typename End, typename Concat>
     struct joint_view_iterator
       : iterator_base<joint_view_iterator<Category, Begin, End, Concat> >
     {
@@ -55,7 +55,7 @@
         concat_type concat;
     };
 
- template <typename Category, typename Begin>
+ template<typename Category, typename Begin>
     struct concat_iterator
       : iterator_base<concat_iterator<Category, Begin> >
     {

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct key_of_impl;
 
- template <>
+ template<>
     struct key_of_impl<joint_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
           : result_of::key_of<
                 typename detail::remove_reference<It>::type::begin_type
@@ -26,7 +26,7 @@
         {};
     };
 
- template <>
+ template<>
     struct key_of_impl<concat_iterator_tag>
       : key_of_impl<joint_view_iterator_tag>
     {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -15,13 +15,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct next_impl;
 
- template <>
+ template<>
     struct next_impl<joint_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;
@@ -67,10 +67,10 @@
         };
     };
 
- template <>
+ template<>
     struct next_impl<concat_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_data_impl;
 
- template <>
+ template<>
     struct value_of_data_impl<joint_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
           : result_of::value_of_data<
                 typename detail::remove_reference<It>::type::begin_type
@@ -26,7 +26,7 @@
         {};
     };
 
- template <>
+ template<>
     struct value_of_data_impl<concat_iterator_tag>
       : value_of_data_impl<joint_view_iterator_tag>
     {};

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/value_of_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_impl;
 
- template <>
+ template<>
     struct value_of_impl<joint_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
           : result_of::value_of<
                 typename detail::remove_reference<It>::type::begin_type
@@ -26,7 +26,7 @@
         {};
     };
 
- template <>
+ template<>
     struct value_of_impl<concat_iterator_tag>
       : value_of_impl<joint_view_iterator_tag>
     {};

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -42,7 +42,7 @@
     struct forward_traversal_tag;
     struct fusion_sequence_tag;
 
- template <typename Seq1, typename Seq2>
+ template<typename Seq1, typename Seq2>
     struct joint_view
       : sequence_base<joint_view<Seq1, Seq2> >
     {

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/nview/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/nview/detail/next_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/nview/detail/next_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename Tag>
+ template<typename Tag>
     struct next_impl;
 
- template <>
+ template<>
     struct next_impl<nview_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/nview/detail/prior_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/nview/detail/prior_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/nview/detail/prior_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename Tag>
+ template<typename Tag>
     struct prior_impl;
 
- template <>
+ template<>
     struct prior_impl<nview_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/nview/nview.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/nview/nview.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/nview/nview.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -32,6 +32,7 @@
 #include <boost/mpl/size.hpp>
 #include <boost/mpl/bool.hpp>
 #include <boost/mpl/vector_c.hpp>
+#include <boost/detail/workaround.hpp>
 
 #include <boost/fusion/view/nview/detail/nview_fwd.hpp>
 #include <boost/fusion/view/nview/detail/nview_iterator.hpp>

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,20 +13,20 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct begin_impl;
 
- template <>
+ template<>
     struct begin_impl<repetitive_view_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef typename detail::remove_reference<Seq>::type seq;
 
             typedef
                 repetitive_view_iterator<
- typename detail::forward_as<
+ typename detail::forward_as_lref<
                         Seq
                       , typename seq::seq_type
>::type

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_data_impl;
 
- template <>
+ template<>
     struct deref_data_impl<repetitive_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -14,13 +14,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_impl;
 
- template <>
+ template<>
     struct deref_impl<repetitive_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -72,13 +72,13 @@
 
     namespace extension
     {
- template <typename>
+ template<typename>
         struct end_impl;
 
- template <>
+ template<>
         struct end_impl<repetitive_view_tag>
         {
- template <typename Seq>
+ template<typename Seq>
             struct apply
             {
                 typedef typename detail::remove_reference<Seq>::type seq;
@@ -91,7 +91,7 @@
 
                 typedef
                     repetitive_view_iterator<
- typename detail::forward_as<
+ typename detail::forward_as_lref<
                             Seq
                           , typename seq::seq_type
>::type

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct key_of_impl;
 
- template <>
+ template<>
     struct key_of_impl<repetitive_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
           : result_of::key_of<
                 typename detail::remove_reference<It>::type::it_type

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -22,10 +22,10 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <>
+ template<>
     struct next_impl<repetitive_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -19,10 +19,10 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <>
+ template<>
     struct prior_impl<repetitive_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type 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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_data_impl;
 
- template <>
+ template<>
     struct value_of_data_impl<repetitive_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
           : result_of::value_of_data<
                 typename detail::remove_reference<It>::type::it_type

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -14,13 +14,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_impl;
 
- template <>
+ template<>
     struct value_of_impl<repetitive_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -19,6 +19,7 @@
 #include <boost/fusion/support/internal/assert.hpp>
 #include <boost/fusion/view/detail/view_storage.hpp>
 
+#include <boost/detail/workaround.hpp>
 #include <boost/mpl/bool.hpp>
 #include <boost/mpl/int.hpp>
 #include <boost/integer_traits.hpp>

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/at_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -14,13 +14,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct at_impl;
 
- template <>
+ template<>
     struct at_impl<reverse_view_tag>
     {
- template <typename Seq, typename N>
+ template<typename Seq, typename N>
         struct apply
         {
             typedef typename detail::remove_reference<Seq>::type seq;
@@ -28,7 +28,7 @@
 
             typedef typename
                 result_of::at<
- typename detail::forward_as<
+ typename detail::forward_as_lref<
                         Seq
                       , typename seq::seq_type
>::type

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/begin_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct begin_impl;
 
- template <>
+ template<>
     struct begin_impl<reverse_view_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef
@@ -27,7 +27,7 @@
 #ifdef BOOST_FUSION_REVERSE_VIEW_USE_FORWARD_AS_GCC_HELPER
                         typename detail::reverse_view_forward_as_gcc_helper<
 #else
- typename detail::forward_as<
+ typename detail::forward_as_lref<
 #endif
                             Seq
                           , typename detail::remove_reference<

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_data_impl;
 
- template <>
+ template<>
     struct deref_data_impl<reverse_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_impl;
 
- template <>
+ template<>
     struct deref_impl<reverse_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/end_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct end_impl;
 
- template <>
+ template<>
     struct end_impl<reverse_view_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef
@@ -27,7 +27,7 @@
 #ifdef BOOST_FUSION_REVERSE_VIEW_USE_FORWARD_AS_GCC_HELPER
                         typename detail::reverse_view_forward_as_gcc_helper<
 #else
- typename detail::forward_as<
+ typename detail::forward_as_lref<
 #endif
                             Seq
                           , typename detail::remove_reference<

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct key_of_impl;
 
- template <>
+ template<>
     struct key_of_impl<reverse_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
           : result_of::key_of<
                 typename detail::remove_reference<It>::type::it_type

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/next_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/next_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,10 +12,10 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <>
+ template<>
     struct next_impl<reverse_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/prior_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/prior_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/prior_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,10 +12,10 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <>
+ template<>
     struct prior_impl<reverse_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -8,7 +8,7 @@
 #ifndef BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_REVERSE_VIEW_FWD_HPP
 #define BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_REVERSE_VIEW_FWD_HPP
 
-#include <boost/config.hpp>
+#include <boost/detail/workaround.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
 
 namespace boost { namespace fusion
@@ -16,7 +16,8 @@
     namespace detail
     {
         //cschmidt: There is a nasty bug in gcc 4.5.0 which causes segfaults
- //when compiling forward_as in begin_impl and end_impl of reverse_view.
+ //when compiling forward_as_lref in begin_impl and end_impl of
+ //reverse_view.
         //Using this thin wrapper seems to workaround the problem.
 #if BOOST_WORKAROUND(__GNUC__,==4)&& \
     BOOST_WORKAROUND(__GNUC_MINOR__,==5)
@@ -25,9 +26,9 @@
 # if __GNUC_PATCHLEVEL__==0
 # define BOOST_FUSION_REVERSE_VIEW_USE_FORWARD_AS_GCC_HELPER
 
- template <typename TestType,typename Type>
+ template<typename TestType,typename Type>
         struct reverse_view_forward_as_gcc_helper
- : forward_as<TestType, Type>
+ : forward_as_lref<TestType, Type>
         {};
 # endif
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_iterator.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_iterator.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -15,7 +15,7 @@
 {
     struct reverse_view_iterator_tag;
 
- template <typename It>
+ template<typename It>
     struct reverse_view_iterator
       : iterator_base<reverse_view_iterator<It> >
     {

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_at_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -14,13 +14,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_at_impl;
 
- template <>
+ template<>
     struct value_at_impl<reverse_view_tag>
     {
- template <typename Seq, typename N>
+ template<typename Seq, typename N>
         struct apply
         {
             typedef typename detail::remove_reference<Seq>::type seq;

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_data_impl;
 
- template <>
+ template<>
     struct value_of_data_impl<reverse_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
           : result_of::value_of_data<
                 typename detail::remove_reference<It>::type::it_type

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_of_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,13 +13,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_impl;
 
- template <>
+ template<>
     struct value_of_impl<reverse_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -42,7 +42,7 @@
 {
     struct fusion_sequence_tag;
 
- template <typename Seq>
+ template<typename Seq>
     struct reverse_view
       : sequence_base<reverse_view<Seq> >
     {

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/at_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -20,7 +20,7 @@
         struct apply
         {
             typedef typename
- detail::forward_as<
+ detail::forward_as_lref<
                     Seq
                   , typename detail::remove_reference<Seq>::type::value_type
>::type

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/begin_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,13 +10,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct begin_impl;
 
- template <>
+ template<>
     struct begin_impl<single_view_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef typename detail::remove_reference<Seq>::type seq;
@@ -24,7 +24,7 @@
             typedef
                 single_view_iterator<
                     typename seq::value_type
- , typename detail::forward_as<
+ , typename detail::forward_as_lref<
                         Seq
                       , typename seq::value_type
>::type

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/deref_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,13 +12,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_impl;
 
- template <>
+ template<>
     struct deref_impl<single_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/end_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,13 +10,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct end_impl;
 
- template <>
+ template<>
     struct end_impl<single_view_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef typename detail::remove_reference<Seq>::type seq;
@@ -24,7 +24,7 @@
             typedef
                 single_view_iterator<
                     typename seq::value_type
- , typename detail::forward_as<
+ , typename detail::forward_as_lref<
                         Seq
                       , typename seq::value_type
>::type

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/next_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/next_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -11,13 +11,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct next_impl;
 
- template <>
+ template<>
     struct next_impl<single_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/prior_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/prior_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/prior_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,13 +10,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct prior_impl;
 
- template <>
+ template<>
     struct prior_impl<single_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/value_of_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,13 +10,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_impl;
 
- template <>
+ template<>
     struct value_of_impl<single_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -9,6 +9,7 @@
 #ifndef BOOST_FUSION_VIEW_SINGLE_VIEW_SINGLE_VIEW_HPP
 #define BOOST_FUSION_VIEW_SINGLE_VIEW_SINGLE_VIEW_HPP
 
+#include <boost/config.hpp>
 #ifdef BOOST_FUSION_ENABLE_STATIC_ASSERTS
 # include <boost/fusion/sequence/intrinsic/size.hpp>
 #endif
@@ -20,6 +21,7 @@
 #include <boost/fusion/support/internal/sequence_assign.hpp>
 #include <boost/fusion/support/internal/is_explicitly_convertible.hpp>
 
+#include <boost/detail/workaround.hpp>
 #include <boost/mpl/bool.hpp>
 #include <boost/mpl/int.hpp>
 #ifdef BOOST_NO_RVALUE_REFERENCES
@@ -45,7 +47,13 @@
     struct single_view_tag;
     struct fusion_sequence_tag;
 
- template <typename T>
+#ifdef BOOST_MSVC
+# pragma warning(push)
+ //'class' : multiple copy constructors specified
+# pragma warning(disable:4521)
+#endif
+
+ template<typename T>
     struct single_view
       : sequence_base<single_view<T> >
     {
@@ -173,7 +181,7 @@
         };
     };
 
- template <typename T>
+ template<typename T>
     inline typename
         result_of::make_single_view<BOOST_FUSION_R_ELSE_CLREF(T)>::type
     make_single_view(BOOST_FUSION_R_ELSE_CLREF(T) val)
@@ -184,7 +192,7 @@
     }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename T, typename Seq>
+ template<typename T, typename Seq>
     //cschmidt: see https://svn.boost.org/trac/boost/ticket/3305
 # if defined(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS) || BOOST_WORKAROUND(__GNUC__,<4)
     typename lazy_disable_if<
@@ -199,6 +207,10 @@
         return typename result_of::make_single_view<T&>::type(val);
     }
 #endif
+
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
 }}
 
 #endif

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,21 +13,21 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct begin_impl;
 
     // Unary Version
- template <>
+ template<>
     struct begin_impl<transform_view_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef typename
                 detail::remove_reference<Seq>::type
             seq;
             typedef typename
- detail::forward_as<
+ detail::forward_as_lref<
                     Seq
                   , typename seq::transform_type
>::type
@@ -36,12 +36,12 @@
             typedef
                 transform_view_iterator<
                     typename result_of::begin<
- typename detail::forward_as<
+ typename detail::forward_as_lref<
                             Seq
                           , typename seq::seq_type
>::type
>::type
- , typename detail::forward_as<
+ , typename detail::forward_as_lref<
                         Seq
                       , typename seq::transform_type
>::type
@@ -60,15 +60,15 @@
     };
 
     // Binary Version
- template <>
+ template<>
     struct begin_impl<transform_view2_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef typename detail::remove_reference<Seq>::type seq;
             typedef typename
- detail::forward_as<
+ detail::forward_as_lref<
                     Seq
                   , typename seq::transform_type
>::type
@@ -77,13 +77,13 @@
             typedef
                 transform_view_iterator2<
                     typename result_of::begin<
- typename detail::forward_as<
+ typename detail::forward_as_lref<
                             Seq
                           , typename seq::seq1_type
>::type
>::type
                   , typename result_of::begin<
- typename detail::forward_as<
+ typename detail::forward_as_lref<
                             Seq
                           , typename seq::seq2_type
>::type

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/deref_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/deref_data_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/deref_data_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,14 +13,14 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_data_impl;
 
     // Unary Version
- template <>
+ template<>
     struct deref_data_impl<transform_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;
@@ -51,10 +51,10 @@
     };
 
     // Binary Version
- template <>
+ template<>
     struct deref_data_impl<transform_view_iterator2_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,14 +13,14 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct deref_impl;
 
     // Unary Version
- template <>
+ template<>
     struct deref_impl<transform_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;
@@ -43,10 +43,10 @@
     };
 
     // Binary Version
- template <>
+ template<>
     struct deref_impl<transform_view_iterator2_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,19 +13,19 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct end_impl;
 
     // Unary Version
- template <>
+ template<>
     struct end_impl<transform_view_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef typename detail::remove_reference<Seq>::type seq;
             typedef typename
- detail::forward_as<
+ detail::forward_as_lref<
                     Seq
                   , typename seq::transform_type
>::type
@@ -34,7 +34,7 @@
             typedef
                 transform_view_iterator<
                     typename result_of::end<
- typename detail::forward_as<
+ typename detail::forward_as_lref<
                             Seq
                           , typename seq::seq_type
>::type
@@ -55,15 +55,15 @@
     };
 
     // Binary Version
- template <>
+ template<>
     struct end_impl<transform_view2_tag>
     {
- template <typename Seq>
+ template<typename Seq>
         struct apply
         {
             typedef typename detail::remove_reference<Seq>::type seq;
             typedef typename
- detail::forward_as<
+ detail::forward_as_lref<
                     Seq
                   , typename seq::transform_type
>::type
@@ -72,13 +72,13 @@
             typedef
                 transform_view_iterator2<
                     typename result_of::end<
- typename detail::forward_as<
+ typename detail::forward_as_lref<
                             Seq
                           , typename seq::seq1_type
>::type
>::type
                   , typename result_of::end<
- typename detail::forward_as<
+ typename detail::forward_as_lref<
                             Seq
                           , typename seq::seq2_type
>::type

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/key_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/key_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/key_of_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,13 +10,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct key_of_impl;
 
- template <>
+ template<>
     struct key_of_impl<transform_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename
@@ -26,10 +26,10 @@
         };
     };
 
- template <>
+ template<>
     struct key_of_impl<transform_view_iterator2_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/next_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/next_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -12,14 +12,14 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct next_impl;
 
     // Unary Version
- template <>
+ template<>
     struct next_impl<transform_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;
@@ -45,10 +45,10 @@
     };
 
     // Binary Version
- template <>
+ template<>
     struct next_impl<transform_view_iterator2_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -18,7 +18,7 @@
     // Unary Version
     struct transform_view_iterator_tag;
 
- template <typename It, typename FRef, typename IsAssociative>
+ template<typename It, typename FRef, typename IsAssociative>
     struct transform_view_iterator
       : iterator_base<transform_view_iterator<It, FRef, IsAssociative> >
     {
@@ -77,7 +77,7 @@
     // Binary Version
     struct transform_view_iterator2_tag;
 
- template <typename It1, typename It2, typename FRef, typename IsAssociative>
+ template<typename It1, typename It2, typename FRef, typename IsAssociative>
     struct transform_view_iterator2
       : iterator_base<transform_view_iterator2<It1, It2, FRef, IsAssociative> >
     {

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_of_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_of_data_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_of_data_impl.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -10,13 +10,13 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_data_impl;
 
- template <>
+ template<>
     struct value_of_data_impl<transform_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename
@@ -26,10 +26,10 @@
         };
     };
 
- template <>
+ template<>
     struct value_of_data_impl<transform_view_iterator2_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,14 +13,14 @@
 
 namespace boost { namespace fusion { namespace extension
 {
- template <typename>
+ template<typename>
     struct value_of_impl;
 
     // Unary Version
- template <>
+ template<>
     struct value_of_impl<transform_view_iterator_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;
@@ -37,10 +37,10 @@
     };
 
     // Binary Version
- template <>
+ template<>
     struct value_of_impl<transform_view_iterator2_tag>
     {
- template <typename It>
+ template<typename It>
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -13,10 +13,6 @@
 #include <boost/fusion/algorithm/transformation/transform.hpp>
 #include <boost/fusion/support/unused.hpp>
 
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/type_traits/is_same.hpp>
-
 namespace boost { namespace fusion
 {
     namespace detail
@@ -28,13 +24,15 @@
 
             template<typename Self, typename SeqRef>
             struct result<Self(SeqRef)>
- : mpl::eval_if<
- is_same<SeqRef, unused_type const&>
- , mpl::identity<unused_type const&>
- , result_of::begin<SeqRef>
- >
+ : result_of::begin<SeqRef>
             {};
 
+ template<typename Self>
+ struct result<Self(unused_type const&)>
+ {
+ typedef unused_type const& type;
+ };
+
             template<typename Seq>
             typename result<poly_begin(BOOST_FUSION_R_ELSE_LREF(Seq))>::type
             operator()(BOOST_FUSION_R_ELSE_LREF(Seq) seq) const

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -88,11 +88,11 @@
                 call(Seq seq)
                 {
                     return type(
- fusion::transform(
- seq.seqs,
- detail::endpoints<typename seq::size>()
- ),
- 0);
+ fusion::transform(
+ seq.seqs,
+ detail::endpoints<typename seq::size>()
+ ),
+ 0);
                 }
             };
         };

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -135,7 +135,7 @@
 
     template<typename Seqs>
     struct zip_view
- : sequence_base< zip_view<Seqs> >
+ : sequence_base<zip_view<Seqs> >
     {
         BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seqs>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seqs>));

Modified: sandbox/SOC/2009/fusion/libs/fusion/example/cookbook/do_the_bind.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/cookbook/do_the_bind.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/cookbook/do_the_bind.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -60,14 +60,14 @@
 
     // Placeholders (we inherit from mpl::int_, so we can use placeholders
     // as indices for fusion::at, later)
- template <int I> struct placeholder : mpl::int_<I> { };
+ template<int I> struct placeholder : mpl::int_<I> { };
 
     // A traits class to find out whether T is a placeholeder
- template <typename T> struct is_placeholder : mpl::false_ { };
- template <int I> struct is_placeholder< placeholder<I> > : mpl::true_ { };
- template <int I> struct is_placeholder< placeholder<I> & > : mpl::true_ { };
- template <int I> struct is_placeholder< placeholder<I> const > : mpl::true_ { };
- template <int I> struct is_placeholder< placeholder<I> const & > : mpl::true_ { };
+ template<typename T> struct is_placeholder : mpl::false_ { };
+ template<int I> struct is_placeholder< placeholder<I> > : mpl::true_ { };
+ template<int I> struct is_placeholder< placeholder<I> & > : mpl::true_ { };
+ template<int I> struct is_placeholder< placeholder<I> const > : mpl::true_ { };
+ template<int I> struct is_placeholder< placeholder<I> const & > : mpl::true_ { };
 
     // This class template provides a Polymorphic Function Object to be used
     // with fusion::transform. It is applied to the sequence of arguments that
@@ -83,22 +83,22 @@
         { }
 
         // A placeholder? Replace it with an argument from the final call...
- template <int Index>
+ template<int Index>
         inline typename result_of::at_c<FinalArgs const, Index>::type
         operator()(placeholder<Index> const &) const
         {
             return fusion::at_c<Index>(this->ref_final_args);
         }
         // ...just return the bound argument, otherwise.
- template <typename T> inline T & operator()(T & bound) const
+ template<typename T> inline T & operator()(T & bound) const
         {
             return bound;
         }
 
- template <typename Signature>
+ template<typename Signature>
         struct result;
 
- template <class Self, typename T>
+ template<class Self, typename T>
         struct result< Self (T) >
             : mpl::eval_if< is_placeholder<T>,
                 result_of::at<FinalArgs,typename boost::remove_reference<T>::type>,
@@ -109,7 +109,7 @@
 
     // Fused implementation of the bound function, the function object
     // returned by bind
- template <class BindArgs> class fused_bound_function
+ template<class BindArgs> class fused_bound_function
     {
         // Transform arguments to be held by value
         typedef typename traits::deduce_sequence<BindArgs>::type bound_args;
@@ -121,10 +121,10 @@
           : fsq_bind_args(bind_args)
         { }
 
- template <typename Signature>
+ template<typename Signature>
         struct result;
 
- template <class FinalArgs>
+ template<class FinalArgs>
         struct result_impl
             : result_of::invoke< typename result_of::front<bound_args>::type,
                 typename result_of::transform<
@@ -134,12 +134,12 @@
>
         { };
 
- template <class Self, class FinalArgs>
+ template<class Self, class FinalArgs>
         struct result< Self (FinalArgs) >
             : result_impl< typename boost::remove_reference<FinalArgs>::type >
         { };
 
- template <class FinalArgs>
+ template<class FinalArgs>
         inline typename result_impl<FinalArgs>::type
         operator()(FinalArgs const & final_args) const
         {
@@ -156,16 +156,16 @@
     {
         struct fold_op
         {
- template <typename Sig> struct result;
- template <class S, class A, class B> struct result< S(A &,B &) >
+ template<typename Sig> struct result;
+ template<class S, class A, class B> struct result< S(A &,B &) >
                 : mpl::max<A,B> { };
         };
         struct filter_pred
         {
- template <class X> struct apply : is_placeholder<X> { };
+ template<class X> struct apply : is_placeholder<X> { };
         };
 
- template <typename Seq>
+ template<typename Seq>
         struct apply
             : mpl::next< typename result_of::fold<
                 fusion::filter_view<Seq,filter_pred>, mpl::int_<-1>, fold_op
@@ -176,10 +176,10 @@
     // Fused implementation of the 'bind' function
     struct fused_binder
     {
- template <class Signature>
+ template<class Signature>
         struct result;
 
- template <class BindArgs,
+ template<class BindArgs,
             int Placeholders = n_placeholders::apply<BindArgs>::value>
         struct result_impl
         {
@@ -187,12 +187,12 @@
                 fused_bound_function<BindArgs>,!Placeholders>,Placeholders> type;
         };
 
- template <class Self, class BindArgs>
+ template<class Self, class BindArgs>
         struct result< Self (BindArgs) >
             : result_impl< typename boost::remove_reference<BindArgs>::type >
         { };
 
- template <class BindArgs>
+ template<class BindArgs>
         inline typename result_impl< BindArgs >::type
         operator()(BindArgs & bind_args) const
         {
@@ -230,7 +230,7 @@
         return 0;
     }
 
- template <typename A>
+ template<typename A>
     inline int operator()(A const & a) const
     {
         std::cout << "operator()(A const & a)" << std::endl;
@@ -238,7 +238,7 @@
         return 1;
     }
 
- template <typename A, typename B>
+ template<typename A, typename B>
     inline int operator()(A const & a, B & b) const
     {
         std::cout << "operator()(A const & a, B & b)" << std::endl;

Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/vtuple/tuple142plus.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/vtuple/tuple142plus.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/vtuple/tuple142plus.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -61,20 +61,20 @@
 {
 
 // Test for tuple index size too large.
-template <typename Sq, int N>
+template<typename Sq, int N>
 struct VARIADIC_TUPLE_INDEX_TOO_LARGE
   : boost::mpl::greater_equal<boost::mpl::int_<N>,boost::mpl::int_<
   std::tuple_size<typename Sq::base_type>::value> >
 {};
 
 // Test for tuple index size too small.
-template <typename Sq, int N>
+template<typename Sq, int N>
 struct VARIADIC_TUPLE_INDEX_TOO_SMALL
   : boost::mpl::less<boost::mpl::int_<N>,boost::mpl::int_<0> >
 {};
 
 // This has been added for the member functions defined below.
-template <typename Sq, int N>
+template<typename Sq, int N>
 struct VARIADIC_TUPLE_RETURN_TYPE_N : boost::mpl::if_<
   VARIADIC_TUPLE_INDEX_TOO_LARGE<Sq,N>,
   boost::mpl::void_,
@@ -84,7 +84,7 @@
 // This has been added for the member functions defined below.
 // This does not have the checks for type in at the moment.
 // It defines a member type internally instead of by inheritance.
-template <typename Sq, typename Key, typename Key_Sq>
+template<typename Sq, typename Key, typename Key_Sq>
 struct VARIADIC_TUPLE_RETURN_TYPE_KEY
 {
   typedef typename std::tuple_element<
@@ -161,7 +161,7 @@
           : deref<It>
         {};
 
- template <typename SeqRef_, int N>
+ template<typename SeqRef_, int N>
         struct deref<vtuple_iterator<SeqRef_, N> >
         {
             typedef typename
@@ -232,17 +232,17 @@
         vtuple()
             : base_type() {}
 
- template <typename... Args>
+ template<typename... Args>
         vtuple(const Args&... args) : base_type(args...) { }
 
- template <typename... Args>
+ template<typename... Args>
         vtuple(Args&... args) : base_type(args...) { }
 
- template <typename T>
+ template<typename T>
         explicit vtuple(T const& rhs)
             : base_type(rhs) {}
 
- template <typename T>
+ template<typename T>
         vtuple&
         operator=(T const& rhs)
         {
@@ -279,7 +279,7 @@
         }
 
         // Generalised for any element in the sequence.
- template <int N>
+ template<int N>
         typename VARIADIC_TUPLE_RETURN_TYPE_N<This_type,N>::type
         any() const
         {
@@ -288,7 +288,7 @@
         }
 
         // Generalised for any element in the sequence by key.
- template <typename Key,typename Key_Sequence>
+ template<typename Key,typename Key_Sequence>
         typename VARIADIC_TUPLE_RETURN_TYPE_KEY<This_type,Key,Key_Sequence>::type
         any_key() const
         {
@@ -308,7 +308,7 @@
       // This has in fact liberated the top level code to supply any key sequence.
       // It does not have to be the same length as the sequence.
       // Any problem cases will not compile because of the tests here.
- template <typename Key,typename Key_Sequence>
+ template<typename Key,typename Key_Sequence>
       int pos()
       {
         typedef typename boost::mpl::end<Key_Sequence>::type finish;
@@ -321,7 +321,7 @@
       }
        
       // location function for the enum method
- template <typename Enums, Enums Key>
+ template<typename Enums, Enums Key>
       int locate()
       {
         BOOST_MPL_ASSERT_NOT((VARIADIC_TUPLE_INDEX_TOO_LARGE<This_type,
@@ -329,7 +329,7 @@
     return boost::mpl::integral_c<Enums,Key>::value;
       }
       // Access function for the enum method
- /* template <typename Enums, Enums Key>
+ /* template<typename Enums, Enums Key>
       typename VARIADIC_TUPLE_RETURN_TYPE_N<This_type,
                boost::mpl::integral_c<Enums,Key>::value>::type
       at()

Modified: sandbox/SOC/2009/fusion/libs/fusion/example/performance/functional.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/performance/functional.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/performance/functional.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -37,7 +37,7 @@
 {
     struct fused_sum
     {
- template <typename Seq>
+ template<typename Seq>
         int operator()(Seq const & seq) const
         {
             int state = 0;
@@ -50,13 +50,13 @@
 
         struct sum_op
         {
- template <typename T>
+ template<typename T>
             int operator()(T const & elem, int value) const
             {
               return value + sizeof(T) * elem;
             }
 
- template <typename T>
+ template<typename T>
             int operator()(T & elem, int value) const
             {
               elem += sizeof(T);

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -19,7 +19,7 @@
 
   // Call objects of the given Accumulator type repeatedly with x as
   // an argument.
- template <class Accumulator, class Arg>
+ template<class Accumulator, class Arg>
   void hammer(Arg const& x, long const repeats)
   {
       // Strategy: because the sum in an accumulator after each call
@@ -66,7 +66,7 @@
 
   // Measure the time required to hammer accumulators of the given
   // type with the argument x.
- template <class Accumulator, class T>
+ template<class Accumulator, class T>
   double measure(T const& x, long const repeats)
   {
       // Hammer accumulators a couple of times to ensure the

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 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -77,14 +77,14 @@
     };
 
     // Our Accumulator function
- template <typename T>
+ template<typename T>
     struct accumulator
     {
         accumulator()
             : sum()
         {}
         
- template <typename Sequence>
+ template<typename Sequence>
         void operator()(Sequence const& seq)
         {
             this->sum += boost::fusion::accumulate(seq, 0, poly_add());
@@ -94,14 +94,14 @@
     };
 
     // Plain Accumulator function
- template <typename T>
+ template<typename T>
     struct plain_accumulator
     {
         plain_accumulator()
             : sum()
         {}
         
- template <typename X>
+ template<typename X>
         void operator()(X const& x)
         {
             this->sum += x;
@@ -110,14 +110,14 @@
         T sum;
     };
     
- template <typename T>
+ template<typename T>
     void check(T const& seq, char const* info)
     {
         test::measure<accumulator<int> >(seq, 1);
         std::cout << info << test::live_code << std::endl;
     }
 
- template <typename T>
+ template<typename T>
     void measure(T const& seq, char const* info, long const repeats, double base)
     {
         double t = test::measure<accumulator<int> >(seq, repeats);
@@ -128,7 +128,7 @@
             << std::endl;
     }
 
- template <typename T>
+ template<typename T>
     void test_assembler(T const& seq)
     {
         test::live_code = boost::fusion::accumulate(seq, 0, poly_add());

Modified: sandbox/SOC/2009/fusion/libs/fusion/example/performance/zip_efficiency.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/performance/zip_efficiency.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/performance/zip_efficiency.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -45,14 +45,14 @@
     };
 
     // Our Accumulator function
- template <typename T>
+ template<typename T>
     struct zip_accumulator
     {
         zip_accumulator()
             : sum()
         {}
         
- template <typename Sequence>
+ template<typename Sequence>
         void operator()(Sequence const& seq)
         {
             this->sum += boost::fusion::accumulate(seq, 0, zip_add());
@@ -61,14 +61,14 @@
         T sum;
     };
     
- template <typename T>
+ template<typename T>
     void check(T const& seq, char const* info)
     {
         test::measure<zip_accumulator<int> >(seq, 1);
         std::cout << info << test::live_code << std::endl;
     }
 
- template <typename T>
+ template<typename T>
     void measure(T const& seq, char const* info, long const repeats)
     {
         std::cout

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/algorithm/replace_if.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/algorithm/replace_if.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/algorithm/replace_if.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -38,7 +38,8 @@
     {
         char const* s = "Ruby";
         typedef vector<int, short, double, long, char const*, float> vector_type;
- vector_type t1(1, 2, 3.3, 4, s, 5.5);
+ //TODO
+ vector_type t1(1, 2, 3.3, 4, s, 5.5f);
 
         {
             //TODO

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_class.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_class.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_class.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -82,7 +82,8 @@
     }
 
     {
- boost::fusion::vector<int, float> v1(4, 2);
+ //TODO
+ boost::fusion::vector<int, float> v1(4, 2.0f);
         ns::point v2(5, 3);
         boost::fusion::vector<long, double> v3(5, 4);
         BOOST_TEST(v1 < v2);

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_class_named.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_class_named.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_class_named.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -63,7 +63,7 @@
     std::cout << tuple_delimiter(", ");
 
     {
- BOOST_MPL_ASSERT_NOT((traits::is_view<adapted::point>));
+ BOOST_MPL_ASSERT((traits::is_view<adapted::point>));
         ns::point basep(123, 456);
         adapted::point p(basep);
 
@@ -84,7 +84,8 @@
     }
 
     {
- boost::fusion::vector<int, float> v1(4, 2);
+ //TODO
+ boost::fusion::vector<int, float> v1(4, 2.0f);
         ns::point basev2(5, 3);
         adapted::point v2(basev2);
         boost::fusion::vector<long, double> v3(5, 4);

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_struct.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_struct.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_struct.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -83,7 +83,8 @@
     }
 
     {
- vector<int, float> v1(4, 2);
+ //TODO
+ vector<int, float> v1(4, 2.0f);
         ns::point v2 = {5, 3};
         vector<long, double> v3(5, 4);
         BOOST_TEST(v1 < v2);

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_struct_named.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_struct_named.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_struct_named.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -48,7 +48,7 @@
     std::cout << tuple_delimiter(", ");
 
     {
- BOOST_MPL_ASSERT_NOT((traits::is_view<adapted::point>));
+ BOOST_MPL_ASSERT((traits::is_view<adapted::point>));
         ns::point basep = {123, 456};
         adapted::point p(basep);
 
@@ -69,7 +69,8 @@
     }
 
     {
- vector<int, float> v1(4, 2);
+ //TODO
+ vector<int, float> v1(4, 2.0f);
         ns::point basev2 = {5, 3};
         adapted::point v2(basev2);
 

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_tpl_class.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_tpl_class.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_tpl_class.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -86,7 +86,8 @@
     }
 
     {
- boost::fusion::vector<int, float> v1(4, 2);
+ //TODO
+ boost::fusion::vector<int, float> v1(4, 2.0f);
         point v2(5, 3);
         boost::fusion::vector<long, double> v3(5, 4);
         BOOST_TEST(v1 < v2);

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_tpl_struct.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_tpl_struct.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_tpl_struct.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -86,7 +86,8 @@
     }
 
     {
- vector<int, float> v1(4, 2);
+ //TODO
+ vector<int, float> v1(4, 2.0f);
         point v2 = {5, 3};
         vector<long, double> v3(5, 4);
         BOOST_TEST(v1 < v2);

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_class.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_class.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_class.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -90,7 +90,8 @@
     }
 
     {
- boost::fusion::vector<int, float> v1(4, 2);
+ //TODO
+ boost::fusion::vector<int, float> v1(4, 2.0f);
         ns::point v2(5, 3);
         boost::fusion::vector<long, double> v3(5, 4);
         BOOST_TEST(v1 < v2);

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_class_named.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_class_named.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_class_named.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -70,7 +70,7 @@
     std::cout << tuple_delimiter(", ");
 
     {
- BOOST_MPL_ASSERT_NOT((traits::is_view<adapted::point>));
+ BOOST_MPL_ASSERT((traits::is_view<adapted::point>));
         ns::point basep(123, 456);
         adapted::point p(basep);
 
@@ -91,7 +91,8 @@
     }
 
     {
- vector<int, float> v1(4, 2);
+ //TODO
+ vector<int, float> v1(4, 2.0f);
         ns::point basep(5, 3);
         adapted::point v2(basep);
 

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_struct.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_struct.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_struct.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -76,7 +76,8 @@
     }
 
     {
- vector<int, float> v1(4, 2);
+ //TODO
+ vector<int, float> v1(4, 2.0f);
         ns::point v2 = {5, 3};
         vector<long, double> v3(5, 4);
         BOOST_TEST(v1 < v2);

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_struct_named.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_struct_named.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_struct_named.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -62,7 +62,7 @@
     std::cout << tuple_delimiter(", ");
 
     {
- BOOST_MPL_ASSERT_NOT((traits::is_view<adapted::point>));
+ BOOST_MPL_ASSERT((traits::is_view<adapted::point>));
         ns::point basep = {123, 456};
         adapted::point p(basep);
 
@@ -83,7 +83,8 @@
     }
 
     {
- vector<int, float> v1(4, 2);
+ //TODO
+ vector<int, float> v1(4, 2.0f);
         ns::point p = {5, 3};
         adapted::point v2(p);
 

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_tpl_class.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_tpl_class.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_tpl_class.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -94,7 +94,8 @@
     }
 
     {
- boost::fusion::vector<int, float> v1(4, 2);
+ //TODO
+ boost::fusion::vector<int, float> v1(4, 2.0f);
         point v2(5, 3);
         boost::fusion::vector<long, double> v3(5, 4);
         BOOST_TEST(v1 < v2);

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_tpl_struct.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_tpl_struct.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_tpl_struct.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -81,7 +81,8 @@
     }
 
     {
- vector<int, float> v1(4, 2);
+ //TODO
+ vector<int, float> v1(4, 2.0f);
         point v2 = {5, 3};
         vector<long, double> v3(5, 4);
         BOOST_TEST(v1 < v2);

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/construction.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/construction.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/construction.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -109,7 +109,8 @@
     {
         double dd = 5;
         dummy(FUSION_SEQUENCE<double&>(dd)); // ok
- dummy(FUSION_SEQUENCE<const double&>(dd+3.14)); // ok, but dangerous
+ //TODO!
+ //dummy(FUSION_SEQUENCE<const double&>(dd+3.14)); // ok, but dangerous
     }
 
 #if defined(FUSION_TEST_FAIL)

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/define_assoc_struct.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/define_assoc_struct.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/define_assoc_struct.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -59,7 +59,8 @@
     }
 
     {
- vector<int, float> v1(4, 2);
+ //TODO
+ vector<int, float> v1(4, 2.0f);
         ns::point v2(5, 3);
         vector<long, double> v3(5, 4);
         BOOST_TEST(v1 < v2);

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/define_assoc_tpl_struct.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/define_assoc_tpl_struct.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/define_assoc_tpl_struct.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -63,7 +63,8 @@
     }
 
     {
- vector<int, float> v1(4, 2);
+ //TODO
+ vector<int, float> v1(4, 2.0f);
         point v2(5, 3);
         vector<long, double> v3(5, 4);
         BOOST_TEST(v1 < v2);

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/define_struct.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/define_struct.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/define_struct.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -56,7 +56,8 @@
     }
 
     {
- vector<int, float> v1(4, 2);
+ //TODO
+ vector<int, float> v1(4, 2.0f);
         ns::point v2(5, 3);
         vector<long, double> v3(5, 4);
         BOOST_TEST(v1 < v2);

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/define_tpl_struct.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/define_tpl_struct.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/define_tpl_struct.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -59,7 +59,8 @@
     }
 
     {
- vector<int, float> v1(4, 2);
+ //TODO
+ vector<int, float> v1(4, 2.0f);
         point v2(5, 3);
         vector<long, double> v3(5, 4);
         BOOST_TEST(v1 < v2);

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/make.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/make.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/make.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -67,8 +67,9 @@
 
     {
         // You can store a reference to a function in a sequence
- FUSION_SEQUENCE<void(&)()> adf(make_tuple_test);
- dummy(adf); // avoid warning for unused variable
+ //TODO!!!
+ //FUSION_SEQUENCE<void(&)()> adf(make_tuple_test);
+ //dummy(adf); // avoid warning for unused variable
     }
 
 #if defined(FUSION_TEST_FAIL)

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/misc.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/misc.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/misc.hpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -160,7 +160,8 @@
     { // testing front & back
 
         typedef FUSION_SEQUENCE<int, float, std::string> tup;
- tup t(1, 2.2, "Kimpo");
+ //TODO
+ tup t(1, 2.2f, "Kimpo");
 
         BOOST_TEST(front(t) == 1);
 #if !defined(FUSION_FORWARD_ONLY) // list has no back

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/vector_n.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/vector_n.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/vector_n.cpp 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -135,7 +135,8 @@
 
     {
         typedef vector7<bool, char, short, int, long, float, double> type;
- type vec(false, 'x', 3, 4, 5, 6.0, 7.0);
+ //TODO
+ type vec(false, 'x', 3, 4, 5, 6.0f, 7.0);
 
         BOOST_TEST(at_c<0>(vec) == false);
         BOOST_TEST(at_c<1>(vec) == 'x');

Added: sandbox/SOC/2009/fusion/libs/fusion/test/suite2/Jamfile
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite2/Jamfile 2010-06-03 12:16:48 EDT (Thu, 03 Jun 2010)
@@ -0,0 +1,16 @@
+#==============================================================================
+# Copyright (c) 2010 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)
+#==============================================================================
+
+# bring in rules for testing
+import testing ;
+
+{
+ test-suite fusion :
+
+ ;
+}

Added: sandbox/SOC/2009/fusion/libs/fusion/test/suite2/sequence/test_base.hpp
==============================================================================


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