Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r54874 - in sandbox/SOC/2009/fusion: boost/fusion boost/fusion/adapted boost/fusion/adapted/detail/array boost/fusion/adapted/detail/boost_tuple boost/fusion/adapted/detail/mpl boost/fusion/adapted/detail/struct boost/fusion/adapted/struct boost/fusion/container boost/fusion/container/list boost/fusion/container/list/detail/cons boost/fusion/container/list/detail/list boost/fusion/container/map boost/fusion/container/map/detail boost/fusion/container/set boost/fusion/container/set/detail boost/fusion/container/vector boost/fusion/container/vector/detail boost/fusion/container/vector/detail/variadic_templates boost/fusion/functional/adapter boost/fusion/functional/adapter/detail boost/fusion/functional/generation/detail boost/fusion/functional/invocation boost/fusion/iterator boost/fusion/support boost/fusion/support/detail boost/fusion/support/detail/iterator_adapter boost/fusion/tuple boost/fusion/view 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/reverse_view boost/fusion/view/reverse_view/detail boost/fusion/view/single_view boost/fusion/view/single_view/detail boost/fusion/view/transform_view boost/fusion/view/transform_view/detail boost/fusion/view/zip_view boost/fusion/view/zip_view/detail libs/fusion/doc libs/fusion/example/cookbook libs/fusion/example/performance libs/fusion/test libs/fusion/test/functional libs/fusion/test/sequence
From: mr.chr.schmidt_at_[hidden]
Date: 2009-07-10 18:07:21


Author: cschmidt
Date: 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
New Revision: 54874
URL: http://svn.boost.org/trac/boost/changeset/54874

Log:
(style) cleanup
Added:
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_fwd.hpp (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_iterator.hpp (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/vector_iterator.hpp (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/iterator_adapter_fwd.hpp (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_fwd.hpp (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_iterator.hpp (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/iterator_range_fwd.hpp (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_fwd.hpp (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_iterator.hpp (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_fwd.hpp (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_iterator.hpp (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_fwd.hpp (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_iterator.hpp (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/transform_view_iterator.hpp (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_fwd.hpp (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_iterator.hpp (contents, props changed)
Removed:
   sandbox/SOC/2009/fusion/boost/fusion/container/list/cons_iterator.hpp
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_iterator.hpp
   sandbox/SOC/2009/fusion/boost/fusion/support/detail/is_mpl_sequence.hpp
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view_iterator.hpp
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view_iterator.hpp
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view_iterator.hpp
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view_iterator.hpp
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view_iterator.hpp
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view_iterator.hpp
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view_iterator_fwd.hpp
Text files modified:
   sandbox/SOC/2009/fusion/boost/fusion/adapted.hpp | 5
   sandbox/SOC/2009/fusion/boost/fusion/adapted/array.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_tuple.hpp | 6
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/array_iterator.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/at_impl.hpp | 49 ++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/begin_impl.hpp | 37 ++++------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/category_of_impl.hpp | 5
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/end_impl.hpp | 49 ++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_sequence_impl.hpp | 34 ++++------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_view_impl.hpp | 28 +++----
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/size_impl.hpp | 29 +++-----
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/value_at_impl.hpp | 27 +++----
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/at_impl.hpp | 53 +++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/begin_impl.hpp | 35 ++++------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/boost_tuple_iterator.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/category_of_impl.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/end_impl.hpp | 79 +++++++++++------------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/is_sequence_impl.hpp | 27 +++----
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/is_view_impl.hpp | 27 +++----
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/size_impl.hpp | 35 ++++------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/value_at_impl.hpp | 33 ++++-----
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/advance_impl.hpp | 49 ++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/at_impl.hpp | 39 +++++------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/begin_impl.hpp | 49 ++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/category_of_impl.hpp | 41 +++++-------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/deref_impl.hpp | 39 +++++------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/distance_impl.hpp | 35 ++++------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/empty_impl.hpp | 27 +++----
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/end_impl.hpp | 47 ++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/equal_to_impl.hpp | 35 ++++------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/has_key_impl.hpp | 27 +++----
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_sequence_impl.hpp | 27 +++----
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_view_impl.hpp | 27 +++----
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/mpl_iterator.hpp | 3
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/next_impl.hpp | 47 ++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/prior_impl.hpp | 47 ++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/size_impl.hpp | 27 +++----
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_at_impl.hpp | 27 +++----
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_of_impl.hpp | 27 +++----
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_assoc_struct.hpp | 7 -
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_base.hpp | 7 -
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_impl.hpp | 61 ++++++++----------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_key_impl.hpp | 45 ++++++-------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/begin_impl.hpp | 35 ++++------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/category_of_impl.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/end_impl.hpp | 49 ++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp | 29 +++++---
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/has_key_impl.hpp | 47 ++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/is_sequence_impl.hpp | 27 +++----
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/is_view_impl.hpp | 27 +++----
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/size_impl.hpp | 33 +++------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/struct_iterator.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_at_impl.hpp | 33 +++------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_at_key_impl.hpp | 33 ++++-----
   sandbox/SOC/2009/fusion/boost/fusion/adapted/mpl.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp | 75 +++++++++-------------
   sandbox/SOC/2009/fusion/boost/fusion/adapted/struct.hpp | 14 ++--
   sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_assoc_struct.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_struct.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/container/list.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/container/list/cons.hpp | 20 ++++--
   sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp | 3
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/at_impl.hpp | 18 ++---
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/begin_impl.hpp | 38 ++++-------
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/convert_impl.hpp | 51 +++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/deref_impl.hpp | 53 +++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/empty_impl.hpp | 32 +++------
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/end_impl.hpp | 49 +++++---------
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/equal_to_impl.hpp | 47 ++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/next_impl.hpp | 63 ++++++++-----------
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_at_impl.hpp | 53 +++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_of_impl.hpp | 38 ++++------
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/at_impl.hpp | 52 +++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/begin_impl.hpp | 56 ++++++++---------
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/convert_impl.hpp | 57 ++++++++---------
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/end_impl.hpp | 56 ++++++++---------
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_at_impl.hpp | 43 +++++-------
   sandbox/SOC/2009/fusion/boost/fusion/container/list/list.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/container/list/list_fwd.hpp | 3
   sandbox/SOC/2009/fusion/boost/fusion/container/map/convert.hpp | 3
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/at_key_impl.hpp | 46 ++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/begin_impl.hpp | 45 +++++--------
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/convert_impl.hpp | 63 ++++++++----------
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/end_impl.hpp | 45 +++++--------
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_at_key_impl.hpp | 31 ++++-----
   sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp | 17 ++--
   sandbox/SOC/2009/fusion/boost/fusion/container/map/map_fwd.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/container/set/convert.hpp | 3
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/at_key_impl.hpp | 46 ++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/begin_impl.hpp | 46 ++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/convert_impl.hpp | 59 ++++++++---------
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/end_impl.hpp | 45 +++++--------
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_at_key_impl.hpp | 31 ++++-----
   sandbox/SOC/2009/fusion/boost/fusion/container/set/set.hpp | 16 ++--
   sandbox/SOC/2009/fusion/boost/fusion/container/set/set_fwd.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/advance_impl.hpp | 52 ++++++---------
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/at_impl.hpp | 50 +++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/begin_impl.hpp | 35 ++++-----
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/convert_impl.hpp | 61 ++++++++----------
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/deref_impl.hpp | 57 ++++++++---------
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/distance_impl.hpp | 35 ++++------
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/end_impl.hpp | 45 ++++++-------
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/equal_to_impl.hpp | 26 ++++++-
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/next_impl.hpp | 50 ++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/prior_impl.hpp | 57 +++++++----------
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_at_impl.hpp | 35 ++++------
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_of_impl.hpp | 49 ++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_impl.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector.hpp | 19 +++--
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector10.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_fwd.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/access.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_function_object.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_procedure.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused.hpp | 12 +-
   sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_function_object.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_procedure.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/iterator/distance.hpp | 18 ++--
   sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp | 24 +++---
   sandbox/SOC/2009/fusion/boost/fusion/support/deduce.hpp | 111 +++++++--------------------------
   sandbox/SOC/2009/fusion/boost/fusion/support/deduce_sequence.hpp | 15 ++--
   sandbox/SOC/2009/fusion/boost/fusion/support/detail/as_fusion_element.hpp | 32 ++++----
   sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/advance_impl.hpp | 60 ++++++++----------
   sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/deref_impl.hpp | 50 ++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/distance_impl.hpp | 45 ++++++-------
   sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/equal_to_impl.hpp | 39 +++++------
   sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/next_impl.hpp | 60 ++++++++----------
   sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/prior_impl.hpp | 60 ++++++++----------
   sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/value_of_impl.hpp | 39 ++++-------
   sandbox/SOC/2009/fusion/boost/fusion/support/is_iterator.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/support/is_sequence.hpp | 12 +-
   sandbox/SOC/2009/fusion/boost/fusion/support/is_view.hpp | 14 ----
   sandbox/SOC/2009/fusion/boost/fusion/support/iterator_adapter.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/support/ref.hpp | 57 ++++-------------
   sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp | 14 ++++
   sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_tie.hpp | 3
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/begin_impl.hpp | 52 ++++++---------
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_impl.hpp | 45 ++++++-------
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/end_impl.hpp | 54 +++++++---------
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/equal_to_impl.hpp | 33 ++++-----
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/next_impl.hpp | 68 +++++++++-----------
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/size_impl.hpp | 33 ++++-----
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/value_of_impl.hpp | 32 ++++-----
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp | 11 ++
   sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/at_impl.hpp | 43 +++++-------
   sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/begin_impl.hpp | 39 +++++------
   sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/end_impl.hpp | 39 +++++------
   sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/value_at_impl.hpp | 37 ++++------
   sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/begin_impl.hpp | 106 +++++++++++++++-----------------
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_impl.hpp | 55 +++++++---------
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/end_impl.hpp | 51 +++++++--------
   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/next_impl.hpp | 130 ++++++++++++++++++---------------------
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/value_of_impl.hpp | 39 +++++------
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp | 4
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/advance_impl.hpp | 60 ++++++++----------
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/begin_impl.hpp | 54 +++++++---------
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_impl.hpp | 49 ++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/distance_impl.hpp | 48 ++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/end_impl.hpp | 53 +++++++---------
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/equal_to_impl.hpp | 33 ++++-----
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/next_impl.hpp | 50 ++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/prior_impl.hpp | 50 ++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_of_impl.hpp | 39 +++++------
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp | 11 ++
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/begin_impl.hpp | 38 ++++-------
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/deref_impl.hpp | 39 +++++------
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/end_impl.hpp | 38 ++++-------
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/equal_to_impl.hpp | 49 ++++++--------
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/next_impl.hpp | 53 ++++++---------
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/value_of_impl.hpp | 37 ++++------
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp | 7 +
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/advance_impl.hpp | 130 ++++++++++++++++++---------------------
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/at_impl.hpp | 113 ++++++++++++++++------------------
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/begin_impl.hpp | 120 ++++++++++++++++--------------------
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/deref_impl.hpp | 122 ++++++++++++++++++-------------------
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/distance_impl.hpp | 60 ++++++++----------
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/end_impl.hpp | 116 ++++++++++++++++-------------------
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/equal_to_impl.hpp | 58 ++++++++---------
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/next_impl.hpp | 116 ++++++++++++++++-------------------
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/prior_impl.hpp | 120 ++++++++++++++++--------------------
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_at_impl.hpp | 88 ++++++++++++--------------
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_of_impl.hpp | 90 ++++++++++++--------------
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp | 14 +++
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view.hpp | 1
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/advance_impl.hpp | 7 -
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/at_impl.hpp | 8 -
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/begin_impl.hpp | 11 +--
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/deref_impl.hpp | 6 -
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/distance_impl.hpp | 6 -
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/end_impl.hpp | 6 -
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/equal_to_impl.hpp | 6 -
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/next_impl.hpp | 8 -
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/prior_impl.hpp | 6 -
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/size_impl.hpp | 29 +++-----
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_at_impl.hpp | 7 -
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_of_impl.hpp | 2
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp | 14 +++
   sandbox/SOC/2009/fusion/libs/fusion/doc/functional.qbk | 36 +++++-----
   sandbox/SOC/2009/fusion/libs/fusion/doc/support.qbk | 16 ++--
   sandbox/SOC/2009/fusion/libs/fusion/example/cookbook/do_the_bind.cpp | 22 +++---
   sandbox/SOC/2009/fusion/libs/fusion/example/performance/functional.cpp | 18 ++--
   sandbox/SOC/2009/fusion/libs/fusion/test/Jamfile | 2
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused.cpp | 8 +-
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_function_object.cpp | 8 +-
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_procedure.cpp | 8 +-
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke.cpp | 32 ++++----
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_function_object.cpp | 18 ++--
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_procedure.cpp | 26 ++++----
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused.cpp | 6
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_function_object.cpp | 6
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_procedure.cpp | 6
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_unfused.cpp | 6
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused.cpp | 8 +-
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused_typed.cpp | 18 ++--
   sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp | 50 +++++++++-----
   sandbox/SOC/2009/fusion/libs/fusion/test/sequence/tr1_tuple_auto_conv.cpp | 2
   sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_iterator.cpp | 1
   227 files changed, 3273 insertions(+), 4103 deletions(-)

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,11 +9,10 @@
 #ifndef BOOST_FUSION_ADAPTED_HPP
 #define BOOST_FUSION_ADAPTED_HPP
 
-//TODO!!!
 #include <boost/fusion/adapted/boost_tuple.hpp>
-//#include <boost/fusion/adapted/std_pair.hpp>
+#include <boost/fusion/adapted/std_pair.hpp>
 #include <boost/fusion/adapted/array.hpp>
 #include <boost/fusion/adapted/mpl.hpp>
-//#include <boost/fusion/adapted/struct.hpp>
+#include <boost/fusion/adapted/struct.hpp>
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/array.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/array.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/array.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,10 +9,12 @@
 #ifndef BOOST_FUSION_ADAPTED_ARRAY_HPP
 #define BOOST_FUSION_ADAPTED_ARRAY_HPP
 
+//TODO adapt std::tuple, std::array
+
 #include <boost/fusion/support/ref.hpp>
 
-#include <boost/fusion/adapted/detail/array/array_iterator.hpp>
 #include <boost/fusion/adapted/detail/array/tag_of.hpp>
+#include <boost/fusion/adapted/detail/array/array_iterator.hpp>
 #include <boost/fusion/adapted/detail/array/is_view_impl.hpp>
 #include <boost/fusion/adapted/detail/array/is_sequence_impl.hpp>
 #include <boost/fusion/adapted/detail/array/category_of_impl.hpp>

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_tuple.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_tuple.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_tuple.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,15 +12,15 @@
 
 #include <boost/tuple/tuple.hpp>
 
-#include <boost/fusion/adapted/detail/boost_tuple/boost_tuple_iterator.hpp>
 #include <boost/fusion/adapted/detail/boost_tuple/tag_of.hpp>
 #include <boost/fusion/adapted/detail/boost_tuple/is_view_impl.hpp>
 #include <boost/fusion/adapted/detail/boost_tuple/is_sequence_impl.hpp>
 #include <boost/fusion/adapted/detail/boost_tuple/category_of_impl.hpp>
-#include <boost/fusion/adapted/detail/boost_tuple/begin_impl.hpp>
-#include <boost/fusion/adapted/detail/boost_tuple/end_impl.hpp>
 #include <boost/fusion/adapted/detail/boost_tuple/size_impl.hpp>
 #include <boost/fusion/adapted/detail/boost_tuple/at_impl.hpp>
 #include <boost/fusion/adapted/detail/boost_tuple/value_at_impl.hpp>
+#include <boost/fusion/adapted/detail/boost_tuple/boost_tuple_iterator.hpp>
+#include <boost/fusion/adapted/detail/boost_tuple/begin_impl.hpp>
+#include <boost/fusion/adapted/detail/boost_tuple/end_impl.hpp>
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/array_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/array_iterator.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/array_iterator.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -47,7 +47,7 @@
             typedef typename detail::remove_reference<ItRef>::type it;
 
             typedef typename
- detail::result_of_forward_as<
+ detail::forward_as<
                     typename it::array_type
                   , typename detail::remove_reference<
                         typename it::array_type

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/at_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,38 +9,31 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_ARRAY_AT_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_ARRAY_AT_IMPL_HPP
 
-namespace boost { namespace fusion {
-
- struct array_tag;
+namespace boost { namespace fusion { namespace extension
+{
+ template<typename Tag>
+ struct at_impl;
 
- namespace extension
+ template<>
+ struct at_impl<array_tag>
     {
- template<typename Tag>
- struct at_impl;
-
- template<>
- struct at_impl<array_tag>
+ template<typename SeqRef, typename N>
+ struct apply
         {
- template<typename SeqRef, typename N>
- struct apply
- {
- typedef typename
- detail::result_of_forward_as<
- SeqRef
- , typename detail::remove_reference<
- SeqRef
- >::type::value_type
- >::type
- type;
+ typedef typename
+ detail::forward_as<
+ SeqRef
+ , typename detail::remove_reference<SeqRef>::type::value_type
+ >::type
+ type;
 
- static type
- call(SeqRef seq)
- {
- return seq[N::value];
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return seq[N::value];
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/begin_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,31 +9,26 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_ARRAY_BEGIN_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_ARRAY_BEGIN_IMPL_HPP
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+ template<typename Tag>
+ struct begin_impl;
 
- struct array_tag;
-
- namespace extension
+ template <>
+ struct begin_impl<array_tag>
     {
- template<typename Tag>
- struct begin_impl;
-
- template <>
- struct begin_impl<array_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
+ typedef array_iterator<SeqRef, 0> type;
+
+ static type
+ call(SeqRef seq)
             {
- typedef array_iterator<SeqRef, 0> type;
-
- static type
- call(SeqRef seq)
- {
- return type(seq,0);
- }
- };
+ return type(seq,0);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/category_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/category_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/category_of_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,9 +9,8 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_ARRAY_CATEGORY_OF_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_ARRAY_CATEGORY_OF_IMPL_HPP
 
-namespace boost { namespace fusion {
-
- struct array_tag;
+namespace boost { namespace fusion
+{
     struct random_access_traversal_tag;
 
     namespace extension

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/end_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,38 +9,31 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_ARRAY_END_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_ARRAY_END_IMPL_HPP
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+ template <typename Tag>
+ struct end_impl;
 
- struct array_tag;
-
- namespace extension
+ template <>
+ struct end_impl<array_tag>
     {
- template <typename Tag>
- struct end_impl;
-
- template <>
- struct end_impl<array_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
+ typedef
+ array_iterator<
+ SeqRef
+ , detail::remove_reference<SeqRef>::type::static_size
+ >
+ type;
+
+ static type
+ call(SeqRef seq)
             {
- typedef
- array_iterator<
- SeqRef
- , detail::remove_reference<
- SeqRef
- >::type::static_size
- >
- type;
-
- static type
- call(SeqRef seq)
- {
- return type(seq,0);
- }
- };
+ return type(seq,0);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_sequence_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_sequence_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_sequence_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -1,34 +1,28 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
- Copyright (c) 2005-2006 Dan Marsden
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
-#ifndef BOOST_FUSION_ADAPTED_DETAIL_ARRAY_IS_SEQUENCE_IMPL_HPP
-#define BOOST_FUSION_ADAPTED_DETAIL_ARRAY_IS_SEQUENCE_IMPL_HPP
+#ifndef BOOST_FUSION_ADAPTED_DETAIL_BOOST_ARRAY_IS_SEQUENCE_IMPL_HPP
+#define BOOST_FUSION_ADAPTED_DETAIL_BOOST_ARRAY_IS_SEQUENCE_IMPL_HPP
 
 #include <boost/mpl/bool.hpp>
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+ template<typename Tag>
+ struct is_sequence_impl;
 
- struct array_tag;
-
- namespace extension
+ template<>
+ struct is_sequence_impl<array_tag>
     {
- template<typename Tag>
- struct is_sequence_impl;
-
- template<>
- struct is_sequence_impl<array_tag>
- {
- template<typename SeqRef>
- struct apply
- : mpl::true_
- {};
- };
- }
-}}
+ template<typename SeqRef>
+ struct apply
+ : mpl::true_
+ {};
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_view_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_view_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_view_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,24 +11,20 @@
 
 #include <boost/mpl/bool.hpp>
 
-namespace boost { namespace fusion
+//TODO doc!!!
+namespace boost { namespace fusion { namespace extension
 {
- struct array_tag;
+ template<typename Tag>
+ struct is_view_impl;
 
- namespace extension
+ template<>
+ struct is_view_impl<array_tag>
     {
- template<typename Tag>
- struct is_view_impl;
-
- template<>
- struct is_view_impl<array_tag>
- {
- template<typename SeqRef>
- struct apply
- : mpl::false_
- {};
- };
- }
-}}
+ template<typename SeqRef>
+ struct apply
+ : mpl::false_
+ {};
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/size_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/size_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/size_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,24 +9,19 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_ARRAY_SIZE_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_ARRAY_SIZE_IMPL_HPP
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+ template<typename Tag>
+ struct size_impl;
 
- struct array_tag;
-
- namespace extension
+ template<>
+ struct size_impl<array_tag>
     {
- template<typename Tag>
- struct size_impl;
-
- template<>
- struct size_impl<array_tag>
- {
- template<typename SeqRef>
- struct apply
- : mpl::int_<detail::remove_reference<SeqRef>::type::static_size>
- {};
- };
- }
-}}
+ template<typename SeqRef>
+ struct apply
+ : mpl::int_<detail::remove_reference<SeqRef>::type::static_size>
+ {};
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,25 +9,20 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_ARRAY_VALUE_AT_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_ARRAY_VALUE_AT_IMPL_HPP
 
-namespace boost { namespace fusion {
-
- struct array_tag;
+namespace boost { namespace fusion { namespace extension
+{
+ template<typename Tag>
+ struct value_at_impl;
 
- namespace extension
+ template <>
+ struct value_at_impl<array_tag>
     {
- template<typename Tag>
- struct value_at_impl;
-
- template <>
- struct value_at_impl<array_tag>
+ template <typename SeqRef, typename N>
+ struct apply
         {
- template <typename SeqRef, typename N>
- struct apply
- {
- typedef typename SeqRef::value_type type;
- };
+ typedef typename SeqRef::value_type type;
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/at_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,40 +8,35 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_AT_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_AT_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct boost_tuple_tag;
+ template<typename Tag>
+ struct at_impl;
 
- namespace extension
+ template <>
+ struct at_impl<boost_tuple_tag>
     {
- template<typename Tag>
- struct at_impl;
-
- template <>
- struct at_impl<boost_tuple_tag>
+ template <typename SeqRef, typename N>
+ struct apply
         {
- template <typename SeqRef, typename N>
- struct apply
- {
- typedef typename
- detail::result_of_forward_as<
- SeqRef
- , typename tuples::element<
- N::value
- , typename detail::identity<SeqRef>::type
- >::type
+ typedef typename
+ detail::forward_as<
+ SeqRef
+ , typename tuples::element<
+ N::value
+ , typename detail::identity<SeqRef>::type
>::type
- type;
-
- static type
- call(SeqRef seq)
- {
- return tuples::get<N::value>(
- BOOST_FUSION_FORWARD(SeqRef,seq));
- }
- };
+ >::type
+ type;
+
+ static type
+ call(SeqRef seq)
+ {
+ return tuples::get<N::value>(
+ BOOST_FUSION_FORWARD(SeqRef,seq));
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/begin_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,31 +8,26 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_BEGIN_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_BEGIN_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct boost_tuple_tag;
+ template<typename Tag>
+ struct begin_impl;
 
- namespace extension
+ template <>
+ struct begin_impl<boost_tuple_tag>
     {
- template<typename Tag>
- struct begin_impl;
-
- template <>
- struct begin_impl<boost_tuple_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
+ typedef boost_tuple_iterator<SeqRef> type;
+
+ static type
+ call(SeqRef seq)
             {
- typedef boost_tuple_iterator<SeqRef> type;
-
- static type
- call(SeqRef seq)
- {
- return type(seq,0);
- }
- };
+ return type(seq,0);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/boost_tuple_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/boost_tuple_iterator.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/boost_tuple_iterator.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -38,7 +38,7 @@
             it;
 
             typedef typename
- detail::result_of_forward_as<
+ detail::forward_as<
                     typename it::cons_type
                   , typename detail::remove_reference<
                         typename it::cons_type
@@ -62,7 +62,7 @@
 
             typedef
                 boost_tuple_iterator<
- typename detail::result_of_forward_as<
+ typename detail::forward_as<
                         typename it::cons_type,
                         typename detail::remove_reference<
                             typename it::cons_type

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/category_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/category_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/category_of_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,7 +10,6 @@
 
 namespace boost { namespace fusion
 {
- struct boost_tuple_tag;
     struct forward_traversal_tag;
 
     namespace extension

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/end_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,53 +11,48 @@
 #include <boost/mpl/bool.hpp>
 #include <boost/type_traits/is_convertible.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct boost_tuple_tag;
+ template <typename Tag>
+ struct end_impl;
 
- namespace extension
+ template <>
+ struct end_impl<boost_tuple_tag>
     {
- template <typename Tag>
- struct end_impl;
-
- template <>
- struct end_impl<boost_tuple_tag>
+ template <typename>
+ struct apply
         {
- template <typename>
- struct apply
+ typedef
+ boost_tuple_iterator<tuples::null_type const volatile&>
+ type;
+
+ //TODO volatile!
+ template<typename Seq>
+ static type
+ call(Seq const& seq, mpl::true_)
+ {
+ return type(seq,0);
+ }
+
+ template<typename Seq>
+ static type
+ call(Seq const& seq, mpl::false_)
+ {
+ return call(seq.get_tail());
+ }
+
+ template<typename Seq>
+ static type
+ call(Seq const& seq)
             {
- typedef
- boost_tuple_iterator<tuples::null_type const volatile&>
- type;
-
- //TODO volatile!
- template<typename Seq>
- static type
- call(Seq const& seq, mpl::true_)
- {
- return type(seq,0);
- }
-
- template<typename Seq>
- static type
- call(Seq const& seq, mpl::false_)
- {
- return call(seq.get_tail());
- }
-
- template<typename Seq>
- static type
- call(Seq const& seq)
- {
- return call(seq,
- typename is_convertible<
- Seq*
- , tuples::null_type const volatile*
- >::type());
- }
- };
+ return call(seq,
+ typename is_convertible<
+ Seq*
+ , tuples::null_type const volatile*
+ >::type());
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/is_sequence_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/is_sequence_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/is_sequence_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,24 +10,19 @@
 
 #include <boost/mpl/bool.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct boost_tuple_tag;
+ template<typename Tag>
+ struct is_sequence_impl;
 
- namespace extension
+ template<>
+ struct is_sequence_impl<boost_tuple_tag>
     {
- template<typename Tag>
- struct is_sequence_impl;
-
- template<>
- struct is_sequence_impl<boost_tuple_tag>
- {
- template<typename SeqRef>
- struct apply
- : mpl::true_
- {};
- };
- }
-}}
+ template<typename SeqRef>
+ struct apply
+ : mpl::true_
+ {};
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/is_view_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/is_view_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/is_view_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,24 +12,19 @@
 
 //TODO: implement through is_sequence
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct boost_tuple_tag;
+ template<typename Tag>
+ struct is_view_impl;
 
- namespace extension
+ template<>
+ struct is_view_impl<boost_tuple_tag>
     {
- template<typename Tag>
- struct is_view_impl;
-
- template<>
- struct is_view_impl<boost_tuple_tag>
- {
- template<typename SeqRef>
- struct apply
- : mpl::false_
- {};
- };
- }
-}}
+ template<typename SeqRef>
+ struct apply
+ : mpl::false_
+ {};
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/size_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/size_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/size_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,28 +10,23 @@
 
 #include <boost/mpl/int.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct boost_tuple_tag;
+ template<typename Tag>
+ struct size_impl;
 
- namespace extension
+ template <>
+ struct size_impl<boost_tuple_tag>
     {
- template<typename Tag>
- struct size_impl;
-
- template <>
- struct size_impl<boost_tuple_tag>
- {
- template <typename SeqRef>
- struct apply
- : mpl::int_<
- tuples::length<
- typename detail::identity<SeqRef>::type
- >::value
- >
- {};
- };
- }
-}}
+ template <typename SeqRef>
+ struct apply
+ : mpl::int_<
+ tuples::length<
+ typename detail::identity<SeqRef>::type
+ >::value
+ >
+ {};
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/value_at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/value_at_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,27 +8,22 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_VALUE_AT_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_VALUE_AT_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct boost_tuple_tag;
+ template<typename Tag>
+ struct value_at_impl;
 
- namespace extension
+ template <>
+ struct value_at_impl<boost_tuple_tag>
     {
- template<typename Tag>
- struct value_at_impl;
-
- template <>
- struct value_at_impl<boost_tuple_tag>
- {
- template <typename SeqRef, typename N>
- struct apply
- : tuples::element<
- N::value
- , typename detail::identity<SeqRef>::type
- >
- {};
- };
- }
-}}
+ template <typename SeqRef, typename N>
+ struct apply
+ : tuples::element<
+ N::value
+ , typename detail::identity<SeqRef>::type
+ >
+ {};
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/advance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/advance_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/advance_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,38 +10,33 @@
 
 #include <boost/mpl/advance.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct mpl_iterator_tag;
+ template <typename Tag>
+ struct advance_impl;
 
- namespace extension
+ template <>
+ struct advance_impl<mpl_iterator_tag>
     {
- template <typename Tag>
- struct advance_impl;
-
- template <>
- struct advance_impl<mpl_iterator_tag>
+ template <typename ItRef, typename N>
+ struct apply
         {
- template <typename ItRef, typename N>
- struct apply
- {
- typedef
- mpl_iterator<
- typename mpl::advance<
- typename detail::identity<ItRef>::type
- , N
- >::type
- >
- type;
+ typedef
+ mpl_iterator<
+ typename mpl::advance<
+ typename detail::identity<ItRef>::type
+ , N
+ >::type
+ >
+ type;
 
- static type
- call(ItRef)
- {
- return type();
- }
- };
+ static type
+ call(ItRef)
+ {
+ return type();
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,33 +11,28 @@
 
 #include <boost/mpl/at.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct mpl_sequence_tag;
+ template<typename Tag>
+ struct at_impl;
 
- namespace extension
+ template <>
+ struct at_impl<mpl_sequence_tag>
     {
- template<typename Tag>
- struct at_impl;
-
- template <>
- struct at_impl<mpl_sequence_tag>
+ template <typename SeqRef, typename N>
+ struct apply
         {
- template <typename SeqRef, typename N>
- struct apply
- {
- typedef typename
- mpl::at<typename detail::identity<SeqRef>::type, N>::type
- type;
+ typedef typename
+ mpl::at<typename detail::identity<SeqRef>::type, N>::type
+ type;
 
- static type
- call(SeqRef)
- {
- return type();
- }
- };
+ static type
+ call(SeqRef)
+ {
+ return type();
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/begin_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,37 +11,32 @@
 
 #include <boost/mpl/begin.hpp>
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+ template <typename Tag>
+ struct begin_impl;
 
- struct mpl_sequence_tag;
-
- namespace extension
+ template <>
+ struct begin_impl<mpl_sequence_tag>
     {
- template <typename Tag>
- struct begin_impl;
-
- template <>
- struct begin_impl<mpl_sequence_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef
- mpl_iterator<
- typename mpl::begin<
- typename detail::identity<SeqRef>::type
- >::type
- >
- type;
+ typedef
+ mpl_iterator<
+ typename mpl::begin<
+ typename detail::identity<SeqRef>::type
+ >::type
+ >
+ type;
 
- static type
- call(SeqRef)
- {
- return type();
- }
- };
+ static type
+ call(SeqRef)
+ {
+ return type();
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/category_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/category_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/category_of_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -15,32 +15,27 @@
 #include <boost/mpl/begin.hpp>
 #include <boost/mpl/is_sequence.hpp>
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+ template<typename Tag>
+ struct category_of_impl;
 
- struct mpl_sequence_tag;
-
- namespace extension
+ template<>
+ struct category_of_impl<mpl_sequence_tag>
     {
- template<typename Tag>
- struct category_of_impl;
-
- template<>
- struct category_of_impl<mpl_sequence_tag>
+ template<typename SeqRef>
+ struct apply
         {
- template<typename SeqRef>
- struct apply
- {
- //TODO get_category?
- typedef typename
- detail::mpl_iterator_category<
- typename mpl::begin<
- typename detail::identity<SeqRef>::type
- >::type::category
- >::type
- type;
- };
+ //TODO get_category?
+ typedef typename
+ detail::mpl_iterator_category<
+ typename mpl::begin<
+ typename detail::identity<SeqRef>::type
+ >::type::category
+ >::type
+ type;
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/deref_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,33 +10,28 @@
 
 #include <boost/mpl/deref.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct mpl_iterator_tag;
+ template <typename Tag>
+ struct deref_impl;
 
- namespace extension
+ template <>
+ struct deref_impl<mpl_iterator_tag>
     {
- template <typename Tag>
- struct deref_impl;
-
- template <>
- struct deref_impl<mpl_iterator_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef typename
- mpl::deref<typename detail::identity<ItRef>::type>::type
- type;
+ typedef typename
+ mpl::deref<typename detail::identity<ItRef>::type>::type
+ type;
 
- static type
- call(ItRef)
- {
- return type();
- }
- };
+ static type
+ call(ItRef)
+ {
+ return type();
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/distance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/distance_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/distance_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,30 +12,25 @@
 
 #include <boost/mpl/distance.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct mpl_iterator_tag;
+ template <typename Tag>
+ struct distance_to_impl;
 
- namespace extension
+ template <>
+ struct distance_to_impl<mpl_iterator_tag>
     {
- template <typename Tag>
- struct distance_to_impl;
-
- template <>
- struct distance_to_impl<mpl_iterator_tag>
+ template <typename It1Ref, typename It2Ref>
+ struct apply
+ : mpl::distance<
+ typename detail::identity<It1Ref>::type
+ , typename detail::get_mpl_it<
+ typename detail::identity<It2Ref>::type
+ >::type
+ >
         {
- template <typename It1Ref, typename It2Ref>
- struct apply
- : mpl::distance<
- typename detail::identity<It1Ref>::type
- , typename detail::get_mpl_it<
- typename detail::identity<It2Ref>::type
- >::type
- >
- {
- };
         };
- }
-}}
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,24 +11,19 @@
 
 #include <boost/mpl/empty.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct mpl_sequence_tag;
+ template <typename Tag>
+ struct empty_impl;
 
- namespace extension
+ template <>
+ struct empty_impl<mpl_sequence_tag>
     {
- template <typename Tag>
- struct empty_impl;
-
- template <>
- struct empty_impl<mpl_sequence_tag>
- {
- template <typename SeqRef>
- struct apply
- : mpl::empty<typename detail::identity<SeqRef>::type>
- {};
- };
- }
-}}
+ template <typename SeqRef>
+ struct apply
+ : mpl::empty<typename detail::identity<SeqRef>::type>
+ {};
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/end_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,37 +11,32 @@
 
 #include <boost/mpl/end.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion{ namespace extension
 {
- struct mpl_sequence_tag;
+ template <typename Tag>
+ struct end_impl;
 
- namespace extension
+ template <>
+ struct end_impl<mpl_sequence_tag>
     {
- template <typename Tag>
- struct end_impl;
-
- template <>
- struct end_impl<mpl_sequence_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef
- mpl_iterator<
- typename mpl::end<
- typename detail::identity<SeqRef>::type
- >::type
- >
- type;
+ typedef
+ mpl_iterator<
+ typename mpl::end<
+ typename detail::identity<SeqRef>::type
+ >::type
+ >
+ type;
 
- static type
- call(SeqRef)
- {
- return type();
- }
- };
+ static type
+ call(SeqRef)
+ {
+ return type();
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/equal_to_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/equal_to_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,30 +12,25 @@
 
 #include <boost/type_traits/is_same.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct mpl_iterator_tag;
+ template <typename Tag>
+ struct equal_to_impl;
 
- namespace extension
+ template <>
+ struct equal_to_impl<mpl_iterator_tag>
     {
- template <typename Tag>
- struct equal_to_impl;
-
- template <>
- struct equal_to_impl<mpl_iterator_tag>
+ template <typename It1Ref, typename It2Ref>
+ struct apply
+ : is_same<
+ typename detail::identity<It1Ref>::type
+ , typename detail::get_mpl_it<
+ typename detail::identity<It2Ref>::type
+ >::type
+ >
         {
- template <typename It1Ref, typename It2Ref>
- struct apply
- : is_same<
- typename detail::identity<It1Ref>::type
- , typename detail::get_mpl_it<
- typename detail::identity<It2Ref>::type
- >::type
- >
- {
- };
         };
- }
-}}
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,24 +11,19 @@
 
 #include <boost/mpl/has_key.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct mpl_sequence_tag;
+ template <typename Tag>
+ struct has_key_impl;
 
- namespace extension
+ template <>
+ struct has_key_impl<mpl_sequence_tag>
     {
- template <typename Tag>
- struct has_key_impl;
-
- template <>
- struct has_key_impl<mpl_sequence_tag>
- {
- template <typename SeqRef, typename Key>
- struct apply
- : mpl::has_key<typename detail::identity<SeqRef>::type, Key>
- {};
- };
- }
-}}
+ template <typename SeqRef, typename Key>
+ struct apply
+ : mpl::has_key<typename detail::identity<SeqRef>::type, Key>
+ {};
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_sequence_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_sequence_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_sequence_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,24 +11,19 @@
 
 #include <boost/mpl/bool.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct mpl_sequence_tag;
+ template<typename Tag>
+ struct is_sequence_impl;
 
- namespace extension
+ template<>
+ struct is_sequence_impl<mpl_sequence_tag>
     {
- template<typename Tag>
- struct is_sequence_impl;
-
- template<>
- struct is_sequence_impl<mpl_sequence_tag>
- {
- template<typename SeqRef>
- struct apply
- : mpl::true_
- {};
- };
- }
-}}
+ template<typename SeqRef>
+ struct apply
+ : mpl::true_
+ {};
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_view_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_view_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_view_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,24 +11,19 @@
 
 #include <boost/mpl/bool.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct mpl_sequence_tag;
+ template<typename Tag>
+ struct is_view_impl;
 
- namespace extension
+ template<>
+ struct is_view_impl<mpl_sequence_tag>
     {
- template<typename Tag>
- struct is_view_impl;
-
- template<>
- struct is_view_impl<mpl_sequence_tag>
- {
- template<typename SeqRef>
- struct apply
- : mpl::true_
- {};
- };
- }
-}}
+ template<typename SeqRef>
+ struct apply
+ : mpl::true_
+ {};
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/mpl_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/mpl_iterator.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/mpl_iterator.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -21,6 +21,9 @@
 
 namespace boost { namespace fusion
 {
+ struct mpl_iterator_tag;
+ struct mpl_sequence_tag;
+
     template <typename It>
     struct mpl_iterator
       : iterator_facade<

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/next_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/next_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,37 +10,32 @@
 
 #include <boost/mpl/next.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct mpl_iterator_tag;
+ template <typename Tag>
+ struct next_impl;
 
- namespace extension
+ template <>
+ struct next_impl<mpl_iterator_tag>
     {
- template <typename Tag>
- struct next_impl;
-
- template <>
- struct next_impl<mpl_iterator_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef
- mpl_iterator<
- typename mpl::next<
- typename detail::identity<ItRef>::type
- >::type
- >
- type;
+ typedef
+ mpl_iterator<
+ typename mpl::next<
+ typename detail::identity<ItRef>::type
+ >::type
+ >
+ type;
 
- static type
- call(ItRef)
- {
- return type();
- }
- };
+ static type
+ call(ItRef)
+ {
+ return type();
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/prior_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/prior_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/prior_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,37 +10,32 @@
 
 #include <boost/mpl/prior.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct mpl_iterator_tag;
+ template <typename Tag>
+ struct prior_impl;
 
- namespace extension
+ template <>
+ struct prior_impl<mpl_iterator_tag>
     {
- template <typename Tag>
- struct prior_impl;
-
- template <>
- struct prior_impl<mpl_iterator_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef
- mpl_iterator<
- typename mpl::prior<
- typename detail::identity<ItRef>::type
- >::type
- >
- type;
+ typedef
+ mpl_iterator<
+ typename mpl::prior<
+ typename detail::identity<ItRef>::type
+ >::type
+ >
+ type;
 
- static type
- call(ItRef)
- {
- return type();
- }
- };
+ static type
+ call(ItRef)
+ {
+ return type();
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,24 +11,19 @@
 
 #include <boost/mpl/size.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct mpl_sequence_tag;
+ template<typename Tag>
+ struct size_impl;
 
- namespace extension
+ template <>
+ struct size_impl<mpl_sequence_tag>
     {
- template<typename Tag>
- struct size_impl;
-
- template <>
- struct size_impl<mpl_sequence_tag>
- {
- template <typename SeqRef>
- struct apply
- : mpl::size<typename detail::identity<SeqRef>::type>
- {};
- };
- }
-}}
+ template <typename SeqRef>
+ struct apply
+ : mpl::size<typename detail::identity<SeqRef>::type>
+ {};
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,24 +11,19 @@
 
 #include <boost/mpl/at.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct mpl_sequence_tag;
+ template <typename Tag>
+ struct value_at_impl;
 
- namespace extension
+ template <>
+ struct value_at_impl<mpl_sequence_tag>
     {
- template <typename Tag>
- struct value_at_impl;
-
- template <>
- struct value_at_impl<mpl_sequence_tag>
- {
- template <typename SeqRef, typename N>
- struct apply
- : mpl::at<typename detail::identity<SeqRef>::type, N>
- {};
- };
- }
-}}
+ template <typename SeqRef, typename N>
+ struct apply
+ : mpl::at<typename detail::identity<SeqRef>::type, N>
+ {};
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_of_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,24 +10,19 @@
 
 #include <boost/mpl/deref.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct mpl_iterator_tag;
+ template <typename Tag>
+ struct value_of_impl;
 
- namespace extension
+ template <>
+ struct value_of_impl<mpl_iterator_tag>
     {
- template <typename Tag>
- struct value_of_impl;
-
- template <>
- struct value_of_impl<mpl_iterator_tag>
- {
- template <typename ItRef>
- struct apply
- : mpl::deref<typename detail::identity<ItRef>::type>
- {};
- };
- }
-}}
+ template <typename ItRef>
+ struct apply
+ : mpl::deref<typename detail::identity<ItRef>::type>
+ {};
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_assoc_struct.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_assoc_struct.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_assoc_struct.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -49,11 +49,8 @@
         typedef BOOST_PP_TUPLE_ELEM(3, 0, xy) type; \
                                                                                 \
         template<typename Seq> \
- static typename \
- detail::result_of_forward_as< \
- BOOST_FUSION_R_ELSE_LREF(Seq),type \
- >::type \
- call(BOOST_FUSION_R_ELSE_LREF(Seq) seq) \
+ static typename detail::forward_as<Seq&,type>::type \
+ call(Seq& seq) \
         { \
             return seq.BOOST_PP_TUPLE_ELEM(3, 1, xy); \
         }; \

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_base.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_base.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_base.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -44,11 +44,8 @@
         typedef BOOST_PP_TUPLE_ELEM(max_size, 0, xy) type; \
                                                                                 \
         template<typename Seq> \
- static typename \
- detail::result_of_forward_as< \
- BOOST_FUSION_R_ELSE_LREF(Seq),type \
- >::type \
- call(BOOST_FUSION_R_ELSE_LREF(Seq) seq) \
+ static typename detail::forward_as<Seq&,type>::type \
+ call(Seq& seq) \
         { \
             return seq.BOOST_PP_TUPLE_ELEM(max_size, 1, xy); \
         } \

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -13,46 +13,41 @@
 
 #include <boost/mpl/int.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct struct_tag;
+ template<typename Tag>
+ struct at_impl;
 
- namespace extension
+ template <>
+ struct at_impl<struct_tag>
     {
- template<typename Tag>
- struct at_impl;
-
- template <>
- struct at_impl<struct_tag>
+ template <typename SeqRef, typename N>
+ struct apply
         {
- template <typename SeqRef, typename N>
- struct apply
- {
- //BOOST_FUSION_INDEX_CHECK(n_value,
- // struct_size<Sequence>::value);
+ //BOOST_FUSION_INDEX_CHECK(n_value,
+ // struct_size<Sequence>::value);
 
- typedef typename
- detail::result_of_forward_as<
- SeqRef
- , typename struct_member<
- typename detail::identity<SeqRef>::type
- , N::value
- >::type
+ typedef typename
+ detail::forward_as<
+ SeqRef
+ , typename struct_member<
+ typename detail::identity<SeqRef>::type
+ , N::value
>::type
- type;
+ >::type
+ type;
 
- static type
- call(SeqRef seq)
- {
- return
- struct_member<
- typename detail::identity<SeqRef>::type
- , N::value
- >::call(seq);
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return
+ struct_member<
+ typename detail::identity<SeqRef>::type
+ , N::value
+ >::call(seq);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_key_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_key_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,36 +9,33 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_AT_KEY_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_AT_KEY_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct struct_tag;
+ template <typename Tag>
+ struct at_key_impl;
 
- namespace extension
+ template <>
+ struct at_key_impl<struct_tag>
     {
- template <typename Tag>
- struct at_key_impl;
-
- template <>
- struct at_key_impl<struct_tag>
+ template <typename SeqRef, typename Key>
+ struct apply
         {
- template <typename SeqRef, typename Key>
- struct apply
- {
- typedef typename detail::identity<SeqRef>::type seq;
- typedef typename struct_assoc_member<seq, Key>::type element;
+ typedef typename detail::identity<SeqRef>::type seq;
 
- typedef typename
- detail::result_of_forward_as<SeqRef,element>::type
- type;
+ typedef typename
+ detail::forward_as<
+ SeqRef
+ , typename struct_assoc_member<seq, Key>::type
+ >::type
+ type;
 
- static type
- call(SeqRef seq_)
- {
- return struct_assoc_member<seq, Key>::call(seq_);
- }
- };
+ static type
+ call(SeqRef seq_)
+ {
+ return struct_assoc_member<seq, Key>::call(seq_);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/begin_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,31 +9,26 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_BEGIN_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_BEGIN_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct struct_tag;
+ template<typename Tag>
+ struct begin_impl;
 
- namespace extension
+ template <>
+ struct begin_impl<struct_tag>
     {
- template<typename Tag>
- struct begin_impl;
-
- template <>
- struct begin_impl<struct_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef struct_iterator<SeqRef, 0> type;
+ typedef struct_iterator<SeqRef, 0> type;
 
- static type
- call(SeqRef seq)
- {
- return type(seq,0);
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return type(seq,0);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/category_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/category_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/category_of_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -13,7 +13,6 @@
 
 namespace boost { namespace fusion
 {
- struct struct_tag;
     struct random_access_traversal_tag;
 
     namespace extension

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/end_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,38 +9,33 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_END_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_END_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct struct_tag;
+ template <typename Tag>
+ struct end_impl;
 
- namespace extension
+ template <>
+ struct end_impl<struct_tag>
     {
- template <typename Tag>
- struct end_impl;
-
- template <>
- struct end_impl<struct_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef
- struct_iterator<
- SeqRef
- , struct_size<
- typename detail::identity<SeqRef>::type
- >::value
- >
- type;
+ typedef
+ struct_iterator<
+ SeqRef
+ , struct_size<
+ typename detail::identity<SeqRef>::type
+ >::value
+ >
+ type;
 
- static type
- call(SeqRef seq)
- {
- return type(seq,0);
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return type(seq,0);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,21 +11,26 @@
 
 #include <boost/type_traits/add_const.hpp>
 
-namespace boost { namespace fusion { namespace extension
+namespace boost { namespace fusion
 {
- struct no_such_member;
+ struct struct_tag;
 
- template<typename Seq, int N>
- struct struct_member;
+ namespace extension
+ {
+ struct no_such_member;
 
- template<typename Seq>
- struct struct_size;
+ template<typename Seq, int N>
+ struct struct_member;
 
- template<typename Seq, typename Key>
- struct struct_assoc_member
- {
- typedef no_such_member type;
- };
-}}}
+ template<typename Seq>
+ struct struct_size;
+
+ template<typename Seq, typename Key>
+ struct struct_assoc_member
+ {
+ typedef no_such_member type;
+ };
+ }
+}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/has_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/has_key_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/has_key_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,37 +9,32 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_HAS_KEY_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_HAS_KEY_IMPL_HPP
 
-#include <boost/type_traits/is_same.hpp>
 #include <boost/mpl/not.hpp>
+#include <boost/type_traits/is_same.hpp>
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+ struct no_such_member;
 
- struct struct_tag;
+ template<typename Tag>
+ struct has_key_impl;
 
- namespace extension
+ template<>
+ struct has_key_impl<struct_tag>
     {
- struct no_such_member;
-
- template<typename Tag>
- struct has_key_impl;
-
- template<>
- struct has_key_impl<struct_tag>
- {
- template<typename SeqRef, typename Key>
- struct apply
- : mpl::not_<
- is_same<
- no_such_member
- , typename struct_assoc_member<
- typename detail::identity<SeqRef>::type
- , Key
- >::type
- >
+ template<typename SeqRef, typename Key>
+ struct apply
+ : mpl::not_<
+ is_same<
+ no_such_member
+ , typename struct_assoc_member<
+ typename detail::identity<SeqRef>::type
+ , Key
+ >::type
>
- {};
- };
- }
-}}
+ >
+ {};
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,24 +11,19 @@
 
 #include <boost/mpl/bool.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct struct_tag;
+ template<typename Tag>
+ struct is_sequence_impl;
 
- namespace extension
+ template<>
+ struct is_sequence_impl<struct_tag>
     {
- template<typename Tag>
- struct is_sequence_impl;
-
- template<>
- struct is_sequence_impl<struct_tag>
- {
- template<typename SeqRef>
- struct apply
- : mpl::true_
- {};
- };
- }
-}}
+ template<typename SeqRef>
+ struct apply
+ : mpl::true_
+ {};
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,24 +11,19 @@
 
 #include <boost/mpl/bool.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct struct_tag;
+ template<typename Tag>
+ struct is_view_impl;
 
- namespace extension
+ template<>
+ struct is_view_impl<struct_tag>
     {
- template<typename Tag>
- struct is_view_impl;
-
- template<>
- struct is_view_impl<struct_tag>
- {
- template<typename SeqRef>
- struct apply
- : mpl::false_
- {};
- };
- }
-}}
+ template<typename SeqRef>
+ struct apply
+ : mpl::false_
+ {};
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,30 +11,19 @@
 
 #include <boost/mpl/int.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- namespace extension
- {
- template <typename Struct>
- struct struct_size;
- }
-
- struct struct_tag;
+ template<typename Tag>
+ struct size_impl;
 
- namespace extension
+ template <>
+ struct size_impl<struct_tag>
     {
- template<typename Tag>
- struct size_impl;
-
- template <>
- struct size_impl<struct_tag>
- {
- template <typename SeqRef>
- struct apply
- : struct_size<typename detail::identity<SeqRef>::type>
- {};
- };
- }
-}}
+ template <typename SeqRef>
+ struct apply
+ : struct_size<typename detail::identity<SeqRef>::type>
+ {};
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/struct_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/struct_iterator.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/struct_iterator.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -41,7 +41,7 @@
             typedef typename detail::identity<SeqRef>::type identity_struct;
 
             typedef typename
- detail::result_of_forward_as<
+ detail::forward_as<
                     SeqRef
                   , typename extension::struct_member<identity_struct, N>::type
>::type

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,32 +11,21 @@
 
 #include <boost/fusion/support/assert.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct struct_tag;
+ template<typename Tag>
+ struct value_at_impl;
 
- namespace extension
+ template <>
+ struct value_at_impl<struct_tag>
     {
- template<typename SeqRef>
- struct value_at_impl;
-
- template <typename Struct, int N>
- struct struct_member;
-
- template <typename Struct>
- struct struct_size;
-
- template <>
- struct value_at_impl<struct_tag>
+ template <typename SeqRef, typename N>
+ struct apply
+ : struct_member<typename detail::identity<SeqRef>::type, N::value>
         {
- template <typename SeqRef, typename N>
- struct apply
- : struct_member<typename detail::identity<SeqRef>::type, N::value>
- {
- //BOOST_FUSION_INDEX_CHECK(N::value, struct_size<Sequence>::value);
- };
+ //BOOST_FUSION_INDEX_CHECK(N::value, struct_size<Sequence>::value);
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_at_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_at_key_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_at_key_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,27 +11,22 @@
 
 #include <boost/mpl/if.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct struct_tag;
+ template<typename SeqRef>
+ struct value_at_key_impl;
 
- namespace extension
+ template <>
+ struct value_at_key_impl<struct_tag>
     {
- template<typename SeqRef>
- struct value_at_key_impl;
-
- template <>
- struct value_at_key_impl<struct_tag>
- {
- template <typename SeqRef, typename Key>
- struct apply
- : struct_assoc_member<
- typename detail::identity<SeqRef>::type
- , Key
- >
- {};
- };
- }
-}}
+ template <typename SeqRef, typename Key>
+ struct apply
+ : struct_assoc_member<
+ typename detail::identity<SeqRef>::type
+ , Key
+ >
+ {};
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/mpl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/mpl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/mpl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -22,8 +22,8 @@
 #include <boost/fusion/adapted/detail/mpl/end_impl.hpp>
 #include <boost/fusion/adapted/detail/mpl/equal_to_impl.hpp>
 #include <boost/fusion/adapted/detail/mpl/has_key_impl.hpp>
-#include <boost/fusion/adapted/detail/mpl/is_sequence_impl.hpp>
 #include <boost/fusion/adapted/detail/mpl/is_view_impl.hpp>
+#include <boost/fusion/adapted/detail/mpl/is_sequence_impl.hpp>
 #include <boost/fusion/adapted/detail/mpl/next_impl.hpp>
 #include <boost/fusion/adapted/detail/mpl/prior_impl.hpp>
 #include <boost/fusion/adapted/detail/mpl/size_impl.hpp>

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -1,15 +1,13 @@
-/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
- Copyright (c) 2005-2006 Dan Marsden
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
+// Copyright Christopher Schmidt 2009.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
 
 #ifndef BOOST_FUSION_ADAPTED_STD_PAIR_HPP
 #define BOOST_FUSION_ADAPTED_STD_PAIR_HPP
 
 #include <boost/fusion/adapted/struct.hpp>
+#include <boost/fusion/support/ref.hpp>
 
 #include <boost/mpl/int.hpp>
 #include <boost/config/no_tr1/utility.hpp>
@@ -29,49 +27,38 @@
 
 #undef BOOST_FUSION_STD_PAIR_TAG_OF_SPECIALIZATION
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- namespace extension
+ template <typename T1, typename T2>
+ struct struct_member<std::pair<T1, T2>, 0>
     {
- template <typename T1, typename T2>
- struct struct_member<std::pair<T1, T2>, 0>
+ typedef T1 type;
+
+ template<typename Pair>
+ static typename detail::forward_as<Pair&, type>::type
+ call(Pair& pair)
         {
- typedef T1 type;
+ return pair.first;
+ }
+ };
 
- template<typename Pair>
- static typename
- detail::result_of_forward_as<
- BOOST_FUSION_R_ELSE_LREF(Pair)
- , type
- >::type
- call(BOOST_FUSION_R_ELSE_LREF(Pair) pair)
- {
- return pair.first;
- }
- };
+ template <typename T1, typename T2>
+ struct struct_member<std::pair<T1, T2>, 1>
+ {
+ typedef T2 type;
 
- template <typename T1, typename T2>
- struct struct_member<std::pair<T1, T2>, 1>
+ template<typename Pair>
+ static typename detail::forward_as<Pair&, type>::type
+ call(Pair& pair)
         {
- typedef T2 type;
+ return pair.second;
+ }
+ };
 
- template<typename Pair>
- static typename
- detail::result_of_forward_as<
- BOOST_FUSION_R_ELSE_LREF(Pair)
- , type
- >::type
- call(BOOST_FUSION_R_ELSE_LREF(Pair) pair)
- {
- return pair.second;
- }
- };
-
- template <typename T1, typename T2>
- struct struct_size<std::pair<T1, T2> >
- : mpl::int_<2>
- {};
- }
-}}
+ template <typename T1, typename T2>
+ struct struct_size<std::pair<T1, T2> >
+ : mpl::int_<2>
+ {};
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/struct.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/struct.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/struct.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -15,18 +15,18 @@
 #include <boost/fusion/adapted/detail/struct/adapt_base.hpp>
 #include <boost/fusion/adapted/detail/struct/adapt_struct.hpp>
 #include <boost/fusion/adapted/detail/struct/adapt_assoc_struct.hpp>
-#include <boost/fusion/adapted/detail/struct/struct_iterator.hpp>
 
 #include <boost/fusion/adapted/detail/struct/at_impl.hpp>
 #include <boost/fusion/adapted/detail/struct/at_key_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/begin_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/category_of_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/end_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/has_key_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/is_sequence_impl.hpp>
 #include <boost/fusion/adapted/detail/struct/is_view_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/size_impl.hpp>
+#include <boost/fusion/adapted/detail/struct/is_sequence_impl.hpp>
 #include <boost/fusion/adapted/detail/struct/value_at_impl.hpp>
 #include <boost/fusion/adapted/detail/struct/value_at_key_impl.hpp>
+#include <boost/fusion/adapted/detail/struct/category_of_impl.hpp>
+#include <boost/fusion/adapted/detail/struct/has_key_impl.hpp>
+#include <boost/fusion/adapted/detail/struct/size_impl.hpp>
+#include <boost/fusion/adapted/detail/struct/struct_iterator.hpp>
+#include <boost/fusion/adapted/detail/struct/begin_impl.hpp>
+#include <boost/fusion/adapted/detail/struct/end_impl.hpp>
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_assoc_struct.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_assoc_struct.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_assoc_struct.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -6,6 +6,8 @@
 #ifndef BOOST_FUSION_ADAPTED_STRUCT_ADAPT_ASSOC_STRUCT_HPP
 #define BOOST_FUSION_ADAPTED_STRUCT_ADAPT_ASSOC_STRUCT_HPP
 
+//TODO remove this header?
+
 #include <boost/fusion/adapted/struct.hpp>
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_struct.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_struct.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_struct.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -6,6 +6,8 @@
 #ifndef BOOST_FUSION_ADAPTED_STRUCT_ADAPT_STRUCT_HPP
 #define BOOST_FUSION_ADAPTED_STRUCT_ADAPT_STRUCT_HPP
 
+//TODO remove this header?
+
 #include <boost/fusion/adapted/struct.hpp>
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,8 +9,6 @@
 #define BOOST_FUSION_CONTAINER_LIST_HPP
 
 #include <boost/fusion/container/list/cons.hpp>
-#include <boost/fusion/container/list/cons_iterator.hpp>
-#include <boost/fusion/container/list/limits.hpp>
 #include <boost/fusion/container/list/list.hpp>
 #include <boost/fusion/container/list/convert.hpp>
 

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -18,18 +18,24 @@
 #include <boost/fusion/support/assign_tags.hpp>
 #include <boost/fusion/support/sequence_assign.hpp>
 
-#include <boost/fusion/container/list/cons_iterator.hpp>
-#include <boost/fusion/container/list/detail/cons/begin_impl.hpp>
-#include <boost/fusion/container/list/detail/cons/end_impl.hpp>
-#include <boost/fusion/container/list/detail/cons/at_impl.hpp>
-#include <boost/fusion/container/list/detail/cons/value_at_impl.hpp>
-#include <boost/fusion/container/list/detail/cons/empty_impl.hpp>
-
 #include <boost/utility/enable_if.hpp>
 #include <boost/mpl/int.hpp>
 #include <boost/mpl/bool.hpp>
 #include <boost/mpl/or.hpp>
 
+#include <boost/fusion/container/list/detail/cons/cons_fwd.hpp>
+#include <boost/fusion/container/list/detail/cons/at_impl.hpp>
+#include <boost/fusion/container/list/detail/cons/value_at_impl.hpp>
+#include <boost/fusion/container/list/detail/cons/empty_impl.hpp>
+
+#include <boost/fusion/container/list/detail/cons/cons_iterator.hpp>
+#include <boost/fusion/container/list/detail/cons/begin_impl.hpp>
+#include <boost/fusion/container/list/detail/cons/end_impl.hpp>
+#include <boost/fusion/container/list/detail/cons/deref_impl.hpp>
+#include <boost/fusion/container/list/detail/cons/next_impl.hpp>
+#include <boost/fusion/container/list/detail/cons/value_of_impl.hpp>
+#include <boost/fusion/container/list/detail/cons/equal_to_impl.hpp>
+
 namespace boost { namespace fusion
 {
     struct void_;

Deleted: sandbox/SOC/2009/fusion/boost/fusion/container/list/cons_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/cons_iterator.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
+++ (empty file)
@@ -1,85 +0,0 @@
-/*=============================================================================
- Copyright (c) 2005 Joel de Guzman
- Copyright (c) 2005 Eric Niebler
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_CONTAINER_LIST_CONS_ITERATOR_HPP
-#define BOOST_FUSION_CONTAINER_LIST_CONS_ITERATOR_HPP
-
-#include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/container/list/list_fwd.hpp>
-
-#include <boost/fusion/container/list/detail/cons/deref_impl.hpp>
-#include <boost/fusion/container/list/detail/cons/next_impl.hpp>
-#include <boost/fusion/container/list/detail/cons/value_of_impl.hpp>
-#include <boost/fusion/container/list/detail/cons/equal_to_impl.hpp>
-
-namespace boost { namespace fusion
-{
- struct nil;
- struct cons_iterator_tag;
- struct forward_traversal_tag;
-
- template <typename Cons = nil>
- struct cons_iterator
- : iterator_base<cons_iterator<Cons> >
- {
- typedef cons_iterator_tag fusion_tag;
- typedef forward_traversal_tag category;
- typedef Cons cons_type;
-
- template<typename OtherIt>
- cons_iterator(OtherIt const& it)
- : cons(it.cons)
- {}
-
- cons_iterator(cons_type cons, int)
- : cons(&cons)
- {}
-
- template<typename OtherIt>
- cons_iterator&
- operator=(OtherIt const& other_it)
- {
- cons=other_it.cons;
- return *this;
- }
-
- typename detail::remove_reference<cons_type>::type* cons;
- };
-
- struct nil_iterator
- : iterator_base<nil_iterator>
- {
- typedef forward_traversal_tag category;
- typedef cons_iterator_tag fusion_tag;
- typedef nil cons_type;
-
- nil_iterator()
- {}
-
- nil_iterator(nil const&,int)
- {}
- };
-
-#define NIL_ITERATOR(COMBINATION,_)\
- template <>\
- struct cons_iterator<nil COMBINATION>\
- : nil_iterator\
- {\
- cons_iterator()\
- {}\
- \
- explicit cons_iterator(nil COMBINATION, int)\
- {}\
- };
-
- BOOST_FUSION_ALL_CV_REF_COMBINATIONS(NIL_ITERATOR,_)
-
-#undef NIL_ITERATOR
-}}
-
-#endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,9 +9,10 @@
 #define BOOST_FUSION_CONTAINER_LIST_CONVERT_HPP
 
 #include <boost/fusion/container/list/list.hpp>
-#include <boost/fusion/container/list/detail/list/convert_impl.hpp>
 #include <boost/fusion/support/ref.hpp>
 
+#include <boost/fusion/container/list/detail/list/convert_impl.hpp>
+
 namespace boost { namespace fusion
 {
     namespace result_of

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/at_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -74,8 +74,6 @@
         };
     }
 
- struct cons_tag;
-
     namespace extension
     {
         template <typename Tag>
@@ -88,24 +86,24 @@
             struct apply
             {
                 typedef typename
- detail::cons_advance<SeqRef, N::value>::type
- element;
- typedef typename
- detail::result_of_forward_as<SeqRef,element>::type
+ detail::forward_as<
+ SeqRef
+ , typename detail::cons_advance<SeqRef, N::value>::type
+ >::type
                 type;
 
                 template <typename Cons, int N2>
                 static type
- call(Cons&& s, mpl::int_<N2>)
+ call(Cons& cons, mpl::int_<N2>)
                 {
- return call(s.cdr, mpl::int_<N2-1>());
+ return call(cons.cdr, mpl::int_<N2-1>());
                 }
 
                 template <typename Cons>
                 static type
- call(Cons&& s, mpl::int_<0>)
+ call(Cons& cons, mpl::int_<0>)
                 {
- return s.car;
+ return cons.car;
                 }
 
                 static type

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/begin_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,34 +9,26 @@
 #ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_BEGIN_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_BEGIN_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct cons_tag;
+ template <typename Tag>
+ struct begin_impl;
 
- template <typename Cons>
- struct cons_iterator;
-
- namespace extension
+ template <>
+ struct begin_impl<cons_tag>
     {
- template <typename Tag>
- struct begin_impl;
-
- template <>
- struct begin_impl<cons_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef cons_iterator<SeqRef> type;
+ typedef cons_iterator<SeqRef> type;
 
- static type
- call(SeqRef t)
- {
- return type(t,0);
- }
- };
+ static type
+ call(SeqRef t)
+ {
+ return type(t,0);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Added: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_fwd.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,19 @@
+// Copyright Christopher Schmidt 2009.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_CONS_FWD_HPP
+#define BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_CONS_FWD_HPP
+
+namespace boost { namespace fusion
+{
+ struct cons_tag;
+
+ struct nil;
+
+ template <typename Car, typename Cdr>
+ struct cons;
+}}
+
+#endif

Added: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_iterator.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_iterator.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,78 @@
+/*=============================================================================
+ Copyright (c) 2005 Joel de Guzman
+ Copyright (c) 2005 Eric Niebler
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_CONS_ITERATOR_HPP
+#define BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_CONS_ITERATOR_HPP
+
+#include <boost/fusion/support/iterator_base.hpp>
+
+namespace boost { namespace fusion
+{
+ struct cons_iterator_tag;
+ struct forward_traversal_tag;
+
+ template <typename Cons = nil>
+ struct cons_iterator
+ : iterator_base<cons_iterator<Cons> >
+ {
+ typedef cons_iterator_tag fusion_tag;
+ typedef forward_traversal_tag category;
+ typedef Cons cons_type;
+
+ template<typename OtherIt>
+ cons_iterator(OtherIt const& it)
+ : cons(it.cons)
+ {}
+
+ cons_iterator(cons_type cons, int)
+ : cons(&cons)
+ {}
+
+ template<typename OtherIt>
+ cons_iterator&
+ operator=(OtherIt const& other_it)
+ {
+ cons=other_it.cons;
+ return *this;
+ }
+
+ typename detail::remove_reference<cons_type>::type* cons;
+ };
+
+ struct nil_iterator
+ : iterator_base<nil_iterator>
+ {
+ typedef forward_traversal_tag category;
+ typedef cons_iterator_tag fusion_tag;
+ typedef nil cons_type;
+
+ nil_iterator()
+ {}
+
+ nil_iterator(nil const&,int)
+ {}
+ };
+
+#define NIL_ITERATOR(COMBINATION,_)\
+ template <>\
+ struct cons_iterator<nil COMBINATION>\
+ : nil_iterator\
+ {\
+ cons_iterator()\
+ {}\
+ \
+ explicit cons_iterator(nil COMBINATION, int)\
+ {}\
+ };
+
+ BOOST_FUSION_ALL_CV_REF_COMBINATIONS(NIL_ITERATOR,_)
+
+#undef NIL_ITERATOR
+}}
+
+#endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/convert_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/convert_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/convert_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -13,40 +13,35 @@
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct cons_tag;
+ template <typename T>
+ struct convert_impl;
 
- namespace extension
+ template <>
+ struct convert_impl<cons_tag>
     {
- template <typename T>
- struct convert_impl;
-
- template <>
- struct convert_impl<cons_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef
- detail::build_cons<
- typename result_of::begin<SeqRef>::type
- , typename result_of::end<SeqRef>::type
- >
- build_cons;
+ typedef
+ detail::build_cons<
+ typename result_of::begin<SeqRef>::type
+ , typename result_of::end<SeqRef>::type
+ >
+ build_cons;
 
- typedef typename build_cons::type type;
+ typedef typename build_cons::type type;
 
- static type
- call(SeqRef seq)
- {
- return build_cons::call(
- fusion::begin(seq),
- fusion::end(seq));
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return build_cons::call(
+ fusion::begin(seq),
+ fusion::end(seq));
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/deref_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,40 +9,35 @@
 #ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_DEREF_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_DEREF_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct cons_iterator_tag;
+ template <typename Tag>
+ struct deref_impl;
 
- namespace extension
+ template <>
+ struct deref_impl<cons_iterator_tag>
     {
- template <typename Tag>
- struct deref_impl;
-
- template <>
- struct deref_impl<cons_iterator_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef typename
- detail::remove_reference<ItRef>::type::cons_type
- cons_type;
- typedef typename
- detail::remove_reference<cons_type>::type::car_type
- car_type;
+ typedef typename
+ detail::remove_reference<ItRef>::type::cons_type
+ cons_type;
+ typedef typename
+ detail::remove_reference<cons_type>::type::car_type
+ car_type;
+
+ typedef typename
+ detail::forward_as<cons_type,car_type>::type
+ type;
 
- typedef typename
- detail::result_of_forward_as<cons_type,car_type>::type
- type;
-
- static type
- call(ItRef it)
- {
- return it.cons->car;
- }
- };
+ static type
+ call(ItRef it)
+ {
+ return it.cons->car;
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/empty_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/empty_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/empty_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,29 +10,19 @@
 
 #include <boost/type_traits/is_same.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct cons_tag;
+ template <typename Tag>
+ struct empty_impl;
 
- struct nil;
-
- template <typename Car, typename Cdr>
- struct cons;
-
- namespace extension
+ template <>
+ struct empty_impl<cons_tag>
     {
- template <typename Tag>
- struct empty_impl;
-
- template <>
- struct empty_impl<cons_tag>
- {
- template <typename Seq>
- struct apply
- : boost::is_same<typename detail::identity<Seq>::type, nil>
- {};
- };
- }
-}}
+ template <typename Seq>
+ struct apply
+ : boost::is_same<typename detail::identity<Seq>::type, nil>
+ {};
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/end_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,43 +9,28 @@
 #ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_END_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_END_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct nil;
+ template <typename Tag>
+ struct end_impl;
 
- struct cons_tag;
-
- template <typename Car, typename Cdr>
- struct cons;
-
- template <typename Cons>
- struct cons_iterator;
-
- namespace extension
+ template <>
+ struct end_impl<cons_tag>
     {
- template <typename Tag>
- struct end_impl;
-
- template <>
- struct end_impl<cons_tag>
+ template <typename Seq>
+ struct apply
         {
- template <typename Seq>
- struct apply
- {
- typedef
- cons_iterator<
- typename detail::result_of_forward_as<Seq,nil>::type
- >
- type;
+ typedef
+ cons_iterator<typename detail::forward_as<Seq,nil>::type>
+ type;
 
- static type
- call(Seq)
- {
- return type();
- }
- };
+ static type
+ call(Seq)
+ {
+ return type();
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/equal_to_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/equal_to_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,36 +8,31 @@
 #ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_EQUAL_TO_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_EQUAL_TO_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct cons_iterator_tag;
+ template <typename Tag>
+ struct equal_to_impl;
 
- namespace extension
+ template <>
+ struct equal_to_impl<cons_iterator_tag>
     {
- template <typename Tag>
- struct equal_to_impl;
-
- template <>
- struct equal_to_impl<cons_iterator_tag>
+ template <typename It1Ref, typename It2Ref>
+ struct apply
+ : is_same<
+ typename detail::identity<
+ typename detail::remove_reference<
+ It1Ref
+ >::type::cons_type
+ >::type
+ , typename detail::identity<
+ typename detail::remove_reference<
+ It2Ref
+ >::type::cons_type
+ >::type
+ >
         {
- template <typename It1Ref, typename It2Ref>
- struct apply
- : is_same<
- typename detail::identity<
- typename detail::remove_reference<
- It1Ref
- >::type::cons_type
- >::type
- , typename detail::identity<
- typename detail::remove_reference<
- It2Ref
- >::type::cons_type
- >::type
- >
- {
- };
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/next_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/next_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,48 +9,37 @@
 #ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_NEXT_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_NEXT_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct cons_iterator_tag;
+ template <typename Tag>
+ struct next_impl;
 
- template <typename Cons>
- struct cons_iterator;
-
- namespace extension
+ template <>
+ struct next_impl<cons_iterator_tag>
     {
- template <typename Tag>
- struct next_impl;
-
- template <>
- struct next_impl<cons_iterator_tag>
+ template <typename It>
+ struct apply
         {
- template <typename It>
- struct apply
- {
- typedef typename
- detail::remove_reference<It>::type::cons_type
- cons_type;
- typedef typename
- detail::remove_reference<cons_type>::type::cdr_type
- cdr_type;
+ typedef typename
+ detail::remove_reference<It>::type::cons_type
+ cons_type;
+ typedef typename
+ detail::remove_reference<cons_type>::type::cdr_type
+ cdr_type;
+
+ typedef
+ cons_iterator<
+ typename detail::forward_as<cons_type, cdr_type>::type
+ >
+ type;
 
- typedef
- cons_iterator<
- typename detail::result_of_forward_as<
- cons_type
- , cdr_type
- >::type
- >
- type;
-
- static type
- call(It it)
- {
- return type(it.cons->cdr,0);
- }
- };
+ static type
+ call(It it)
+ {
+ return type(it.cons->cdr,0);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_at_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,39 +10,34 @@
 
 #include <boost/mpl/eval_if.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct cons_tag;
+ template <typename Tag>
+ struct value_at_impl;
 
- namespace extension
+ template <>
+ struct value_at_impl<cons_tag>
     {
- template <typename Tag>
- struct value_at_impl;
-
- template <>
- struct value_at_impl<cons_tag>
+ template <typename Seq, typename N>
+ struct apply
         {
- template <typename Seq, typename N>
- struct apply
- {
- typedef typename
- detail::remove_reference<Seq>::type
- identity_sequence;
-
- typedef typename
- mpl::eval_if<
- N
- , mpl::identity<typename identity_sequence::car_type>
- //cschmidt: qualifiers could be moved here, though
- //this is not necessary!
- , apply<typename identity_sequence::cdr_type
- , mpl::int_<N::value-1>
- >
- >::type
- type;
- };
+ typedef typename
+ detail::remove_reference<Seq>::type
+ identity_sequence;
+
+ typedef typename
+ mpl::eval_if<
+ N
+ , mpl::identity<typename identity_sequence::car_type>
+ //cschmidt: qualifiers could be moved here, though
+ //this is not necessary!
+ , apply<typename identity_sequence::cdr_type
+ , mpl::int_<N::value-1>
+ >
+ >::type
+ type;
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_of_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,32 +9,26 @@
 #ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_VALUE_OF_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_VALUE_OF_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct cons_iterator_tag;
+ template <typename Tag>
+ struct value_of_impl;
 
- namespace extension
+ template <>
+ struct value_of_impl<cons_iterator_tag>
     {
- template <typename Tag>
- struct value_of_impl;
-
- template <>
- struct value_of_impl<cons_iterator_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef typename
- detail::remove_reference<ItRef>::type::cons_type
- cons_type;
-
- typedef typename
- detail::remove_reference<cons_type>::type::car_type
- type;
- };
+ typedef typename
+ detail::remove_reference<ItRef>::type::cons_type
+ cons_type;
+
+ typedef typename
+ detail::remove_reference<cons_type>::type::car_type
+ type;
         };
- }
-
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/at_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,40 +8,36 @@
 
 #include <boost/fusion/sequence/intrinsic/at.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct list_tag;
+ template <typename Tag>
+ struct at_impl;
 
- namespace extension
+ template <>
+ struct at_impl<list_tag>
     {
- template <typename Tag>
- struct at_impl;
-
- template <>
- struct at_impl<list_tag>
+ template <typename SeqRef, typename N>
+ struct apply
         {
- template <typename SeqRef, typename N>
- struct apply
- {
- typedef typename
- detail::result_of_forward_as<
+ typedef typename
+ result_of::at<
+ typename detail::forward_as<
                         SeqRef
- , typename detail::remove_reference<SeqRef>::type::storage_type
- >::type
- storage_type;
+ , typename detail::remove_reference<
+ SeqRef
+ >::type::storage_type
+ >::type
+ , N
+ >::type
+ type;
 
- typedef typename
- result_of::at<storage_type,N>::type
- type;
-
- static type
- call(SeqRef seq)
- {
- return fusion::at<N>(seq.get_data());
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return fusion::at<N>(seq.get_data());
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/begin_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,42 +12,38 @@
 #include <boost/fusion/support/iterator_adapter.hpp>
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct list_tag;
+ template <typename Tag>
+ struct begin_impl;
 
- namespace extension
+ template <>
+ struct begin_impl<list_tag>
     {
- template <typename Tag>
- struct begin_impl;
-
- template <>
- struct begin_impl<list_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef typename
- detail::result_of_forward_as<SeqRef
- , typename detail::remove_reference<SeqRef>::type::storage_type
+ typedef
+ iterator_adapter<
+ typename result_of::begin<
+ typename detail::forward_as<
+ SeqRef
+ , typename detail::remove_reference<
+ SeqRef
+ >::type::storage_type
+ >::type
>::type
- storage_type;
+ , forward_traversal_tag
+ >
+ type;
 
- typedef
- iterator_adapter<
- typename result_of::begin<storage_type>::type
- , forward_traversal_tag
- >
- type;
-
- static type
- call(SeqRef seq)
- {
- return type(fusion::begin(seq.get_data()),0);
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return type(fusion::begin(seq.get_data()),0);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/convert_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/convert_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/convert_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -14,46 +14,41 @@
 # include <boost/fusion/container/list/detail/list/variadic_templates/as_list_impl.hpp>
 #endif
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct list_tag;
+ template <typename T>
+ struct convert_impl;
 
- namespace extension
+ template <>
+ struct convert_impl<list_tag>
     {
- template <typename T>
- struct convert_impl;
-
- template <>
- struct convert_impl<list_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
 #ifdef BOOST_NO_VARIADIC_TEMPLATES
- typedef typename
- detail::as_list<result_of::size<Seq>::value>
- gen;
- typedef typename gen::template apply<
- typename result_of::begin<Seq>::type>::type
- type;
+ typedef typename
+ detail::as_list<result_of::size<Seq>::value>
+ gen;
+ typedef typename gen::template apply<
+ typename result_of::begin<Seq>::type>::type
+ type;
 
- static type call(SeqRef seq)
- {
- return gen::call(
- fusion::begin(BOOST_FUSION_FORWARD(SeqRef,seq)));
- }
+ static type call(SeqRef seq)
+ {
+ return gen::call(
+ fusion::begin(BOOST_FUSION_FORWARD(SeqRef,seq)));
+ }
 #else
- typedef typename detail::as_list_impl<SeqRef> gen;
- typedef typename gen::apply::type type;
+ typedef typename detail::as_list_impl<SeqRef> gen;
+ typedef typename gen::apply::type type;
 
- static type call(SeqRef seq)
- {
- return gen::call(seq);
- }
+ static type call(SeqRef seq)
+ {
+ return gen::call(seq);
+ }
 #endif
- };
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/end_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,42 +12,38 @@
 #include <boost/fusion/support/iterator_adapter.hpp>
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct list_tag;
+ template <typename Tag>
+ struct end_impl;
 
- namespace extension
+ template <>
+ struct end_impl<list_tag>
     {
- template <typename Tag>
- struct end_impl;
-
- template <>
- struct end_impl<list_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef typename
- detail::result_of_forward_as<SeqRef
- , typename detail::remove_reference<SeqRef>::type::storage_type
+ typedef
+ iterator_adapter<
+ typename result_of::end<
+ typename detail::forward_as<
+ SeqRef
+ , typename detail::remove_reference<
+ SeqRef
+ >::type::storage_type
+ >::type
>::type
- storage_type;
+ , forward_traversal_tag
+ >
+ type;
 
- typedef
- iterator_adapter<
- typename result_of::end<storage_type>::type
- , forward_traversal_tag
- >
- type;
-
- static type
- call(SeqRef seq)
- {
- return type(fusion::end(seq.get_data()),0);
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return type(fusion::end(seq.get_data()),0);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_at_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,34 +8,29 @@
 
 #include <boost/fusion/sequence/intrinsic/value_at.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct list_tag;
+ template <typename Tag>
+ struct value_at_impl;
 
- namespace extension
+ template <>
+ struct value_at_impl<list_tag>
     {
- template <typename Tag>
- struct value_at_impl;
-
- template <>
- struct value_at_impl<list_tag>
+ template <typename SeqRef, typename N>
+ struct apply
         {
- template <typename SeqRef, typename N>
- struct apply
- {
- typedef typename
- detail::result_of_forward_as<
- SeqRef
- , typename detail::remove_reference<SeqRef>::type::storage_type
- >::type
- storage_type;
-
- typedef typename
- result_of::value_at<storage_type,N>::type
- type;
- };
+ typedef typename
+ detail::forward_as<
+ SeqRef
+ , typename detail::remove_reference<SeqRef>::type::storage_type
+ >::type
+ storage_type;
+
+ typedef typename
+ result_of::value_at<storage_type,N>::type
+ type;
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/list.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/list.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/list.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -21,7 +21,6 @@
 
 namespace boost { namespace fusion
 {
- struct list_tag;
     struct fusion_sequence_tag;
 #ifndef BOOST_NO_VARIADIC_TEMPLATES
     struct void_;

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/list_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/list_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/list_fwd.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -13,9 +13,10 @@
 
 namespace boost { namespace fusion
 {
+ struct list_tag;
+
     VARIADIC_TEMPLATE_WITH_DEFAULT(FUSION_MAX_LIST_SIZE)
     struct list;
 }}
 
-
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/convert.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/convert.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,9 +9,10 @@
 #define BOOST_FUSION_CONTAINER_MAP_CONVERT_HPP
 
 #include <boost/fusion/container/map/map.hpp>
-#include <boost/fusion/container/map/detail/convert_impl.hpp>
 #include <boost/fusion/support/ref.hpp>
 
+#include <boost/fusion/container/map/detail/convert_impl.hpp>
+
 namespace boost { namespace fusion
 {
     namespace result_of

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/at_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/at_key_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/at_key_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,38 +8,32 @@
 #ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_AT_KEY_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_MAP_DETAIL_AT_KEY_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct map_tag;
+ template <typename Tag>
+ struct at_key_impl;
 
- namespace extension
+ template <>
+ struct at_key_impl<map_tag>
     {
- template <typename Tag>
- struct at_key_impl;
-
- template <>
- struct at_key_impl<map_tag>
+ template <typename SeqRef, typename Key>
+ struct apply
         {
- template <typename SeqRef, typename Key>
- struct apply
- {
- typedef typename
- detail::remove_reference<SeqRef>::type::
+ typedef typename
+ detail::forward_as<
+ SeqRef
+ , typename detail::remove_reference<SeqRef>::type::
                         template meta_at_impl<Key>::type
- element;
+ >::type
+ type;
 
- typedef typename
- detail::result_of_forward_as<SeqRef,element>::type
- type;
-
- static type
- call(SeqRef seq)
- {
- return seq.at_impl(mpl::identity<Key>());
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return seq.at_impl(mpl::identity<Key>());
+ }
         };
- }
-}}
+ };
+}}}
 
 #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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,42 +8,35 @@
 
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct map_tag;
+ template <typename Tag>
+ struct begin_impl;
 
- namespace extension
+ template <>
+ struct begin_impl<map_tag>
     {
- template <typename Tag>
- struct begin_impl;
-
- template <>
- struct begin_impl<map_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef typename
- detail::result_of_forward_as<
+ typedef typename
+ result_of::begin<
+ typename detail::forward_as<
                         SeqRef
                       , typename detail::remove_reference<
                             SeqRef
>::type::storage_type
>::type
- storage_type;
+ >::type
+ type;
 
- typedef typename
- result_of::begin<storage_type>::type
- type;
-
- static type
- call(SeqRef seq)
- {
- return fusion::begin(seq.get_data());
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return fusion::begin(seq.get_data());
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/convert_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/convert_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/convert_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,53 +9,48 @@
 #ifdef BOOST_NO_VARIADIC_TEMPLATES
 # include <boost/fusion/sequence/intrinsic/begin.hpp>
 # include <boost/fusion/sequence/intrinsic/size.hpp>
-# include <boost/fusion/container/map/detail/pp/as_set.hpp>
+# include <boost/fusion/container/map/detail/pp/as_map.hpp>
 #else
 # include <boost/fusion/container/map/detail/variadic_templates/as_map_impl.hpp>
 #endif
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct map_tag;
+ template <typename T>
+ struct convert_impl;
 
- namespace extension
+ template <>
+ struct convert_impl<map_tag>
     {
- template <typename T>
- struct convert_impl;
-
- template <>
- struct convert_impl<map_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
 #ifdef BOOST_NO_VARIADIC_TEMPLATES
- typedef typename
- detail::as_map<result_of::size<SeqRef>::value>
- gen;
- typedef typename
- gen::template apply<
- typename result_of::begin<SeqRef>::type
- >::type
- type;
+ typedef typename
+ detail::as_map<result_of::size<SeqRef>::value>
+ gen;
+ typedef typename
+ gen::template apply<
+ typename result_of::begin<SeqRef>::type
+ >::type
+ type;
 
- static type call(SeqRef seq)
- {
- return gen::call(
- fusion::begin(BOOST_FUSION_FORWARD(Sequence,seq)));
- }
+ static type call(SeqRef seq)
+ {
+ return gen::call(
+ fusion::begin(BOOST_FUSION_FORWARD(Sequence,seq)));
+ }
 #else
- typedef typename detail::as_map_impl<SeqRef> gen;
- typedef typename gen::apply::type type;
+ typedef typename detail::as_map_impl<SeqRef> gen;
+ typedef typename gen::apply::type type;
 
- static type call(SeqRef seq)
- {
- return gen::call(seq);
- }
+ static type call(SeqRef seq)
+ {
+ return gen::call(seq);
+ }
 #endif
- };
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/end_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,42 +8,35 @@
 
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct map_tag;
+ template <typename Tag>
+ struct end_impl;
 
- namespace extension
+ template <>
+ struct end_impl<map_tag>
     {
- template <typename Tag>
- struct end_impl;
-
- template <>
- struct end_impl<map_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef typename
- detail::result_of_forward_as<
+ typedef typename
+ result_of::end<
+ typename detail::forward_as<
                         SeqRef
                       , typename detail::remove_reference<
                             SeqRef
>::type::storage_type
>::type
- storage_type;
+ >::type
+ type;
 
- typedef typename
- result_of::end<storage_type>::type
- type;
-
- static type
- call(SeqRef seq)
- {
- return fusion::end(seq.get_data());
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return fusion::end(seq.get_data());
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_at_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_at_key_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_at_key_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,28 +9,23 @@
 #ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_VALUE_AT_KEY_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_MAP_DETAIL_VALUE_AT_KEY_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct map_tag;
+ template <typename Tag>
+ struct value_at_key_impl;
 
- namespace extension
+ template <>
+ struct value_at_key_impl<map_tag>
     {
- template <typename Tag>
- struct value_at_key_impl;
-
- template <>
- struct value_at_key_impl<map_tag>
+ template <typename SeqRef, typename Key>
+ struct apply
         {
- template <typename SeqRef, typename Key>
- struct apply
- {
- typedef typename
- detail::remove_reference<SeqRef>::type::
- template meta_at_impl<Key>::type
- type;
- };
+ typedef typename
+ detail::remove_reference<SeqRef>::type::
+ template meta_at_impl<Key>::type
+ type;
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -15,14 +15,6 @@
 #include <boost/fusion/support/sequence_base.hpp>
 #include <boost/fusion/support/ref.hpp>
 
-#ifdef BOOST_NO_VARIADIC_TEMPLATES
-# include <boost/fusion/container/map/detail/lookup_key.hpp>
-#endif
-#include <boost/fusion/container/map/detail/begin_impl.hpp>
-#include <boost/fusion/container/map/detail/end_impl.hpp>
-#include <boost/fusion/container/map/detail/at_key_impl.hpp>
-#include <boost/fusion/container/map/detail/value_at_key_impl.hpp>
-
 #include <boost/mpl/identity.hpp>
 #include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/if.hpp>
@@ -36,9 +28,16 @@
 #include <boost/type_traits/is_same.hpp>
 #include <boost/type_traits/add_const.hpp>
 
+#ifdef BOOST_NO_VARIADIC_TEMPLATES
+# include <boost/fusion/container/map/detail/pp/lookup_key.hpp>
+#endif
+#include <boost/fusion/container/map/detail/begin_impl.hpp>
+#include <boost/fusion/container/map/detail/end_impl.hpp>
+#include <boost/fusion/container/map/detail/at_key_impl.hpp>
+#include <boost/fusion/container/map/detail/value_at_key_impl.hpp>
+
 namespace boost { namespace fusion
 {
- struct map_tag;
     struct fusion_sequence_tag;
 #ifndef BOOST_NO_VARIADIC_TEMPLATES
     struct void_;

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/map_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/map_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/map_fwd.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -13,6 +13,8 @@
 
 namespace boost { namespace fusion
 {
+ struct map_tag;
+
     VARIADIC_TEMPLATE_WITH_DEFAULT(FUSION_MAX_MAP_SIZE)
     struct map;
 }}

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/convert.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/convert.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,9 +9,10 @@
 #define BOOST_FUSION_CONTAINER_SET_CONVERT_HPP
 
 #include <boost/fusion/container/set/set.hpp>
-#include <boost/fusion/container/set/detail/convert_impl.hpp>
 #include <boost/fusion/support/ref.hpp>
 
+#include <boost/fusion/container/set/detail/convert_impl.hpp>
+
 namespace boost { namespace fusion
 {
     namespace result_of

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/at_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/at_key_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/at_key_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,38 +8,32 @@
 #ifndef BOOST_FUSION_CONTAINER_SET_DETAIL_AT_KEY_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_SET_DETAIL_AT_KEY_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct set_tag;
+ template <typename Tag>
+ struct at_key_impl;
 
- namespace extension
+ template <>
+ struct at_key_impl<set_tag>
     {
- template <typename Tag>
- struct at_key_impl;
-
- template <>
- struct at_key_impl<set_tag>
+ template <typename SeqRef, typename Key>
+ struct apply
         {
- template <typename SeqRef, typename Key>
- struct apply
- {
- typedef typename
- detail::remove_reference<SeqRef>::type::
+ typedef typename
+ detail::forward_as<
+ SeqRef
+ , typename detail::remove_reference<SeqRef>::type::
                         template meta_at_impl<Key>::type
- element;
+ >::type
+ type;
 
- typedef typename
- detail::result_of_forward_as<SeqRef,element>::type
- type;
-
- static type
- call(SeqRef seq)
- {
- return seq.at_impl(mpl::identity<Key>());
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return seq.at_impl(mpl::identity<Key>());
+ }
         };
- }
-}}
+ };
+}}}
 
 #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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,41 +8,35 @@
 
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct set_tag;
+ template <typename Tag>
+ struct begin_impl;
 
- namespace extension
+ template <>
+ struct begin_impl<set_tag>
     {
- template <typename Tag>
- struct begin_impl;
-
- template <>
- struct begin_impl<set_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef typename
- detail::result_of_forward_as<SeqRef
+ typedef typename
+ result_of::begin<
+ typename detail::forward_as<
+ SeqRef
                       , typename detail::remove_reference<
                             SeqRef
>::type::storage_type
>::type
- storage_type;
+ >::type
+ type;
 
- typedef typename
- result_of::begin<storage_type>::type
- type;
-
- static type
- call(SeqRef seq)
- {
- return fusion::begin(seq.get_data());
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return fusion::begin(seq.get_data());
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/convert_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/convert_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/convert_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -14,47 +14,42 @@
 # include <boost/fusion/container/set/detail/variadic_templates/as_set_impl.hpp>
 #endif
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct set_tag;
+ template <typename T>
+ struct convert_impl;
 
- namespace extension
+ template <>
+ struct convert_impl<set_tag>
     {
- template <typename T>
- struct convert_impl;
-
- template <>
- struct convert_impl<set_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
 #ifdef BOOST_NO_VARIADIC_TEMPLATES
- typedef typename
- detail::as_set<result_of::size<SeqRef>::value>
- gen;
- typedef typename gen::template apply<
- typename result_of::begin<SeqRef>::type>::type
- type;
-
- static type call(SeqRef seq)
- {
- return gen::call(
- fusion::begin(BOOST_FUSION_FORWARD(Sequence,seq)));
- }
+ typedef typename
+ detail::as_set<result_of::size<SeqRef>::value>
+ gen;
+ typedef typename gen::template apply<
+ typename result_of::begin<SeqRef>::type>::type
+ type;
+
+ static type call(SeqRef seq)
+ {
+ return gen::call(
+ fusion::begin(BOOST_FUSION_FORWARD(Sequence,seq)));
+ }
 #else
- typedef typename detail::as_set_impl<SeqRef> gen;
+ typedef typename detail::as_set_impl<SeqRef> gen;
 
- typedef typename gen::apply::type type;
+ typedef typename gen::apply::type type;
 
- static type call(SeqRef seq)
- {
- return gen::call(seq);
- }
+ static type call(SeqRef seq)
+ {
+ return gen::call(seq);
+ }
 #endif
- };
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/end_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,42 +8,35 @@
 
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct set_tag;
+ template <typename Tag>
+ struct end_impl;
 
- namespace extension
+ template <>
+ struct end_impl<set_tag>
     {
- template <typename Tag>
- struct end_impl;
-
- template <>
- struct end_impl<set_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef typename
- detail::result_of_forward_as<
+ typedef typename
+ result_of::end<
+ typename detail::forward_as<
                         SeqRef
                       , typename detail::remove_reference<
                             SeqRef
>::type::storage_type
>::type
- storage_type;
+ >::type
+ type;
 
- typedef typename
- result_of::end<storage_type>::type
- type;
-
- static type
- call(SeqRef seq)
- {
- return fusion::end(seq.get_data());
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return fusion::end(seq.get_data());
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_at_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_at_key_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_at_key_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,28 +9,23 @@
 #ifndef BOOST_FUSION_CONTAINER_SET_DETAIL_VALUE_AT_KEY_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_SET_DETAIL_VALUE_AT_KEY_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct set_tag;
+ template <typename Tag>
+ struct value_at_key_impl;
 
- namespace extension
+ template <>
+ struct value_at_key_impl<set_tag>
     {
- template <typename Tag>
- struct value_at_key_impl;
-
- template <>
- struct value_at_key_impl<set_tag>
+ template <typename SeqRef, typename Key>
+ struct apply
         {
- template <typename SeqRef, typename Key>
- struct apply
- {
- typedef typename
- detail::remove_reference<SeqRef>::type::
- template meta_at_impl<Key>::type
- type;
- };
+ typedef typename
+ detail::remove_reference<SeqRef>::type::
+ template meta_at_impl<Key>::type
+ type;
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/set.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/set.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/set.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -14,6 +14,14 @@
 #include <boost/fusion/support/sequence_base.hpp>
 #include <boost/fusion/support/ref.hpp>
 
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/contains.hpp>
+#include <boost/mpl/find.hpp>
+#include <boost/mpl/distance.hpp>
+#include <boost/mpl/begin.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/identity.hpp>
+
 #ifdef BOOST_NO_VARIADIC_TEMPLATES
 # include <boost/fusion/container/set/detail/pp/lookup_key.hpp>
 #endif
@@ -22,17 +30,9 @@
 #include <boost/fusion/container/set/detail/at_key_impl.hpp>
 #include <boost/fusion/container/set/detail/value_at_key_impl.hpp>
 
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/contains.hpp>
-#include <boost/mpl/find.hpp>
-#include <boost/mpl/distance.hpp>
-#include <boost/mpl/begin.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/identity.hpp>
 
 namespace boost { namespace fusion
 {
- struct set_tag;
     struct fusion_sequence_tag;
 #ifndef BOOST_NO_VARIADIC_TEMPLATES
     struct void_;

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/set_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/set_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/set_fwd.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -13,6 +13,8 @@
 
 namespace boost { namespace fusion
 {
+ struct set_tag;
+
     VARIADIC_TEMPLATE_WITH_DEFAULT(FUSION_MAX_SET_SIZE)
     struct set;
 }}

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/advance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/advance_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/advance_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,42 +8,32 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_ADVANCE_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_ADVANCE_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct vector_iterator_tag;
- template <typename Vector, int N>
- struct vector_iterator;
+ template <typename Tag>
+ struct advance_impl;
 
- namespace extension
+ template <>
+ struct advance_impl<vector_iterator_tag>
     {
- template <typename Tag>
- struct advance_impl;
-
- template <>
- struct advance_impl<vector_iterator_tag>
+ template <typename ItRef, typename N>
+ struct apply
         {
- template <typename ItRef, typename N>
- struct apply
- {
- typedef typename
- detail::remove_reference<ItRef>::type
- it;
+ typedef typename
+ detail::remove_reference<ItRef>::type
+ it;
+
+ typedef
+ vector_iterator<typename it::vector, it::index::value+N::value>
+ type;
 
- typedef
- vector_iterator<
- typename it::vector
- , it::index::value+N::value
- >
- type;
-
- static type
- call(ItRef it)
- {
- return type(*it.vec,0);
- }
- };
+ static type
+ call(ItRef it)
+ {
+ return type(*it.vec,0);
+ }
         };
- }
-}}
+ };
+}}}
 
 #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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,40 +11,36 @@
 #include <boost/mpl/at.hpp>
 #include <boost/mpl/eval_if.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct vector_tag;
+ template <typename Tag>
+ struct at_impl;
 
- namespace extension
+ template <>
+ struct at_impl<vector_tag>
     {
- template <typename Tag>
- struct at_impl;
-
- template <>
- struct at_impl<vector_tag>
+ template <typename SeqRef, typename N>
+ struct apply
         {
- template <typename SeqRef, typename N>
- struct apply
- {
- typedef typename
- mpl::at<
- typename detail::remove_reference<SeqRef>::type::types
+ typedef typename
+ detail::forward_as<
+ SeqRef
+ , typename mpl::at<
+ typename detail::remove_reference<
+ SeqRef
+ >::type::types
                       , N
>::type
- element;
+ >::type
+ type;
 
- typedef typename
- detail::result_of_forward_as<SeqRef,element>::type
- type;
-
- static type
- call(SeqRef seq)
- {
- return seq.at_impl(N());
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return seq.at_impl(N());
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/begin_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,29 +8,26 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_BEGIN_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_BEGIN_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- namespace extension
- {
- template <typename Tag>
- struct begin_impl;
+ template <typename Tag>
+ struct begin_impl;
 
- template <>
- struct begin_impl<vector_tag>
+ template <>
+ struct begin_impl<vector_tag>
+ {
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef vector_iterator<SeqRef, 0> type;
+ typedef vector_iterator<SeqRef, 0> type;
 
- static type
- call(SeqRef seq)
- {
- return type(seq,0);
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return type(seq,0);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/convert_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/convert_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/convert_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -14,47 +14,42 @@
 # include <boost/fusion/container/vector/detail/variadic_templates/as_vector_impl.hpp>
 #endif
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct vector_tag;
+ template <typename T>
+ struct convert_impl;
 
- namespace extension
+ template <>
+ struct convert_impl<vector_tag>
     {
- template <typename T>
- struct convert_impl;
-
- template <>
- struct convert_impl<vector_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
 #ifdef BOOST_NO_VARIADIC_TEMPLATES
- typedef typename
- detail::as_vector<result_of::size<SeqRef>::value>
- gen;
-
- typedef typename gen::template apply<
- typename result_of::begin<SeqRef>::type>::type
- type;
-
- static type call(SeqRef seq)
- {
- return gen::call(
- fusion::begin(BOOST_FUSION_FORWARD(Sequence,seq)));
- }
+ typedef typename
+ detail::as_vector<result_of::size<SeqRef>::value>
+ gen;
+
+ typedef typename gen::template apply<
+ typename result_of::begin<SeqRef>::type>::type
+ type;
+
+ static type call(SeqRef seq)
+ {
+ return gen::call(
+ fusion::begin(BOOST_FUSION_FORWARD(Sequence,seq)));
+ }
 #else
- typedef typename detail::as_vector_impl<SeqRef> gen;
- typedef typename gen::apply::type type;
+ typedef typename detail::as_vector_impl<SeqRef> gen;
+ typedef typename gen::apply::type type;
 
- static type call(SeqRef seq)
- {
- return gen::call(seq);
- }
+ static type call(SeqRef seq)
+ {
+ return gen::call(seq);
+ }
 #endif
- };
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/deref_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,46 +8,41 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_DEREF_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_DEREF_IMPL_HPP
 
-#include <boost/type_traits/is_const.hpp>
 #include <boost/mpl/at.hpp>
-#include <boost/mpl/eval_if.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct vector_iterator_tag;
+ template <typename Tag>
+ struct deref_impl;
 
- namespace extension
+ template <>
+ struct deref_impl<vector_iterator_tag>
     {
- template <typename Tag>
- struct deref_impl;
-
- template <>
- struct deref_impl<vector_iterator_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef typename detail::remove_reference<ItRef>::type it;
- typedef typename it::vector vector;
- typedef typename
- mpl::at<
- typename detail::remove_reference<vector>::type::types
+ typedef typename detail::remove_reference<ItRef>::type it;
+ typedef typename it::vector vector;
+
+ typedef
+ typename detail::forward_as<
+ vector
+ , typename mpl::at<
+ typename detail::remove_reference<
+ vector
+ >::type::types
                       , typename it::index
>::type
- element;
+ >::type
+ type;
 
- typedef typename
- detail::result_of_forward_as<vector,element>::type
- type;
-
- static type
- call(ItRef it)
- {
- return it.vec->at_impl(typename it::index());
- }
- };
+ static type
+ call(ItRef it)
+ {
+ return it.vec->at_impl(typename it::index());
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/distance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/distance_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/distance_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,30 +10,25 @@
 
 #include <boost/mpl/minus.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct vector_iterator_tag;
+ template <typename Tag>
+ struct distance_impl;
 
- namespace extension
+ template <>
+ struct distance_impl<vector_iterator_tag>
     {
- template <typename Tag>
- struct distance_impl;
-
- template <>
- struct distance_impl<vector_iterator_tag>
+ template <typename First, typename Last>
+ struct apply
         {
- template <typename First, typename Last>
- struct apply
- {
- typedef typename
- mpl::minus<
- typename detail::remove_reference<Last>::type::index
- , typename detail::remove_reference<First>::type::index
- >::type
- type;
- };
+ typedef typename
+ mpl::minus<
+ typename detail::remove_reference<Last>::type::index
+ , typename detail::remove_reference<First>::type::index
+ >::type
+ type;
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/end_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,34 +8,31 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_END_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_END_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- namespace extension
- {
- template <typename Tag>
- struct end_impl;
+ template <typename Tag>
+ struct end_impl;
 
- template <>
- struct end_impl<vector_tag>
+ template <>
+ struct end_impl<vector_tag>
+ {
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef
- vector_iterator<
- SeqRef
- , detail::remove_reference<SeqRef>::type::size::value
- >
- type;
+ typedef
+ vector_iterator<
+ SeqRef
+ , detail::remove_reference<SeqRef>::type::size::value
+ >
+ type;
 
- static type
- call(SeqRef seq)
- {
- return type(seq,0);
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return type(seq,0);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/equal_to_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/equal_to_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,11 +8,22 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_EQUAL_TO_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_EQUAL_TO_IMPL_HPP
 
+#include <boost/mpl/and.hpp>
+#include <boost/mpl/equal_to.hpp>
 #include <boost/type_traits/is_same.hpp>
 
 namespace boost { namespace fusion
 {
- struct vector_iterator_tag;
+ namespace detail
+ {
+ template <typename It1, typename It2>
+ struct vector_types_equal
+ : is_same<
+ typename detail::identity<typename It1::vector>::type
+ , typename detail::identity<typename It2::vector>::type
+ >
+ {};
+ }
 
     namespace extension
     {
@@ -24,11 +35,16 @@
         {
             template <typename It1Ref, typename It2Ref>
             struct apply
- : is_same<
- typename detail::remove_reference<It1Ref>::type::identity
- , typename detail::remove_reference<It2Ref>::type::identity
- >
             {
+ typedef typename detail::remove_reference<It1Ref>::type it1;
+ typedef typename detail::remove_reference<It2Ref>::type it2;
+
+ typedef
+ mpl::and_<
+ mpl::equal_to<typename it1::index, typename it2::index>
+ , detail::vector_types_equal<it1,it2>
+ >
+ type;
             };
         };
     }

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/next_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/next_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,41 +8,33 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_NEXT_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_NEXT_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct vector_iterator_tag;
+ template <typename Tag>
+ struct next_impl;
 
- template <typename Vector, int N>
- struct vector_iterator;
-
- namespace extension
+ template <>
+ struct next_impl<vector_iterator_tag>
     {
- template <typename Tag>
- struct next_impl;
-
- template <>
- struct next_impl<vector_iterator_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef typename detail::remove_reference<ItRef>::type it;
+ typedef typename detail::remove_reference<ItRef>::type it;
 
- typedef
- vector_iterator<
- typename it::vector
- , it::index::value+1
- >
- type;
+ typedef
+ vector_iterator<
+ typename it::vector
+ , it::index::value+1
+ >
+ type;
 
- static type
- call(ItRef it)
- {
- return type(*it.vec,0);
- }
- };
+ static type
+ call(ItRef it)
+ {
+ return type(*it.vec,0);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/prior_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/prior_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/prior_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,44 +8,35 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_PRIOR_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_PRIOR_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct vector_iterator_tag;
- template <typename Vector, int N>
- struct vector_iterator;
+ template <typename Tag>
+ struct prior_impl;
 
- namespace extension
+ template <>
+ struct prior_impl<vector_iterator_tag>
     {
- template <typename Tag>
- struct prior_impl;
-
- template <>
- struct prior_impl<vector_iterator_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef typename
- detail::remove_reference<ItRef>::type
- it;
-
- typedef
- vector_iterator<
- typename it::vector
- , it::index::value-1
- >
- type;
+ typedef typename
+ detail::remove_reference<ItRef>::type
+ it;
+
+ typedef
+ vector_iterator<
+ typename it::vector
+ , it::index::value-1
+ >
+ type;
 
- static type
- call(ItRef it)
- {
- return type(*it.vec,0);
- }
- };
+ static type
+ call(ItRef it)
+ {
+ return type(*it.vec,0);
+ }
         };
- }
-}}
-
-//TODO I1 -> It1Ref
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_at_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,30 +10,25 @@
 
 #include <boost/mpl/at.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct vector_tag;
+ template <typename Tag>
+ struct value_at_impl;
 
- namespace extension
+ template <>
+ struct value_at_impl<vector_tag>
     {
- template <typename Tag>
- struct value_at_impl;
-
- template <>
- struct value_at_impl<vector_tag>
+ template <typename SeqRef, typename N>
+ struct apply
         {
- template <typename SeqRef, typename N>
- struct apply
- {
- typedef typename
- mpl::at<
- typename detail::remove_reference<SeqRef>::type::types
- , N
- >::type
- type;
- };
+ typedef typename
+ mpl::at<
+ typename detail::remove_reference<SeqRef>::type::types
+ , N
+ >::type
+ type;
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_of_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,37 +10,32 @@
 
 #include <boost/mpl/at.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct vector_iterator_tag;
+ template <typename Tag>
+ struct value_of_impl;
 
- namespace extension
+ template <>
+ struct value_of_impl<vector_iterator_tag>
     {
- template <typename Tag>
- struct value_of_impl;
-
- template <>
- struct value_of_impl<vector_iterator_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef typename
- detail::remove_reference<ItRef>::type
- it;
- typedef typename
- it::vector
- vector;
-
- typedef typename
- mpl::at<
- typename detail::remove_reference<vector>::type::types
- , typename it::index
- >::type
- type;
- };
+ typedef typename
+ detail::remove_reference<ItRef>::type
+ it;
+ typedef typename
+ it::vector
+ vector;
+
+ typedef typename
+ mpl::at<
+ typename detail::remove_reference<vector>::type::types
+ , typename it::index
+ >::type
+ type;
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -13,6 +13,7 @@
 #include <boost/fusion/support/variadic_templates/variadic_arguments_to_vector.hpp>
 #include <boost/fusion/support/sequence_assign.hpp>
 #include <boost/fusion/support/assign_tags.hpp>
+#include <boost/fusion/support/sequence_base.hpp>
 
 #include <boost/mpl/int.hpp>
 

Added: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/vector_iterator.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/vector_iterator.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,53 @@
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_VECTOR_ITERATOR_HPP
+#define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_VECTOR_ITERATOR_HPP
+
+//TODO cschmidt: move in detail
+
+#include <boost/fusion/support/iterator_base.hpp>
+#include <boost/type_traits/remove_const.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/mpl/int.hpp>
+
+namespace boost { namespace fusion
+{
+ struct vector_iterator_tag;
+ struct random_access_traversal_tag;
+
+ template <typename VecRef, int N>
+ struct vector_iterator
+ : iterator_base<vector_iterator<VecRef, N> >
+ {
+ typedef mpl::int_<N> index;
+ typedef VecRef vector;
+ typedef vector_iterator_tag fusion_tag;
+ typedef random_access_traversal_tag category;
+
+ template<typename OtherIt>
+ vector_iterator(OtherIt const& it)
+ : vec(it.vec)
+ {}
+
+ vector_iterator(VecRef vec, int)
+ : vec(&vec)
+ {}
+
+ template<typename OtherIt>
+ vector_iterator&
+ operator=(OtherIt const& it)
+ {
+ vec=it.vec;
+ return *this;
+ }
+
+ typename detail::remove_reference<VecRef>::type* vec;
+ };
+}}
+
+#endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -154,21 +154,22 @@
     };
 }}
 #else
+# include <boost/fusion/container/vector/vector_fwd.hpp>
 # include <boost/fusion/support/ref.hpp>
-# include <boost/fusion/container/vector/vector_iterator.hpp>
 
 # include <boost/fusion/container/vector/detail/at_impl.hpp>
 # include <boost/fusion/container/vector/detail/value_at_impl.hpp>
+
+# include <boost/fusion/container/vector/detail/vector_iterator.hpp>
 # include <boost/fusion/container/vector/detail/begin_impl.hpp>
 # include <boost/fusion/container/vector/detail/end_impl.hpp>
-
-namespace boost { namespace fusion {
-
-struct vector_tag;
-struct fusion_sequence_tag;
-struct random_access_traversal_tag;
-
-}}
+# include <boost/fusion/container/vector/detail/deref_impl.hpp>
+# include <boost/fusion/container/vector/detail/value_of_impl.hpp>
+# include <boost/fusion/container/vector/detail/next_impl.hpp>
+# include <boost/fusion/container/vector/detail/prior_impl.hpp>
+# include <boost/fusion/container/vector/detail/equal_to_impl.hpp>
+# include <boost/fusion/container/vector/detail/distance_impl.hpp>
+# include <boost/fusion/container/vector/detail/advance_impl.hpp>
 
 # include <boost/fusion/container/vector/detail/variadic_templates/vector_impl.hpp>
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector10.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector10.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector10.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,6 +11,7 @@
 #include <boost/config.hpp>
 
 #if defined(BOOST_NO_VARIADIC_TEMPLATES) || !defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
+//TODO!!!
 #ifndef BOOST_NO_VARIADIC_TEMPLATES
 # include <boost/fusion/container/vector/vector.hpp>
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_fwd.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -14,6 +14,8 @@
 
 namespace boost { namespace fusion
 {
+ struct vector_tag;
+
     VARIADIC_TEMPLATE_WITH_DEFAULT(FUSION_MAX_VECTOR_SIZE)
     struct vector;
 }}

Deleted: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_iterator.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
+++ (empty file)
@@ -1,72 +0,0 @@
-/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_CONTAINER_VECTOR_VECTOR_ITERATOR_HPP
-#define BOOST_FUSION_CONTAINER_VECTOR_VECTOR_ITERATOR_HPP
-
-//TODO cschmidt: move in detail
-
-#include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/container/vector/detail/deref_impl.hpp>
-#include <boost/fusion/container/vector/detail/value_of_impl.hpp>
-#include <boost/fusion/container/vector/detail/next_impl.hpp>
-#include <boost/fusion/container/vector/detail/prior_impl.hpp>
-#include <boost/fusion/container/vector/detail/equal_to_impl.hpp>
-#include <boost/fusion/container/vector/detail/distance_impl.hpp>
-#include <boost/fusion/container/vector/detail/advance_impl.hpp>
-
-#include <boost/type_traits/remove_const.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/mpl/int.hpp>
-
-namespace boost { namespace fusion
-{
- struct vector_iterator_tag;
- struct random_access_traversal_tag;
-
- //TODO needed?
- template <typename Vector, int N>
- struct vector_iterator_identity;
-
- //TODO VecRef!
- template <typename Vector, int N>
- struct vector_iterator
- : iterator_base<vector_iterator<Vector, N> >
- {
- typedef mpl::int_<N> index;
- typedef Vector vector;
- typedef vector_iterator_tag fusion_tag;
- typedef random_access_traversal_tag category;
- typedef
- vector_iterator_identity<
- typename detail::identity<Vector>::type
- , N
- >
- identity;
-
- template<typename OtherVecIt>
- vector_iterator(OtherVecIt const& it)
- : vec(it.vec)
- {}
-
- vector_iterator(Vector vec, int)
- : vec(&vec)
- {}
-
- template<typename OtherVecIt>
- vector_iterator&
- operator=(OtherVecIt const& it)
- {
- vec=it.vec;
- return *this;
- }
-
- typename detail::remove_reference<Vector>::type* vec;
- };
-}}
-
-#endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/access.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/access.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/access.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,7 +11,7 @@
 
 namespace boost { namespace fusion { namespace detail
 {
- // const reference deduction for function templates that accept T const &
+ // const reference deduction for function templates that accept T const&
     template <typename T> struct cref { typedef T const& type; };
     template <typename T> struct cref<T&> { typedef T const& type; };
     template <typename T> struct cref<T const> { typedef T const& type; };
@@ -21,7 +21,7 @@
     template <typename T> struct mref<T&> { typedef T & type; };
 
     // generic reference deduction for function templates that are overloaded
- // to accept both T const & and T &
+ // to accept both T const& and T &
     template <typename T> struct gref { typedef T const& type; };
     template <typename T> struct gref<T&> { typedef T & type; };
     template <typename T> struct gref<T const> { typedef T const& type; };

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -36,14 +36,14 @@
 
         template <class Seq>
         inline typename result_of::invoke<func_const_fwd_t,Seq const>::type
- operator()(Seq const & s) const
+ operator()(Seq const& s) const
         {
             return fusion::invoke<func_const_fwd_t>(this->fnc_transformed,s);
         }
 
         template <class Seq>
         inline typename result_of::invoke<func_fwd_t,Seq const>::type
- operator()(Seq const & s)
+ operator()(Seq const& s)
         {
             return fusion::invoke<func_fwd_t>(this->fnc_transformed,s);
         }

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_function_object.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_function_object.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_function_object.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -36,7 +36,7 @@
 
         template <class Seq>
         inline typename result_of::invoke_function_object<func_const_fwd_t,
- Seq const>::type operator()(Seq const & s) const
+ Seq const>::type operator()(Seq const& s) const
         {
           return fusion::invoke_function_object<
               func_const_fwd_t >(this->fnc_transformed,s);
@@ -45,7 +45,7 @@
         template <class Seq>
         inline typename result_of::invoke_function_object<func_fwd_t,
             Seq const>::type
- operator()(Seq const & s)
+ operator()(Seq const& s)
         {
           return fusion::invoke_function_object<
               func_fwd_t >(this->fnc_transformed,s);

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_procedure.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_procedure.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_procedure.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -35,14 +35,14 @@
         { }
 
         template <class Seq>
- inline void operator()(Seq const & s) const
+ inline void operator()(Seq const& s) const
         {
             fusion::invoke_procedure<
                 func_const_fwd_t >(this->fnc_transformed,s);
         }
 
         template <class Seq>
- inline void operator()(Seq const & s)
+ inline void operator()(Seq const& s)
         {
             fusion::invoke_procedure<
                 func_fwd_t >(this->fnc_transformed,s);

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -45,7 +45,7 @@
         { }
 
         typedef typename boost::result_of<
- function_c(fusion::vector0<> &) >::type call_const_0_result;
+ function_c(fusion::vector0<>&) >::type call_const_0_result;
 
         inline call_const_0_result operator()() const
         {
@@ -54,7 +54,7 @@
         }
 
         typedef typename boost::result_of<
- function(fusion::vector0<> &) >::type call_0_result;
+ function(fusion::vector0<>&) >::type call_0_result;
 
         inline call_0_result operator()()
         {
@@ -114,19 +114,19 @@
         struct result< Self const (BOOST_PP_ENUM_PARAMS(N,T)) >
             : boost::result_of< function_c(
                 BOOST_PP_CAT(fusion::vector,N)< BOOST_PP_ENUM_BINARY_PARAMS(N,
- typename detail::mref<T,>::type BOOST_PP_INTERCEPT) > & )>
+ typename detail::mref<T,>::type BOOST_PP_INTERCEPT) >& )>
         { };
 
         template <class Self, BOOST_PP_ENUM_PARAMS(N,typename T)>
         struct result< Self(BOOST_PP_ENUM_PARAMS(N,T)) >
             : boost::result_of< function(
                 BOOST_PP_CAT(fusion::vector,N)< BOOST_PP_ENUM_BINARY_PARAMS(N,
- typename detail::mref<T,>::type BOOST_PP_INTERCEPT) > & )>
+ typename detail::mref<T,>::type BOOST_PP_INTERCEPT) >& )>
         { };
 
         template <BOOST_PP_ENUM_PARAMS(N,typename T)>
         inline typename boost::result_of<function_c(BOOST_PP_CAT(fusion::vector,N)
- <BOOST_PP_ENUM_BINARY_PARAMS(N,T,& BOOST_PP_INTERCEPT)> & )>::type
+ <BOOST_PP_ENUM_BINARY_PARAMS(N,T,& BOOST_PP_INTERCEPT)>& )>::type
         operator()(BOOST_PP_ENUM_BINARY_PARAMS(N,T,& a)) const
         {
             BOOST_PP_CAT(fusion::vector,N)<
@@ -137,7 +137,7 @@
 
         template <BOOST_PP_ENUM_PARAMS(N,typename T)>
         inline typename boost::result_of<function(BOOST_PP_CAT(fusion::vector,N)
- <BOOST_PP_ENUM_BINARY_PARAMS(N,T,& BOOST_PP_INTERCEPT)> & )>::type
+ <BOOST_PP_ENUM_BINARY_PARAMS(N,T,& BOOST_PP_INTERCEPT)>& )>::type
         operator()(BOOST_PP_ENUM_BINARY_PARAMS(N,T,& a))
         {
             BOOST_PP_CAT(fusion::vector,N)<

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -32,7 +32,7 @@
 
     template <typename F>
     inline typename result_of::BOOST_FUSION_FUNC_NAME<F>::type
- BOOST_FUSION_FUNC_NAME(F const & f)
+ BOOST_FUSION_FUNC_NAME(F const& f)
     {
         return typename result_of::BOOST_FUSION_FUNC_NAME<F>::type(f);
     }

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -63,7 +63,7 @@
 
     template <typename Function, class Sequence>
     inline typename result_of::invoke<Function, Sequence const>::type
- invoke(Function, Sequence const &);
+ invoke(Function, Sequence const&);
 
     //----- ---- --- -- - - - -
 
@@ -171,7 +171,7 @@
 
     template <typename Function, class Sequence>
     inline typename result_of::invoke<Function,Sequence const>::type
- invoke(Function f, Sequence const & s)
+ invoke(Function f, Sequence const& s)
     {
         return detail::invoke_impl<
                 typename boost::remove_reference<Function>::type,Sequence const

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_function_object.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_function_object.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_function_object.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -45,7 +45,7 @@
 
     template <class Function, class Sequence>
     inline typename result_of::invoke_function_object<Function, Sequence const
- >::type invoke_function_object(Function, Sequence const &);
+ >::type invoke_function_object(Function, Sequence const&);
 
     //----- ---- --- -- - - - -
 
@@ -89,7 +89,7 @@
 
     template <class Function, class Sequence>
     inline typename result_of::invoke_function_object<Function,Sequence const>::type
- invoke_function_object(Function f, Sequence const & s)
+ invoke_function_object(Function f, Sequence const& s)
     {
         return detail::invoke_function_object_impl<
                 typename boost::remove_reference<Function>::type,Sequence const

Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_procedure.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_procedure.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_procedure.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -50,7 +50,7 @@
     inline void invoke_procedure(Function, Sequence &);
 
     template <typename Function, class Sequence>
- inline void invoke_procedure(Function, Sequence const &);
+ inline void invoke_procedure(Function, Sequence const&);
 
     //----- ---- --- -- - - - -
 
@@ -83,7 +83,7 @@
     }
 
     template <typename Function, class Sequence>
- inline void invoke_procedure(Function f, Sequence const & s)
+ inline void invoke_procedure(Function f, Sequence const& s)
     {
         detail::invoke_procedure_impl<
                 typename boost::remove_reference<Function>::type,Sequence const

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -27,26 +27,26 @@
         struct distance_impl
         {
             // default implementation
- template <typename First, typename Last>
+ template <typename FirstRef, typename LastRef>
             struct apply
- : distance_detail::linear_distance<First, Last>::type
+ : distance_detail::linear_distance<FirstRef, LastRef>
             {
- BOOST_FUSION_MPL_ASSERT_NOT(
- traits::is_random_access<First>,
+ /*BOOST_FUSION_MPL_ASSERT_NOT(
+ traits::is_random_access<FirstRef>,
       "default implementation not available for random access iterators");
                 BOOST_FUSION_MPL_ASSERT_NOT(
- traits::is_random_access<Last>,
- "default implementation not available for random access iterators");
+ traits::is_random_access<FirstRef>,
+ "default implementation not available for random access iterators");*/
             };
         };
 
         template <>
         struct distance_impl<iterator_facade_tag>
         {
- template <typename First, typename Last>
+ template <typename FirstRef, typename LastRef>
             struct apply
- : detail::remove_reference<First>::type::
- template distance<First, Last>::type
+ : detail::remove_reference<FirstRef>::type::
+ template distance<FirstRef, LastRef>
             {};
         };
     }

Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -46,32 +46,32 @@
                 template apply<
                     typename detail::add_lref<It1>::type
                   , typename detail::add_lref<It2>::type
- >
+ >::type
         {};
     }
 
     namespace iterator_operators
     {
- template <typename Iter1, typename Iter2>
+ template <typename It1, typename It2>
         inline typename
             enable_if<
- mpl::and_<is_fusion_iterator<Iter1>, is_fusion_iterator<Iter2> >
+ mpl::and_<is_fusion_iterator<It1>, is_fusion_iterator<It2> >
               , bool
- >::type
- operator==(Iter1 const&, Iter2 const&)
+ >::type
+ operator==(It1 const&, It2 const&)
         {
- return result_of::equal_to<Iter1 const&, Iter2 const&>::value;
+ return result_of::equal_to<It1 const&, It1 const&>::value;
         }
 
- template <typename Iter1, typename Iter2>
+ template <typename It1, typename It2>
         inline typename
- enable_if<
- mpl::and_<is_fusion_iterator<Iter1>, is_fusion_iterator<Iter2> >
- , bool
+ enable_if<
+ mpl::and_<is_fusion_iterator<It1>, is_fusion_iterator<It2> >
+ , bool
>::type
- operator!=(Iter1 const&, Iter2 const&)
+ operator!=(It1 const&, It1 const&)
         {
- return !result_of::equal_to<Iter1 const&, Iter2 const&>::value;
+ return !result_of::equal_to<It1 const&, It1 const&>::value;
         }
     }
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/deduce.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/deduce.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/deduce.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -1,102 +1,41 @@
-/*=============================================================================
- Copyright (c) 2007 Tobias Schwinger
-
- Use modification and distribution are subject to the Boost Software
- License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-==============================================================================*/
+// Copyright Christopher Schmidt 2009.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
 
 #ifndef BOOST_FUSION_SUPPORT_DEDUCE_HPP
 #define BOOST_FUSION_SUPPORT_DEDUCE_HPP
 
-#include <boost/ref.hpp>
+#include <boost/fusion/support/detail/as_fusion_element.hpp>
+
+#include <boost/config.hpp>
 
 namespace boost { namespace fusion { namespace traits
 {
- template <typename T> struct deduce;
-
- // Non-references pass unchanged
-
+ //TODO doc!
+#ifdef BOOST_NO_RVALUE_REFERENCES
     template <typename T>
     struct deduce
- {
- typedef T type;
- };
-
- template <typename T>
- struct deduce<T const>
- {
- typedef T type;
- };
-
- template <typename T>
- struct deduce<T volatile>
- {
- typedef T type;
- };
-
- template <typename T>
- struct deduce<T const volatile>
- {
- typedef T type;
- };
-
- // Keep references on mutable LValues
-
+ : detail::as_fusion_element<T>
+ {};
+#else
     template <typename T>
- struct deduce<T &>
- {
- typedef T & type;
- };
-
- template <typename T>
- struct deduce<T volatile&>
- {
- typedef T volatile& type;
- };
-
- // Store away potential RValues
-
- template <typename T>
- struct deduce<T const&>
- {
- typedef T type;
- };
-
- template <typename T>
- struct deduce<T const volatile&>
- {
- typedef T type;
- };
-
- // Unwrap Boost.RefS (referencee cv is deduced)
-
- template <typename T>
- struct deduce<reference_wrapper<T> & >
- {
- typedef T& type;
- };
-
- template <typename T>
- struct deduce<reference_wrapper<T> const & >
- {
- typedef T& type;
- };
-
- // Keep references on arrays, even if const
-
- template <typename T, int N>
- struct deduce<const T(&)[N]>
+ struct deduce
     {
- typedef const T(&type)[N];
- };
+ typedef typename detail::as_fusion_element<T>::type element;
 
- template <typename T, int N>
- struct deduce<const volatile T(&)[N]>
- {
- typedef const volatile T(&type)[N];
+ typedef typename
+ mpl::if_<
+ mpl::and_<
+ detail::is_lrref<T>
+ , is_same<typename detail::identity<T>::type,element>
+ >
+ , T
+ , element
+ >::type
+ type;
     };
-
+#endif
 }}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/deduce_sequence.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/deduce_sequence.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/deduce_sequence.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -24,18 +24,17 @@
             template <typename Sig>
             struct result;
 
- template <class Self, typename T>
- struct result< Self(T) >
- : fusion::traits::deduce<T>
- { };
+ template<typename T>
+ struct result<deducer(T)>
+ : fusion::traits::deduce<T>
+ {};
         };
     }
 
- template <class Sequence>
+ template <class Seq>
     struct deduce_sequence
- : result_of::as_vector<
- fusion::transform_view<Sequence, detail::deducer> >
- { };
+ : result_of::as_vector<fusion::transform_view<Seq, detail::deducer> >
+ {};
 
 }}}
 

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/detail/as_fusion_element.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/detail/as_fusion_element.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/detail/as_fusion_element.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -30,40 +30,40 @@
     template <typename T>\
     struct as_fusion_element<T COMBINATION>\
       : as_fusion_element<T>\
- {};
+ {};\
+ \
+ template <typename T>\
+ struct as_fusion_element<reference_wrapper<T> COMBINATION>\
+ {\
+ typedef T& type;\
+ };
 
     BOOST_FUSION_ALL_CV_REF_COMBINATIONS(CV_REF_SPECIALISATION,_)
 
 #undef CV_REF_SPECIALISATION
 
- template <typename T>
- struct as_fusion_element<reference_wrapper<T> >
- {
- typedef T& type;
- };
-
- template <typename T>
- struct as_fusion_element<reference_wrapper<T> const>
+ template <typename T, int N>
+ struct as_fusion_element<T(&)[N]>
     {
- typedef T& type;
+ typedef T(&type)[N];
     };
 
     template <typename T, int N>
- struct as_fusion_element<T[N]>
+ struct as_fusion_element<const T(&)[N]>
     {
- typedef const typename as_fusion_element<T>::type(&type)[N];
+ typedef const T(&type)[N];
     };
 
     template <typename T, int N>
- struct as_fusion_element<volatile T[N]>
+ struct as_fusion_element<volatile T(&)[N]>
     {
- typedef const volatile typename as_fusion_element<T>::type(&type)[N];
+ typedef volatile T(&type)[N];
     };
 
     template <typename T, int N>
- struct as_fusion_element<const volatile T[N]>
+ struct as_fusion_element<volatile const T(&)[N]>
     {
- typedef const volatile typename as_fusion_element<T>::type(&type)[N];
+ typedef volatile const T(&type)[N];
     };
 
     template <typename T>

Deleted: sandbox/SOC/2009/fusion/boost/fusion/support/detail/is_mpl_sequence.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/detail/is_mpl_sequence.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
+++ (empty file)
@@ -1,36 +0,0 @@
-/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
- Copyright (c) 2005-2006 Dan Marsden
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_SUPPORT_DETAIL_IS_MPL_SEQUENCE_HPP
-#define BOOST_FUSION_SUPPORT_DETAIL_IS_MPL_SEQUENCE_HPP
-
-#include <boost/fusion/support/sequence_base.hpp>
-#include <boost/fusion/support/ref.hpp>
-
-#include <boost/mpl/is_sequence.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/type_traits/is_base_of.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
- template <typename T>
- struct is_mpl_sequence
- : mpl::and_<
- mpl::not_<
- is_base_of<
- sequence_root
- , typename identity<T>::type
- >
- >
- , mpl::is_sequence<typename identity<T>::type>
- >
- {};
-}}}
-
-#endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/advance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/advance_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/advance_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,45 +8,37 @@
 
 #include <boost/fusion/iterator/advance.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- template<typename It, typename NewCategory>
- struct iterator_adapter;
+ template <typename Tag>
+ struct advance_impl;
 
- struct iterator_adapter_tag;
-
- namespace extension
+ template <>
+ struct advance_impl<iterator_adapter_tag>
     {
- template <typename Tag>
- struct advance_impl;
-
- template <>
- struct advance_impl<iterator_adapter_tag>
+ template <typename ItRef, typename N>
+ struct apply
         {
- template <typename ItRef, typename N>
- struct apply
- {
- //TODO cschmidt: category assert
- typedef typename detail::remove_reference<ItRef>::type it;
+ //TODO cschmidt: category assert
+ typedef typename detail::remove_reference<ItRef>::type it;
 
- typedef
- iterator_adapter<
- typename result_of::advance<
- typename it::iterator_type
- , N
- >::type
- , typename it::category
- >
- type;
-
- static type
- call(ItRef it)
- {
- return type(fusion::advance<N>(it.it),0);
- }
- };
+ typedef
+ iterator_adapter<
+ typename result_of::advance<
+ typename it::iterator_type
+ , N
+ >::type
+ , typename it::category
+ >
+ type;
+
+ static type
+ call(ItRef it)
+ {
+ return type(fusion::advance<N>(it.it),0);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/deref_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,40 +10,32 @@
 
 //TODO seq_type -> sequence_type
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- template<typename It, typename NewCategory>
- struct iterator_adapter;
+ template <typename Tag>
+ struct deref_impl;
 
- struct iterator_adapter_tag;
-
- namespace extension
+ template <>
+ struct deref_impl<iterator_adapter_tag>
     {
- template <typename Tag>
- struct deref_impl;
-
- template <>
- struct deref_impl<iterator_adapter_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef typename
- result_of::deref<
- typename detail::remove_reference<
- ItRef
- >::type::iterator_type
- >::type
- type;
+ typedef typename
+ result_of::deref<
+ typename detail::remove_reference<
+ ItRef
+ >::type::iterator_type
+ >::type
+ type;
 
- static type
- call(ItRef it)
- {
- return fusion::deref(it.it);
- }
- };
+ static type
+ call(ItRef it)
+ {
+ return fusion::deref(it.it);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/distance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/distance_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/distance_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,35 +8,30 @@
 
 #include <boost/fusion/iterator/distance.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct iterator_adapter_tag;
+ template <typename Tag>
+ struct distance_impl;
 
- namespace extension
+ template <>
+ struct distance_impl<iterator_adapter_tag>
     {
- template <typename Tag>
- struct distance_impl;
-
- template <>
- struct distance_impl<iterator_adapter_tag>
+ template <typename It1Ref, typename It2Ref>
+ struct apply
         {
- template <typename It1Ref, typename It2Ref>
- struct apply
- {
- //TODO cschmidt: category assert
- typedef typename
- result_of::distance<
- typename detail::remove_reference<
- It1Ref
- >::type::iterator_type
- , typename detail::remove_reference<
- It2Ref
- >::type::iterator_type
- >::type
- type;
- };
+ //TODO cschmidt: category assert
+ typedef typename
+ result_of::distance<
+ typename detail::remove_reference<
+ It1Ref
+ >::type::iterator_type
+ , typename detail::remove_reference<
+ It2Ref
+ >::type::iterator_type
+ >::type
+ type;
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/equal_to_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/equal_to_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,32 +8,27 @@
 
 #include <boost/fusion/iterator/equal_to.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct iterator_adapter_tag;
+ template <typename Tag>
+ struct equal_to_impl;
 
- namespace extension
+ template <>
+ struct equal_to_impl<iterator_adapter_tag>
     {
- template <typename Tag>
- struct equal_to_impl;
-
- template <>
- struct equal_to_impl<iterator_adapter_tag>
+ template <typename It1Ref, typename It2Ref>
+ struct apply
+ : result_of::equal_to<
+ typename detail::remove_reference<
+ It1Ref
+ >::type::iterator_type
+ , typename detail::remove_reference<
+ It2Ref
+ >::type::iterator_type
+ >
         {
- template <typename It1Ref, typename It2Ref>
- struct apply
- : result_of::equal_to<
- typename detail::remove_reference<
- It1Ref
- >::type::iterator_type
- , typename detail::remove_reference<
- It2Ref
- >::type::iterator_type
- >
- {
- };
         };
- }
-}}
+ };
+}}}
 
 #endif

Added: sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/iterator_adapter_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/iterator_adapter_fwd.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,17 @@
+// Copyright Christopher Schmidt 2009.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_FUSION_SUPPORT_DETAIL_ITERATOR_ADAPTER_ITERATOR_ADAPTER_FWD_HPP
+#define BOOST_FUSION_SUPPORT_DETAIL_ITERATOR_ADAPTER_ITERATOR_ADAPTER_FWD_HPP
+
+namespace boost { namespace fusion
+{
+ struct iterator_adapter_tag;
+
+ template<typename It, typename NewCategory>
+ struct iterator_adapter;
+}}
+
+#endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/next_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/next_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,45 +8,37 @@
 
 #include <boost/fusion/iterator/next.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- template<typename It, typename NewCategory>
- struct iterator_adapter;
+ template <typename Tag>
+ struct next_impl;
 
- struct iterator_adapter_tag;
-
- namespace extension
+ template <>
+ struct next_impl<iterator_adapter_tag>
     {
- template <typename Tag>
- struct next_impl;
-
- template <>
- struct next_impl<iterator_adapter_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
+ typedef typename
+ detail::remove_reference<ItRef>::type
+ it;
+
+ typedef
+ iterator_adapter<
+ typename result_of::next<
+ typename it::iterator_type
+ >::type
+ , typename it::category
+ >
+ type;
+
+ static type
+ call(ItRef it)
             {
- typedef typename
- detail::remove_reference<ItRef>::type
- it;
-
- typedef
- iterator_adapter<
- typename result_of::next<
- typename it::iterator_type
- >::type
- , typename it::category
- >
- type;
-
- static type
- call(ItRef it)
- {
- return type(fusion::next(it.it),0);
- }
- };
+ return type(fusion::next(it.it),0);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/prior_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/prior_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/prior_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,45 +8,37 @@
 
 #include <boost/fusion/iterator/prior.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- template<typename It, typename NewCategory>
- struct iterator_adapter;
+ template <typename Tag>
+ struct prior_impl;
 
- struct iterator_adapter_tag;
-
- namespace extension
+ template <>
+ struct prior_impl<iterator_adapter_tag>
     {
- template <typename Tag>
- struct prior_impl;
-
- template <>
- struct prior_impl<iterator_adapter_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
+ typedef typename
+ detail::remove_reference<ItRef>::type
+ it;
+
+ typedef
+ iterator_adapter<
+ typename result_of::prior<
+ typename it::iterator_type
+ >::type
+ , typename it::category
+ >
+ type;
+
+ static type
+ call(ItRef it)
             {
- typedef typename
- detail::remove_reference<ItRef>::type
- it;
-
- typedef
- iterator_adapter<
- typename result_of::prior<
- typename it::iterator_type
- >::type
- , typename it::category
- >
- type;
-
- static type
- call(ItRef it)
- {
- return type(fusion::prior(it.it),0);
- }
- };
+ return type(fusion::prior(it.it),0);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/value_of_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,32 +8,23 @@
 
 #include <boost/fusion/iterator/value_of.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- template<typename It, typename NewCategory>
- struct iterator_adapter;
+ template <typename Tag>
+ struct value_of_impl;
 
- struct iterator_adapter_tag;
-
- namespace extension
+ template <>
+ struct value_of_impl<iterator_adapter_tag>
     {
- template <typename Tag>
- struct value_of_impl;
-
- template <>
- struct value_of_impl<iterator_adapter_tag>
- {
- template <typename ItRef>
- struct apply
- : result_of::value_of<
- typename detail::remove_reference<
- ItRef
- >::type::iterator_type
- >
- {
- };
- };
- }
-}}
+ template <typename ItRef>
+ struct apply
+ : result_of::value_of<
+ typename detail::remove_reference<
+ ItRef
+ >::type::iterator_type
+ >
+ {};
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/is_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/is_iterator.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/is_iterator.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -18,7 +18,7 @@
 
     template <typename T>
     struct is_fusion_iterator
- : is_base_of<iterator_root, typename detail::remove_reference<T>::type>
+ : is_base_of<iterator_root, typename detail::identity<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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,24 +8,24 @@
 #ifndef BOOST_FUSION_SUPPORT_IS_SEQUENCE_HPP
 #define BOOST_FUSION_SUPPORT_IS_SEQUENCE_HPP
 
-#include <boost/fusion/support/sequence_base.hpp>
+#include <boost/fusion/support/is_view.hpp>
 #include <boost/fusion/support/tag_of.hpp>
 #include <boost/fusion/support/ref.hpp>
 
-#include <boost/type_traits/is_base_of.hpp>
+#include <boost/mpl/not.hpp>
 
 namespace boost { namespace fusion
 {
     namespace extension
     {
- template <typename T>
+ template <typename Tag>
         struct is_sequence_impl
         {
- template <typename Seq>
+ template <typename SeqRef>
             struct apply
               : is_base_of<
                     sequence_root
- , typename detail::remove_reference<Seq>::type
+ , typename detail::identity<SeqRef>::type
>
             {};
         };
@@ -36,7 +36,7 @@
         template <typename T>
         struct is_sequence
           : extension::is_sequence_impl<typename traits::tag_of<T>::type>::
- template apply<T>
+ template apply<typename detail::add_lref<T>::type>
         {};
     }
 }}

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/is_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/is_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/is_view.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -13,9 +13,6 @@
 
 namespace boost { namespace fusion
 {
- // Special tags:
- struct sequence_facade_tag;
-
     namespace extension
     {
         template<typename Tag>
@@ -26,17 +23,6 @@
               : detail::remove_reference<SeqRef>::type::is_view
             {};
         };
-
- /*
- template <>
- struct is_view_impl<sequence_facade_tag>
- {
- template <typename SeqRef>
- struct apply
- : detail::remove_reference<SeqRef>::type::is_view
- {};
- };
- */
     }
 
     namespace traits

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/iterator_adapter.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/iterator_adapter.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/iterator_adapter.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,6 +9,7 @@
 #include <boost/fusion/support/ref.hpp>
 #include <boost/fusion/support/iterator_base.hpp>
 
+#include <boost/fusion/support/detail/iterator_adapter/iterator_adapter_fwd.hpp>
 #include <boost/fusion/support/detail/iterator_adapter/deref_impl.hpp>
 #include <boost/fusion/support/detail/iterator_adapter/value_of_impl.hpp>
 #include <boost/fusion/support/detail/iterator_adapter/next_impl.hpp>

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/ref.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/ref.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/ref.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -24,8 +24,10 @@
 #include <boost/type_traits/is_class.hpp>
 #include <boost/type_traits/is_array.hpp>
 #include <boost/type_traits/is_const.hpp>
+#include <boost/type_traits/is_volatile.hpp>
 #include <boost/type_traits/is_reference.hpp>
 #include <boost/type_traits/add_const.hpp>
+#include <boost/type_traits/add_volatile.hpp>
 #include <boost/type_traits/remove_const.hpp>
 #include <boost/type_traits/remove_cv.hpp>
 
@@ -166,29 +168,26 @@
         typedef typename boost::remove_cv<T>::type const& type;
     };
 
- //TODO cschmidt: volatile support
-#ifdef BOOST_NO_RVALUE_REFERENCES
- template <typename,typename Type>
- struct result_of_forward_as
- {
- typedef typename
- mpl::if_<is_const<typename remove_reference<TestType>::type>
- , typename add_const<Type>::type
- , Type
- >::type&
- type;
- };
-#else
     template <typename TestType,typename Type>
- struct result_of_forward_as
+ struct forward_as
     {
         typedef typename
             mpl::if_<is_const<typename remove_reference<TestType>::type>
                    , typename add_const<Type>::type
                    , Type
>::type
+ const_type;
+
+ typedef typename
+ mpl::if_<is_volatile<typename remove_reference<TestType>::type>
+ , typename add_volatile<const_type>::type
+ , const_type
+ >::type
         real_type;
 
+#ifdef BOOST_NO_RVALUE_REFERENCES
+ typedef real_type& type;
+#else
         typedef typename
             mpl::eval_if<
                 //8.5.3p5...
@@ -206,36 +205,8 @@
                 mpl::identity<real_type>
>::type
         type;
- };
-
- /*template <typename TestType,typename Type>
- typename result_of_forward_as<TestType,Type>::type
- forward_as(typename mpl::identity<Type>::type&& type)
- {
- return type;
- }
-
- template <typename TestType,typename Type>
- typename result_of_forward_as<TestType,Type const&&>::type
- forward_as(typename mpl::identity<Type>::type const&& type)
- {
- return type;
- }
-
- template <typename TestType,typename Type>
- typename result_of_forward_as<TestType,Type volatile&&>::type
- forward_as(typename mpl::identity<Type>::type volatile&& type)
- {
- return type;
- }
-
- template <typename TestType,typename Type>
- typename result_of_forward_as<TestType,Type const volatile&&>::type
- forward_as(typename mpl::identity<Type>::type const volatile&& type)
- {
- return type;
- }*/
 #endif
+ };
 }}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,15 +9,19 @@
 #define BOOST_FUSION_SUPPORT_TAG_OF_HPP
 
 #include <boost/fusion/support/tag_of_fwd.hpp>
-#include <boost/fusion/support/detail/is_mpl_sequence.hpp>
 #include <boost/fusion/support/ref.hpp>
 
+#include <boost/mpl/is_sequence.hpp>
 #include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/if.hpp>
 #include <boost/mpl/has_xxx.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/mpl/not.hpp>
+#include <boost/type_traits/is_base_of.hpp>
 
 namespace boost { namespace fusion
 {
+ struct sequence_root;
     struct mpl_sequence_tag;
     struct mpl_iterator_tag;
 
@@ -30,6 +34,14 @@
         {
             typedef typename Seq::fusion_tag type;
         };
+
+ template <typename Seq>
+ struct is_mpl_sequence
+ : mpl::and_<
+ mpl::not_<is_base_of<sequence_root, Seq> >
+ , mpl::is_sequence<Seq>
+ >
+ {};
     }
 
     namespace traits

Modified: sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_tie.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_tie.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -6,9 +6,10 @@
 #ifndef BOOST_FUSION_TUPLE_TUPLE_TIE_HPP
 #define BOOST_FUSION_TUPLE_TUPLE_TIE_HPP
 
-#include <boost/config.hpp>
 #include <boost/fusion/container/generation/ignore.hpp>
 
+#include <boost/config.hpp>
+
 #ifdef BOOST_NO_VARIADIC_TEMPLATES
 # include <boost/fusion/tuple/detail/pp/tuple_tie.hpp>
 #else

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,6 +9,5 @@
 #define BOOST_FUSION_VIEW_FILTER_VIEW_HPP
 
 #include <boost/fusion/view/filter_view/filter_view.hpp>
-#include <boost/fusion/view/filter_view/filter_view_iterator.hpp>
 
 #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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,42 +11,34 @@
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct filter_view_tag;
+ template <typename Tag>
+ struct begin_impl;
 
- template <typename First, typename Last, typename Pred>
- struct filter_iterator;
-
- namespace extension
+ template <>
+ struct begin_impl<filter_view_tag>
     {
- template <typename Tag>
- struct begin_impl;
-
- template <>
- struct begin_impl<filter_view_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef typename detail::remove_reference<SeqRef>::type seq;
+ typedef typename detail::remove_reference<SeqRef>::type seq;
 
- typedef
- filter_iterator<
- typename result_of::begin<typename seq::seq_type>::type
- , typename result_of::end<typename seq::seq_type>::type
- , typename seq::pred_type
- >
- type;
+ typedef
+ filter_iterator<
+ typename result_of::begin<typename seq::seq_type>::type
+ , typename result_of::end<typename seq::seq_type>::type
+ , typename seq::pred_type
+ >
+ type;
 
- static type
- call(SeqRef seq)
- {
- return type(fusion::begin(seq.seq.get()),0);
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return type(fusion::begin(seq.seq.get()),0);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,36 +10,31 @@
 
 #include <boost/fusion/iterator/deref.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct filter_view_iterator_tag;
+ template <typename Tag>
+ struct deref_impl;
 
- namespace extension
+ template <>
+ struct deref_impl<filter_view_iterator_tag>
     {
- template <typename Tag>
- struct deref_impl;
-
- template <>
- struct deref_impl<filter_view_iterator_tag>
+ template<typename ItRef>
+ struct apply
         {
- template<typename ItRef>
- struct apply
- {
- typedef typename
- result_of::deref<
- typename detail::remove_reference<
- ItRef
- >::type::first_type
- >::type
- type;
+ typedef typename
+ result_of::deref<
+ typename detail::remove_reference<
+ ItRef
+ >::type::first_type
+ >::type
+ type;
 
- static type call(ItRef it)
- {
- return fusion::deref(it.first);
- }
- };
+ static type call(ItRef it)
+ {
+ return fusion::deref(it.first);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,42 +10,34 @@
 
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct filter_view_tag;
+ template <typename Tag>
+ struct end_impl;
 
- template <typename First, typename Last, typename Pred>
- struct filter_iterator;
-
- namespace extension
+ template <>
+ struct end_impl<filter_view_tag>
     {
- template <typename Tag>
- struct end_impl;
-
- template <>
- struct end_impl<filter_view_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef typename detail::remove_reference<SeqRef>::type seq;
+ typedef typename detail::remove_reference<SeqRef>::type seq;
 
- typedef
- filter_iterator<
- typename result_of::end<typename seq::seq_type>::type
- , typename result_of::end<typename seq::seq_type>::type
- , typename seq::pred_type
- >
- type;
-
- static type
- call(SeqRef seq)
- {
- return type(fusion::end(seq.seq.get()),0);
- }
- };
+ typedef
+ filter_iterator<
+ typename result_of::end<typename seq::seq_type>::type
+ , typename result_of::end<typename seq::seq_type>::type
+ , typename seq::pred_type
+ >
+ type;
+
+ static type
+ call(SeqRef seq)
+ {
+ return type(fusion::end(seq.seq.get()),0);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/equal_to_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/equal_to_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,27 +9,22 @@
 #ifndef BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_EQUAL_TO_IMPL_HPP
 #define BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_EQUAL_TO_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct filter_view_iterator_tag;
+ template<typename Tag>
+ struct equal_to_impl;
 
- namespace extension
+ template<>
+ struct equal_to_impl<filter_view_iterator_tag>
     {
- template<typename Tag>
- struct equal_to_impl;
-
- template<>
- struct equal_to_impl<filter_view_iterator_tag>
- {
- template<typename It1Ref, typename It2Ref>
- struct apply
- : result_of::equal_to<
- typename detail::remove_reference<It1Ref>::type::first_type
- , typename detail::remove_reference<It2Ref>::type::first_type
- >
- {};
- };
- }
-}}
+ template<typename It1Ref, typename It2Ref>
+ struct apply
+ : result_of::equal_to<
+ typename detail::remove_reference<It1Ref>::type::first_type
+ , typename detail::remove_reference<It2Ref>::type::first_type
+ >
+ {};
+ };
+}}}
 
 #endif

Added: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_fwd.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,14 @@
+// Copyright Christopher Schmidt 2009.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_FILTER_VIEW_FWD_HPP
+#define BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_FILTER_VIEW_FWD_HPP
+
+namespace boost { namespace fusion
+{
+ struct filter_view_tag;
+}}
+
+#endif

Added: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_iterator.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_iterator.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,51 @@
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_FILTER_VIEW_ITERATOR_HPP
+#define BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_FILTER_VIEW_ITERATOR_HPP
+
+#include <boost/fusion/support/iterator_base.hpp>
+#include <boost/fusion/algorithm/query/detail/find_if.hpp>
+
+namespace boost { namespace fusion
+{
+ struct filter_view_iterator_tag;
+ struct forward_traversal_tag;
+
+ template <typename First, typename Last, typename Pred>
+ struct filter_iterator
+ : iterator_base<filter_iterator<First, Last, Pred> >
+ {
+ typedef filter_view_iterator_tag fusion_tag;
+ typedef forward_traversal_tag category;
+ typedef detail::static_find_if<First, Last, Pred> filter;
+ typedef typename filter::type first_type;
+ typedef Last last_type;
+ typedef Pred pred_type;
+
+ template<typename OtherIt>
+ filter_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+ : first(BOOST_FUSION_FORWARD(OtherIt,it).first)
+ {}
+
+ filter_iterator(First const& first,int)
+ : first(filter::call(first))
+ {}
+
+ template<typename OtherIt>
+ filter_iterator&
+ operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+ {
+ first=BOOST_FUSION_FORWARD(OtherIt,it).first;
+ return *this;
+ }
+
+ first_type first;
+ };
+}}
+
+#endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -13,49 +13,41 @@
 #include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/identity.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct filter_view_iterator_tag;
+ template <typename Tag>
+ struct next_impl;
 
- template <typename First, typename Last, typename Pred>
- struct filter_iterator;
-
- namespace extension
+ template <>
+ struct next_impl<filter_view_iterator_tag>
     {
- template <typename Tag>
- struct next_impl;
-
- template <>
- struct next_impl<filter_view_iterator_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef typename detail::remove_reference<ItRef>::type it;
- typedef typename
- detail::static_find_if<
- typename result_of::next<typename it::first_type>::type
- , typename it::last_type
- , typename it::pred_type
- >
- filter;
+ typedef typename detail::remove_reference<ItRef>::type it;
+ typedef typename
+ detail::static_find_if<
+ typename result_of::next<typename it::first_type>::type
+ , typename it::last_type
+ , typename it::pred_type
+ >
+ filter;
+
+ typedef
+ filter_iterator<
+ typename filter::type
+ , typename it::last_type
+ , typename it::pred_type
+ >
+ type;
 
- typedef
- filter_iterator<
- typename filter::type
- , typename it::last_type
- , typename it::pred_type
- >
- type;
-
- static type
- call(ItRef it)
- {
- return type(filter::call(it.first),0);
- }
- };
+ static type
+ call(ItRef it)
+ {
+ return type(filter::call(it.first),0);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,27 +12,22 @@
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct filter_view_tag;
+ template <typename Tag>
+ struct size_impl;
 
- namespace extension
+ template <>
+ struct size_impl<filter_view_tag>
     {
- template <typename Tag>
- struct size_impl;
-
- template <>
- struct size_impl<filter_view_tag>
- {
- template <typename SeqRef>
- struct apply
- : result_of::distance<
- typename result_of::begin<SeqRef>::type
- , typename result_of::end<SeqRef>::type
- >
- {};
- };
- }
-}}
+ template <typename SeqRef>
+ struct apply
+ : result_of::distance<
+ typename result_of::begin<SeqRef>::type
+ , typename result_of::end<SeqRef>::type
+ >
+ {};
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,27 +10,21 @@
 
 #include <boost/fusion/iterator/value_of.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct filter_view_iterator_tag;
+ template <typename Tag>
+ struct value_of_impl;
 
- namespace extension
+ template <>
+ struct value_of_impl<filter_view_iterator_tag>
     {
- template <typename Tag>
- struct value_of_impl;
-
- template <>
- struct value_of_impl<filter_view_iterator_tag>
- {
- template <typename ItRef>
- struct apply
- : result_of::value_of<
- typename detail::remove_reference<ItRef>::type::first_type
- >
- {
- };
- };
- }
-}}
+ template <typename ItRef>
+ struct apply
+ : result_of::value_of<
+ typename detail::remove_reference<ItRef>::type::first_type
+ >
+ {};
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -17,14 +17,19 @@
 
 #include <boost/mpl/bool.hpp>
 
-#include <boost/fusion/view/filter_view/filter_view_iterator.hpp>
+#include <boost/fusion/view/filter_view/detail/filter_view_fwd.hpp>
+#include <boost/fusion/view/filter_view/detail/size_impl.hpp>
+
+#include <boost/fusion/view/filter_view/detail/filter_view_iterator.hpp>
 #include <boost/fusion/view/filter_view/detail/begin_impl.hpp>
 #include <boost/fusion/view/filter_view/detail/end_impl.hpp>
-#include <boost/fusion/view/filter_view/detail/size_impl.hpp>
+#include <boost/fusion/view/filter_view/detail/deref_impl.hpp>
+#include <boost/fusion/view/filter_view/detail/next_impl.hpp>
+#include <boost/fusion/view/filter_view/detail/value_of_impl.hpp>
+#include <boost/fusion/view/filter_view/detail/equal_to_impl.hpp>
 
 namespace boost { namespace fusion
 {
- struct filter_view_tag;
     struct forward_traversal_tag;
     struct fusion_sequence_tag;
 

Deleted: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view_iterator.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
+++ (empty file)
@@ -1,57 +0,0 @@
-/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_VIEW_FILTER_VIEW_FILTER_VIEW_ITERATOR_HPP
-#define BOOST_FUSION_VIEW_FILTER_VIEW_FILTER_VIEW_ITERATOR_HPP
-
-#include <boost/fusion/support/ref.hpp>
-
-#include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/view/filter_view/detail/deref_impl.hpp>
-#include <boost/fusion/view/filter_view/detail/next_impl.hpp>
-#include <boost/fusion/view/filter_view/detail/value_of_impl.hpp>
-#include <boost/fusion/view/filter_view/detail/equal_to_impl.hpp>
-#include <boost/fusion/algorithm/query/detail/find_if.hpp>
-
-namespace boost { namespace fusion
-{
- struct filter_view_iterator_tag;
- struct forward_traversal_tag;
-
- template <typename First, typename Last, typename Pred>
- struct filter_iterator
- : iterator_base<filter_iterator<First, Last, Pred> >
- {
- typedef filter_view_iterator_tag fusion_tag;
- typedef forward_traversal_tag category;
- typedef detail::static_find_if<First, Last, Pred> filter;
- typedef typename filter::type first_type;
- typedef Last last_type;
- typedef Pred pred_type;
-
- template<typename OtherIt>
- filter_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
- : first(BOOST_FUSION_FORWARD(OtherIt,it).first)
- {}
-
- filter_iterator(First const& first,int)
- : first(filter::call(first))
- {}
-
- template<typename OtherIt>
- filter_iterator&
- operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
- {
- first=BOOST_FUSION_FORWARD(OtherIt,it).first;
- return *this;
- }
-
- first_type first;
- };
-}}
-
-#endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,35 +11,30 @@
 #include <boost/fusion/iterator/advance.hpp>
 #include <boost/fusion/iterator/deref.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct iterator_range_tag;
+ template <typename Tag>
+ struct at_impl;
 
- namespace extension
+ template <>
+ struct at_impl<iterator_range_tag>
     {
- template <typename Tag>
- struct at_impl;
-
- template <>
- struct at_impl<iterator_range_tag>
+ template <typename SeqRef, typename N>
+ struct apply
         {
- template <typename SeqRef, typename N>
- struct apply
- {
- typedef typename
- detail::remove_reference<SeqRef>::type::begin_type
- begin_type;
- typedef typename result_of::advance<begin_type,N>::type pos;
- typedef typename result_of::deref<pos>::type type;
+ typedef typename
+ detail::remove_reference<SeqRef>::type::begin_type
+ begin_type;
+ typedef typename result_of::advance<begin_type,N>::type pos;
+ typedef typename result_of::deref<pos>::type type;
 
- static type
- call(SeqRef seq)
- {
- return fusion::deref(advance<N>(seq.first));
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return fusion::deref(advance<N>(seq.first));
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,33 +8,28 @@
 #ifndef BOOST_FUSION_VIEW_ITERATOR_RANGE_DETAIL_BEGIN_IMPL_HPP
 #define BOOST_FUSION_VIEW_ITERATOR_RANGE_DETAIL_BEGIN_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct iterator_range_tag;
+ template <typename Tag>
+ struct begin_impl;
 
- namespace extension
+ template <>
+ struct begin_impl<iterator_range_tag>
     {
- template <typename Tag>
- struct begin_impl;
-
- template <>
- struct begin_impl<iterator_range_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef typename
- detail::remove_reference<SeqRef>::type::begin_type
- type;
+ typedef typename
+ detail::remove_reference<SeqRef>::type::begin_type
+ type;
 
- static type
- call(SeqRef seq)
- {
- return seq.first;
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return seq.first;
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,33 +8,28 @@
 #ifndef BOOST_FUSION_VIEW_ITERATOR_RANGE_DETAIL_END_IMPL_HPP
 #define BOOST_FUSION_VIEW_ITERATOR_RANGE_DETAIL_END_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct iterator_range_tag;
+ template <typename Tag>
+ struct end_impl;
 
- namespace extension
+ template <>
+ struct end_impl<iterator_range_tag>
     {
- template <typename Tag>
- struct end_impl;
-
- template <>
- struct end_impl<iterator_range_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef typename
- detail::remove_reference<SeqRef>::type::end_type
- type;
+ typedef typename
+ detail::remove_reference<SeqRef>::type::end_type
+ type;
 
- static type
- call(SeqRef seq)
- {
- return seq.last;
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return seq.last;
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Added: sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/iterator_range_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/iterator_range_fwd.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,14 @@
+// Copyright Christopher Schmidt 2009.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_FUSION_VIEW_ITERATOR_RANGE_DETAIL_ITERATOR_RANGE_FWD_HPP
+#define BOOST_FUSION_VIEW_ITERATOR_RANGE_DETAIL_ITERATOR_RANGE_FWD_HPP
+
+namespace boost { namespace fusion
+{
+ struct iterator_range_tag;
+}}
+
+#endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,32 +11,27 @@
 #include <boost/fusion/iterator/advance.hpp>
 #include <boost/fusion/iterator/value_of.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct iterator_range_tag;
+ template <typename Tag>
+ struct value_at_impl;
 
- namespace extension
+ template <>
+ struct value_at_impl<iterator_range_tag>
     {
- template <typename Tag>
- struct value_at_impl;
-
- template <>
- struct value_at_impl<iterator_range_tag>
+ template <typename SeqRef, typename N>
+ struct apply
         {
- template <typename SeqRef, typename N>
- struct apply
- {
- typedef typename
- detail::remove_reference<SeqRef>::type::begin_type
- begin_type;
- typedef typename
- result_of::advance<begin_type,N>::type
- pos;
+ typedef typename
+ detail::remove_reference<SeqRef>::type::begin_type
+ begin_type;
+ typedef typename
+ result_of::advance<begin_type,N>::type
+ pos;
 
- typedef typename result_of::value_of<pos>::type type;
- };
+ typedef typename result_of::value_of<pos>::type type;
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -15,6 +15,7 @@
 
 #include <boost/mpl/bool.hpp>
 
+#include <boost/fusion/view/iterator_range/detail/iterator_range_fwd.hpp>
 #include <boost/fusion/view/iterator_range/detail/begin_impl.hpp>
 #include <boost/fusion/view/iterator_range/detail/end_impl.hpp>
 #include <boost/fusion/view/iterator_range/detail/at_impl.hpp>

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,6 +9,5 @@
 #define BOOST_FUSION_VIEW_JOINT_VIEW_HPP
 
 #include <boost/fusion/view/joint_view/joint_view.hpp>
-#include <boost/fusion/view/joint_view/joint_view_iterator.hpp>
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/begin_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -14,68 +14,60 @@
 
 #include <boost/mpl/if.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct joint_view_tag;
+ template <typename Tag>
+ struct begin_impl;
 
- template <typename First, typename Last, typename Concat>
- struct joint_view_iterator;
-
- namespace extension
+ template <>
+ struct begin_impl<joint_view_tag>
     {
- template <typename Tag>
- struct begin_impl;
-
- template <>
- struct begin_impl<joint_view_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
+ typedef typename detail::remove_reference<SeqRef>::type seq;
+ typedef typename
+ result_of::begin<typename seq::seq1_type>::type
+ first_type;
+ typedef typename
+ result_of::end<typename seq::seq1_type>::type
+ last_type;
+ typedef typename
+ result_of::begin<typename seq::seq2_type>::type
+ concat_type;
+ typedef typename
+ result_of::equal_to<first_type, last_type>::type
+ equal_to;
+
+ typedef typename
+ mpl::if_<
+ equal_to
+ , concat_iterator<concat_type>
+ , joint_view_iterator<first_type, last_type, concat_type>
+ >::type
+ type;
+
+ static type
+ call(SeqRef seq, mpl::true_)
+ {
+ return type(fusion::begin(seq.seq2.get()));
+ }
+
+ static type
+ call(SeqRef seq, mpl::false_)
+ {
+ return type(
+ fusion::begin(seq.seq1.get())
+ , fusion::begin(seq.seq2.get()));
+ }
+
+ static type
+ call(SeqRef seq)
             {
- typedef typename detail::remove_reference<SeqRef>::type seq;
- typedef typename
- result_of::begin<typename seq::seq1_type>::type
- first_type;
- typedef typename
- result_of::end<typename seq::seq1_type>::type
- last_type;
- typedef typename
- result_of::begin<typename seq::seq2_type>::type
- concat_type;
- typedef typename
- result_of::equal_to<first_type, last_type>::type
- equal_to;
-
- typedef typename
- mpl::if_<
- equal_to
- , concat_iterator<concat_type>
- , joint_view_iterator<first_type, last_type, concat_type>
- >::type
- type;
-
- static type
- call(SeqRef seq, mpl::true_)
- {
- return type(fusion::begin(seq.seq2.get()));
- }
-
- static type
- call(SeqRef seq, mpl::false_)
- {
- return type(
- fusion::begin(seq.seq1.get())
- , fusion::begin(seq.seq2.get()));
- }
-
- static type
- call(SeqRef seq)
- {
- return call(seq, equal_to());
- }
- };
+ return call(seq, equal_to());
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,42 +10,37 @@
 
 #include <boost/fusion/iterator/deref.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct joint_view_iterator_tag;
+ template <typename Tag>
+ struct deref_impl;
 
- namespace extension
+ template <>
+ struct deref_impl<joint_view_iterator_tag>
     {
- template <typename Tag>
- struct deref_impl;
-
- template <>
- struct deref_impl<joint_view_iterator_tag>
+ template<typename ItRef>
+ struct apply
         {
- template<typename ItRef>
- struct apply
+ typedef typename
+ result_of::deref<
+ typename detail::remove_reference<
+ ItRef
+ >::type::first_type
+ >::type
+ type;
+
+ static type
+ call(ItRef it)
             {
- typedef typename
- result_of::deref<
- typename detail::remove_reference<
- ItRef
- >::type::first_type
- >::type
- type;
-
- static type
- call(ItRef it)
- {
- return fusion::deref(it.first);
- }
- };
+ return fusion::deref(it.first);
+ }
         };
+ };
 
- template <>
- struct deref_impl<concat_iterator_tag>
- : deref_impl<joint_view_iterator_tag>
- {};
- }
-}}
+ template <>
+ struct deref_impl<concat_iterator_tag>
+ : deref_impl<joint_view_iterator_tag>
+ {};
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/end_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,39 +12,34 @@
 
 #include <boost/mpl/if.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct joint_view_tag;
+ template <typename Tag>
+ struct end_impl;
 
- namespace extension
+ template <>
+ struct end_impl<joint_view_tag>
     {
- template <typename Tag>
- struct end_impl;
-
- template <>
- struct end_impl<joint_view_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef
- concat_iterator<
- typename result_of::end<
- typename detail::remove_reference<
- SeqRef
- >::type::seq2_type
- >::type
- >
- type;
+ typedef
+ concat_iterator<
+ typename result_of::end<
+ typename detail::remove_reference<
+ SeqRef
+ >::type::seq2_type
+ >::type
+ >
+ type;
 
- static type
- call(SeqRef seq)
- {
- return type(fusion::end(seq.seq2.get()));
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return type(fusion::end(seq.seq2.get()));
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/equal_to_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/equal_to_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -16,8 +16,6 @@
 
 namespace boost { namespace fusion
 {
- struct joint_view_iterator_tag;
-
     namespace detail
     {
         template<typename It1, typename It2>

Added: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_fwd.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,14 @@
+// Copyright Christopher Schmidt 2009.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_JOINT_VIEW_FWD_HPP
+#define BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_JOINT_VIEW_FWD_HPP
+
+namespace boost { namespace fusion
+{
+ struct joint_view_tag;
+}}
+
+#endif

Added: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_iterator.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_iterator.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,58 @@
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_JOINT_VIEW_ITERATOR_HPP
+#define BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_JOINT_VIEW_ITERATOR_HPP
+
+#include <boost/fusion/iterator/equal_to.hpp>
+#include <boost/fusion/support/iterator_base.hpp>
+#include <boost/fusion/support/assert.hpp>
+
+namespace boost { namespace fusion
+{
+ struct joint_view_iterator_tag;
+ struct concat_iterator_tag;
+ struct forward_traversal_tag;
+
+ template <typename First, typename Last, typename Concat>
+ struct joint_view_iterator
+ : iterator_base<joint_view_iterator<First, Last, Concat> >
+ {
+ typedef joint_view_iterator_tag fusion_tag;
+ typedef forward_traversal_tag category;
+
+ typedef First first_type;
+ typedef Last last_type;
+ typedef Concat concat_type;
+
+ joint_view_iterator(First const& first, Concat const& concat)
+ : first(first)
+ , concat(concat)
+ {}
+
+ first_type first;
+ concat_type concat;
+ };
+
+ template <typename First>
+ struct concat_iterator
+ : iterator_base<concat_iterator<First> >
+ {
+ typedef concat_iterator_tag fusion_tag;
+ typedef forward_traversal_tag category;
+
+ typedef First first_type;
+
+ explicit concat_iterator(First const& first)
+ : first(first)
+ {}
+
+ first_type first;
+ };
+}}
+
+#endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/next_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/next_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,86 +12,78 @@
 #include <boost/fusion/iterator/equal_to.hpp>
 #include <boost/mpl/if.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct joint_view_iterator_tag;
+ template <typename Tag>
+ struct next_impl;
 
- template <typename First, typename Last, typename Concat>
- struct joint_view_iterator;
-
- namespace extension
+ template <>
+ struct next_impl<joint_view_iterator_tag>
     {
- template <typename Tag>
- struct next_impl;
-
- template <>
- struct next_impl<joint_view_iterator_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
+ typedef typename detail::remove_reference<ItRef>::type it;
+
+ typedef typename it::first_type first_type;
+ typedef typename it::last_type last_type;
+ typedef typename it::concat_type concat_type;
+ typedef typename result_of::next<first_type>::type next_type;
+ typedef typename
+ result_of::equal_to<next_type, last_type>::type
+ equal_to;
+
+ typedef typename
+ mpl::if_<
+ equal_to
+ , concat_iterator<concat_type>
+ , joint_view_iterator<next_type, last_type, concat_type>
+ >::type
+ type;
+
+ static type
+ call(ItRef it, mpl::true_)
             {
- typedef typename detail::remove_reference<ItRef>::type it;
+ return type(it.concat);
+ }
 
- typedef typename it::first_type first_type;
- typedef typename it::last_type last_type;
- typedef typename it::concat_type concat_type;
- typedef typename result_of::next<first_type>::type next_type;
- typedef typename
- result_of::equal_to<next_type, last_type>::type
- equal_to;
-
- typedef typename
- mpl::if_<
- equal_to
- , concat_iterator<concat_type>
- , joint_view_iterator<next_type, last_type, concat_type>
- >::type
- type;
+ static type
+ call(ItRef it, mpl::false_)
+ {
+ return type(fusion::next(it.first), it.concat);
+ }
 
- static type
- call(ItRef it, mpl::true_)
- {
- return type(it.concat);
- }
-
- static type
- call(ItRef it, mpl::false_)
- {
- return type(fusion::next(it.first), it.concat);
- }
-
- static type
- call(ItRef it)
- {
- return call(it, equal_to());
- }
- };
+ static type
+ call(ItRef it)
+ {
+ return call(it, equal_to());
+ }
         };
+ };
 
- template <>
- struct next_impl<concat_iterator_tag>
+ template <>
+ struct next_impl<concat_iterator_tag>
+ {
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
+ typedef
+ concat_iterator<
+ typename result_of::next<
+ typename detail::remove_reference<
+ ItRef
+ >::type::first_type
+ >::type
+ >
+ type;
+
+ static type
+ call(ItRef it)
             {
- typedef
- concat_iterator<
- typename result_of::next<
- typename detail::remove_reference<
- ItRef
- >::type::first_type
- >::type
- >
- type;
-
- static type
- call(ItRef it)
- {
- return type(fusion::next(it.first));
- }
- };
+ return type(fusion::next(it.first));
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,31 +10,26 @@
 
 #include <boost/fusion/iterator/value_of.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct joint_view_iterator_tag;
+ template <typename Tag>
+ struct value_of_impl;
 
- namespace extension
+ template <>
+ struct value_of_impl<joint_view_iterator_tag>
     {
- template <typename Tag>
- struct value_of_impl;
-
- template <>
- struct value_of_impl<joint_view_iterator_tag>
- {
- template <typename ItRef>
- struct apply
- : result_of::value_of<
- typename detail::remove_reference<ItRef>::type::first_type
- >
- {};
- };
-
- template <>
- struct value_of_impl<concat_iterator_tag>
- : value_of_impl<joint_view_iterator_tag>
+ template <typename ItRef>
+ struct apply
+ : result_of::value_of<
+ typename detail::remove_reference<ItRef>::type::first_type
+ >
         {};
- }
-}}
+ };
+
+ template <>
+ struct value_of_impl<concat_iterator_tag>
+ : value_of_impl<joint_view_iterator_tag>
+ {};
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -20,7 +20,8 @@
 #include <boost/mpl/plus.hpp>
 #include <boost/mpl/bool.hpp>
 
-#include <boost/fusion/view/joint_view/joint_view_iterator.hpp>
+#include <boost/fusion/view/joint_view/detail/joint_view_fwd.hpp>
+#include <boost/fusion/view/joint_view/detail/joint_view_iterator.hpp>
 #include <boost/fusion/view/joint_view/detail/begin_impl.hpp>
 #include <boost/fusion/view/joint_view/detail/deref_impl.hpp>
 #include <boost/fusion/view/joint_view/detail/end_impl.hpp>
@@ -30,7 +31,6 @@
 
 namespace boost { namespace fusion
 {
- struct joint_view_tag;
     struct forward_traversal_tag;
     struct fusion_sequence_tag;
 

Deleted: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view_iterator.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
+++ (empty file)
@@ -1,58 +0,0 @@
-/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_VIEW_JOINT_VIEW_JOINT_VIEW_ITERATOR_HPP
-#define BOOST_FUSION_VIEW_JOINT_VIEW_JOINT_VIEW_ITERATOR_HPP
-
-#include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/iterator/equal_to.hpp>
-#include <boost/fusion/support/assert.hpp>
-
-namespace boost { namespace fusion
-{
- struct joint_view_iterator_tag;
- struct concat_iterator_tag;
- struct forward_traversal_tag;
-
- template <typename First, typename Last, typename Concat>
- struct joint_view_iterator
- : iterator_base<joint_view_iterator<First, Last, Concat> >
- {
- typedef joint_view_iterator_tag fusion_tag;
- typedef forward_traversal_tag category;
-
- typedef First first_type;
- typedef Last last_type;
- typedef Concat concat_type;
-
- joint_view_iterator(First const& first, Concat const& concat)
- : first(first)
- , concat(concat)
- {}
-
- first_type first;
- concat_type concat;
- };
-
- template <typename First>
- struct concat_iterator
- : iterator_base<concat_iterator<First> >
- {
- typedef concat_iterator_tag fusion_tag;
- typedef forward_traversal_tag category;
-
- typedef First first_type;
-
- explicit concat_iterator(First const& first)
- : first(first)
- {}
-
- first_type first;
- };
-}}
-
-#endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,6 +9,5 @@
 #define BOOST_FUSION_VIEW_REVERSE_VIEW_HPP
 
 #include <boost/fusion/view/reverse_view/reverse_view.hpp>
-#include <boost/fusion/view/reverse_view/reverse_view_iterator.hpp>
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/advance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/advance_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/advance_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,45 +12,37 @@
 #include <boost/fusion/iterator/advance.hpp>
 #include <boost/mpl/negate.hpp>
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+ template<typename Tag>
+ struct advance_impl;
 
- struct reverse_view_iterator_tag;
-
- template <typename It>
- struct reverse_view_iterator;
-
- namespace extension
+ template<>
+ struct advance_impl<reverse_view_iterator_tag>
     {
- template<typename Tag>
- struct advance_impl;
-
- template<>
- struct advance_impl<reverse_view_iterator_tag>
+ template<typename ItRef, typename Dist>
+ struct apply
         {
- template<typename ItRef, typename Dist>
- struct apply
- {
- typedef typename mpl::negate<Dist>::type neg_dist;
+ typedef typename mpl::negate<Dist>::type neg_dist;
 
- typedef
- reverse_view_iterator<
- typename result_of::advance<
- typename detail::remove_reference<
- ItRef
- >::type::first_type
- , neg_dist
- >::type
- >
- type;
+ typedef
+ reverse_view_iterator<
+ typename result_of::advance<
+ typename detail::remove_reference<
+ ItRef
+ >::type::first_type
+ , neg_dist
+ >::type
+ >
+ type;
 
- static type
- call(ItRef it)
- {
- return type(boost::fusion::advance<neg_dist>(it.first));
- }
- };
+ static type
+ call(ItRef it)
+ {
+ return type(boost::fusion::advance<neg_dist>(it.first));
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,42 +10,34 @@
 
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct reverse_view_tag;
+ template <typename Tag>
+ struct begin_impl;
 
- template <typename First>
- struct reverse_view_iterator;
-
- namespace extension
+ template <>
+ struct begin_impl<reverse_view_tag>
     {
- template <typename Tag>
- struct begin_impl;
-
- template <>
- struct begin_impl<reverse_view_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef
- reverse_view_iterator<
- typename result_of::end<
- typename detail::remove_reference<
- SeqRef
- >::type::seq_type
- >::type
- >
- type;
+ typedef
+ reverse_view_iterator<
+ typename result_of::end<
+ typename detail::remove_reference<
+ SeqRef
+ >::type::seq_type
+ >::type
+ >
+ type;
 
- static type
- call(SeqRef seq)
- {
- return type(fusion::end(seq.seq.get()));
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return type(fusion::end(seq.seq.get()));
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,39 +11,34 @@
 #include <boost/fusion/iterator/deref.hpp>
 #include <boost/fusion/iterator/prior.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct reverse_view_iterator_tag;
+ template <typename Tag>
+ struct deref_impl;
 
- namespace extension
+ template <>
+ struct deref_impl<reverse_view_iterator_tag>
     {
- template <typename Tag>
- struct deref_impl;
-
- template <>
- struct deref_impl<reverse_view_iterator_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef typename
- result_of::deref<
- typename result_of::prior<
- typename detail::remove_reference<
- ItRef
- >::type::first_type
- >::type
+ typedef typename
+ result_of::deref<
+ typename result_of::prior<
+ typename detail::remove_reference<
+ ItRef
+ >::type::first_type
>::type
- type;
+ >::type
+ type;
 
- static type
- call(ItRef it)
- {
- return fusion::deref(fusion::prior(it.first));
- }
- };
+ static type
+ call(ItRef it)
+ {
+ return fusion::deref(fusion::prior(it.first));
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/distance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/distance_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/distance_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,37 +11,29 @@
 
 #include <boost/fusion/iterator/distance.hpp>
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+ template<typename Tag>
+ struct distance_impl;
 
- struct reverse_view_iterator_tag;
-
- template <typename First>
- struct reverse_view_iterator;
-
- namespace extension
+ template<>
+ struct distance_impl<reverse_view_iterator_tag>
     {
- template<typename Tag>
- struct distance_impl;
-
- template<>
- struct distance_impl<reverse_view_iterator_tag>
+ template<typename FirstRef, typename LastRef>
+ struct apply
         {
- template<typename FirstRef, typename LastRef>
- struct apply
- {
- typedef typename
- result_of::distance<
- typename detail::remove_reference<
- FirstRef
- >::type::first_type
- , typename detail::remove_reference<
- LastRef
- >::type::first_type
- >::type
- type;
- };
+ typedef typename
+ result_of::distance<
+ typename detail::remove_reference<
+ FirstRef
+ >::type::first_type
+ , typename detail::remove_reference<
+ LastRef
+ >::type::first_type
+ >::type
+ type;
         };
- }
-}}
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,41 +10,34 @@
 
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 
-//TODO: Forward view cv qualifiers?
-
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct reverse_view_tag;
+ template <typename Tag>
+ struct end_impl;
 
- namespace extension
+ template <>
+ struct end_impl<reverse_view_tag>
     {
- template <typename Tag>
- struct end_impl;
-
- template <>
- struct end_impl<reverse_view_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef
- reverse_view_iterator<
- typename result_of::begin<
- typename detail::remove_reference<
- SeqRef
- >::type::seq_type
- >::type
- >
- type;
+ typedef
+ reverse_view_iterator<
+ typename result_of::begin<
+ typename detail::remove_reference<
+ SeqRef
+ >::type::seq_type
+ >::type
+ >
+ type;
 
- static type
- call(SeqRef seq)
- {
- return type(fusion::begin(seq.seq.get()));
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return type(fusion::begin(seq.seq.get()));
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/equal_to_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/equal_to_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,27 +11,22 @@
 
 #include <boost/type_traits/is_same.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct reverse_view_iterator_tag;
+ template<typename Tag>
+ struct equal_to_impl;
 
- namespace extension
+ template<>
+ struct equal_to_impl<reverse_view_iterator_tag>
     {
- template<typename Tag>
- struct equal_to_impl;
-
- template<>
- struct equal_to_impl<reverse_view_iterator_tag>
- {
- template<typename It1Ref, typename It2Ref>
- struct apply
- : is_same<
- typename detail::remove_reference<It1Ref>::type::first_type
- , typename detail::remove_reference<It2Ref>::type::first_type
- >
- {};
- };
- }
-}}
+ template<typename It1Ref, typename It2Ref>
+ struct apply
+ : is_same<
+ typename detail::remove_reference<It1Ref>::type::first_type
+ , typename detail::remove_reference<It2Ref>::type::first_type
+ >
+ {};
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,39 +10,31 @@
 
 #include <boost/fusion/iterator/prior.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct reverse_view_iterator_tag;
-
- template <typename First>
- struct reverse_view_iterator;
-
- namespace extension
+ template <>
+ struct next_impl<reverse_view_iterator_tag>
     {
- template <>
- struct next_impl<reverse_view_iterator_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef
- reverse_view_iterator<
- typename result_of::prior<
- typename detail::remove_reference<
- ItRef
- >::type::first_type
- >::type
- >
- type;
+ typedef
+ reverse_view_iterator<
+ typename result_of::prior<
+ typename detail::remove_reference<
+ ItRef
+ >::type::first_type
+ >::type
+ >
+ type;
 
- static type
- call(ItRef it)
- {
- return type(fusion::prior(it.first));
- }
- };
+ static type
+ call(ItRef it)
+ {
+ return type(fusion::prior(it.first));
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,39 +10,31 @@
 
 #include <boost/fusion/iterator/next.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct reverse_view_iterator_tag;
-
- template <typename It>
- struct reverse_view_iterator;
-
- namespace extension
+ template <>
+ struct prior_impl<reverse_view_iterator_tag>
     {
- template <>
- struct prior_impl<reverse_view_iterator_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef
- reverse_view_iterator<
- typename result_of::next<
- typename detail::remove_reference<
- ItRef
- >::type::first_type
- >::type
- >
- type;
+ typedef
+ reverse_view_iterator<
+ typename result_of::next<
+ typename detail::remove_reference<
+ ItRef
+ >::type::first_type
+ >::type
+ >
+ type;
 
- static type
- call(ItRef it)
- {
- return type(next(it.first));
- }
- };
+ static type
+ call(ItRef it)
+ {
+ return type(next(it.first));
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Added: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_fwd.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,14 @@
+// Copyright Christopher Schmidt 2009.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_REVERSE_VIEW_FWD_HPP
+#define BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_REVERSE_VIEW_FWD_HPP
+
+namespace boost { namespace fusion
+{
+ struct reverse_view_tag;
+}}
+
+#endif

Added: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_iterator.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_iterator.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,41 @@
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_REVERSE_VIEW_ITERATOR_HPP
+#define BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_REVERSE_VIEW_ITERATOR_HPP
+
+#include <boost/fusion/support/iterator_base.hpp>
+#include <boost/fusion/support/category_of.hpp>
+#include <boost/fusion/support/assert.hpp>
+
+#include <boost/type_traits/is_base_of.hpp>
+
+namespace boost { namespace fusion
+{
+ struct reverse_view_iterator_tag;
+
+ template <typename First>
+ struct reverse_view_iterator
+ : iterator_base<reverse_view_iterator<First> >
+ {
+ typedef First first_type;
+ typedef reverse_view_iterator_tag fusion_tag;
+ typedef typename traits::category_of<first_type>::type category;
+
+ //BOOST_FUSION_STATIC_ASSERT(
+ // (is_base_of<bidirectional_traversal_tag, category>::value),
+ // "underlying iterator must be bidirectional");
+
+ reverse_view_iterator(First const& first)
+ : first(first)
+ {}
+
+ first_type first;
+ };
+}}
+
+#endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,33 +11,28 @@
 #include <boost/fusion/iterator/value_of.hpp>
 #include <boost/fusion/iterator/prior.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct reverse_view_iterator_tag;
+ template <typename Tag>
+ struct value_of_impl;
 
- namespace extension
+ template <>
+ struct value_of_impl<reverse_view_iterator_tag>
     {
- template <typename Tag>
- struct value_of_impl;
-
- template <>
- struct value_of_impl<reverse_view_iterator_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef typename
- result_of::value_of<
- typename result_of::prior<
- typename detail::remove_reference<
- ItRef
- >::type::first_type
- >::type
+ typedef typename
+ result_of::value_of<
+ typename result_of::prior<
+ typename detail::remove_reference<
+ ItRef
+ >::type::first_type
>::type
- type;
- };
+ >::type
+ type;
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -21,13 +21,20 @@
 #include <boost/type_traits/is_base_of.hpp>
 #include <boost/mpl/bool.hpp>
 
-#include <boost/fusion/view/reverse_view/reverse_view_iterator.hpp>
+#include <boost/fusion/view/reverse_view/detail/reverse_view_fwd.hpp>
+#include <boost/fusion/view/reverse_view/detail/reverse_view_iterator.hpp>
 #include <boost/fusion/view/reverse_view/detail/begin_impl.hpp>
 #include <boost/fusion/view/reverse_view/detail/end_impl.hpp>
+#include <boost/fusion/view/reverse_view/detail/deref_impl.hpp>
+#include <boost/fusion/view/reverse_view/detail/next_impl.hpp>
+#include <boost/fusion/view/reverse_view/detail/prior_impl.hpp>
+#include <boost/fusion/view/reverse_view/detail/advance_impl.hpp>
+#include <boost/fusion/view/reverse_view/detail/distance_impl.hpp>
+#include <boost/fusion/view/reverse_view/detail/value_of_impl.hpp>
+#include <boost/fusion/view/reverse_view/detail/equal_to_impl.hpp>
 
 namespace boost { namespace fusion
 {
- struct reverse_view_tag;
     struct fusion_sequence_tag;
 
     template <typename Seq>

Deleted: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view_iterator.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
+++ (empty file)
@@ -1,49 +0,0 @@
-/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_VIEW_REVERSE_VIEW_REVERSE_VIEW_ITERATOR_HPP
-#define BOOST_FUSION_VIEW_REVERSE_VIEW_REVERSE_VIEW_ITERATOR_HPP
-
-#include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/support/category_of.hpp>
-#include <boost/fusion/support/assert.hpp>
-
-#include <boost/type_traits/is_base_of.hpp>
-
-#include <boost/fusion/view/reverse_view/detail/deref_impl.hpp>
-#include <boost/fusion/view/reverse_view/detail/next_impl.hpp>
-#include <boost/fusion/view/reverse_view/detail/prior_impl.hpp>
-#include <boost/fusion/view/reverse_view/detail/advance_impl.hpp>
-#include <boost/fusion/view/reverse_view/detail/distance_impl.hpp>
-#include <boost/fusion/view/reverse_view/detail/value_of_impl.hpp>
-#include <boost/fusion/view/reverse_view/detail/equal_to_impl.hpp>
-
-namespace boost { namespace fusion
-{
- struct reverse_view_iterator_tag;
-
- template <typename First>
- struct reverse_view_iterator
- : iterator_base<reverse_view_iterator<First> >
- {
- typedef First first_type;
- typedef reverse_view_iterator_tag fusion_tag;
- typedef typename traits::category_of<first_type>::type category;
-
- //BOOST_FUSION_STATIC_ASSERT(
- // (is_base_of<bidirectional_traversal_tag, category>::value),
- // "underlying iterator must be bidirectional");
-
- reverse_view_iterator(First const& first)
- : first(first)
- {}
-
- first_type first;
- };
-}}
-
-#endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,6 +9,5 @@
 #define BOOST_FUSION_VIEW_SINGLE_VIEW_HPP
 
 #include <boost/fusion/view/single_view/single_view.hpp>
-#include <boost/fusion/view/single_view/single_view_iterator.hpp>
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,34 +8,26 @@
 #ifndef BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_BEGIN_IMPL_HPP
 #define BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_BEGIN_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct single_view_tag;
+ template <typename Tag>
+ struct begin_impl;
 
- template <typename T>
- struct single_view_iterator;
-
- namespace extension
+ template <>
+ struct begin_impl<single_view_tag>
     {
- template <typename Tag>
- struct begin_impl;
-
- template <>
- struct begin_impl<single_view_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef single_view_iterator<SeqRef> type;
+ typedef single_view_iterator<SeqRef> type;
 
- static type
- call(SeqRef s)
- {
- return type(s,0);
- }
- };
+ static type
+ call(SeqRef s)
+ {
+ return type(s,0);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,33 +11,28 @@
 #include <boost/mpl/identity.hpp>
 #include <boost/type_traits/is_const.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct single_view_iterator_tag;
+ template <typename Tag>
+ struct deref_impl;
 
- namespace extension
+ template <>
+ struct deref_impl<single_view_iterator_tag>
     {
- template <typename Tag>
- struct deref_impl;
-
- template <>
- struct deref_impl<single_view_iterator_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef typename
- detail::remove_reference<ItRef>::type::value_type
- type;
+ typedef typename
+ detail::remove_reference<ItRef>::type::value_type
+ type;
 
- static type
- call(ItRef const& it)
- {
- return it.view->val;
- }
- };
+ static type
+ call(ItRef const& it)
+ {
+ return it.view->val;
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,34 +8,26 @@
 #ifndef BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_END_IMPL_HPP
 #define BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_END_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct single_view_tag;
+ template <typename Tag>
+ struct end_impl;
 
- template <typename T>
- struct single_view_iterator_end;
-
- namespace extension
+ template <>
+ struct end_impl<single_view_tag>
     {
- template <typename Tag>
- struct end_impl;
-
- template <>
- struct end_impl<single_view_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef single_view_iterator_end<SeqRef> type;
+ typedef single_view_iterator_end<SeqRef> type;
 
- static type
- call(SeqRef)
- {
- return type();
- }
- };
+ static type
+ call(SeqRef)
+ {
+ return type();
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/equal_to_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/equal_to_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,35 +11,30 @@
 
 #include <boost/type_traits/is_same.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct single_view_iterator_tag;
+ template<typename Tag>
+ struct equal_to_impl;
 
- namespace extension
+ template<>
+ struct equal_to_impl<single_view_iterator_tag>
     {
- template<typename Tag>
- struct equal_to_impl;
-
- template<>
- struct equal_to_impl<single_view_iterator_tag>
- {
- template<typename It1Ref, typename It2Ref>
- struct apply
- : is_same<
- typename detail::identity<
- typename detail::remove_reference<
- It1Ref
- >::type::view_type
- >::type
- , typename detail::identity<
- typename detail::remove_reference<
- It2Ref
- >::type::view_type
- >::type
- >
- {};
- };
- }
-}}
+ template<typename It1Ref, typename It2Ref>
+ struct apply
+ : is_same<
+ typename detail::identity<
+ typename detail::remove_reference<
+ It1Ref
+ >::type::view_type
+ >::type
+ , typename detail::identity<
+ typename detail::remove_reference<
+ It2Ref
+ >::type::view_type
+ >::type
+ >
+ {};
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,43 +8,32 @@
 #ifndef BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_NEXT_IMPL_HPP
 #define BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_NEXT_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct single_view_iterator_tag;
+ template <typename Tag>
+ struct next_impl;
 
- template <typename SingleView>
- struct single_view_iterator_end;
-
- template <typename SingleView>
- struct single_view_iterator;
-
- namespace extension
+ template <>
+ struct next_impl<single_view_iterator_tag>
     {
- template <typename Tag>
- struct next_impl;
-
- template <>
- struct next_impl<single_view_iterator_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef
- single_view_iterator_end<
- typename detail::remove_reference<
- ItRef
- >::type::view_type
- >
- type;
+ typedef
+ single_view_iterator_end<
+ typename detail::remove_reference<
+ ItRef
+ >::type::view_type
+ >
+ type;
 
- static type
- call(ItRef)
- {
- return type();
- }
- };
+ static type
+ call(ItRef)
+ {
+ return type();
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Added: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_fwd.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,14 @@
+// Copyright Christopher Schmidt 2009.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_SINGLE_VIEW_FWD_HPP
+#define BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_SINGLE_VIEW_FWD_HPP
+
+namespace boost { namespace fusion
+{
+ struct single_view_tag;
+}}
+
+#endif

Added: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_iterator.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_iterator.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,69 @@
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_SINGLE_VIEW_ITERATOR_HPP
+#define BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_SINGLE_VIEW_ITERATOR_HPP
+
+#include <boost/fusion/support/iterator_base.hpp>
+
+namespace boost { namespace fusion
+{
+ struct single_view_iterator_tag;
+ struct forward_traversal_tag;
+
+ struct void_;
+
+ //TODO???
+ template <typename SingleView>
+ struct single_view_iterator_end
+ : iterator_base<single_view_iterator_end<SingleView> >
+ {
+ typedef single_view_iterator_tag fusion_tag;
+ typedef forward_traversal_tag category;
+
+ typedef void_ view_type;
+ };
+
+ template <typename SingleViewRef>
+ struct single_view_iterator
+ : iterator_base<single_view_iterator<SingleViewRef> >
+ {
+ typedef single_view_iterator_tag fusion_tag;
+ typedef forward_traversal_tag category;
+
+ typedef SingleViewRef view_type;
+ typedef typename
+ detail::forward_as<
+ SingleViewRef,
+ typename detail::remove_reference<
+ SingleViewRef
+ >::type::value_type
+ >::type
+ value_type;
+
+ template<typename OtherIt>
+ single_view_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+ : view(it.view)
+ {}
+
+ single_view_iterator(SingleViewRef view, int)
+ : view(&view)
+ {}
+
+ template<typename OtherIt>
+ single_view_iterator&
+ operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+ {
+ view=it.view;
+ return *this;
+ }
+
+ typename detail::remove_reference<SingleViewRef>::type* view;
+ };
+}}
+
+#endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,31 +8,26 @@
 #ifndef BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_VALUE_OF_IMPL_HPP
 #define BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_VALUE_OF_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct single_view_iterator_tag;
+ template <typename Tag>
+ struct value_of_impl;
 
- namespace extension
+ template <>
+ struct value_of_impl<single_view_iterator_tag>
     {
- template <typename Tag>
- struct value_of_impl;
-
- template <>
- struct value_of_impl<single_view_iterator_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef typename
- detail::remove_reference<
- typename detail::remove_reference<
- ItRef
- >::type::view_type
- >::type::value_type
- type;
- };
+ typedef typename
+ detail::remove_reference<
+ typename detail::remove_reference<
+ ItRef
+ >::type::view_type
+ >::type::value_type
+ type;
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -22,9 +22,14 @@
 #include <boost/mpl/int.hpp>
 #include <boost/utility/enable_if.hpp>
 
-#include <boost/fusion/view/single_view/single_view_iterator.hpp>
+#include <boost/fusion/view/single_view/detail/single_view_fwd.hpp>
+#include <boost/fusion/view/single_view/detail/single_view_iterator.hpp>
 #include <boost/fusion/view/single_view/detail/begin_impl.hpp>
 #include <boost/fusion/view/single_view/detail/end_impl.hpp>
+#include <boost/fusion/view/single_view/detail/deref_impl.hpp>
+#include <boost/fusion/view/single_view/detail/next_impl.hpp>
+#include <boost/fusion/view/single_view/detail/value_of_impl.hpp>
+#include <boost/fusion/view/single_view/detail/equal_to_impl.hpp>
 
 namespace boost { namespace fusion
 {

Deleted: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view_iterator.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
+++ (empty file)
@@ -1,75 +0,0 @@
-/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_VIEW_SINGLE_VIEW_SINGLE_VIEW_ITERATOR_HPP
-#define BOOST_FUSION_VIEW_SINGLE_VIEW_SINGLE_VIEW_ITERATOR_HPP
-
-#include <boost/fusion/support/ref.hpp>
-#include <boost/fusion/support/iterator_base.hpp>
-
-#include <boost/fusion/view/single_view/detail/deref_impl.hpp>
-#include <boost/fusion/view/single_view/detail/next_impl.hpp>
-#include <boost/fusion/view/single_view/detail/value_of_impl.hpp>
-#include <boost/fusion/view/single_view/detail/equal_to_impl.hpp>
-
-namespace boost { namespace fusion
-{
- struct single_view_iterator_tag;
- struct forward_traversal_tag;
-
- struct void_;
-
- //TODO???
- template <typename SingleView>
- struct single_view_iterator_end
- : iterator_base<single_view_iterator_end<SingleView> >
- {
- typedef single_view_iterator_tag fusion_tag;
- typedef forward_traversal_tag category;
-
- typedef void_ view_type;
- };
-
- template <typename SingleViewRef>
- struct single_view_iterator
- : iterator_base<single_view_iterator<SingleViewRef> >
- {
- typedef single_view_iterator_tag fusion_tag;
- typedef forward_traversal_tag category;
-
- typedef SingleViewRef view_type;
- typedef typename
- detail::result_of_forward_as<
- SingleViewRef,
- typename detail::remove_reference<
- SingleViewRef
- >::type::value_type
- >::type
- value_type;
-
- template<typename OtherIt>
- single_view_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
- : view(it.view)
- {}
-
- single_view_iterator(SingleViewRef view, int)
- : view(&view)
- {}
-
- template<typename OtherIt>
- single_view_iterator&
- operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
- {
- view=it.view;
- return *this;
- }
-
- typename detail::remove_reference<SingleViewRef>::type* view;
- };
-}}
-
-#endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,6 +9,5 @@
 #define BOOST_FUSION_VIEW_TRANSFORM_VIEW_HPP
 
 #include <boost/fusion/view/transform_view/transform_view.hpp>
-#include <boost/fusion/view/transform_view/transform_view_iterator.hpp>
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/advance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/advance_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/advance_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,86 +11,74 @@
 
 #include <boost/fusion/iterator/advance.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct transform_view_iterator_tag;
- struct transform_view_iterator2_tag;
+ template<typename Tag>
+ struct advance_impl;
 
- template<typename First, typename F>
- struct transform_view_iterator;
-
- template <typename First1, typename First2, typename F>
- struct transform_view_iterator2;
-
- namespace extension
+ // Unary Version
+ template<>
+ struct advance_impl<transform_view_iterator_tag>
     {
- template<typename Tag>
- struct advance_impl;
-
- // Unary Version
- template<>
- struct advance_impl<transform_view_iterator_tag>
+ template<typename ItRef, typename Dist>
+ struct apply
         {
- template<typename ItRef, typename Dist>
- struct apply
+ typedef typename
+ detail::remove_reference<ItRef>::type
+ it;
+
+ typedef
+ transform_view_iterator<
+ typename result_of::advance<
+ typename it::first_type
+ , Dist
+ >::type
+ , typename it::transform_type
+ >
+ type;
+
+ static type
+ call(ItRef it)
             {
- typedef typename
- detail::remove_reference<ItRef>::type
- it;
-
- typedef
- transform_view_iterator<
- typename result_of::advance<
- typename it::first_type
- , Dist
- >::type
- , typename it::transform_type
- >
- type;
-
- static type
- call(ItRef it)
- {
- return type(boost::fusion::advance<Dist>(it.first), *it.f);
- }
- };
+ return type(boost::fusion::advance<Dist>(it.first), *it.f);
+ }
         };
+ };
 
- // Binary Version
- template<>
- struct advance_impl<transform_view_iterator2_tag>
+ // Binary Version
+ template<>
+ struct advance_impl<transform_view_iterator2_tag>
+ {
+ template<typename ItRef, typename Dist>
+ struct apply
         {
- template<typename ItRef, typename Dist>
- struct apply
+ typedef typename
+ detail::remove_reference<ItRef>::type
+ it;
+
+ typedef
+ transform_view_iterator2<
+ typename result_of::advance<
+ typename it::first1_type
+ , Dist
+ >::type
+ , typename result_of::advance<
+ typename it::first2_type
+ , Dist
+ >::type
+ , typename it::transform_type
+ >
+ type;
+
+ static type
+ call(ItRef it)
             {
- typedef typename
- detail::remove_reference<ItRef>::type
- it;
-
- typedef
- transform_view_iterator2<
- typename result_of::advance<
- typename it::first1_type
- , Dist
- >::type
- , typename result_of::advance<
- typename it::first2_type
- , Dist
- >::type
- , typename it::transform_type
- >
- type;
-
- static type
- call(ItRef it)
- {
- return type(boost::fusion::advance<Dist>(it.first1)
- , boost::fusion::advance<Dist>(it.first2)
- , it.f);
- }
- };
+ return type(boost::fusion::advance<Dist>(it.first1)
+ , boost::fusion::advance<Dist>(it.first2)
+ , it.f);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/at_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,82 +9,77 @@
 #ifndef BOOST_FUSION_VIEW_TRANSFORM_VIEW_DETAIL_AT_IMPL_HPP
 #define BOOST_FUSION_VIEW_TRANSFORM_VIEW_DETAIL_AT_IMPL_HPP
 
-#include <boost/fusion/view/transform_view/detail/apply_transform_result.hpp>
 #include <boost/fusion/sequence/intrinsic/at.hpp>
 
 #include <boost/mpl/apply.hpp>
 
-namespace boost { namespace fusion
+#include <boost/fusion/view/transform_view/detail/apply_transform_result.hpp>
+
+namespace boost { namespace fusion { namespace extension
 {
- struct transform_view_tag;
- struct transform_view2_tag;
+ template<typename Tag>
+ struct at_impl;
 
- namespace extension
+ template<>
+ struct at_impl<transform_view_tag>
     {
- template<typename Tag>
- struct at_impl;
-
- template<>
- struct at_impl<transform_view_tag>
+ template<typename SeqRef, typename N>
+ struct apply
         {
- template<typename SeqRef, typename N>
- struct apply
- {
- typedef typename detail::remove_reference<SeqRef>::type seq;
+ typedef typename detail::remove_reference<SeqRef>::type seq;
 
- typedef typename
- mpl::apply<
- detail::apply_transform_result<
- typename seq::transform_type
- >
- , typename result_of::at<
- typename seq::seq_type
- , N
- >::type
+ typedef typename
+ mpl::apply<
+ detail::apply_transform_result<
+ typename seq::transform_type
+ >
+ , typename result_of::at<
+ typename seq::seq_type
+ , N
>::type
- type;
+ >::type
+ type;
 
- static type
- call(SeqRef seq)
- {
- return seq.f(boost::fusion::at<N>(seq.seq.get()));
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return seq.f(boost::fusion::at<N>(seq.seq.get()));
+ }
         };
+ };
 
- template<>
- struct at_impl<transform_view2_tag>
+ template<>
+ struct at_impl<transform_view2_tag>
+ {
+ template<typename SeqRef, typename N>
+ struct apply
         {
- template<typename SeqRef, typename N>
- struct apply
- {
- typedef typename detail::remove_reference<SeqRef>::type seq;
+ typedef typename detail::remove_reference<SeqRef>::type seq;
 
- typedef typename
- mpl::apply<
- detail::apply_transform_result<
- typename seq::transform_type
- >
- , typename boost::fusion::result_of::at<
- typename seq::seq1_type
- , N
- >::type
- , typename boost::fusion::result_of::at<
- typename seq::seq2_type
- , N
- >::type
+ typedef typename
+ mpl::apply<
+ detail::apply_transform_result<
+ typename seq::transform_type
+ >
+ , typename boost::fusion::result_of::at<
+ typename seq::seq1_type
+ , N
>::type
- type;
+ , typename boost::fusion::result_of::at<
+ typename seq::seq2_type
+ , N
+ >::type
+ >::type
+ type;
 
- static type call(SeqRef seq)
- {
- return seq.f(
- boost::fusion::at<N>(seq.seq1.get()),
- boost::fusion::at<N>(seq.seq2.get()));
- }
- };
+ static type call(SeqRef seq)
+ {
+ return seq.f(
+ boost::fusion::at<N>(seq.seq1.get()),
+ boost::fusion::at<N>(seq.seq2.get()));
+ }
         };
- }
-}}
+ };
+}}}
 
 #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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,81 +9,71 @@
 #define BOOST_FUSION_VIEW_TRANSFORM_VIEW_DETAIL_BEGIN_IMPL_HPP
 
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/view/transform_view/transform_view_fwd.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- template <typename First, typename F>
- struct transform_view_iterator;
+ template <typename Tag>
+ struct begin_impl;
 
- template <typename First1, typename First2, typename F>
- struct transform_view_iterator2;
-
- namespace extension
+ // Unary Version
+ template <>
+ struct begin_impl<transform_view_tag>
     {
- template <typename Tag>
- struct begin_impl;
-
- // Unary Version
- template <>
- struct begin_impl<transform_view_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
+ typedef typename
+ detail::remove_reference<SeqRef>::type
+ seq;
+
+ typedef
+ transform_view_iterator<
+ typename result_of::begin<typename seq::seq_type>::type
+ , typename detail::forward_as<
+ SeqRef
+ , typename seq::transform_type
+ >::type
+ >
+ type;
+
+ static type
+ call(SeqRef seq)
             {
- typedef typename
- detail::remove_reference<SeqRef>::type
- seq;
-
- typedef
- transform_view_iterator<
- typename result_of::begin<typename seq::seq_type>::type
- , typename detail::result_of_forward_as<
- SeqRef
- , typename seq::transform_type
- >::type
- >
- type;
-
- static type
- call(SeqRef seq)
- {
- return type(fusion::begin(seq.seq.get()), seq.f);
- }
- };
+ return type(fusion::begin(seq.seq.get()), seq.f);
+ }
         };
+ };
 
- // Binary Version
- template <>
- struct begin_impl<transform_view2_tag>
+ // Binary Version
+ template <>
+ struct begin_impl<transform_view2_tag>
+ {
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef typename detail::remove_reference<SeqRef>::type seq;
+ typedef typename detail::remove_reference<SeqRef>::type seq;
+
+ typedef
+ transform_view_iterator2<
+ typename result_of::begin<typename seq::seq1_type>::type
+ , typename result_of::begin<typename seq::seq2_type>::type
+ , typename detail::forward_as<
+ SeqRef
+ , typename seq::transform_type
+ >::type
+ >
+ type;
 
- typedef
- transform_view_iterator2<
- typename result_of::begin<typename seq::seq1_type>::type
- , typename result_of::begin<typename seq::seq2_type>::type
- , typename detail::result_of_forward_as<
- SeqRef
- , typename seq::transform_type
- >::type
- >
- type;
-
- static type
- call(SeqRef seq)
- {
- return type(
- fusion::begin(seq.seq1.get()),
- fusion::begin(seq.seq2.get()),
- seq.f);
- }
- };
+ static type
+ call(SeqRef seq)
+ {
+ return type(
+ fusion::begin(seq.seq1.get()),
+ fusion::begin(seq.seq2.get()),
+ seq.f);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/deref_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,85 +8,81 @@
 #ifndef BOOST_FUSION_VIEW_TRANSFORM_VIEW_DETAIL_DEREF_IMPL_HPP
 #define BOOST_FUSION_VIEW_TRANSFORM_VIEW_DETAIL_DEREF_IMPL_HPP
 
-#include <boost/mpl/apply.hpp>
 #include <boost/fusion/iterator/deref.hpp>
 #include <boost/fusion/iterator/value_of.hpp>
+
+#include <boost/mpl/apply.hpp>
+
 #include <boost/fusion/view/transform_view/detail/apply_transform_result.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct transform_view_iterator_tag;
- struct transform_view_iterator2_tag;
+ template <typename Tag>
+ struct deref_impl;
 
- namespace extension
+ // Unary Version
+ template <>
+ struct deref_impl<transform_view_iterator_tag>
     {
- template <typename Tag>
- struct deref_impl;
-
- // Unary Version
- template <>
- struct deref_impl<transform_view_iterator_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef typename
- detail::remove_reference<ItRef>::type
- it;
-
- //TODO: return only const
- typedef typename
- mpl::apply<
- detail::apply_transform_result<
- typename it::transform_type
- >
- , typename result_of::deref<
- typename it::first_type
- >::type
+ typedef typename
+ detail::remove_reference<ItRef>::type
+ it;
+
+ //TODO: return only const
+ typedef typename
+ mpl::apply<
+ detail::apply_transform_result<
+ typename it::transform_type
+ >
+ , typename result_of::deref<
+ typename it::first_type
>::type
- type;
+ >::type
+ type;
 
- static type
- call(ItRef it)
- {
- return (*it.f)(fusion::deref(it.first));
- }
- };
+ static type
+ call(ItRef it)
+ {
+ return (*it.f)(fusion::deref(it.first));
+ }
         };
+ };
 
- // Binary Version
- template <>
- struct deref_impl<transform_view_iterator2_tag>
+ // Binary Version
+ template <>
+ struct deref_impl<transform_view_iterator2_tag>
+ {
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef typename detail::remove_reference<ItRef>::type it;
+ typedef typename detail::remove_reference<ItRef>::type it;
 
- typedef typename
- mpl::apply<
- detail::apply_transform_result<
- typename it::transform_type
- >
- , typename result_of::deref<
- typename it::first1_type
- >::type
- , typename result_of::deref<
- typename it::first2_type
- >::type
+ typedef typename
+ mpl::apply<
+ detail::apply_transform_result<
+ typename it::transform_type
+ >
+ , typename result_of::deref<
+ typename it::first1_type
>::type
- type;
+ , typename result_of::deref<
+ typename it::first2_type
+ >::type
+ >::type
+ type;
 
- static type
- call(ItRef it)
- {
- return (*it.f)(
- fusion::deref(it.first1)
- , fusion::deref(it.first2));
- }
- };
+ static type
+ call(ItRef it)
+ {
+ return (*it.f)(
+ fusion::deref(it.first1)
+ , fusion::deref(it.first2));
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/distance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/distance_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/distance_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,44 +11,38 @@
 
 #include <boost/fusion/iterator/distance.hpp>
 
-namespace boost { namespace fusion {
-
- struct transform_view_iterator_tag;
- struct transform_view_iterator2_tag;
-
- namespace extension
+namespace boost { namespace fusion { namespace extension
+{
+ template<typename Tag>
+ struct distance_impl;
+
+ // Unary Version
+ template<>
+ struct distance_impl<transform_view_iterator_tag>
     {
- template<typename Tag>
- struct distance_impl;
-
- // Unary Version
- template<>
- struct distance_impl<transform_view_iterator_tag>
+ template<typename First, typename Last>
+ struct apply
+ : result_of::distance<
+ typename detail::remove_reference<First>::type::first_type
+ , typename detail::remove_reference<Last>::type::first_type
+ >
         {
- template<typename First, typename Last>
- struct apply
- : result_of::distance<
- typename detail::remove_reference<First>::type::first_type
- , typename detail::remove_reference<Last>::type::first_type
- >
- {
- };
         };
+ };
 
- // Binary Version
- template<>
- struct distance_impl<transform_view_iterator2_tag>
+ // Binary Version
+ template<>
+ struct distance_impl<transform_view_iterator2_tag>
+ {
+ template<typename First, typename Last>
+ struct apply
+ : result_of::distance<
+ typename detail::remove_reference<First>::type::first1_type
+ , typename detail::remove_reference<Last>::type::first1_type
+ >
         {
- template<typename First, typename Last>
- struct apply
- : result_of::distance<
- typename detail::remove_reference<First>::type::first1_type
- , typename detail::remove_reference<Last>::type::first1_type
- >
- {
- };
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/end_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,79 +9,69 @@
 #define BOOST_FUSION_VIEW_TRANSFORM_VIEW_DETAIL_END_IMPL_HPP
 
 #include <boost/fusion/sequence/intrinsic/end.hpp>
-#include <boost/fusion/view/transform_view/transform_view_fwd.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- template <typename First, typename F>
- struct transform_view_iterator;
+ template <typename Tag>
+ struct end_impl;
 
- template <typename First1, typename First2, typename F>
- struct transform_view_iterator2;
-
- namespace extension
+ // Unary Version
+ template <>
+ struct end_impl<transform_view_tag>
     {
- template <typename Tag>
- struct end_impl;
-
- // Unary Version
- template <>
- struct end_impl<transform_view_tag>
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef typename detail::remove_reference<SeqRef>::type seq;
+ typedef typename detail::remove_reference<SeqRef>::type seq;
 
- typedef
- transform_view_iterator<
- typename result_of::end<typename seq::seq_type>::type
- , typename detail::result_of_forward_as<
- SeqRef
- , typename seq::transform_type
- >::type
- >
- type;
-
- static type
- call(SeqRef seq)
- {
- return type(fusion::end(seq.seq.get()), seq.f);
- }
- };
+ typedef
+ transform_view_iterator<
+ typename result_of::end<typename seq::seq_type>::type
+ , typename detail::forward_as<
+ SeqRef
+ , typename seq::transform_type
+ >::type
+ >
+ type;
+
+ static type
+ call(SeqRef seq)
+ {
+ return type(fusion::end(seq.seq.get()), seq.f);
+ }
         };
+ };
 
- // Binary Version
- template <>
- struct end_impl<transform_view2_tag>
+ // Binary Version
+ template <>
+ struct end_impl<transform_view2_tag>
+ {
+ template <typename SeqRef>
+ struct apply
         {
- template <typename SeqRef>
- struct apply
- {
- typedef typename detail::remove_reference<SeqRef>::type seq;
+ typedef typename detail::remove_reference<SeqRef>::type seq;
 
- typedef
- transform_view_iterator2<
- typename result_of::end<typename seq::seq1_type>::type
- , typename result_of::end<typename seq::seq2_type>::type
- , typename detail::result_of_forward_as<
- SeqRef
- , typename seq::transform_type
- >::type
- >
- type;
-
- static type
- call(SeqRef seq)
- {
- return type(
- fusion::end(seq.seq1.get())
- , fusion::end(seq.seq2.get())
- , seq.f);
- }
- };
+ typedef
+ transform_view_iterator2<
+ typename result_of::end<typename seq::seq1_type>::type
+ , typename result_of::end<typename seq::seq2_type>::type
+ , typename detail::forward_as<
+ SeqRef
+ , typename seq::transform_type
+ >::type
+ >
+ type;
+
+ static type
+ call(SeqRef seq)
+ {
+ return type(
+ fusion::end(seq.seq1.get())
+ , fusion::end(seq.seq2.get())
+ , seq.f);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/equal_to_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/equal_to_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,40 +10,34 @@
 
 #include <boost/fusion/iterator/equal_to.hpp>
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+ template<typename Tag>
+ struct equal_to_impl;
 
- struct transform_view_iterator_tag;
- struct transform_view_iterator2_tag;
-
- namespace extension
+ template<>
+ struct equal_to_impl<transform_view_iterator_tag>
     {
- template<typename Tag>
- struct equal_to_impl;
-
- template<>
- struct equal_to_impl<transform_view_iterator_tag>
- {
- template<typename ItRef1, typename ItRef2>
- struct apply
- : result_of::equal_to<
- typename detail::remove_reference<ItRef1>::type::first_type
- , typename detail::remove_reference<ItRef2>::type::first_type
- >
- {};
- };
+ template<typename ItRef1, typename ItRef2>
+ struct apply
+ : result_of::equal_to<
+ typename detail::remove_reference<ItRef1>::type::first_type
+ , typename detail::remove_reference<ItRef2>::type::first_type
+ >
+ {};
+ };
 
- template<>
- struct equal_to_impl<transform_view_iterator2_tag>
- {
- template<typename ItRef1, typename ItRef2>
- struct apply
- : result_of::equal_to<
- typename detail::remove_reference<ItRef1>::type::first1_type
- , typename detail::remove_reference<ItRef2>::type::first1_type
- >
- {};
- };
- }
-}}
+ template<>
+ struct equal_to_impl<transform_view_iterator2_tag>
+ {
+ template<typename ItRef1, typename ItRef2>
+ struct apply
+ : result_of::equal_to<
+ typename detail::remove_reference<ItRef1>::type::first1_type
+ , typename detail::remove_reference<ItRef2>::type::first1_type
+ >
+ {};
+ };
+}}}
 
 #endif

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,79 +10,67 @@
 
 #include <boost/fusion/iterator/next.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct transform_view_iterator_tag;
- struct transform_view_iterator2_tag;
+ template <typename Tag>
+ struct next_impl;
 
- template<typename First, typename F>
- struct transform_view_iterator;
-
- template <typename First1, typename First2, typename F>
- struct transform_view_iterator2;
-
- namespace extension
+ // Unary Version
+ template <>
+ struct next_impl<transform_view_iterator_tag>
     {
- template <typename Tag>
- struct next_impl;
-
- // Unary Version
- template <>
- struct next_impl<transform_view_iterator_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef typename detail::remove_reference<ItRef>::type it;
+ typedef typename detail::remove_reference<ItRef>::type it;
+
+ typedef
+ transform_view_iterator<
+ typename result_of::next<
+ typename it::first_type
+ >::type
+ , typename it::transform_type
+ >
+ type;
 
- typedef
- transform_view_iterator<
- typename result_of::next<
- typename it::first_type
- >::type
- , typename it::transform_type
- >
- type;
-
- static type
- call(ItRef it)
- {
- return type(fusion::next(it.first), *it.f);
- }
- };
+ static type
+ call(ItRef it)
+ {
+ return type(fusion::next(it.first), *it.f);
+ }
         };
+ };
 
- // Binary Version
- template <>
- struct next_impl<transform_view_iterator2_tag>
+ // Binary Version
+ template <>
+ struct next_impl<transform_view_iterator2_tag>
+ {
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef typename detail::remove_reference<ItRef>::type it;
+ typedef typename detail::remove_reference<ItRef>::type it;
 
- typedef
- transform_view_iterator2<
- typename result_of::next<
- typename it::first1_type
- >::type
- , typename result_of::next<
- typename it::first2_type
- >::type
- , typename it::transform_type
- >
- type;
-
- static type
- call(ItRef it)
- {
- return type(fusion::next(it.first1),
- fusion::next(it.first2),
- *it.f);
- }
- };
+ typedef
+ transform_view_iterator2<
+ typename result_of::next<
+ typename it::first1_type
+ >::type
+ , typename result_of::next<
+ typename it::first2_type
+ >::type
+ , typename it::transform_type
+ >
+ type;
+
+ static type
+ call(ItRef it)
+ {
+ return type(fusion::next(it.first1),
+ fusion::next(it.first2),
+ *it.f);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/prior_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/prior_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/prior_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,81 +11,69 @@
 
 #include <boost/fusion/iterator/prior.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct transform_view_iterator_tag;
- struct transform_view_iterator2_tag;
+ template<typename Tag>
+ struct prior_impl;
 
- template<typename First, typename F>
- struct transform_view_iterator;
-
- template <typename First1, typename First2, typename F>
- struct transform_view_iterator2;
-
- namespace extension
+ // Unary Version
+ template<>
+ struct prior_impl<transform_view_iterator_tag>
     {
- template<typename Tag>
- struct prior_impl;
-
- // Unary Version
- template<>
- struct prior_impl<transform_view_iterator_tag>
+ template<typename ItRef>
+ struct apply
         {
- template<typename ItRef>
- struct apply
- {
- typedef typename detail::remove_reference<ItRef>::type it;
+ typedef typename detail::remove_reference<ItRef>::type it;
 
- typedef
- transform_view_iterator<
- typename result_of::prior<
- typename it::first_type
- >::type
- , typename it::transform_type
- >
- type;
-
- static type
- call(ItRef it)
- {
- return type(fusion::prior(it.first), *it.f);
- }
- };
+ typedef
+ transform_view_iterator<
+ typename result_of::prior<
+ typename it::first_type
+ >::type
+ , typename it::transform_type
+ >
+ type;
+
+ static type
+ call(ItRef it)
+ {
+ return type(fusion::prior(it.first), *it.f);
+ }
         };
+ };
 
- // Binary Version
- template<>
- struct prior_impl<transform_view_iterator2_tag>
+ // Binary Version
+ template<>
+ struct prior_impl<transform_view_iterator2_tag>
+ {
+ template<typename ItRef>
+ struct apply
         {
- template<typename ItRef>
- struct apply
+ typedef typename
+ detail::remove_reference<ItRef>::type
+ it;
+
+ typedef
+ transform_view_iterator2<
+ typename result_of::prior<
+ typename it::first1_type
+ >::type
+ , typename result_of::prior<
+ typename it::first2_type
+ >::type
+ , typename it::transform_type
+ >
+ type;
+
+ static type
+ call(ItRef it)
             {
- typedef typename
- detail::remove_reference<ItRef>::type
- it;
-
- typedef
- transform_view_iterator2<
- typename result_of::prior<
- typename it::first1_type
- >::type
- , typename result_of::prior<
- typename it::first2_type
- >::type
- , typename it::transform_type
- >
- type;
-
- static type
- call(ItRef it)
- {
- return type(fusion::prior(it.first1),
- fusion::prior(it.first2),
- it.f);
- }
- };
+ return type(fusion::prior(it.first1),
+ fusion::prior(it.first2),
+ it.f);
+ }
         };
- }
-}}
+ };
+}}}
 
 #endif

Added: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/transform_view_iterator.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/transform_view_iterator.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,100 @@
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_FUSION_VIEW_TRANSFORM_VIEW_DETAIL_TRANSFORM_VIEW_ITERATOR_HPP
+#define BOOST_FUSION_VIEW_TRANSFORM_VIEW_DETAIL_TRANSFORM_VIEW_ITERATOR_HPP
+
+#include <boost/fusion/support/iterator_base.hpp>
+#include <boost/fusion/support/category_of.hpp>
+
+namespace boost { namespace fusion
+{
+ // Unary Version
+ struct transform_view_iterator_tag;
+
+ template <typename First, typename FRef>
+ struct transform_view_iterator
+ : iterator_base<transform_view_iterator<First, FRef> >
+ {
+ //TODO !!!
+ typedef FRef transform_type;
+ typedef First first_type;
+
+ typedef transform_view_iterator_tag fusion_tag;
+ typedef typename traits::category_of<first_type>::type category;
+
+ template<typename OtherIt>
+ transform_view_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+ : first(BOOST_FUSION_FORWARD(OtherIt,it).first)
+ , f(BOOST_FUSION_FORWARD(OtherIt,it).f)
+ {}
+
+ transform_view_iterator(First const& first, transform_type f)
+ : first(first)
+ , f(&f)
+ {}
+
+ template<typename OtherIt>
+ transform_view_iterator&
+ operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+ {
+ first=BOOST_FUSION_FORWARD(OtherIt,it).first;
+ f=BOOST_FUSION_FORWARD(OtherIt,it).f;
+ return *this;
+ }
+
+ first_type first;
+ typename detail::remove_reference<transform_type>::type* f;
+ };
+
+ // Binary Version
+ struct transform_view_iterator2_tag;
+
+ template <typename First1, typename First2, typename FRef>
+ struct transform_view_iterator2
+ : iterator_base<transform_view_iterator2<First1, First2, FRef> >
+ {
+ typedef First1 first1_type;
+ typedef First2 first2_type;
+ typedef FRef transform_type;
+
+ typedef transform_view_iterator2_tag fusion_tag;
+ typedef typename traits::category_of<first1_type>::type category;
+
+ template<typename OtherIt>
+ transform_view_iterator2(
+ BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+ : first1(BOOST_FUSION_FORWARD(OtherIt,it).first1)
+ , first2(BOOST_FUSION_FORWARD(OtherIt,it).first2)
+ , f(BOOST_FUSION_FORWARD(OtherIt,it).f)
+ {}
+
+ transform_view_iterator2(First1 const& first1,
+ First2 const& first2,
+ FRef f)
+ : first1(first1)
+ , first2(first2)
+ , f(&f)
+ {}
+
+ template<typename OtherIt>
+ transform_view_iterator2&
+ operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+ {
+ first1=BOOST_FUSION_FORWARD(OtherIt,it).first1;
+ first2=BOOST_FUSION_FORWARD(OtherIt,it).first2;
+ f=BOOST_FUSION_FORWARD(OtherIt,it).f;
+ return *this;
+ }
+
+ first1_type first1;
+ first2_type first2;
+ typename detail::remove_reference<transform_type>::type* f;
+ };
+}}
+
+#endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_at_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -14,62 +14,56 @@
 
 #include <boost/mpl/apply.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct transform_view_tag;
- struct transform_view2_tag;
+ template<typename Tag>
+ struct value_at_impl;
 
- namespace extension
+ template<>
+ struct value_at_impl<transform_view_tag>
     {
- template<typename Tag>
- struct value_at_impl;
-
- template<>
- struct value_at_impl<transform_view_tag>
+ template<typename SeqRef, typename N>
+ struct apply
         {
- template<typename SeqRef, typename N>
- struct apply
- {
- typedef typename detail::remove_reference<SeqRef>::type seq;
-
- typedef typename
- mpl::apply<
- detail::apply_transform_result<
- typename seq::transform_type
- >
- , typename boost::fusion::result_of::value_at<
- typename seq::seq_type
- , N
- >::type
+ typedef typename detail::remove_reference<SeqRef>::type seq;
+
+ typedef typename
+ mpl::apply<
+ detail::apply_transform_result<
+ typename seq::transform_type
+ >
+ , typename boost::fusion::result_of::value_at<
+ typename seq::seq_type
+ , N
>::type
- type;
- };
+ >::type
+ type;
         };
+ };
 
- template<>
- struct value_at_impl<transform_view2_tag>
+ template<>
+ struct value_at_impl<transform_view2_tag>
+ {
+ template<typename SeqRef, typename N>
+ struct apply
         {
- template<typename SeqRef, typename N>
- struct apply
- {
- typedef typename detail::remove_reference<SeqRef>::type seq;
-
- typedef typename
- mpl::apply<
- detail::apply_transform_result<
- typename seq::transform_type
- >
- , typename boost::fusion::result_of::value_at<
- typename seq::seq1_type, N
- >::type
- , typename boost::fusion::result_of::value_at<
- typename seq::seq2_type, N
- >::type
+ typedef typename detail::remove_reference<SeqRef>::type seq;
+
+ typedef typename
+ mpl::apply<
+ detail::apply_transform_result<
+ typename seq::transform_type
+ >
+ , typename boost::fusion::result_of::value_at<
+ typename seq::seq1_type, N
+ >::type
+ , typename boost::fusion::result_of::value_at<
+ typename seq::seq2_type, N
>::type
- type;
- };
+ >::type
+ type;
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_of_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,63 +12,57 @@
 #include <boost/fusion/iterator/value_of.hpp>
 #include <boost/fusion/view/transform_view/detail/apply_transform_result.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
- struct transform_view_iterator_tag;
- struct transform_view_iterator2_tag;
+ template <typename Tag>
+ struct value_of_impl;
 
- namespace extension
+ // Unary Version
+ template <>
+ struct value_of_impl<transform_view_iterator_tag>
     {
- template <typename Tag>
- struct value_of_impl;
-
- // Unary Version
- template <>
- struct value_of_impl<transform_view_iterator_tag>
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef typename detail::remove_reference<ItRef>::type it;
-
- typedef typename
- mpl::apply<
- detail::apply_transform_result<
- typename it::transform_type
- >
- , typename result_of::value_of<
- typename it::first_type
- >::type
+ typedef typename detail::remove_reference<ItRef>::type it;
+
+ typedef typename
+ mpl::apply<
+ detail::apply_transform_result<
+ typename it::transform_type
+ >
+ , typename result_of::value_of<
+ typename it::first_type
>::type
- type;
- };
+ >::type
+ type;
         };
+ };
 
- // Binary Version
- template <>
- struct value_of_impl<transform_view_iterator2_tag>
+ // Binary Version
+ template <>
+ struct value_of_impl<transform_view_iterator2_tag>
+ {
+ template <typename ItRef>
+ struct apply
         {
- template <typename ItRef>
- struct apply
- {
- typedef typename detail::remove_reference<ItRef>::type it;
-
- typedef typename
- mpl::apply<
- detail::apply_transform_result<
- typename it::transform_type
- >
- , typename result_of::value_of<
- typename it::first1_type
- >::type
- , typename result_of::value_of<
- typename it::first2_type
- >::type
+ typedef typename detail::remove_reference<ItRef>::type it;
+
+ typedef typename
+ mpl::apply<
+ detail::apply_transform_result<
+ typename it::transform_type
+ >
+ , typename result_of::value_of<
+ typename it::first1_type
+ >::type
+ , typename result_of::value_of<
+ typename it::first2_type
>::type
- type;
- };
+ >::type
+ type;
         };
- }
-}}
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -28,12 +28,20 @@
 #include <boost/mpl/bool.hpp>
 
 #include <boost/fusion/view/transform_view/transform_view_fwd.hpp>
-#include <boost/fusion/view/transform_view/transform_view_iterator.hpp>
-#include <boost/fusion/view/transform_view/detail/begin_impl.hpp>
-#include <boost/fusion/view/transform_view/detail/end_impl.hpp>
 #include <boost/fusion/view/transform_view/detail/at_impl.hpp>
 #include <boost/fusion/view/transform_view/detail/value_at_impl.hpp>
 
+#include <boost/fusion/view/transform_view/detail/transform_view_iterator.hpp>
+#include <boost/fusion/view/transform_view/detail/begin_impl.hpp>
+#include <boost/fusion/view/transform_view/detail/end_impl.hpp>
+#include <boost/fusion/view/transform_view/detail/deref_impl.hpp>
+#include <boost/fusion/view/transform_view/detail/next_impl.hpp>
+#include <boost/fusion/view/transform_view/detail/prior_impl.hpp>
+#include <boost/fusion/view/transform_view/detail/value_of_impl.hpp>
+#include <boost/fusion/view/transform_view/detail/advance_impl.hpp>
+#include <boost/fusion/view/transform_view/detail/distance_impl.hpp>
+#include <boost/fusion/view/transform_view/detail/equal_to_impl.hpp>
+
 namespace boost { namespace fusion
 {
     struct void_;

Deleted: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view_iterator.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
+++ (empty file)
@@ -1,108 +0,0 @@
-/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_VIEW_TRANSFORM_VIEW_TRANSFORM_VIEW_ITERATOR_HPP
-#define BOOST_FUSION_VIEW_TRANSFORM_VIEW_TRANSFORM_VIEW_ITERATOR_HPP
-
-#include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/support/category_of.hpp>
-
-#include <boost/fusion/view/transform_view/detail/deref_impl.hpp>
-#include <boost/fusion/view/transform_view/detail/next_impl.hpp>
-#include <boost/fusion/view/transform_view/detail/prior_impl.hpp>
-#include <boost/fusion/view/transform_view/detail/value_of_impl.hpp>
-#include <boost/fusion/view/transform_view/detail/advance_impl.hpp>
-#include <boost/fusion/view/transform_view/detail/distance_impl.hpp>
-#include <boost/fusion/view/transform_view/detail/equal_to_impl.hpp>
-
-namespace boost { namespace fusion
-{
- // Unary Version
- struct transform_view_iterator_tag;
-
- template <typename First, typename FRef>
- struct transform_view_iterator
- : iterator_base<transform_view_iterator<First, FRef> >
- {
- //TODO !!!
- typedef FRef transform_type;
- typedef First first_type;
-
- typedef transform_view_iterator_tag fusion_tag;
- typedef typename traits::category_of<first_type>::type category;
-
- template<typename OtherIt>
- transform_view_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
- : first(BOOST_FUSION_FORWARD(OtherIt,it).first)
- , f(BOOST_FUSION_FORWARD(OtherIt,it).f)
- {}
-
- transform_view_iterator(First const& first, transform_type f)
- : first(first)
- , f(&f)
- {}
-
- template<typename OtherIt>
- transform_view_iterator&
- operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
- {
- first=BOOST_FUSION_FORWARD(OtherIt,it).first;
- f=BOOST_FUSION_FORWARD(OtherIt,it).f;
- return *this;
- }
-
- first_type first;
- typename detail::remove_reference<transform_type>::type* f;
- };
-
- // Binary Version
- struct transform_view_iterator2_tag;
-
- template <typename First1, typename First2, typename FRef>
- struct transform_view_iterator2
- : iterator_base<transform_view_iterator2<First1, First2, FRef> >
- {
- typedef First1 first1_type;
- typedef First2 first2_type;
- typedef FRef transform_type;
-
- typedef transform_view_iterator2_tag fusion_tag;
- typedef typename traits::category_of<first1_type>::type category;
-
- template<typename OtherIt>
- transform_view_iterator2(
- BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
- : first1(BOOST_FUSION_FORWARD(OtherIt,it).first1)
- , first2(BOOST_FUSION_FORWARD(OtherIt,it).first2)
- , f(BOOST_FUSION_FORWARD(OtherIt,it).f)
- {}
-
- transform_view_iterator2(First1 const& first1,
- First2 const& first2,
- FRef f)
- : first1(first1)
- , first2(first2)
- , f(&f)
- {}
-
- template<typename OtherIt>
- transform_view_iterator2&
- operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
- {
- first1=BOOST_FUSION_FORWARD(OtherIt,it).first1;
- first2=BOOST_FUSION_FORWARD(OtherIt,it).first2;
- f=BOOST_FUSION_FORWARD(OtherIt,it).f;
- return *this;
- }
-
- first1_type first1;
- first2_type first2;
- typename detail::remove_reference<transform_type>::type* f;
- };
-}}
-
-#endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,6 +10,5 @@
 #define BOOST_FUSION_VIEW_ZIP_VIEW_HPP
 
 #include <boost/fusion/view/zip_view/zip_view.hpp>
-#include <boost/fusion/view/zip_view/zip_view_iterator.hpp>
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/advance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/advance_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/advance_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,14 +9,11 @@
 #ifndef BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_ADVANCE_IMPL_HPP
 #define BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_ADVANCE_IMPL_HPP
 
-#include <boost/fusion/view/zip_view/zip_view_iterator_fwd.hpp>
 #include <boost/fusion/iterator/advance.hpp>
 #include <boost/fusion/algorithm/transformation/transform.hpp>
 
-namespace boost { namespace fusion {
-
- struct zip_view_iterator_tag;
-
+namespace boost { namespace fusion
+{
     namespace detail
     {
         template<typename N>

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/at_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,21 +10,19 @@
 #define BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_AT_IMPL_HPP
 
 #include <boost/fusion/container/vector.hpp>
-#include <boost/fusion/sequence/intrinsic/at.hpp>
 #include <boost/fusion/container/vector/convert.hpp>
+#include <boost/fusion/sequence/intrinsic/at.hpp>
 #include <boost/fusion/algorithm/transformation/transform.hpp>
 #include <boost/fusion/support/assert.hpp>
-
-#include <boost/type_traits/is_reference.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
 {
- struct zip_view_tag;
-
     namespace detail
     {
         template<typename N>

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/begin_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,20 +10,17 @@
 #define BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_BEGIN_IMPL_HPP
 
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/view/zip_view/zip_view_iterator_fwd.hpp>
 #include <boost/fusion/algorithm/transformation/transform.hpp>
 #include <boost/fusion/support/unused.hpp>
 #include <boost/fusion/support/assert.hpp>
 
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/type_traits/is_same.hpp>
 #include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/identity.hpp>
+#include <boost/type_traits/is_reference.hpp>
+#include <boost/type_traits/is_same.hpp>
 
-namespace boost { namespace fusion {
-
- struct zip_view_tag;
-
+namespace boost { namespace fusion
+{
     namespace detail
     {
         struct poly_begin

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/deref_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -19,10 +19,8 @@
 #include <boost/mpl/identity.hpp>
 #include <boost/type_traits/is_same.hpp>
 
-namespace boost { namespace fusion {
-
- struct zip_view_iterator_tag;
-
+namespace boost { namespace fusion
+{
     namespace detail
     {
         struct poly_deref

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/distance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/distance_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/distance_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -20,10 +20,8 @@
 #include <boost/mpl/placeholders.hpp>
 #include <boost/type_traits/is_same.hpp>
 
-namespace boost { namespace fusion {
-
- struct zip_view_iterator_tag;
-
+namespace boost { namespace fusion
+{
     struct random_access_iterator_tag;
 
     namespace detail

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/end_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -23,10 +23,8 @@
 #include <boost/type_traits/is_reference.hpp>
 #include <boost/type_traits/is_same.hpp>
 
-namespace boost { namespace fusion {
-
- struct zip_view_tag;
-
+namespace boost { namespace fusion
+{
     namespace detail
     {
         template<typename Seq, typename M>

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/equal_to_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/equal_to_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -24,10 +24,8 @@
 #include <boost/mpl/equal_to.hpp>
 #include <boost/type_traits/is_same.hpp>
 
-namespace boost { namespace fusion {
-
- struct zip_view_iterator_tag;
-
+namespace boost { namespace fusion
+{
     namespace detail
     {
         template<typename It1, typename It2>

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/next_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/next_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,19 +9,17 @@
 #ifndef BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_NEXT_IMPL_HPP
 #define BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_NEXT_IMPL_HPP
 
-#include <boost/fusion/view/zip_view/zip_view_iterator_fwd.hpp>
 #include <boost/fusion/iterator/next.hpp>
 #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>
 #include <boost/type_traits/remove_const.hpp>
 
-namespace boost { namespace fusion {
-
- struct zip_view_iterator_tag;
-
+namespace boost { namespace fusion
+{
     namespace detail
     {
         struct poly_next

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/prior_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/prior_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/prior_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -18,10 +18,8 @@
 #include <boost/type_traits/is_same.hpp>
 #include <boost/type_traits/remove_const.hpp>
 
-namespace boost { namespace fusion {
-
- struct zip_view_iterator_tag;
-
+namespace boost { namespace fusion
+{
     namespace detail
     {
         struct poly_prior

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/size_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/size_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/size_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,24 +9,19 @@
 #ifndef BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_SIZE_IMPL_HPP
 #define BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_SIZE_IMPL_HPP
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+ template<typename Tag>
+ struct size_impl;
 
- struct zip_view_tag;
-
- namespace extension
+ template<>
+ struct size_impl<zip_view_tag>
     {
- template<typename Tag>
- struct size_impl;
-
- template<>
- struct size_impl<zip_view_tag>
- {
- template<typename SeqRef>
- struct apply
- : detail::remove_reference<SeqRef>::type::size
- {};
- };
- }
-}}
+ template<typename SeqRef>
+ struct apply
+ : detail::remove_reference<SeqRef>::type::size
+ {};
+ };
+}}}
 
 #endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_at_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -13,14 +13,13 @@
 #include <boost/fusion/algorithm/transformation/transform.hpp>
 #include <boost/fusion/sequence/intrinsic/value_at.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 {
-
- struct zip_view_tag;
-
+namespace boost { namespace fusion
+{
     namespace detail
     {
         template<typename N>

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_of_impl.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -20,8 +20,6 @@
 
 namespace boost { namespace fusion
 {
- struct zip_view_iterator_tag;
-
     namespace detail
     {
         struct poly_value_of

Added: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_fwd.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,14 @@
+// Copyright Christopher Schmidt 2009.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_ZIP_VIEW_FWD_HPP
+#define BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_ZIP_VIEW_FWD_HPP
+
+namespace boost { namespace fusion
+{
+ struct zip_view_tag;
+}}
+
+#endif

Added: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_iterator.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_iterator.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,54 @@
+/*=============================================================================
+ Copyright (c) 2001-2006 Joel de Guzman
+ Copyright (c) 2006 Dan Marsden
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_ZIP_VIEW_ITERATOR_HPP
+#define BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_ZIP_VIEW_ITERATOR_HPP
+
+#include <boost/fusion/container/vector/convert.hpp>
+#include <boost/fusion/support/iterator_base.hpp>
+#include <boost/fusion/support/ref.hpp>
+
+namespace boost { namespace fusion {
+
+ struct zip_view_iterator_tag;
+
+ template<
+ typename ItSeq
+ , typename Traversal=typename detail::strictest_traversal<ItSeq>::type
+ >
+ struct zip_view_iterator
+ : iterator_base<zip_view_iterator<ItSeq, Traversal> >
+ {
+ typedef zip_view_iterator_tag fusion_tag;
+ typedef Traversal category;
+
+ template<typename OtherIt>
+ zip_view_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+ : iterators_(sequence_assign(it.iterators_))
+ {}
+
+ template<typename Seq>
+ zip_view_iterator(BOOST_FUSION_R_ELSE_CLREF(Seq) seq,int)
+ : iterators_(
+ sequence_assign(BOOST_FUSION_FORWARD(Seq,seq)))
+ {}
+
+ template<typename OtherIt>
+ zip_view_iterator&
+ operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+ {
+ iterators_=it.iterators_;
+ return *this;
+ }
+
+ typedef typename result_of::as_vector<ItSeq>::type iterators;
+ iterators iterators_;
+ };
+}}
+
+#endif

Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -32,11 +32,21 @@
 #include <boost/type_traits/is_reference.hpp>
 
 #include <boost/fusion/view/detail/strictest_traversal.hpp>
-#include <boost/fusion/view/zip_view/detail/begin_impl.hpp>
-#include <boost/fusion/view/zip_view/detail/end_impl.hpp>
+#include <boost/fusion/view/zip_view/detail/zip_view_fwd.hpp>
 #include <boost/fusion/view/zip_view/detail/size_impl.hpp>
 #include <boost/fusion/view/zip_view/detail/at_impl.hpp>
 #include <boost/fusion/view/zip_view/detail/value_at_impl.hpp>
+#include <boost/fusion/view/zip_view/detail/zip_view_iterator.hpp>
+
+#include <boost/fusion/view/zip_view/detail/begin_impl.hpp>
+#include <boost/fusion/view/zip_view/detail/end_impl.hpp>
+#include <boost/fusion/view/zip_view/detail/deref_impl.hpp>
+#include <boost/fusion/view/zip_view/detail/next_impl.hpp>
+#include <boost/fusion/view/zip_view/detail/prior_impl.hpp>
+#include <boost/fusion/view/zip_view/detail/advance_impl.hpp>
+#include <boost/fusion/view/zip_view/detail/distance_impl.hpp>
+#include <boost/fusion/view/zip_view/detail/value_of_impl.hpp>
+#include <boost/fusion/view/zip_view/detail/equal_to_impl.hpp>
 
 namespace boost { namespace fusion {
 

Deleted: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view_iterator.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
+++ (empty file)
@@ -1,60 +0,0 @@
-/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
- Copyright (c) 2006 Dan Marsden
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_VIEW_ZIP_VIEW_ZIP_VIEW_ITERATOR_HPP
-#define BOOST_FUSION_VIEW_ZIP_VIEW_ZIP_VIEW_ITERATOR_HPP
-
-#include <boost/fusion/container/vector/convert.hpp>
-#include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/support/ref.hpp>
-
-#include <boost/fusion/view/zip_view/zip_view_iterator_fwd.hpp>
-#include <boost/fusion/view/zip_view/detail/deref_impl.hpp>
-#include <boost/fusion/view/zip_view/detail/next_impl.hpp>
-#include <boost/fusion/view/zip_view/detail/prior_impl.hpp>
-#include <boost/fusion/view/zip_view/detail/advance_impl.hpp>
-#include <boost/fusion/view/zip_view/detail/distance_impl.hpp>
-#include <boost/fusion/view/zip_view/detail/value_of_impl.hpp>
-#include <boost/fusion/view/zip_view/detail/equal_to_impl.hpp>
-
-namespace boost { namespace fusion {
-
- struct zip_view_iterator_tag;
-
- template<typename ItSeq, typename Traversal>
- struct zip_view_iterator
- : iterator_base<zip_view_iterator<ItSeq, Traversal> >
- {
- typedef zip_view_iterator_tag fusion_tag;
- typedef Traversal category;
-
- template<typename OtherIt>
- zip_view_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
- : iterators_(sequence_assign(it.iterators_))
- {}
-
- template<typename Seq>
- zip_view_iterator(BOOST_FUSION_R_ELSE_CLREF(Seq) seq,int)
- : iterators_(
- sequence_assign(BOOST_FUSION_FORWARD(Seq,seq)))
- {}
-
- template<typename OtherIt>
- zip_view_iterator&
- operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
- {
- iterators_=it.iterators_;
- return *this;
- }
-
- typedef typename result_of::as_vector<ItSeq>::type iterators;
- iterators iterators_;
- };
-}}
-
-#endif

Deleted: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view_iterator_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view_iterator_fwd.hpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
+++ (empty file)
@@ -1,23 +0,0 @@
-/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
- Copyright (c) 2006 Dan Marsden
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_VIEW_ZIP_VIEW_ZIP_VIEW_ITERATOR_FWD_HPP
-#define BOOST_FUSION_VIEW_ZIP_VIEW_ZIP_VIEW_ITERATOR_FWD_HPP
-
-#include <boost/fusion/view/detail/strictest_traversal.hpp>
-
-namespace boost { namespace fusion {
-
- template<
- typename ItSeq
- , typename Traversal=typename detail::strictest_traversal<ItSeq>::type
- >
- struct zip_view_iterator;
-}}
-
-#endif

Modified: sandbox/SOC/2009/fusion/libs/fusion/doc/functional.qbk
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/doc/functional.qbk (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/doc/functional.qbk 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -277,7 +277,7 @@
         class Sequence
>
     typename __result_of_invoke__<Function, Sequence const>::type
- invoke(Function f, Sequence const & s);
+ invoke(Function f, Sequence const& s);
 
 [heading Parameters]
 [table
@@ -345,7 +345,7 @@
         class Sequence
>
     typename __result_of_invoke_procedure__<Function, Sequence const>::type
- invoke_procedure(Function f, Sequence const & s);
+ invoke_procedure(Function f, Sequence const& s);
 
 [heading Parameters]
 [table
@@ -405,7 +405,7 @@
         class Sequence
>
     typename __result_of_invoke_function_object__<Function, Sequence const>::type
- invoke_function_object(Function f, Sequence const & s);
+ invoke_function_object(Function f, Sequence const& s);
 
 [heading Parameters]
 [table
@@ -703,10 +703,10 @@
 
 [heading Example]
     template<class SequenceOfSequences, class Func>
- void n_ary_for_each(SequenceOfSequences const & s, Func const & f)
+ void n_ary_for_each(SequenceOfSequences const& s, Func const& f)
     {
         __for_each__(__zip_view__<SequenceOfSequences>(s),
- fused_procedure<Func const &>(f));
+ fused_procedure<Func const&>(f));
     }
 
     void try_it()
@@ -780,11 +780,11 @@
 [heading Example]
     template<class SeqOfSeqs, class Func>
     typename __result_of_transform__< zip_view<SeqOfSeqs> const,
- fused_function_object<Func const &> >::type
- n_ary_transform(SeqOfSeqs const & s, Func const & f)
+ fused_function_object<Func const&> >::type
+ n_ary_transform(SeqOfSeqs const& s, Func const& f)
     {
         return __transform__(zip_view<SeqOfSeqs>(s),
- fused_function_object<Func const &>(f));
+ fused_function_object<Func const&>(f));
     }
 
     struct sub
@@ -894,7 +894,7 @@
         };
 
         template <class Seq>
- void operator()(Seq const & s) const
+ void operator()(Seq const& s) const
         {
             __for_each__(s,++boost::lambda::_1);
         }
@@ -986,7 +986,7 @@
         typedef void result_type; // for simplicity
 
         template <typename T>
- void operator()(T & lhs, T const & rhs) const
+ void operator()(T & lhs, T const& rhs) const
         {
             lhs += rhs;
         }
@@ -997,14 +997,14 @@
     {
         Tie tie_dest;
     public:
- explicit fused_parallel_adder(Tie const & dest)
+ explicit fused_parallel_adder(Tie const& dest)
             : tie_dest(dest)
         { }
 
         typedef void result_type;
 
         template <class Seq>
- void operator()(Seq const & s) const
+ void operator()(Seq const& s) const
         {
             for_each( zip(tie_dest,s), fused<add_assign>() );
         }
@@ -1026,7 +1026,7 @@
         };
 
         template <class Seq>
- typename result< void(Seq) >::type operator()(Seq const & tie)
+ typename result< void(Seq) >::type operator()(Seq const& tie)
         {
             return typename result< void(Seq) >::type(
                 fused_parallel_adder<Seq>(tie) );
@@ -1086,7 +1086,7 @@
 [heading Synopsis]
     template <typename F>
     inline typename __result_of_make_fused__<F>::type
- make_fused(F const & f);
+ make_fused(F const& f);
 
 [heading Parameters]
 [table
@@ -1135,7 +1135,7 @@
 [heading Synopsis]
     template <typename F>
     inline typename __result_of_make_fused_procedure__<F>::type
- make_fused_procedure(F const & f);
+ make_fused_procedure(F const& f);
 
 [heading Parameters]
 [table
@@ -1178,7 +1178,7 @@
 [heading Synopsis]
     template <typename F>
     inline typename __result_of_make_fused_function_object__<F>::type
- make_fused_function_object(F const & f);
+ make_fused_function_object(F const& f);
 
 [heading Parameters]
 [table
@@ -1240,7 +1240,7 @@
 [heading Synopsis]
     template <typename F>
     inline typename __result_of_make_unfused__<F>::type
- make_unfused(F const & f);
+ make_unfused(F const& f);
 
 [heading Parameters]
 [table
@@ -1271,7 +1271,7 @@
         };
 
         template <class Seq>
- void operator()(Seq const & s) const
+ void operator()(Seq const& s) const
         {
             __for_each__(s,++boost::lambda::_1);
         }

Modified: sandbox/SOC/2009/fusion/libs/fusion/doc/support.qbk
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/doc/support.qbk (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/doc/support.qbk 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -293,15 +293,15 @@
     template <typename T>
     struct holder
     {
- typename traits::deduce<T const &>::type element;
+ typename traits::deduce<T const&>::type element;
 
- holder(T const & a)
+ holder(T const& a)
           : element(a)
         { }
     };
 
     template <typename T>
- holder<T> make_holder(T const & a)
+ holder<T> make_holder(T const& a)
     {
         return holder<T>(a);
     }
@@ -339,16 +339,16 @@
     {
         typename traits::deduce_sequence<Seq>::type element;
 
- holder(Seq const & a)
+ holder(Seq const& a)
           : element(a)
         { }
     };
 
     template <typename T0, typename T1>
- holder< __vector__<T0 const &, T1 const &> >
- make_holder(T0 const & a0, T1 const & a1)
+ holder< __vector__<T0 const&, T1 const&> >
+ make_holder(T0 const& a0, T1 const& a1)
     {
- typedef __vector__<T0 const &, T1 const &> arg_vec_t;
+ typedef __vector__<T0 const&, T1 const&> arg_vec_t;
         return holder<arg_vec_t>( arg_vec_t(a0,a1) );
     }
 
@@ -384,7 +384,7 @@
 
     template <typename First, typename Second>
     typename result_of::make_pair<First,Second>::type
- make_pair(Second const &);
+ make_pair(Second const&);
 
 [heading Template parameters]
 

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -65,9 +65,9 @@
     // 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>& > : 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 <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
@@ -75,17 +75,17 @@
     // from the final call.
     template<class FinalArgs> struct argument_transform
     {
- FinalArgs const & ref_final_args;
+ FinalArgs const& ref_final_args;
     public:
 
- explicit argument_transform(FinalArgs const & final_args)
+ explicit argument_transform(FinalArgs const& final_args)
             : ref_final_args(final_args)
         { }
 
         // A placeholder? Replace it with an argument from the final call...
         template <int Index>
         inline typename result_of::at_c<FinalArgs const, Index>::type
- operator()(placeholder<Index> const &) const
+ operator()(placeholder<Index> const&) const
         {
             return fusion::at_c<Index>(this->ref_final_args);
         }
@@ -117,7 +117,7 @@
         bound_args fsq_bind_args;
     public:
 
- fused_bound_function(BindArgs const & bind_args)
+ fused_bound_function(BindArgs const& bind_args)
           : fsq_bind_args(bind_args)
         { }
 
@@ -141,7 +141,7 @@
 
         template <class FinalArgs>
         inline typename result_impl<FinalArgs>::type
- operator()(FinalArgs const & final_args) const
+ operator()(FinalArgs const& final_args) const
         {
             return fusion::invoke( fusion::front(this->fsq_bind_args),
                 fusion::transform( fusion::pop_front(this->fsq_bind_args),
@@ -231,17 +231,17 @@
     }
 
     template <typename A>
- inline int operator()(A const & a) const
+ inline int operator()(A const& a) const
     {
- std::cout << "operator()(A const & a)" << std::endl;
+ std::cout << "operator()(A const& a)" << std::endl;
         std::cout << " a = " << a << " A = " << typeid(A).name() << std::endl;
         return 1;
     }
 
     template <typename A, typename B>
- inline int operator()(A const & a, B & b) const
+ inline int operator()(A const& a, B & b) const
     {
- std::cout << "operator()(A const & a, B & b)" << std::endl;
+ std::cout << "operator()(A const& a, B & b)" << std::endl;
         std::cout << " a = " << a << " A = " << typeid(A).name() << std::endl;
         std::cout << " b = " << b << " B = " << typeid(B).name() << std::endl;
         return 2;

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 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -36,7 +36,7 @@
     struct fused_sum
     {
         template <typename Seq>
- int operator()(Seq const & seq) const
+ int operator()(Seq const& seq) const
         {
             int state = 0;
             return boost::fusion::fold(seq, state, sum_op());
@@ -49,7 +49,7 @@
         struct sum_op
         {
             template <typename T>
- int operator()(T const & elem, int value) const
+ int operator()(T const& elem, int value) const
             {
               return value + sizeof(T) * elem;
             }
@@ -72,22 +72,22 @@
             return 0;
         }
         template<typename T0>
- inline int operator()(T0 const & a0) const
+ inline int operator()(T0 const& a0) const
         {
             return a0;
         }
         template<typename T0, typename T1>
- inline int operator()(T0 const & a0, T1 const & a1) const
+ inline int operator()(T0 const& a0, T1 const& a1) const
         {
             return a0 + a1;
         }
         template<typename T0, typename T1, typename T2>
- inline int operator()(T0 const & a0, T1 const & a1, T2 a2) const
+ inline int operator()(T0 const& a0, T1 const& a1, T2 a2) const
         {
             return a0 + a1 + a2;
         }
         template<typename T0, typename T1, typename T2, typename T3>
- inline int operator()(T0 const & a0, T1 const & a1, T2 const & a2, T3 const & a3) const
+ inline int operator()(T0 const& a0, T1 const& a1, T2 const& a2, T3 const& a3) const
         {
             return a0 + a1 + a2 + a3;
         }
@@ -96,7 +96,7 @@
     };
 
     template<typename F>
- double call_unfused(F const & func, int & j)
+ double call_unfused(F const& func, int & j)
     {
         boost::timer tim;
         int i = 0;
@@ -139,7 +139,7 @@
     }
 
     template<typename F>
- double call_fused_ra(F const & func, int & j)
+ double call_fused_ra(F const& func, int & j)
     {
         boost::timer tim;
         int i = 0;
@@ -192,7 +192,7 @@
     }
 
     template<typename F>
- double call_fused(F const & func, int & j)
+ double call_fused(F const& func, int & j)
     {
         boost::timer tim;
         int i = 0;

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/Jamfile
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/Jamfile (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/Jamfile 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -51,7 +51,7 @@
     [ run sequence/as_vector.cpp : : : : ]
     [ run sequence/boost_tuple.cpp : : : : ]
     [ run sequence/cons.cpp : : : : ]
-# [ run sequence/deduce_sequence.cpp : : : : ]
+ [ run sequence/deduce_sequence.cpp : : : : ]
     [ run sequence/filter_view.cpp : : : : ]
     [ run sequence/io.cpp : : : : ]
     [ run sequence/iterator_range.cpp : : : : ]

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused.cpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -28,13 +28,13 @@
     typedef int result_type;
 
     template <typename T0, typename T1>
- int operator()(T0 const & x, T1 const & y) const
+ int operator()(T0 const& x, T1 const& y) const
     {
         return 1+x-y;
     }
 
     template <typename T0, typename T1>
- int operator()(T0 const & x, T1 const & y)
+ int operator()(T0 const& x, T1 const& y)
     {
         return 2+x-y;
     }
@@ -59,7 +59,7 @@
     typedef fusion::fused< test_func<> > ff;
     ff fused_func;
 
- typedef fusion::fused< test_func<noncopyable> & > ffr;
+ typedef fusion::fused< test_func<noncopyable>& > ffr;
     ffr fused_func_ref(f);
 
     typedef fusion::fused< test_func<> const > ffc;
@@ -68,7 +68,7 @@
     typedef fusion::fused< test_func<> > const ffc2;
     ffc2 fused_func_c2;
 
- typedef fusion::fused< test_func<noncopyable> const & > ffcr;
+ typedef fusion::fused< test_func<noncopyable> const& > ffcr;
     ffcr fused_func_c_ref(f);
 
     typedef fusion::vector<int,char> vec;

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_function_object.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_function_object.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_function_object.cpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -32,13 +32,13 @@
     };
 
     template <typename T0, typename T1>
- int operator()(T0 const & x, T1 const & y) const
+ int operator()(T0 const& x, T1 const& y) const
     {
         return 1+x-y;
     }
 
     template <typename T0, typename T1>
- int operator()(T0 const & x, T1 const & y)
+ int operator()(T0 const& x, T1 const& y)
     {
         return 2+x-y;
     }
@@ -60,10 +60,10 @@
 {
     test_func<noncopyable> f;
     fusion::fused_function_object< test_func<> > fused_func;
- fusion::fused_function_object< test_func<noncopyable> & > fused_func_ref(f);
+ fusion::fused_function_object< test_func<noncopyable>& > fused_func_ref(f);
     fusion::fused_function_object< test_func<> const > fused_func_c;
     fusion::fused_function_object< test_func<> > const fused_func_c2;
- fusion::fused_function_object< test_func<noncopyable> const & > fused_func_c_ref(f);
+ fusion::fused_function_object< test_func<noncopyable> const& > fused_func_c_ref(f);
 
     fusion::vector<int,char> lv_vec(1,'\004');
     BOOST_TEST(fused_func(lv_vec) == 1);

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_procedure.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_procedure.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_procedure.cpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -31,13 +31,13 @@
     : Base
 {
     template <typename T0, typename T1>
- int operator()(T0 const & x, T1 const & y) const
+ int operator()(T0 const& x, T1 const& y) const
     {
         return effect = 1+x-y;
     }
 
     template <typename T0, typename T1>
- int operator()(T0 const & x, T1 const & y)
+ int operator()(T0 const& x, T1 const& y)
     {
         return effect = 2+x-y;
     }
@@ -59,10 +59,10 @@
 {
     test_func<noncopyable> f;
     fusion::fused_procedure< test_func<> > fused_proc;
- fusion::fused_procedure< test_func<noncopyable> & > fused_proc_ref(f);
+ fusion::fused_procedure< test_func<noncopyable>& > fused_proc_ref(f);
     fusion::fused_procedure< test_func<> const > fused_proc_c;
     fusion::fused_procedure< test_func<> > const fused_proc_c2;
- fusion::fused_procedure< test_func<noncopyable> const & > fused_proc_c_ref(f);
+ fusion::fused_procedure< test_func<noncopyable> const& > fused_proc_c_ref(f);
 
     fusion::vector<int,char> lv_vec(1,'\004');
     CHECK_EFFECT(fused_proc(lv_vec), 1);

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke.cpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -30,7 +30,7 @@
 namespace fusion = boost::fusion;
 
 template <typename T>
-inline T const & const_(T const & t)
+inline T const& const_(T const& t)
 {
     return t;
 }
@@ -67,8 +67,8 @@
 
     int operator()(int i, object &) { return 4 + i; }
     int operator()(int i, object &) const { return 5 + i; }
- int operator()(int i, object const &) { return 6 + i; }
- int operator()(int i, object const &) const { return 7 + i; }
+ int operator()(int i, object const&) { return 6 + i; }
+ int operator()(int i, object const&) const { return 7 + i; }
 
     int operator()(int i, object &, object_nc &) { return 10 + i; }
     int operator()(int i, object &, object_nc &) const { return 11 + i; }
@@ -111,7 +111,7 @@
 int nullary() { return 16; }
 int unary(int i) { return 17 + i; }
 int binary1(int i, object &) { return 18 + i; }
-int binary2(int i, object const &) { return 19 + i; }
+int binary2(int i, object const&) { return 19 + i; }
 
 typedef int (* func_ptr)(int);
 typedef int (* const c_func_ptr)(int);
@@ -162,10 +162,10 @@
 fusion::single_view<members &> sv_ref_ctx( that);
 fusion::single_view<members *> sv_ptr_ctx(& that);
 fusion::single_view<members const > sv_obj_c_ctx( that);
-fusion::single_view<members const &> sv_ref_c_ctx( that);
+fusion::single_view<members const&> sv_ref_c_ctx( that);
 fusion::single_view<members const *> sv_ptr_c_ctx(& that);
-fusion::single_view<std::auto_ptr<members> const &> sv_spt_ctx(spt_that);
-fusion::single_view< std::auto_ptr<members const> const &> sv_spt_c_ctx(spt_that_c);
+fusion::single_view<std::auto_ptr<members> const&> sv_spt_ctx(spt_that);
+fusion::single_view< std::auto_ptr<members const> const&> sv_spt_c_ctx(spt_that_c);
 
 derived derived_that;
 
@@ -176,10 +176,10 @@
 fusion::single_view<derived &> sv_ref_d_ctx( derived_that);
 fusion::single_view<derived *> sv_ptr_d_ctx(& derived_that);
 fusion::single_view<derived const > sv_obj_c_d_ctx( derived_that);
-fusion::single_view<derived const &> sv_ref_c_d_ctx( derived_that);
+fusion::single_view<derived const&> sv_ref_c_d_ctx( derived_that);
 fusion::single_view<derived const *> sv_ptr_c_d_ctx(& derived_that);
-fusion::single_view<std::auto_ptr<derived> const &> sv_spt_d_ctx(spt_derived_that);
-fusion::single_view< std::auto_ptr<derived const> const &> sv_spt_c_d_ctx(spt_derived_that_c);
+fusion::single_view<std::auto_ptr<derived> const&> sv_spt_d_ctx(spt_derived_that);
+fusion::single_view< std::auto_ptr<derived const> const&> sv_spt_c_d_ctx(spt_derived_that_c);
 
 template <class Sequence>
 void test_sequence_n(Sequence & seq, mpl::int_<0>)
@@ -195,15 +195,15 @@
     // to be const with an explicit template argument. We can also request
     // the function object to be pased by reference...
     BOOST_TEST(const_(f)() == fusion::invoke<nullary_fobj const >(const_(f), seq ));
- BOOST_TEST(const_(f)() == fusion::invoke<nullary_fobj const &>(const_(f), const_(seq)));
+ BOOST_TEST(const_(f)() == fusion::invoke<nullary_fobj const&>(const_(f), const_(seq)));
 
     nullary_fobj_nc nc_f;
     // ...and we further ensure there is no copying in this case, using a
     // noncopyable function object.
     BOOST_TEST(nc_f () == fusion::invoke<nullary_fobj_nc &>(nc_f , seq ));
     BOOST_TEST(nc_f () == fusion::invoke<nullary_fobj_nc &>(nc_f , const_(seq)));
- BOOST_TEST(const_(nc_f)() == fusion::invoke<nullary_fobj_nc const &>(const_(nc_f), seq ));
- BOOST_TEST(const_(nc_f)() == fusion::invoke<nullary_fobj_nc const &>(const_(nc_f), const_(seq)));
+ BOOST_TEST(const_(nc_f)() == fusion::invoke<nullary_fobj_nc const&>(const_(nc_f), seq ));
+ BOOST_TEST(const_(nc_f)() == fusion::invoke<nullary_fobj_nc const&>(const_(nc_f), const_(seq)));
 
     // Builtin Functions
 
@@ -254,13 +254,13 @@
     BOOST_TEST(f(element1) == fusion::invoke(f , seq ));
     BOOST_TEST(f(element1) == fusion::invoke(f , const_(seq)));
     BOOST_TEST(const_(f)(element1) == fusion::invoke<fobj const >(const_(f), seq ));
- BOOST_TEST(const_(f)(element1) == fusion::invoke<fobj const &>(const_(f), const_(seq)));
+ BOOST_TEST(const_(f)(element1) == fusion::invoke<fobj const&>(const_(f), const_(seq)));
 
     fobj_nc nc_f;
     BOOST_TEST(nc_f(element1) == fusion::invoke<fobj_nc &>(nc_f, seq ));
     BOOST_TEST(nc_f(element1) == fusion::invoke<fobj_nc &>(nc_f, const_(seq)));
- BOOST_TEST(const_(nc_f)(element1) == fusion::invoke<fobj_nc const &>(const_(nc_f), seq ));
- BOOST_TEST(const_(nc_f)(element1) == fusion::invoke<fobj_nc const &>(const_(nc_f), const_(seq)));
+ BOOST_TEST(const_(nc_f)(element1) == fusion::invoke<fobj_nc const&>(const_(nc_f), seq ));
+ BOOST_TEST(const_(nc_f)(element1) == fusion::invoke<fobj_nc const&>(const_(nc_f), const_(seq)));
 
     BOOST_TEST(unary(element1) == fusion::invoke<int (&)(int)>(unary, seq));
     BOOST_TEST(func_ptr1(element1) == fusion::invoke(func_ptr1, seq));

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_function_object.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_function_object.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_function_object.cpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -30,7 +30,7 @@
 namespace fusion = boost::fusion;
 
 template <typename T>
-inline T const & const_(T const & t)
+inline T const& const_(T const& t)
 {
     return t;
 }
@@ -70,8 +70,8 @@
 
     int operator()(int i, object &) { return 4 + i; }
     int operator()(int i, object &) const { return 5 + i; }
- int operator()(int i, object const &) { return 6 + i; }
- int operator()(int i, object const &) const { return 7 + i; }
+ int operator()(int i, object const&) { return 6 + i; }
+ int operator()(int i, object const&) const { return 7 + i; }
 
     int operator()(int i, object &, object_nc &) { return 10 + i; }
     int operator()(int i, object &, object_nc &) const { return 11 + i; }
@@ -133,15 +133,15 @@
     // to be const with an explicit template argument. We can also request
     // the function object to be pased by reference...
     BOOST_TEST(const_(f)() == fusion::invoke_function_object<nullary_fobj const >(const_(f), seq ));
- BOOST_TEST(const_(f)() == fusion::invoke_function_object<nullary_fobj const &>(const_(f), const_(seq)));
+ BOOST_TEST(const_(f)() == fusion::invoke_function_object<nullary_fobj const&>(const_(f), const_(seq)));
 
     nullary_fobj_nc nc_f;
     // ...and we further ensure there is no copying in this case, using a
     // noncopyable function object.
     BOOST_TEST(nc_f () == fusion::invoke_function_object<nullary_fobj_nc &>(nc_f , seq ));
     BOOST_TEST(nc_f () == fusion::invoke_function_object<nullary_fobj_nc &>(nc_f , const_(seq)));
- BOOST_TEST(const_(nc_f)() == fusion::invoke_function_object<nullary_fobj_nc const &>(const_(nc_f), seq ));
- BOOST_TEST(const_(nc_f)() == fusion::invoke_function_object<nullary_fobj_nc const &>(const_(nc_f), const_(seq)));
+ BOOST_TEST(const_(nc_f)() == fusion::invoke_function_object<nullary_fobj_nc const&>(const_(nc_f), seq ));
+ BOOST_TEST(const_(nc_f)() == fusion::invoke_function_object<nullary_fobj_nc const&>(const_(nc_f), const_(seq)));
 }
 
 template <class Sequence>
@@ -151,13 +151,13 @@
     BOOST_TEST(f(element1) == fusion::invoke_function_object(f , seq ));
     BOOST_TEST(f(element1) == fusion::invoke_function_object(f , const_(seq)));
     BOOST_TEST(const_(f)(element1) == fusion::invoke_function_object<fobj const >(const_(f), seq ));
- BOOST_TEST(const_(f)(element1) == fusion::invoke_function_object<fobj const &>(const_(f), const_(seq)));
+ BOOST_TEST(const_(f)(element1) == fusion::invoke_function_object<fobj const&>(const_(f), const_(seq)));
 
     fobj_nc nc_f;
     BOOST_TEST(nc_f(element1) == fusion::invoke_function_object<fobj_nc &>(nc_f, seq ));
     BOOST_TEST(nc_f(element1) == fusion::invoke_function_object<fobj_nc &>(nc_f, const_(seq)));
- BOOST_TEST(const_(nc_f)(element1) == fusion::invoke_function_object<fobj_nc const &>(const_(nc_f), seq ));
- BOOST_TEST(const_(nc_f)(element1) == fusion::invoke_function_object<fobj_nc const &>(const_(nc_f), const_(seq)));
+ BOOST_TEST(const_(nc_f)(element1) == fusion::invoke_function_object<fobj_nc const&>(const_(nc_f), seq ));
+ BOOST_TEST(const_(nc_f)(element1) == fusion::invoke_function_object<fobj_nc const&>(const_(nc_f), const_(seq)));
 }
 
 template <class Sequence>

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_procedure.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_procedure.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_procedure.cpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -28,7 +28,7 @@
 namespace fusion = boost::fusion;
 
 template <typename T>
-inline T const & const_(T const & t)
+inline T const& const_(T const& t)
 {
     return t;
 }
@@ -69,10 +69,10 @@
 fusion::single_view<members &> sv_ref_ctx( that);
 fusion::single_view<members *> sv_ptr_ctx(& that);
 fusion::single_view<members const > sv_obj_c_ctx( that);
-fusion::single_view<members const &> sv_ref_c_ctx( that);
+fusion::single_view<members const&> sv_ref_c_ctx( that);
 fusion::single_view<members const *> sv_ptr_c_ctx(& that);
-fusion::single_view<std::auto_ptr<members> const &> sv_spt_ctx(spt_that);
-fusion::single_view< std::auto_ptr<members const> const &> sv_spt_c_ctx(spt_that_c);
+fusion::single_view<std::auto_ptr<members> const&> sv_spt_ctx(spt_that);
+fusion::single_view< std::auto_ptr<members const> const&> sv_spt_c_ctx(spt_that_c);
 
 struct fobj
 {
@@ -84,8 +84,8 @@
 
     int operator()(int & i, object &) { return i = 4; }
     int operator()(int & i, object &) const { return i = 5; }
- int operator()(int & i, object const &) { return i = 6; }
- int operator()(int & i, object const &) const { return i = 7; }
+ int operator()(int & i, object const&) { return i = 6; }
+ int operator()(int & i, object const&) const { return i = 7; }
 
     int operator()(int & i, object &, object_nc &) { return i = 10; }
     int operator()(int & i, object &, object_nc &) const { return i = 11; }
@@ -104,7 +104,7 @@
 int nullary() { return element1 = 16; }
 int unary(int & i) { return i = 17; }
 int binary1(int & i, object &) { return i = 18; }
-int binary2(int & i, object const &) { return i = 19; }
+int binary2(int & i, object const&) { return i = 19; }
 
 typedef int (* func_ptr)(int &);
 typedef int (* const c_func_ptr)(int &);
@@ -141,15 +141,15 @@
     // to be const with an explicit template argument. We can also request
     // the function object to be pased by reference...
     COMPARE_EFFECT(const_(f)(), fusion::invoke_procedure<fobj const >(const_(f), seq ));
- COMPARE_EFFECT(const_(f)(), fusion::invoke_procedure<fobj const &>(const_(f), const_(seq)));
+ COMPARE_EFFECT(const_(f)(), fusion::invoke_procedure<fobj const&>(const_(f), const_(seq)));
 
     fobj_nc nc_f;
     // ...and we further ensure there is no copying in this case, using a
     // noncopyable function object.
     COMPARE_EFFECT(nc_f (), fusion::invoke_procedure<fobj_nc &>(nc_f , seq ));
     COMPARE_EFFECT(nc_f (), fusion::invoke_procedure<fobj_nc &>(nc_f , const_(seq)));
- COMPARE_EFFECT(const_(nc_f)(), fusion::invoke_procedure<fobj_nc const &>(const_(nc_f), seq ));
- COMPARE_EFFECT(const_(nc_f)(), fusion::invoke_procedure<fobj_nc const &>(const_(nc_f), const_(seq)));
+ COMPARE_EFFECT(const_(nc_f)(), fusion::invoke_procedure<fobj_nc const&>(const_(nc_f), seq ));
+ COMPARE_EFFECT(const_(nc_f)(), fusion::invoke_procedure<fobj_nc const&>(const_(nc_f), const_(seq)));
 
     // Builtin Functions
 
@@ -180,13 +180,13 @@
     COMPARE_EFFECT(f(element1), fusion::invoke_procedure(f , seq ));
     COMPARE_EFFECT(f(element1), fusion::invoke_procedure(f , const_(seq)));
     COMPARE_EFFECT(const_(f)(element1), fusion::invoke_procedure<fobj const >(const_(f), seq ));
- COMPARE_EFFECT(const_(f)(element1), fusion::invoke_procedure<fobj const &>(const_(f), const_(seq)));
+ COMPARE_EFFECT(const_(f)(element1), fusion::invoke_procedure<fobj const&>(const_(f), const_(seq)));
 
     fobj_nc nc_f;
     COMPARE_EFFECT(nc_f(element1), fusion::invoke_procedure<fobj_nc &>(nc_f, seq ));
     COMPARE_EFFECT(nc_f(element1), fusion::invoke_procedure<fobj_nc &>(nc_f, const_(seq)));
- COMPARE_EFFECT(const_(nc_f)(element1), fusion::invoke_procedure<fobj_nc const &>(const_(nc_f), seq ));
- COMPARE_EFFECT(const_(nc_f)(element1), fusion::invoke_procedure<fobj_nc const &>(const_(nc_f), const_(seq)));
+ COMPARE_EFFECT(const_(nc_f)(element1), fusion::invoke_procedure<fobj_nc const&>(const_(nc_f), seq ));
+ COMPARE_EFFECT(const_(nc_f)(element1), fusion::invoke_procedure<fobj_nc const&>(const_(nc_f), const_(seq)));
 
     COMPARE_EFFECT(unary(element1), fusion::invoke_procedure<int (&)(int &)>(unary, seq));
     COMPARE_EFFECT(func_ptr1(element1), fusion::invoke_procedure(func_ptr1, seq));

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused.cpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -27,13 +27,13 @@
     typedef int result_type;
 
     template <typename T0, typename T1>
- int operator()(T0 const & x, T1 const & y) const
+ int operator()(T0 const& x, T1 const& y) const
     {
         return 1+x-y;
     }
 
     template <typename T0, typename T1>
- int operator()(T0 const & x, T1 const & y)
+ int operator()(T0 const& x, T1 const& y)
     {
         return 2+x-y;
     }
@@ -52,7 +52,7 @@
 };
 
 template <typename T>
-inline T const & const_(T const & t)
+inline T const& const_(T const& t)
 {
     return t;
 }

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_function_object.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_function_object.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_function_object.cpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -37,13 +37,13 @@
     };
 
     template <typename T0, typename T1>
- int operator()(T0 const & x, T1 const & y) const
+ int operator()(T0 const& x, T1 const& y) const
     {
         return 1+x-y;
     }
 
     template <typename T0, typename T1>
- int operator()(T0 const & x, T1 const & y)
+ int operator()(T0 const& x, T1 const& y)
     {
         return 2+x-y;
     }
@@ -62,7 +62,7 @@
 };
 
 template <typename T>
-inline T const & const_(T const & t)
+inline T const& const_(T const& t)
 {
     return t;
 }

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_procedure.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_procedure.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_procedure.cpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -33,13 +33,13 @@
     : Base
 {
     template <typename T0, typename T1>
- int operator()(T0 const & x, T1 const & y) const
+ int operator()(T0 const& x, T1 const& y) const
     {
         return effect = 1+x-y;
     }
 
     template <typename T0, typename T1>
- int operator()(T0 const & x, T1 const & y)
+ int operator()(T0 const& x, T1 const& y)
     {
         return effect = 2+x-y;
     }
@@ -58,7 +58,7 @@
 };
 
 template <typename T>
-inline T const & const_(T const & t)
+inline T const& const_(T const& t)
 {
     return t;
 }

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_unfused.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_unfused.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_unfused.cpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -47,14 +47,14 @@
     { };
 
     template <typename Seq>
- long operator()(Seq const & seq) const
+ long operator()(Seq const& seq) const
     {
         long state = 0;
         return fusion::fold(seq, state, fold_op());
     }
 
     template < typename Seq >
- long operator()(Seq const & seq)
+ long operator()(Seq const& seq)
     {
         long state = 100;
         return fusion::fold(seq, state, fold_op());
@@ -76,7 +76,7 @@
 };
 
 template <typename T>
-inline T const & const_(T const & t)
+inline T const& const_(T const& t)
 {
     return t;
 }

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused.cpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -37,14 +37,14 @@
     { };
 
     template <typename Seq>
- long operator()(Seq const & seq) const
+ long operator()(Seq const& seq) const
     {
         long state = 0;
         return fusion::fold(seq, state, fold_op());
     }
 
     template <typename Seq>
- long operator()(Seq const & seq)
+ long operator()(Seq const& seq)
     {
         long state = 100;
         return fusion::fold(seq, state, fold_op());
@@ -80,10 +80,10 @@
 
     test_func<noncopyable> f;
     fusion::unfused< test_func<> > unfused_func;
- fusion::unfused< test_func<noncopyable> & > unfused_func_ref(f);
+ fusion::unfused< test_func<noncopyable>& > unfused_func_ref(f);
     fusion::unfused< test_func<> const > unfused_func_c;
     fusion::unfused< test_func<> > const unfused_func_c2;
- fusion::unfused< test_func<noncopyable> const & > unfused_func_c_ref(f);
+ fusion::unfused< test_func<noncopyable> const& > unfused_func_c_ref(f);
 
     BOOST_TEST(unfused_func() == 100);
     BOOST_TEST(unfused_func_ref() == 100);

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused_typed.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused_typed.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused_typed.cpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -43,14 +43,14 @@
     { };
 
     template <typename Seq>
- long operator()(Seq const & seq) const
+ long operator()(Seq const& seq) const
     {
         long state = 0;
         return fusion::fold(seq, state, fold_op());
     }
 
     template < typename Seq >
- long operator()(Seq const & seq)
+ long operator()(Seq const& seq)
     {
         long state = 100;
         return fusion::fold(seq, state, fold_op());
@@ -63,7 +63,7 @@
         typedef long result_type;
 
         template <typename T>
- long operator()(T const & elem, long value) const
+ long operator()(T const& elem, long value) const
         {
           return value + sizeof(T) * elem;
         }
@@ -97,10 +97,10 @@
 {
     test_func<noncopyable> f;
     fusion::unfused_typed< test_func<>, types0 > unfused_func;
- fusion::unfused_typed< test_func<noncopyable> &, types0 > unfused_func_ref(f);
+ fusion::unfused_typed< test_func<noncopyable>&, types0 > unfused_func_ref(f);
     fusion::unfused_typed< test_func<> const, types0 > unfused_func_c;
     fusion::unfused_typed< test_func<>, types0 > const unfused_func_c2;
- fusion::unfused_typed< test_func<noncopyable> const &, types0 > unfused_func_c_ref(f);
+ fusion::unfused_typed< test_func<noncopyable> const&, types0 > unfused_func_c_ref(f);
 
     BOOST_TEST(unfused_func() == 100);
     BOOST_TEST(unfused_func_ref() == 100);
@@ -113,10 +113,10 @@
 {
     test_func<noncopyable> f;
     fusion::unfused_typed< test_func<>, types1 > unfused_func;
- fusion::unfused_typed< test_func<noncopyable> &, types1 > unfused_func_ref(f);
+ fusion::unfused_typed< test_func<noncopyable>&, types1 > unfused_func_ref(f);
     fusion::unfused_typed< test_func<> const, types1 > unfused_func_c;
     fusion::unfused_typed< test_func<>, types1 > const unfused_func_c2;
- fusion::unfused_typed< test_func<noncopyable> const &, types1 > unfused_func_c_ref(f);
+ fusion::unfused_typed< test_func<noncopyable> const&, types1 > unfused_func_c_ref(f);
 
     long lvalue = 1;
     BOOST_TEST_NO_VC71(unfused_func(lvalue) == 100);
@@ -135,10 +135,10 @@
 {
     test_func<noncopyable> f;
     fusion::unfused_typed< test_func<>, types3 > unfused_func;
- fusion::unfused_typed< test_func<noncopyable> &, types3 > unfused_func_ref(f);
+ fusion::unfused_typed< test_func<noncopyable>&, types3 > unfused_func_ref(f);
     fusion::unfused_typed< test_func<> const, types3 > unfused_func_c;
     fusion::unfused_typed< test_func<>, types3 > const unfused_func_c2;
- fusion::unfused_typed< test_func<noncopyable> const &, types3 > unfused_func_c_ref(f);
+ fusion::unfused_typed< test_func<noncopyable> const&, types3 > unfused_func_c_ref(f);
 
     long lvalue = 1;
     static const long expected = 2*sizeof(int) + 7*sizeof(char);

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,11 +10,11 @@
 #include <boost/fusion/mpl.hpp>
 #include <boost/detail/lightweight_test.hpp>
 
+#include <boost/config.hpp>
 #include <boost/mpl/equal.hpp>
-
+#include <boost/static_assert.hpp>
 #include <boost/ref.hpp>
 
-using boost::is_same;
 using boost::reference_wrapper;
 using boost::fusion::traits::deduce;
 using boost::fusion::traits::deduce_sequence;
@@ -26,26 +26,34 @@
 {
     typename deduce_sequence<Args>::type fsq_args;
 
- test_seq_ctor(Args const & args)
- : fsq_args(args)
+ test_seq_ctor(Args const& args)
+ : fsq_args(sequence_assign(args))
     {}
 };
 
-#define TEST_SAME_TYPE(a,b) BOOST_TEST(( is_same< a, b >::value ))
-#define TEST_SAME_ELEMENTS(a,b) BOOST_TEST(( boost::mpl::equal< a, b >::type::value ))
+#define TEST_SAME_TYPE(a,b) BOOST_STATIC_ASSERT(( boost::is_same< a, b >::value ))
+#define TEST_SAME_ELEMENTS(a,b) BOOST_STATIC_ASSERT(( boost::mpl::equal< a, b >::type::value ))
 
-typedef fusion::vector<int, int const, int &, int const &> args1;
+typedef fusion::vector<int, int const, int &, int const&> args1;
+#ifdef BOOST_NO_RVALUE_REFERENCES
 typedef fusion::vector<int, int, int &, int> storable1;
+#else
+typedef fusion::vector<int, int, int &, int const&> storable1;
+#endif
 template struct test_seq_ctor<args1>;
 
-typedef fusion::vector< reference_wrapper<int> &, reference_wrapper<int const> &,
- reference_wrapper<int> const &, reference_wrapper<int const> const & > args2;
-typedef fusion::vector<int &, int const &, int &, int const &> storable2;
+typedef fusion::vector< reference_wrapper<int>&, reference_wrapper<int const>&,
+ reference_wrapper<int> const&, reference_wrapper<int const> const& > args2;
+typedef fusion::vector<int &, int const&, int &, int const&> storable2;
 template struct test_seq_ctor<args2>;
 
 
-typedef fusion::vector<int *, int const *, int const * const, int const * &, int const * const &> args3;
+typedef fusion::vector<int *, int const *, int const * const, int const * &, int const * const&> args3;
+#ifdef BOOST_NO_RVALUE_REFERENCES
 typedef fusion::vector<int *, int const *, int const *, int const * &, int const * > storable3;
+#else
+typedef fusion::vector<int *, int const *, int const *, int const * &, int const * const&> storable3;
+#endif
 template struct test_seq_ctor<args3>;
 
 typedef fusion::vector<int(&)[2], int const(&)[2]> args4;
@@ -57,14 +65,20 @@
     TEST_SAME_TYPE(deduce<int &>::type, int &);
     TEST_SAME_TYPE(deduce<int volatile &>::type, int volatile &);
 
+ //TODO rvalue tests
     TEST_SAME_TYPE(deduce<int>::type, int);
- TEST_SAME_TYPE(deduce<int const &>::type, int);
- TEST_SAME_TYPE(deduce<int const volatile &>::type, int);
-
- TEST_SAME_TYPE(deduce< reference_wrapper<int> & >::type, int &);
- TEST_SAME_TYPE(deduce< reference_wrapper<int const> & >::type, int const &);
- TEST_SAME_TYPE(deduce< reference_wrapper<int> const & >::type, int &);
- TEST_SAME_TYPE(deduce< reference_wrapper<int const> const & >::type, int const &);
+#ifdef BOOST_NO_RVALUE_REFERENCES
+ TEST_SAME_TYPE(deduce<int const&>::type, int);
+ TEST_SAME_TYPE(deduce<int const volatile&>::type, int);
+#else
+ TEST_SAME_TYPE(deduce<int const&>::type, int const&);
+ TEST_SAME_TYPE(deduce<int const volatile&>::type, int const volatile&);
+#endif
+
+ TEST_SAME_TYPE(deduce< reference_wrapper<int>& >::type, int &);
+ TEST_SAME_TYPE(deduce< reference_wrapper<int const>& >::type, int const&);
+ TEST_SAME_TYPE(deduce< reference_wrapper<int> const& >::type, int &);
+ TEST_SAME_TYPE(deduce< reference_wrapper<int const> const& >::type, int const&);
 
     TEST_SAME_TYPE(deduce< int(&)[2] >::type, int(&)[2]);
     TEST_SAME_TYPE(deduce< int const (&)[2] >::type, int const (&)[2]);

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/tr1_tuple_auto_conv.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/tr1_tuple_auto_conv.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/tr1_tuple_auto_conv.cpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -20,7 +20,7 @@
         std::tr1::shared_ptr<boost::any> t_;
 
     public:
- AutoConverter(std::tr1::shared_ptr<boost::any> const & t)
+ AutoConverter(std::tr1::shared_ptr<boost::any> const& t)
           : t_(t)
         {}
 

Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_iterator.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_iterator.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_iterator.cpp 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -5,7 +5,6 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 #include <boost/fusion/container/vector/vector.hpp>
-#include <boost/fusion/container/vector/vector_iterator.hpp>
 
 #define FUSION_SEQUENCE vector
 #define FUSION_TRAVERSAL_TAG random_access_traversal_tag


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