$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r55767 - in sandbox/SOC/2009/fusion: . boost/fusion/adapted boost/fusion/adapted/detail/array boost/fusion/adapted/detail/boost_tuple boost/fusion/adapted/detail/mpl boost/fusion/adapted/detail/struct boost/fusion/adapted/struct boost/fusion/algorithm/iteration boost/fusion/algorithm/iteration/detail boost/fusion/algorithm/query boost/fusion/algorithm/query/detail boost/fusion/algorithm/transformation boost/fusion/algorithm/transformation/detail boost/fusion/algorithm/transformation/detail/filter_key_view boost/fusion/algorithm/transformation/detail/pp boost/fusion/algorithm/transformation/detail/variadic_templates boost/fusion/container/detail boost/fusion/container/detail/pp boost/fusion/container/detail/variadic_templates boost/fusion/container/generation boost/fusion/container/generation/detail boost/fusion/container/generation/detail/pp boost/fusion/container/generation/detail/variadic_templates boost/fusion/container/list boost/fusion/container/list/detail/cons boost/fusion/container/list/detail/list boost/fusion/container/map boost/fusion/container/map/detail boost/fusion/container/set boost/fusion/container/set/detail boost/fusion/container/vector boost/fusion/container/vector/detail boost/fusion/container/vector/detail/pp boost/fusion/container/vector/detail/variadic_templates boost/fusion/functional/adapter boost/fusion/functional/adapter/detail/0x boost/fusion/functional/generation/detail boost/fusion/functional/invocation boost/fusion/functional/invocation/detail/0x boost/fusion/include boost/fusion/iterator boost/fusion/iterator/detail boost/fusion/mpl boost/fusion/sequence boost/fusion/sequence/comparison boost/fusion/sequence/comparison/detail boost/fusion/sequence/intrinsic boost/fusion/support boost/fusion/support/internal boost/fusion/support/internal/variadic_templates boost/fusion/support/internal/variadic_templates/detail boost/fusion/tuple boost/fusion/view/detail boost/fusion/view/filter_view boost/fusion/view/filter_view/detail boost/fusion/view/iterator_range boost/fusion/view/iterator_range/detail boost/fusion/view/joint_view boost/fusion/view/joint_view/detail boost/fusion/view/repetitive_view boost/fusion/view/repetitive_view/detail boost/fusion/view/reverse_view boost/fusion/view/reverse_view/detail boost/fusion/view/single_view boost/fusion/view/single_view/detail boost/fusion/view/transform_view boost/fusion/view/transform_view/detail boost/fusion/view/zip_view boost/fusion/view/zip_view/detail libs/fusion/example/performance libs/fusion/example/test libs/fusion/test/sequence
From: mr.chr.schmidt_at_[hidden]
Date: 2009-08-24 16:18:38
Author: cschmidt
Date: 2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
New Revision: 55767
URL: http://svn.boost.org/trac/boost/changeset/55767
Log:
cleanup, bugfixes & optimizations
Removed:
   sandbox/SOC/2009/fusion/boost/fusion/support/internal/as_fusion_element.hpp
Text files modified: 
   sandbox/SOC/2009/fusion/boost-build.jam                                                                            |    11                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/array.hpp                                                             |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_array.hpp                                                       |    12 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_tuple.hpp                                                       |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/at_impl.hpp                                              |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/begin_impl.hpp                                           |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/deref_impl.hpp                                           |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/end_impl.hpp                                             |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_view_impl.hpp                                         |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/tag_of.hpp                                               |    18 ++                                      
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/value_of_impl.hpp                                        |    21 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/begin_impl.hpp                                     |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/deref_impl.hpp                                     |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/end_impl.hpp                                       |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/tag_of.hpp                                         |    35 ++++                                    
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/value_of_impl.hpp                                  |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/advance_impl.hpp                                           |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/begin_impl.hpp                                             |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/category_of_impl.hpp                                       |    31 +--                                     
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/deref_impl.hpp                                             |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/distance_impl.hpp                                          |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/end_impl.hpp                                               |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/equal_to_impl.hpp                                          |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/get_mpl_it.hpp                                             |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_iterator_impl.hpp                                       |     3                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/mpl_iterator.hpp                                           |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/next_impl.hpp                                              |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/prior_impl.hpp                                             |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/tag_of.hpp                                                 |     9                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_of_impl.hpp                                          |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_assoc_struct.hpp                                  |    12 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_base.hpp                                          |    15 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_struct.hpp                                        |    11                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_impl.hpp                                             |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/begin_impl.hpp                                          |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/category_of_impl.hpp                                    |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/deref_data_impl.hpp                                     |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/deref_impl.hpp                                          |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/end_impl.hpp                                            |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp                                           |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/key_of_impl.hpp                                         |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_of_data_impl.hpp                                  |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_of_impl.hpp                                       |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/std_array.hpp                                                         |    11                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp                                                          |    26 ++                                      
   sandbox/SOC/2009/fusion/boost/fusion/adapted/struct.hpp                                                            |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_assoc_struct.hpp                                         |    12 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_struct.hpp                                               |    11                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp                                            |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp                                           |    32 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/for_each.hpp                                       |     3                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp                                                  |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp                                              |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp                                                       |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp                                                       |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count.hpp                                                     |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp                                                  |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/all.hpp                                                |     9                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/count.hpp                                              |     7                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/find_if.hpp                                            |   168 +++++++++------------                   
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_key.hpp                                                  |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/clear.hpp                                            |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view.hpp                           |    25 ++-                                     
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/at_key_impl.hpp               |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/filter_key_view_fwd.hpp       |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/has_key_impl.hpp              |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/value_at_key_impl.hpp         |    23 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/is_in_seq.hpp                                 |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/pp/zip.hpp                                    |    12 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/replace_if.hpp                                |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/variadic_templates/zip.hpp                    |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase.hpp                                            |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase_key.hpp                                        |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert.hpp                                           |     4                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp                                     |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/join.hpp                                             |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_back.hpp                                         |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_front.hpp                                        |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_back.hpp                                        |     5                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_front.hpp                                       |     5                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove.hpp                                           |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove_if.hpp                                        |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace.hpp                                          |     7                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp                                       |     7                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/reverse.hpp                                          |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp                                        |    15 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/zip.hpp                                              |     3                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/detail/convert_impl.hpp                                             |    12 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/detail/forward_ctor.hpp                                             |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/as_seq.hpp                                                |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/forward_ctor.hpp                                          |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/as_seq.hpp                                |    11                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/forward_ctor.hpp                          |    14 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/cons_tie.hpp                                             |     6                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/make_seq.hpp                                      |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_map.hpp                                   |    15 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_seq.hpp                                   |    14 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/map_tie.hpp                                    |    16 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/seq_tie.hpp                                    |    14 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/seq_tie.hpp                                       |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp                   |    18 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_seq.hpp                   |    14 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/map_tie.hpp                    |    18 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/seq_tie.hpp                    |    14 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/list_tie.hpp                                             |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_cons.hpp                                            |     6                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_list.hpp                                            |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_map.hpp                                             |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_set.hpp                                             |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_vector.hpp                                          |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/map_tie.hpp                                              |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/pair_tie.hpp                                             |     4                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/vector_tie.hpp                                           |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp                                                    |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_fwd.hpp                                       |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_iterator.hpp                                  |    16 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/equal_to_impl.hpp                                  |     3                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/next_impl.hpp                                      |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_at_impl.hpp                                  |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_of_impl.hpp                                  |     8                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/at_impl.hpp                                        |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/begin_impl.hpp                                     |     3                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/deref_impl.hpp                                     |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/end_impl.hpp                                       |     3                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_at_impl.hpp                                  |    27 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_of_impl.hpp                                  |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list/limits.hpp                                                     |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list/list.hpp                                                       |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list/list_fwd.hpp                                                   |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/map/convert.hpp                                                     |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/begin_impl.hpp                                           |    11                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/deref_data_impl.hpp                                      |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/deref_impl.hpp                                           |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/end_impl.hpp                                             |    11                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/key_of_impl.hpp                                          |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_of_data_impl.hpp                                   |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_of_impl.hpp                                        |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/map/limits.hpp                                                      |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp                                                         |    11                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/map/map_fwd.hpp                                                     |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/set/convert.hpp                                                     |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/begin_impl.hpp                                           |    11                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/deref_data_impl.hpp                                      |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/deref_impl.hpp                                           |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/end_impl.hpp                                             |    11                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/key_of_impl.hpp                                          |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_of_data_impl.hpp                                   |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_of_impl.hpp                                        |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/set/limits.hpp                                                      |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/set/set.hpp                                                         |    11                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/set/set_fwd.hpp                                                     |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/convert.hpp                                                  |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/at_impl.hpp                                           |    15 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/begin_impl.hpp                                        |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/deref_impl.hpp                                        |    12 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/end_impl.hpp                                          |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector.hpp                                         |    56 ++----                                  
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n.hpp                                       |   113 +++++++-------                          
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n_chooser.hpp                               |   103 ++++--------                            
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_at_impl.hpp                                     |    25 ++-                                     
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_of_impl.hpp                                     |    14 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector.hpp                         |   300 ++++++++++++++++++++++++++++----------- 
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp                       |    31 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/limits.hpp                                                   |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector.hpp                                                   |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector10.hpp                                                 |    15 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector20.hpp                                                 |    15 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector30.hpp                                                 |    15 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector40.hpp                                                 |    15 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector50.hpp                                                 |    15 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_fwd.hpp                                               |     6                                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/0x/fused_impl.hpp                                   |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/0x/unfused_impl.hpp                                 |    16 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused.hpp                                                  |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_function_object.hpp                                  |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_procedure.hpp                                        |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/limits.hpp                                                 |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused.hpp                                                |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused_typed.hpp                                          |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp                             |     4                                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/0x/invoke_impl.hpp                               |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/0x/invoke_impl_detail.hpp                        |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke.hpp                                              |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_function_object.hpp                              |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_procedure.hpp                                    |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/include/advance_c.hpp                                                         |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/include/boost_array.hpp                                                       |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/include/deref_data.hpp                                                        |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/include/find_key.hpp                                                          |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/include/key_of.hpp                                                            |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/include/std_array.hpp                                                         |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/include/value_at_c.hpp                                                        |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/include/value_of_data.hpp                                                     |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/iterator/advance_c.hpp                                                        |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/iterator/basic_iterator.hpp                                                   |    27 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/iterator/deref_data.hpp                                                       |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/iterator/detail/advance.hpp                                                   |    26 +--                                     
   sandbox/SOC/2009/fusion/boost/fusion/iterator/detail/distance.hpp                                                  |    15 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp                                                         |    16 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/iterator/iterator_facade.hpp                                                  |    12                                         
   sandbox/SOC/2009/fusion/boost/fusion/iterator/key_of.hpp                                                           |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of_data.hpp                                                    |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/mpl/clear.hpp                                                                 |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/mpl/erase.hpp                                                                 |    13 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/mpl/erase_key.hpp                                                             |    17 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/mpl/fusion_iterator.hpp                                                       |     4                                         
   sandbox/SOC/2009/fusion/boost/fusion/mpl/insert.hpp                                                                |    13 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/mpl/insert_range.hpp                                                          |    13 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/mpl/pop_back.hpp                                                              |    13 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/mpl/pop_front.hpp                                                             |    13 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/mpl/push_back.hpp                                                             |    13 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/mpl/push_front.hpp                                                            |    13 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/equal_to.hpp                                       |    13 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater.hpp                                        |     7                                         
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater_equal.hpp                                  |     7                                         
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less.hpp                                           |     7                                         
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less_equal.hpp                                     |     7                                         
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/not_equal_to.hpp                                   |     7                                         
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less_equal.hpp                                            |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp                                                 |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/has_key.hpp                                                |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_c.hpp                                             |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_key.hpp                                           |    11                                         
   sandbox/SOC/2009/fusion/boost/fusion/sequence/sequence_facade.hpp                                                  |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/support/category_of.hpp                                                       |    45 ++++-                                   
   sandbox/SOC/2009/fusion/boost/fusion/support/deduce.hpp                                                            |   169 ++++++++++++++--------                  
   sandbox/SOC/2009/fusion/boost/fusion/support/deduce_sequence.hpp                                                   |    34 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/support/internal/assert.hpp                                                   |    16 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/support/internal/assign_tags.hpp                                              |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/support/internal/ref.hpp                                                      |    16 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/support/internal/result_of.hpp                                                |   109 ++-----------                           
   sandbox/SOC/2009/fusion/boost/fusion/support/internal/sequence_assign.hpp                                          |    13 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/support/internal/template.hpp                                                 |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/detail/variadic_arguments_to_vector_n.hpp |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/variadic_arguments_to_vector.hpp          |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/variadic_quote.hpp                        |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/support/internal/workaround.hpp                                               |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/support/is_iterator.hpp                                                       |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/support/is_sequence.hpp                                                       |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/support/is_view.hpp                                                           |    12 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/support/pair.hpp                                                              |     5                                         
   sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp                                                            |    11                                         
   sandbox/SOC/2009/fusion/boost/fusion/support/tag_of_fwd.hpp                                                        |     3                                         
   sandbox/SOC/2009/fusion/boost/fusion/support/unused.hpp                                                            |    13                                         
   sandbox/SOC/2009/fusion/boost/fusion/tuple/make_tuple.hpp                                                          |    11                                         
   sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple.hpp                                                               |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_fwd.hpp                                                           |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_tie.hpp                                                           |    11                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/detail/strictest_traversal.hpp                                           |     6                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/detail/view_storage.hpp                                                  |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_data_impl.hpp                                   |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_fwd.hpp                                   |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_iterator.hpp                              |     8                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/key_of_impl.hpp                                       |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/value_of_data_impl.hpp                                |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp                                              |     9                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/iterator_range_fwd.hpp                             |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp                                        |    15 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/begin_impl.hpp                                         |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_data_impl.hpp                                    |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/end_impl.hpp                                           |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/equal_to_impl.hpp                                      |     3                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_fwd.hpp                                     |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_iterator.hpp                                |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/key_of_impl.hpp                                        |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/next_impl.hpp                                          |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp                                 |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp                                                |    24 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/advance_impl.hpp                                  |    26 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/begin_impl.hpp                                    |    15 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_data_impl.hpp                               |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_impl.hpp                                    |    11                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/distance_impl.hpp                                 |    31 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/end_impl.hpp                                      |    46 ++----                                  
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/equal_to_impl.hpp                                 |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/key_of_impl.hpp                                   |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/next_impl.hpp                                     |    11                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/prior_impl.hpp                                    |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/repetitive_view_fwd.hpp                           |    11                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/repetitive_view_iterator.hpp                      |    37 ++++                                    
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/value_of_data_impl.hpp                            |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/value_of_impl.hpp                                 |    11                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/repetitive_view.hpp                                      |    25 ++-                                     
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_data_impl.hpp                                  |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/distance_impl.hpp                                    |    21 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/equal_to_impl.hpp                                    |     3                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/key_of_impl.hpp                                      |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_fwd.hpp                                 |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_of_data_impl.hpp                               |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp                                            |     9                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/equal_to_impl.hpp                                     |     3                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_fwd.hpp                                   |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_iterator.hpp                              |     9                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp                                              |     9                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/advance_impl.hpp                                   |     6                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/at_impl.hpp                                        |    16 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/begin_impl.hpp                                     |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/deref_impl.hpp                                     |     4                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/end_impl.hpp                                       |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/transform_view_iterator.hpp                        |    10 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_at_impl.hpp                                  |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_of_impl.hpp                                  |     4                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp                                        |    69 ++++----                                
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view_fwd.hpp                                    |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/begin_impl.hpp                                           |     4                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/distance_impl.hpp                                        |    26 +--                                     
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/end_impl.hpp                                             |     8                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/equal_to_impl.hpp                                        |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_at_impl.hpp                                        |    15 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_of_impl.hpp                                        |    15 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_fwd.hpp                                         |    10                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_iterator.hpp                                    |    16 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp                                                    |    17 +                                       
   sandbox/SOC/2009/fusion/build.bat                                                                                  |    13 +                                       
   sandbox/SOC/2009/fusion/libs/fusion/example/performance/measure.hpp                                                |    12 +                                       
   sandbox/SOC/2009/fusion/libs/fusion/example/performance/sequence_efficiency.cpp                                    |     6                                         
   sandbox/SOC/2009/fusion/libs/fusion/example/test/Jamfile.v2                                                        |    11                                         
   sandbox/SOC/2009/fusion/libs/fusion/example/test/main.cpp                                                          |    25 ++                                      
   sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp                                              |     6                                         
   sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_n.cpp                                                     |     6                                         
   sandbox/SOC/2009/fusion/project-root.jam                                                                           |    18 +                                       
   321 files changed, 2336 insertions(+), 1708 deletions(-)
Modified: sandbox/SOC/2009/fusion/boost-build.jam
==============================================================================
--- sandbox/SOC/2009/fusion/boost-build.jam	(original)
+++ sandbox/SOC/2009/fusion/boost-build.jam	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,9 @@
-# Copyright Christopher Schmidt 2009.
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or copy at
-# http://www.boost.org/LICENSE_1_0.txt)
+#==============================================================================
+#    Copyright (c) 2009 Christopher Schmidt
+#
+#   Use, modification and distribution is subject to the Boost Software
+#   License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+#   http://www.boost.org/LICENSE_1_0.txt)
+#==============================================================================
 
 boost-build $(BOOST_ROOT)/tools/build/v2 ;
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/array.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/array.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/array.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ADAPTED_ARRAY_HPP
 #define BOOST_FUSION_ADAPTED_ARRAY_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_array.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_array.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_array.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,11 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ADAPTED_BOOST_ARRAY_HPP
 #define BOOST_FUSION_ADAPTED_BOOST_ARRAY_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_tuple.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_tuple.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_tuple.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -8,7 +8,7 @@
 #ifndef BOOST_FUSION_ADAPTED_BOOST_TUPLE_HPP
 #define BOOST_FUSION_ADAPTED_BOOST_TUPLE_HPP
 
-//TODO adapt std::(tr1::)tuple
+//TODO adapt std::(tr1::)tuple upper limit!!!
 
 #include <boost/fusion/support/internal/ref.hpp>
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/at_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying 
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/begin_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying 
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/deref_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/deref_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_ARRAY_DEREF_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_ARRAY_DEREF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/end_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying 
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_view_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_view_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_view_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -11,7 +11,6 @@
 
 #include <boost/mpl/bool.hpp>
 
-//TODO doc!!!
 namespace boost { namespace fusion { namespace extension
 {
     template<typename Tag>
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/tag_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/tag_of.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/tag_of.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,11 +1,13 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying 
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
+#include <boost/config.hpp>
 #include <boost/fusion/support/tag_of_fwd.hpp>
 
 #include <cstddef>
@@ -24,17 +26,27 @@
 
     namespace traits
     {
-#define BOOST_FUSION_TAG_OF_SPECIALIZATION(COMBINATION,_)\
+#ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+#   define BOOST_FUSION_ARRAY_TAG_OF_SPECIALIZATION(COMBINATION,_)\
+        template<typename T, std::size_t N>\
+        struct tag_of<\
+            BOOST_FUSION_ADAPTED_ARRAY_NAMESPACE::array<T,N> COMBINATION,void>\
+        {\
+            typedef array_tag type;\
+        };
+#else
+#   define BOOST_FUSION_ARRAY_TAG_OF_SPECIALIZATION(COMBINATION,_)\
         template<typename T, std::size_t N>\
         struct tag_of<\
             BOOST_FUSION_ADAPTED_ARRAY_NAMESPACE::array<T,N> COMBINATION>\
         {\
             typedef array_tag type;\
         };
+#endif
 
         BOOST_FUSION_ALL_CV_REF_NON_REF_COMBINATIONS(
-                BOOST_FUSION_TAG_OF_SPECIALIZATION,_)
+                BOOST_FUSION_ARRAY_TAG_OF_SPECIALIZATION,_)
 
-#undef BOOST_FUSION_TAG_OF_SPECIALIZATION
+#undef BOOST_FUSION_ARRAY_TAG_OF_SPECIALIZATION
     }
 }}
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/value_of_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_ARRAY_VALUE_OF_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_ARRAY_VALUE_OF_IMPL_HPP
@@ -16,13 +18,10 @@
     {
         template <typename ItRef>
         struct apply
-        {
-            typedef typename
-                detail::remove_reference<
-                    typename detail::remove_reference<ItRef>::type::seq_type
-                >::type::value_type
-            type;
-        };
+          : detail::remove_reference<
+                typename detail::remove_reference<ItRef>::type::seq_type
+            >::type::value_type
+        {};
     };
 }}}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/begin_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying 
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/deref_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/deref_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_DEREF_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_DEREF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/end_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying 
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/tag_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/tag_of.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/tag_of.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying 
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -8,6 +9,7 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_TAG_OF_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_TAG_OF_HPP
 
+#include <boost/config.hpp>
 #include <boost/fusion/support/tag_of_fwd.hpp>
 
 namespace boost { namespace fusion 
@@ -17,7 +19,33 @@
 
     namespace traits
     {
-#define BOOST_FUSION_TAG_OF_SPECIALIZATION(COMBINATION,_)\
+#ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+#   define BOOST_FUSION_TUPLE_TAG_OF_SPECIALIZATION(COMBINATION,_)\
+        template <\
+            class T0, class T1, class T2, class T3, class T4, \
+            class T5, class T6, class T7, class T8, class T9\
+        >\
+        struct tag_of<\
+            tuples::tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> COMBINATION\
+          , void\
+        >\
+        {\
+            typedef boost_tuple_tag type;\
+        };\
+        \
+        template <class Head, class Tail>\
+        struct tag_of<tuples::cons<Head, Tail> COMBINATION,void>\
+        {\
+            typedef boost_tuple_tag type;\
+        };\
+        \
+        template <>\
+        struct tag_of<tuples::null_type COMBINATION,void>\
+        {\
+            typedef boost_tuple_tag type;\
+        };
+#else
+#   define BOOST_FUSION_TUPLE_TAG_OF_SPECIALIZATION(COMBINATION,_)\
         template <\
             class T0, class T1, class T2, class T3, class T4, \
             class T5, class T6, class T7, class T8, class T9\
@@ -40,11 +68,12 @@
         {\
             typedef boost_tuple_tag type;\
         };
+#endif
 
         BOOST_FUSION_ALL_CV_REF_NON_REF_COMBINATIONS(
-                BOOST_FUSION_TAG_OF_SPECIALIZATION,_)
+                BOOST_FUSION_TUPLE_TAG_OF_SPECIALIZATION,_)
 
-#undef BOOST_FUSION_TAG_OF_SPECIALIZATION
+#undef BOOST_FUSION_TUPLE_TAG_OF_SPECIALIZATION
     }
 }}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/value_of_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_VALUE_OF_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_VALUE_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/advance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/advance_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/advance_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
 /*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/begin_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/category_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/category_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/category_of_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,6 +10,8 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_MPL_CATEGORY_OF_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_MPL_CATEGORY_OF_IMPL_HPP
 
+//TODO doc
+
 #include <boost/mpl/begin.hpp>
 #include <boost/mpl/is_sequence.hpp>
 #include <boost/mpl/iterator_category.hpp>
@@ -54,17 +57,14 @@
         {
             template<typename SeqRef>
             struct apply
-            {
-                typedef typename
-                    detail::mpl_iterator_category<
-                        typename mpl::iterator_category<
-                            typename mpl::begin<
-                                typename detail::identity<SeqRef>::type
-                            >::type
+              : detail::mpl_iterator_category<
+                    typename mpl::iterator_category<
+                        typename mpl::begin<
+                            typename detail::identity<SeqRef>::type
                         >::type
                     >::type
-                type;
-            };
+                >
+            {};
         };
 
         template<>
@@ -72,15 +72,12 @@
         {
             template<typename ItRef>
             struct apply
-            {
-                typedef typename
-                    detail::mpl_iterator_category<
-                        typename mpl::iterator_category<
-                            typename detail::identity<ItRef>::type
-                        >::type
+              : detail::mpl_iterator_category<
+                    typename mpl::iterator_category<
+                        typename detail::identity<ItRef>::type
                     >::type
-                type;
-            };
+                >
+            {};
         };
     }
 }}
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/deref_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/deref_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
 /*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/distance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/distance_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/distance_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
 /*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/end_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/equal_to_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/equal_to_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
 /*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/get_mpl_it.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/get_mpl_it.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/get_mpl_it.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_MPL_GET_MPL_IT_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_MPL_GET_MPL_IT_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_iterator_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_iterator_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_iterator_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,5 @@
 /*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/mpl_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/mpl_iterator.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/mpl_iterator.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying 
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/next_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/next_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
 /*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/prior_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/prior_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/prior_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
 /*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/tag_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/tag_of.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/tag_of.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,8 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
 
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_MPL_TAG_OF_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_MPL_TAG_OF_HPP
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_of_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
 /*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_assoc_struct.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_assoc_struct.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_assoc_struct.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,11 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2007 Joel de Guzman
+    Copyright (c) 2007 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_ADAPT_ASSOC_STRUCT_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_ADAPT_ASSOC_STRUCT_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_base.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_base.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_base.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,5 @@
 /*=============================================================================
-    Copyright (c) 2001-2007 Joel de Guzman
-    Copyright (c) 2009 Dan Christopher Schmidt
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,6 +8,7 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_ADAPT_BASE_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_ADAPT_BASE_HPP
 
+#include <boost/config.hpp>
 #include <boost/fusion/support/tag_of_fwd.hpp>
 
 #include <boost/preprocessor/seq/size.hpp>
@@ -16,12 +16,21 @@
 #include <boost/preprocessor/tuple/elem.hpp>
 #include <boost/preprocessor/tuple/elem.hpp>
 
-#define BOOST_FUSION_ADAPT_STRUCT_TAG_OF_SPECIALIZATION(COMBINATION, DATA)      \
+#ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+#   define BOOST_FUSION_ADAPT_STRUCT_TAG_OF_SPECIALIZATION(COMBINATION, DATA)   \
+    template <>                                                                 \
+    struct tag_of<BOOST_PP_TUPLE_ELEM(2,0,DATA) COMBINATION,void>               \
+    {                                                                           \
+        typedef BOOST_PP_TUPLE_ELEM(2,1,DATA) type;                             \
+    };
+#else
+#   define BOOST_FUSION_ADAPT_STRUCT_TAG_OF_SPECIALIZATION(COMBINATION, DATA)   \
     template <>                                                                 \
     struct tag_of<BOOST_PP_TUPLE_ELEM(2,0,DATA) COMBINATION>                    \
     {                                                                           \
         typedef BOOST_PP_TUPLE_ELEM(2,1,DATA) type;                             \
     };
+#endif
 
 #define BOOST_FUSION_ADAPT_STRUCT_BASE(NAME,TAG,TUPLE_SEQ,CALLBACK)             \
     BOOST_PP_SEQ_FOR_EACH_I(CALLBACK,NAME,TUPLE_SEQ)                            \
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_struct.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_struct.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_struct.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2007 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_ADAPT_STRUCT_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_ADAPT_STRUCT_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/begin_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/category_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/category_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/category_of_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/deref_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/deref_data_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/deref_data_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_DEREF_DATA_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_DEREF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/deref_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/deref_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_DEREF_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_DEREF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/end_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2007 Joel de Guzman
     Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/key_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/key_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/key_of_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_KEY_OF_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_KEY_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_of_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_of_data_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_of_data_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_VALUE_OF_DATA_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_VALUE_OF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_of_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_VALUE_OF_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_VALUE_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/std_array.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/std_array.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/std_array.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ADAPTED_STD_ARRAY_HPP
 #define BOOST_FUSION_ADAPTED_STD_ARRAY_HPP
@@ -10,7 +12,6 @@
 #include <boost/fusion/support/internal/ref.hpp>
 
 #define BOOST_FUSION_ADAPTED_ARRAY_TYPE struct
-//TODO!!!
 #ifdef BOOST_HAS_TR1_ARRAY
 #   define BOOST_FUSION_ADAPTED_ARRAY_NAMESPACE std::tr1
 #else
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,24 +1,38 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ADAPTED_STD_PAIR_HPP
 #define BOOST_FUSION_ADAPTED_STD_PAIR_HPP
 
-#include <boost/fusion/adapted/struct.hpp>
+#include <boost/config.hpp>
+#include <boost/fusion/adapted/struct/adapt_struct.hpp>
 #include <boost/fusion/support/tag_of_fwd.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
 
 #include <boost/mpl/int.hpp>
 #include <boost/config/no_tr1/utility.hpp>
 
-#define BOOST_FUSION_STD_PAIR_TAG_OF_SPECIALIZATION(COMBINATION, _)             \
+#ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+#   define BOOST_FUSION_STD_PAIR_TAG_OF_SPECIALIZATION(COMBINATION, _)          \
+    template <typename T1, typename T2>                                         \
+    struct tag_of<std::pair<T1, T2> COMBINATION, void>                          \
+    {                                                                           \
+        typedef struct_tag type;                                                \
+    };
+#else
+#   define BOOST_FUSION_STD_PAIR_TAG_OF_SPECIALIZATION(COMBINATION, _)          \
     template <typename T1, typename T2>                                         \
     struct tag_of<std::pair<T1, T2> COMBINATION>                                \
     {                                                                           \
         typedef struct_tag type;                                                \
     };
+#endif
 
 namespace boost { namespace fusion { namespace traits                           \
 {                                                                               \
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/struct.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/struct.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/struct.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_assoc_struct.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_assoc_struct.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_assoc_struct.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,11 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2007 Joel de Guzman
+    Copyright (c) 2007 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ADAPTED_STRUCT_ADAPT_ASSOC_STRUCT_HPP
 #define BOOST_FUSION_ADAPTED_STRUCT_ADAPT_ASSOC_STRUCT_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_struct.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_struct.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_struct.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2007 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ADAPTED_STRUCT_ADAPT_STRUCT_HPP
 #define BOOST_FUSION_ADAPTED_STRUCT_ADAPT_STRUCT_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -20,6 +20,7 @@
 #include <boost/fusion/support/internal/result_of.hpp>
 
 #include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/if.hpp>
 #include <boost/mpl/bool.hpp>
 #include <boost/mpl/apply.hpp>
 #include <boost/mpl/identity.hpp>
@@ -72,7 +73,7 @@
             typedef typename result_of::next<It1&>::type It2;
             It2 it2 = fusion::next(it1);
 
-            return f(fusion::deref(it2),
+            return f(fusion::deref(fusion::next(it1)),
                         f(fusion::deref(it1),
                             f(
                                 fusion::deref(it0),
@@ -93,8 +94,7 @@
                 BOOST_FUSION_R_ELSE_CLREF(F) f)
         {
             return f(fusion::deref(fusion::next(it0)),
-                    f(fusion::deref(it0),
-                      BOOST_FUSION_FORWARD(State,state)));
+                    f(fusion::deref(it0),BOOST_FUSION_FORWARD(State,state)));
         }
     };
 
@@ -131,20 +131,21 @@
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
         typedef typename
-            internal::result_of<
+            boost::result_of<
                 typename get_func_base<FRef>::type(deref_type, StateRef)
             >::type
         type;
 #else
         typedef typename
-            mpl::eval_if<
-                typename is_lrref<deref_type>::type
-              , internal::result_of<
-                    typename get_func_base<FRef>::type(deref_type, StateRef)
-                >
-              , internal::result_of<
-                    typename get_func_base<FRef>::type(deref_type&&, StateRef)
-                >
+            boost::result_of<
+                typename get_func_base<FRef>::type(
+                typename mpl::if_<
+                    is_lrref<deref_type>
+                  , deref_type
+                  , deref_type&&
+                >::type
+              , StateRef
+                )
             >::type
         type;
 #endif
@@ -211,11 +212,8 @@
 
     template<typename It0, typename StateRef, typename FRef>
     struct result_of_unrolled_fold<It0, StateRef, FRef, 1>
-    {
-        typedef typename
-            fold_apply_r_else_clref<It0, StateRef, FRef>::type
-        type;
-    };
+      : fold_apply_r_else_clref<It0, StateRef, FRef>
+    {};
 
     template<int SeqSize, typename It0, typename StateRef, typename FRef>
     struct fold_impl
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/for_each.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/for_each.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/for_each.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -90,8 +90,7 @@
     {
         template<typename It, typename F>
         static void call(It const&, BOOST_FUSION_R_ELSE_CLREF(F))
-        {
-        }
+        {}
     };
 }}}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2007 Joel de Guzman
     Copyright (c) 2007 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2007 Joel de Guzman
     Copyright (c) 2007 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2007 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -2,6 +2,7 @@
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2005 Eric Niebler
     Copyright (c) 2007 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2007
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2007 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/all.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/all.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/all.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -9,6 +9,7 @@
 #ifndef BOOST_FUSION_ALGORITHM_QUERY_DETAIL_ALL_HPP
 #define BOOST_FUSION_ALGORITHM_QUERY_DETAIL_ALL_HPP
 
+#include <boost/config.hpp>
 #include <boost/fusion/iterator/advance.hpp>
 #include <boost/fusion/iterator/equal_to.hpp>
 #include <boost/fusion/iterator/next.hpp>
@@ -115,10 +116,14 @@
     struct unrolled_all<0>
     {
         template <typename It0, typename F>
-        static bool
+        static
+#ifndef BOOST_NO_CONSTEXPR
+        constexpr
+#endif
+        bool
         call(It0 const& it0, F const& f)
         {
-            return false;
+            return true;
         }
     };
 }}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/count.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/count.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/count.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -8,6 +8,7 @@
 #ifndef BOOST_FUSION_ALGORITHM_QUERY_DETAIL_COUNT_HPP
 #define BOOST_FUSION_ALGORITHM_QUERY_DETAIL_COUNT_HPP
 
+#include <boost/config.hpp>
 #include <boost/mpl/or.hpp>
 #include <boost/type_traits/is_convertible.hpp>
 
@@ -33,7 +34,11 @@
     struct compare_convertible<false>
     {
         template <typename T1, typename T2>
-        static bool
+        static
+#ifndef BOOST_NO_CONSTEXPR
+        constexpr
+#endif
+        bool
         call(BOOST_FUSION_R_ELSE_CLREF(T1) x, BOOST_FUSION_R_ELSE_CLREF(T2) y)
         {
             return false;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/find_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/find_if.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/find_if.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -32,30 +32,24 @@
 
         template <typename Begin, typename End, typename Pred>
         struct recursive_find_if
-        {
-            typedef typename
-                main_find_if<
-                    typename result_of::next<Begin>::type
-                  , End
-                  , Pred
-                >::type
-            type;
-        };
+          : main_find_if<
+                typename result_of::next<Begin>::type
+              , End
+              , Pred
+            >
+        {};
 
         template <typename Begin, typename End, typename Pred>
         struct main_find_if
-        {
-            typedef typename
-                mpl::eval_if<
-                    mpl::or_<
-                        result_of::equal_to<Begin, End>
-                      , mpl::apply1<Pred,Begin>
-                    >
-                  , mpl::identity<Begin>
-                  , recursive_find_if<Begin, End, Pred>
-                >::type
-            type;
-        };
+          : mpl::eval_if<
+                mpl::or_<
+                    result_of::equal_to<Begin, End>
+                  , mpl::apply1<Pred,Begin>
+                >
+              , mpl::identity<Begin>
+              , recursive_find_if<Begin, End, Pred>
+            >
+        {};
 
         template<typename Begin, typename End, typename Pred, bool>
         struct choose_find_if;
@@ -78,91 +72,76 @@
 
         template<typename It, typename Pred, int N>
         struct unrolled_find_if
-        {
-            typedef typename
-                mpl::eval_if<
-                    typename mpl::apply1<Pred,It>::type
-                  , mpl::identity<It>
+          : mpl::eval_if<
+                typename mpl::apply1<Pred,It>::type
+              , mpl::identity<It>
+              , mpl::eval_if<
+                    apply_offset_filter<It, Pred, 1>
+                  , result_of::next<It>
                   , mpl::eval_if<
-                        apply_offset_filter<It, Pred, 1>
-                      , result_of::next<It>
+                        apply_offset_filter<It, Pred, 2>
+                      , result_of::advance_c<It, 2>
                       , mpl::eval_if<
-                            apply_offset_filter<It, Pred, 2>
-                          , result_of::advance_c<It, 2>
-                          , mpl::eval_if<
-                                apply_offset_filter<It, Pred, 3>
-                              , result_of::advance_c<It, 3>
-                              , unroll_again<
-                                    It
-                                  , Pred
-                                  , N
-                                >
+                            apply_offset_filter<It, Pred, 3>
+                          , result_of::advance_c<It, 3>
+                          , unroll_again<
+                               It
+                              , Pred
+                              , N
                             >
                         >
                     >
-                >::type
-            type;
-        };
+                >
+            >
+        {};
 
         template<typename It, typename Pred, int n>
         struct unroll_again
-        {
-            typedef typename
-                unrolled_find_if<
-                    typename result_of::advance_c<It, 4>::type
-                  , Pred
-                  , n-4
-                >::type
-            type;
-        };
+          : unrolled_find_if<
+                typename result_of::advance_c<It, 4>::type
+              , Pred
+              , n-4
+            >
+        {};
 
         template<typename It, typename Pred>
         struct unrolled_find_if<It, Pred, 3>
-        {
-            typedef typename
-                mpl::eval_if<
-                    typename mpl::apply1<Pred,It>::type
-                  , mpl::identity<It>
+          : mpl::eval_if<
+                typename mpl::apply1<Pred,It>::type
+              , mpl::identity<It>
+              , mpl::eval_if<
+                    apply_offset_filter<It, Pred, 1>
+                  , result_of::next<It>
                   , mpl::eval_if<
-                        apply_offset_filter<It, Pred, 1>
-                      , result_of::next<It>
-                      , mpl::eval_if<
-                            apply_offset_filter<It, Pred, 2>
-                          , result_of::advance_c<It, 2>
-                          , result_of::advance_c<It, 3>
-                        >
+                        apply_offset_filter<It, Pred, 2>
+                      , result_of::advance_c<It, 2>
+                      , result_of::advance_c<It, 3>
                     >
-                >::type
-            type;
-        };
+                >
+            >
+        {};
 
         template<typename It, typename Pred>
         struct unrolled_find_if<It, Pred, 2>
-        {
-            typedef typename
-                mpl::eval_if<
-                    typename mpl::apply1<Pred,It>::type
-                  , mpl::identity<It>
-                  , mpl::eval_if<
-                        apply_offset_filter<It, Pred, 1>
-                      , result_of::next<It>
-                      , result_of::advance_c<It, 2>
-                    >
-                >::type
-            type;
-        };
+          : mpl::eval_if<
+                typename mpl::apply1<Pred,It>::type
+              , mpl::identity<It>
+              , mpl::eval_if<
+                    apply_offset_filter<It, Pred, 1>
+                  , result_of::next<It>
+                  , result_of::advance_c<It, 2>
+                >
+            >
+        {};
 
         template<typename It, typename Pred>
         struct unrolled_find_if<It, Pred, 1>
-        {
-            typedef typename
-                mpl::eval_if<
-                    typename mpl::apply1<Pred,It>::type
-                  , mpl::identity<It>
-                  , result_of::next<It>
-                >::type
-            type;
-        };
+          : mpl::eval_if<
+                typename mpl::apply1<Pred,It>::type
+              , mpl::identity<It>
+              , result_of::next<It>
+            >
+        {};
 
         template<typename It, typename Pred>
         struct unrolled_find_if<It, Pred, 0>
@@ -172,15 +151,12 @@
 
         template<typename Begin, typename End, typename Pred>
         struct choose_find_if<Begin, End, Pred, true>
-        {
-            typedef typename
-                unrolled_find_if<
-                    Begin
-                  , Pred
-                  , result_of::distance<Begin, End>::value
-                >::type
-            type;
-        };
+          : unrolled_find_if<
+                Begin
+              , Pred
+              , result_of::distance<Begin, End>::value
+            >
+        {};
 
         template <typename Begin, typename End, typename Pred>
         struct static_find_if
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_key.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_key.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
 /*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/clear.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/clear.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/clear.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying 
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_FILTER_KEY_VIEW_HPP
 #define BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_FILTER_KEY_VIEW_HPP
@@ -10,6 +12,7 @@
 #include <boost/fusion/view/detail/view_storage.hpp>
 #include <boost/fusion/support/category_of.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
+#include <boost/fusion/support/internal/assert.hpp>
 
 #include <boost/mpl/bool.hpp>
 
@@ -18,8 +21,6 @@
 #include <boost/fusion/algorithm/transformation/detail/filter_key_view/at_key_impl.hpp>
 #include <boost/fusion/algorithm/transformation/detail/filter_key_view/value_at_key_impl.hpp>
 
-//TODO: test
-
 namespace boost { namespace fusion
 {
     struct fusion_sequence_tag;
@@ -44,7 +45,9 @@
             filter_key_view(filter_key_view<OtherSeq,Pred> COMBINATION view)\
               : seq(static_cast<filter_key_view<OtherSeq,Pred>COMBINATION>(\
                     view).seq)\
-            {}
+            {\
+                BOOST_FUSION_TAG_CHECK(OtherSeq,filter_key_view);\
+            }
 
             BOOST_FUSION_ALL_CTOR_COMBINATIONS(
                     BOOST_FUSION_FILTER_KEY_VIEW_CTOR,_)
@@ -64,11 +67,13 @@
             {}
 #endif
 
-            template<typename OtherFilterKeyView>
+            template<typename OtherView>
             filter_key_view&
-            operator=(BOOST_FUSION_R_ELSE_CLREF(OtherFilterKeyView) other_view)
+            operator=(BOOST_FUSION_R_ELSE_CLREF(OtherView) other_view)
             {
-                seq=BOOST_FUSION_FORWARD(OtherFilterKeyView,other_view).seq;
+                BOOST_FUSION_TAG_CHECK(OtherView, filter_key_view_tag);
+
+                seq=BOOST_FUSION_FORWARD(OtherView,other_view).seq;
                 return *this;
             }
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/at_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/at_key_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/at_key_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_FILTER_KEY_VIEW_AT_KEY_IMPL_HPP
 #define BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_FILTER_KEY_VIEW_AT_KEY_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/filter_key_view_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/filter_key_view_fwd.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/filter_key_view_fwd.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_FILTER_KEY_VIEW_FILTER_KEY_VIEW_FWD_HPP
 #define BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_FILTER_KEY_VIEW_FILTER_KEY_VIEW_FWD_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/has_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/has_key_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/has_key_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_FILTER_KEY_VIEW_HAS_KEY_IMPL_HPP
 #define BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_FILTER_KEY_VIEW_HAS_KEY_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/value_at_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/value_at_key_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/filter_key_view/value_at_key_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_FILTER_KEY_VIEW_VALUE_AT_KEY_IMPL_HPP
 #define BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_FILTER_KEY_VIEW_VALUE_AT_KEY_IMPL_HPP
@@ -18,14 +20,11 @@
     {
         template <typename SeqRef,typename Key>
         struct apply
-        {
-            typedef typename
-                result_of::value_at_key<
-                    typename detail::remove_reference<SeqRef>::type_seq_type
-                  , Key
-                >::type
-            type;
-        };
+          : result_of::value_at_key<
+                typename detail::remove_reference<SeqRef>::type_seq_type
+              , Key
+            >
+        {};
     };
 }}}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/is_in_seq.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/is_in_seq.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/is_in_seq.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_SUPPORT_DETAIL_IS_IN_SEQ_HPP
 #define BOOST_FUSION_SUPPORT_DETAIL_IS_IN_SEQ_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/pp/zip.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/pp/zip.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/pp/zip.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,11 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_PP_IS_ITERATING
 #ifndef BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_PP_ZIP_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/replace_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/replace_if.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/replace_if.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/variadic_templates/zip.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/variadic_templates/zip.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/variadic_templates/zip.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_VARIADIC_TEMPLATES_ZIP_HPP
 #define BOOST_FUSION_ALGORITHM_TRANSFORMATION_DETAIL_VARIADIC_TEMPLATES_ZIP_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -13,7 +14,6 @@
 #include <boost/fusion/iterator/equal_to.hpp>
 #include <boost/fusion/view/joint_view/joint_view.hpp>
 #include <boost/fusion/view/iterator_range/iterator_range.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
 #include <boost/fusion/support/internal/assert.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
 #include <boost/fusion/algorithm/transformation/detail/is_in_seq.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase_key.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase_key.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,6 @@
-
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -12,6 +13,7 @@
 #include <boost/fusion/algorithm/transformation/insert_range.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
 #include <boost/fusion/support/internal/assert.hpp>
+#include <boost/fusion/support/deduce.hpp>
 #include <boost/fusion/algorithm/transformation/detail/is_in_seq.hpp>
 
 namespace boost { namespace fusion
@@ -24,7 +26,7 @@
                 Seq
               , Pos
               , BOOST_FUSION_R_ELSE_CLREF(
-                  single_view<typename detail::as_fusion_element<T>::type>)
+                  single_view<typename traits::deduce<T>::type>)
             >
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -12,7 +13,6 @@
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 #include <boost/fusion/view/joint_view/joint_view.hpp>
 #include <boost/fusion/view/iterator_range/iterator_range.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
 #include <boost/fusion/support/internal/assert.hpp>
 #include <boost/fusion/algorithm/transformation/detail/is_in_seq.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/join.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/join.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/join.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying 
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_back.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_back.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_back.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying 
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_front.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_front.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_front.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying 
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_back.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_back.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_back.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying 
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -10,7 +11,7 @@
 
 #include <boost/fusion/view/joint_view/joint_view.hpp>
 #include <boost/fusion/view/single_view/single_view.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
 #include <boost/fusion/support/internal/assert.hpp>
 
@@ -27,7 +28,7 @@
             typedef
                 joint_view<
                     Seq
-                  , single_view<typename detail::as_fusion_element<T>::type>
+                  , single_view<typename traits::deduce<T>::type>
                 >
             type;
         };
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_front.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_front.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_front.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying 
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -10,7 +11,7 @@
 
 #include <boost/fusion/view/joint_view/joint_view.hpp>
 #include <boost/fusion/view/single_view/single_view.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
 #include <boost/fusion/support/internal/assert.hpp>
 
@@ -26,7 +27,7 @@
 
             typedef
                 joint_view<
-                    single_view<typename detail::as_fusion_element<T>::type>
+                    single_view<typename traits::deduce<T>::type>
                   , Seq
                 >
             type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying 
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove_if.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove_if.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,9 +10,9 @@
 #define BOOST_FUSION_ALGORITHM_TRANSFORMATION_REPLACE_HPP
 
 #include <boost/fusion/algorithm/transformation/replace_if.hpp>
+#include <boost/fusion/support/deduce.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
 #include <boost/fusion/support/internal/assert.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
 
 namespace boost { namespace fusion
 {
@@ -60,9 +61,7 @@
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             typedef
-                detail::replace_helper<
-                    typename detail::as_fusion_element<T>::type
-                >
+                detail::replace_helper<typename traits::deduce<T>::type>
             replacer;
 
             typedef typename
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -10,9 +11,9 @@
 
 #include <boost/fusion/view/transform_view/transform_view.hpp>
 #include <boost/fusion/algorithm/transformation/detail/replace_if.hpp>
+#include <boost/fusion/support/deduce.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
 #include <boost/fusion/support/internal/assert.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
 
 namespace boost { namespace fusion
 {
@@ -26,8 +27,8 @@
 
             typedef
                 detail::replace_if_helper<
-                    typename detail::as_fusion_element<F>::type
-                  , typename detail::as_fusion_element<NewValue>::type
+                    typename traits::deduce<F>::type
+                  , typename traits::deduce<NewValue>::type
                 >
             replacer;
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/reverse.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/reverse.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/reverse.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying 
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,9 +10,9 @@
 #define BOOST_FUSION_ALGORITHM_TRANSFORMATION_TRANSFORM_HPP
 
 #include <boost/fusion/view/transform_view/transform_view.hpp>
+#include <boost/fusion/support/deduce.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
 #include <boost/fusion/support/internal/assert.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
 
 #include <boost/preprocessor/empty.hpp>
 
@@ -30,16 +31,12 @@
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
 
             typedef
-                transform_view<
-                    Seq1
-                  , Seq2
-                  , typename detail::as_fusion_element<F>::type
-                >
+                transform_view<Seq1, Seq2, typename traits::deduce<F>::type>
             type;
         };
 
         template <typename Seq, typename F>
-#if defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
+#ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
         struct transform<Seq, F, void_>
 #else
         struct transform<Seq, F>
@@ -48,9 +45,7 @@
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
-            typedef
-                transform_view<Seq, typename detail::as_fusion_element<F>::type>
-            type;
+            typedef transform_view<Seq, typename traits::deduce<F>::type> type;
         };
     }
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/zip.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/zip.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/zip.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,5 @@
 /*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying 
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/detail/convert_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/detail/convert_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/detail/convert_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifdef BOOST_NO_VARIADIC_TEMPLATES
 #   include <boost/fusion/sequence/intrinsic/begin.hpp>
@@ -37,6 +39,7 @@
                         result_of::size<SeqRef>::value
                     >
                 gen;
+
                 typedef typename
                     gen::template apply<
                         typename result_of::begin<SeqRef>::type
@@ -47,6 +50,7 @@
                     detail::BOOST_PP_CAT(
                         BOOST_PP_CAT(as_,BOOST_FUSION_SEQ_NAME),_impl)<SeqRef>
                 gen;
+
                 typedef typename gen::apply::type type;
 #endif
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/detail/forward_ctor.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/detail/forward_ctor.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/detail/forward_ctor.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
  
 #if !defined(BOOST_FUSION_SEQ_NAME) && !defined(BOOST_FUSION_CONTAINER_DETAIL_FORWARD_CTOR_HPP)
 #   define BOOST_FUSION_CONTAINER_DETAIL_FORWARD_CTOR_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/as_seq.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/as_seq.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/as_seq.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_PP_IS_ITERATING
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/forward_ctor.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/forward_ctor.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/detail/pp/forward_ctor.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_PP_IS_ITERATING
 #   ifndef BOOST_FUSION_SEQ_NAME
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/as_seq.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/as_seq.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/as_seq.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 //cschmidt: to avoid cyclic references - as some of the (here unneeded) mpl
 //sequence modification metafunctions might instantiate result_of::as_xxx - just
@@ -29,7 +31,6 @@
 
 namespace boost { namespace fusion { namespace detail
 {
-
     template<typename SeqRef>
     struct BOOST_PP_CAT(BOOST_PP_CAT(as_,BOOST_FUSION_SEQ_NAME),_impl)
     {
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/forward_ctor.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/forward_ctor.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/forward_ctor.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,12 +1,16 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
  
 #ifndef BOOST_FUSION_SEQ_NAME
 #   ifndef BOOST_FUSION_CONTAINER_DETAIL_VARIADIC_TEMPLATES_FORWARD_CTOR_HPP
 #   define BOOST_FUSION_CONTAINER_DETAIL_VARIADIC_TEMPLATES_FORWARD_CTOR_HPP
-#       include <boost/call_traits.hpp>
+#       ifdef BOOST_NO_RVALUE_REFERENCES
+#           include <boost/call_traits.hpp>
+#       endif
 #   endif
 #else
 #   ifdef BOOST_NO_RVALUE_REFERENCES
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/cons_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/cons_tie.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/cons_tie.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -9,7 +9,7 @@
 #define BOOST_FUSION_CONTAINER_GENERATION_CONS_TIE_HPP
 
 #include <boost/fusion/container/list/cons.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
 
 namespace boost { namespace fusion
 {
@@ -22,8 +22,8 @@
         {
             typedef
                 cons<
-                    typename detail::as_fusion_element_ref<Car>::type
-                  , typename detail::as_fusion_element<Cdr>::type
+                    typename detail::deduce_ref<Car>::type
+                  , typename traits::deduce<Cdr>::type
                 >
             type;
         };
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/make_seq.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/make_seq.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/make_seq.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #include <boost/config.hpp>
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_map.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_map.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_map.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,14 +1,17 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_PP_IS_ITERATING
 #ifndef BOOST_FUSION_CONTAINER_GENERATION_DETAIL_PP_MAKE_MAP_HPP
 #define BOOST_FUSION_CONTAINER_GENERATION_DETAIL_PP_MAKE_MAP_HPP
 
 #include <boost/fusion/container/map/map.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
 #include <boost/fusion/support/pair.hpp>
 
 #include <boost/preprocessor/iterate.hpp>
@@ -71,7 +74,7 @@
 #define BOOST_FUSION_MAP_ELEMENT(Z,N,_)\
             pair<\
                 BOOST_PP_CAT(K,N)\
-              , typename detail::as_fusion_element<BOOST_PP_CAT(T,N)>::type\
+              , typename traits::deduce<BOOST_PP_CAT(T,N)>::type\
             >
 
             typedef
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_seq.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_seq.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_seq.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,11 +1,13 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_PP_IS_ITERATING
 
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
 #include <boost/fusion/support/internal/template.hpp>
 
 #include <boost/preprocessor/iterate.hpp>
@@ -40,7 +42,7 @@
                 BOOST_FUSION_SEQ_NAME<
                     EXPAND_TEMPLATE_ARGUMENTS_BINARY(
                             BOOST_FUSION_N,
-                            typename detail::as_fusion_element<,
+                            typename traits::deduce<,
                             >::type
                     )
                 >
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/map_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/map_tie.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/map_tie.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,14 +1,18 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_PP_IS_ITERATING
 #ifndef BOOST_FUSION_CONTAINER_GENERATION_DETAIL_PP_MAP_TIE_HPP
 #define BOOST_FUSION_CONTAINER_GENERATION_DETAIL_PP_MAP_TIE_HPP
 
 #include <boost/fusion/container/map/map.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
 #include <boost/fusion/support/pair.hpp>
 
 #include <boost/preprocessor/iterate.hpp>
@@ -71,7 +75,7 @@
 #define BOOST_FUSION_MAP_ELEMENT(Z,N,_)\
             pair<\
                 BOOST_PP_CAT(K,N)\
-              , typename detail::as_fusion_element_ref<BOOST_PP_CAT(T,N)>::type\
+              , typename detail::deduce_ref<BOOST_PP_CAT(T,N)>::type\
             >
 
             typedef
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/seq_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/seq_tie.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/seq_tie.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,11 +1,13 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_PP_IS_ITERATING
 
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
 #include <boost/fusion/support/internal/template.hpp>
 
 #include <boost/preprocessor/iterate.hpp>
@@ -40,7 +42,7 @@
                 BOOST_FUSION_SEQ_NAME<
                     EXPAND_TEMPLATE_ARGUMENTS_BINARY(
                             BOOST_FUSION_N,
-                            typename detail::as_fusion_element_ref<,
+                            typename detail::deduce_ref<,
                             >::type
                     )
                 >
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/seq_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/seq_tie.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/seq_tie.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #include <boost/config.hpp>
 #include <boost/fusion/container/generation/ignore.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,13 +1,15 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_GENERATION_DETAIL_VARIADIC_TEMPLATES_MAKE_MAP_HPP
 #define BOOST_FUSION_CONTAINER_GENERATION_DETAIL_VARIADIC_TEMPLATES_MAKE_MAP_HPP
 
 #include <boost/fusion/container/map/map.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
 #include <boost/fusion/support/internal/variadic_templates/variadic_arguments_to_vector.hpp>
 #include <boost/fusion/support/internal/variadic_templates/variadic_quote.hpp>
 
@@ -20,7 +22,7 @@
 #include <boost/mpl/size.hpp>
 #include <boost/mpl/apply.hpp>
 #include <boost/mpl/unpack_args.hpp>
-#include <boost/mpl/vector.hpp>
+#include <boost/mpl/vector/vector10.hpp>
 #include <boost/mpl/zip_view.hpp>
 #include <boost/mpl/transform_view.hpp>
 
@@ -52,9 +54,9 @@
 
             typedef
                 mpl::transform_view<
-                    mpl::zip_view<mpl::vector<keys,types> >
+                    mpl::zip_view<mpl::vector2<keys,types> >
                   , mpl::unpack_args<
-                        pair<mpl::_1, detail::as_fusion_element<mpl::_2> >
+                        pair<mpl::_1, traits::deduce<mpl::_2> >
                     >
                 >
             map_args;
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_seq.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_seq.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_seq.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,9 +1,11 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
 
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#include <boost/fusion/support/deduce.hpp>
 
 #include <boost/preprocessor/cat.hpp>
 
@@ -16,7 +18,7 @@
         {
             typedef
                 BOOST_FUSION_SEQ_NAME<
-                    typename detail::as_fusion_element<Types>::type...
+                    typename traits::deduce<Types>::type...
                 >
             type;
         };
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/map_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/map_tie.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/map_tie.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,13 +1,15 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_GENERATION_DETAIL_VARIADIC_TEMPLATES_MAP_TIE_HPP
 #define BOOST_FUSION_CONTAINER_GENERATION_DETAIL_VARIADIC_TEMPLATES_MAP_TIE_HPP
 
 #include <boost/fusion/container/map/map.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
 #include <boost/fusion/support/internal/variadic_templates/variadic_arguments_to_vector.hpp>
 #include <boost/fusion/support/internal/variadic_templates/variadic_quote.hpp>
 
@@ -20,7 +22,7 @@
 #include <boost/mpl/size.hpp>
 #include <boost/mpl/apply.hpp>
 #include <boost/mpl/unpack_args.hpp>
-#include <boost/mpl/vector.hpp>
+#include <boost/mpl/vector/vector10.hpp>
 #include <boost/mpl/zip_view.hpp>
 #include <boost/mpl/transform_view.hpp>
 
@@ -55,9 +57,9 @@
 
             typedef
                 mpl::transform_view<
-                    mpl::zip_view<mpl::vector<keys,types> >
+                    mpl::zip_view<mpl::vector2<keys,types> >
                   , mpl::unpack_args<
-                        pair<mpl::_1, detail::as_fusion_element_ref<mpl::_2> >
+                        pair<mpl::_1, detail::deduce_ref<mpl::_2> >
                     >
                 >
             map_args;
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/seq_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/seq_tie.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/seq_tie.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,9 +1,11 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
 
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#include <boost/fusion/support/deduce.hpp>
 
 #include <boost/preprocessor/cat.hpp>
 
@@ -16,7 +18,7 @@
         {
             typedef
                 BOOST_FUSION_SEQ_NAME<
-                    typename detail::as_fusion_element_ref<Types>::type...
+                    typename detail::deduce_ref<Types>::type...
                 >
             type;
         };
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/list_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/list_tie.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/list_tie.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_GENERATION_LIST_TIE_HPP
 #define BOOST_FUSION_CONTAINER_GENERATION_LIST_TIE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_cons.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_cons.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_cons.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -10,7 +10,7 @@
 #define BOOST_FUSION_CONTAINER_GENERATION_MAKE_CONS_HPP
 
 #include <boost/fusion/container/list/cons.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
 
 namespace boost { namespace fusion
 {
@@ -22,8 +22,8 @@
         struct make_cons
         {
             typedef
-                cons<typename detail::as_fusion_element<Car>::type
-                   , typename detail::as_fusion_element<Cdr>::type
+                cons<typename traits::deduce<Car>::type
+                   , typename traits::deduce<Cdr>::type
                 >
             type;
         };
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_list.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_list.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_list.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_GENERATION_MAKE_LIST_HPP
 #define BOOST_FUSION_CONTAINER_GENERATION_MAKE_LIST_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_map.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_map.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_map.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_GENERATION_MAKE_MAP_HPP
 #define BOOST_FUSION_CONTAINER_GENERATION_MAKE_MAP_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_set.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_set.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_set.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_GENERATION_MAKE_SET_HPP
 #define BOOST_FUSION_CONTAINER_GENERATION_MAKE_SET_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_vector.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_vector.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_vector.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_GENERATION_MAKE_VECTOR_HPP
 #define BOOST_FUSION_CONTAINER_GENERATION_MAKE_VECTOR_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/map_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/map_tie.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/map_tie.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_GENERATION_MAP_TIE_HPP
 #define BOOST_FUSION_CONTAINER_GENERATION_MAP_TIE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/pair_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/pair_tie.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/pair_tie.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -9,7 +9,7 @@
 #define BOOST_FUSION_PAIR_TIE_20060812_2058
 
 #include <boost/fusion/support/internal/ref.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
 
 namespace boost { namespace fusion
 {
@@ -24,7 +24,7 @@
             typedef
                 fusion::pair<
                     Key
-                  , typename detail::as_fusion_element_ref<T>::type
+                  , typename detail::deduce_ref<T>::type
                 >
             type;
         };
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/vector_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/vector_tie.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/vector_tie.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_GENERATION_VECTOR_TIE_HPP
 #define BOOST_FUSION_CONTAINER_GENERATION_VECTOR_TIE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2001-2006 Joel de Guzman
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_fwd.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_fwd.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_CONS_FWD_HPP
 #define BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_CONS_FWD_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_iterator.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_iterator.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2005 Joel de Guzman
     Copyright (c) 2005 Eric Niebler
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -16,16 +17,16 @@
     struct cons_iterator_tag;
     struct forward_traversal_tag;
 
-    template <typename Cons = nil>
+    template<typename ConsRef>
     struct cons_iterator
-      : iterator_base<cons_iterator<Cons> >
+      : iterator_base<cons_iterator<ConsRef> >
     {
         typedef cons_iterator_tag fusion_tag;
         typedef forward_traversal_tag category;
-        typedef Cons cons_type;
+        typedef ConsRef cons_type;
 
-        template<typename OtherIt>
-        cons_iterator(OtherIt const& it)
+        template<typename OtherConsRef>
+        cons_iterator(cons_iterator<OtherConsRef> const& it)
           : cons(it.cons)
         {}
 
@@ -33,9 +34,9 @@
           : cons(&cons)
         {}
 
-        template<typename OtherIt>
+        template<typename OtherConsRef>
         cons_iterator&
-        operator=(OtherIt const& other_it)
+        operator=(cons_iterator<OtherConsRef> const& other_it)
         {
             cons=other_it.cons;
             return *this;
@@ -44,6 +45,7 @@
         typename detail::remove_reference<cons_type>::type* cons;
     };
 
+    //TODO ref test
     struct nil_iterator
       : iterator_base<nil_iterator>
     {
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/equal_to_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/equal_to_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -30,8 +30,7 @@
                     >::type::cons_type
                 >::type
             >
-        {
-        };
+        {};
     };
 }}}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/next_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/next_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2005 Joel de Guzman
     Copyright (c) 2005 Eric Niebler
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_at_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -23,17 +23,13 @@
         {
             typedef typename
                 detail::remove_reference<Seq>::type
-            identity_sequence;
+            seq;
 
             typedef typename
                 mpl::eval_if<
                     N
-                  , mpl::identity<typename identity_sequence::car_type>
-                    //cschmidt: qualifiers could be moved here, though
-                    //this is not necessary!
-                  , apply<typename identity_sequence::cdr_type
-                        , mpl::int_<N::value-1>
-                    >
+                  , mpl::identity<typename seq::car_type>
+                  , apply<typename seq::cdr_type, mpl::int_<N::value-1> >
                 >::type
             type;
         };
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_of_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -21,11 +21,9 @@
         struct apply
         {
             typedef typename
-                detail::remove_reference<ItRef>::type::cons_type
-            cons_type;
-
-            typedef typename
-                detail::remove_reference<cons_type>::type::car_type
+                detail::remove_reference<
+                    typename detail::remove_reference<ItRef>::type::cons_type
+                >::type::car_type
             type;
         };
     };
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/at_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_LIST_AT_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_LIST_DETAIL_LIST_AT_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/begin_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,5 @@
 /*=============================================================================
-    Copyright (c) 2005 Joel de Guzman
-    Copyright (c) 2005 Eric Niebler
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/deref_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/deref_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_LIST_DEREF_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_LIST_DETAIL_LIST_DEREF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/end_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,5 @@
 /*=============================================================================
-    Copyright (c) 2005 Joel de Guzman
-    Copyright (c) 2005 Eric Niebler
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_at_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_LIST_VALUE_AT_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_LIST_DETAIL_LIST_VALUE_AT_IMPL_HPP
@@ -19,16 +21,13 @@
     {
         template <typename SeqRef, typename N>
         struct apply
-        {
-            typedef typename
-                result_of::value_at<
-                    typename detail::remove_reference<
-                        SeqRef
-                    >::type::storage_type
-                  , N
-                >::type
-            type;
-        };
+          : result_of::value_at<
+                typename detail::remove_reference<
+                    SeqRef
+                >::type::storage_type
+              , N
+            >
+        {};
     };
 }}}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_of_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_LIST_VALUE_OF_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_LIST_DETAIL_LIST_VALUE_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/limits.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/limits.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/limits.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/list.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/list.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/list.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2005 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/list_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/list_fwd.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/list_fwd.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2005 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/convert.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/convert.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/begin_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_BEGIN_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_MAP_DETAIL_BEGIN_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/deref_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/deref_data_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/deref_data_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_DEREF_DATA_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_MAP_DETAIL_DEREF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/deref_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/deref_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_DEREF_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_MAP_DETAIL_DEREF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/end_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_END_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_MAP_DETAIL_END_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/key_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/key_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/key_of_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_KEY_OF_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_MAP_DETAIL_KEY_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_of_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_of_data_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_of_data_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_VALUE_OF_DATA_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_MAP_DETAIL_VALUE_OF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_of_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_VALUE_OF_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_MAP_DETAIL_VALUE_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/limits.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/limits.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/limits.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2005 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_MAP_MAP_HPP
 #define BOOST_FUSION_CONTAINER_MAP_MAP_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/map_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/map_fwd.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/map_fwd.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2005 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/convert.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/convert.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/begin_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_SET_DETAIL_BEGIN_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_SET_DETAIL_BEGIN_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/deref_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/deref_data_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/deref_data_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_SET_DETAIL_DEREF_DATA_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_SET_DETAIL_DEREF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/deref_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/deref_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_SET_DETAIL_DEREF_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_SET_DETAIL_DEREF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/end_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_SET_DETAIL_END_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_SET_DETAIL_END_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/key_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/key_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/key_of_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_SET_DETAIL_KEY_OF_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_SET_DETAIL_KEY_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_of_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_of_data_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_of_data_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_SET_DETAIL_VALUE_OF_DATA_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_SET_DETAIL_VALUE_OF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_of_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_SET_DETAIL_VALUE_OF_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_SET_DETAIL_VALUE_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/limits.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/limits.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/limits.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/set.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/set.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/set.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2005 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_SET_SET_HPP
 #define BOOST_FUSION_CONTAINER_SET_SET_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/set_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/set_fwd.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/set_fwd.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2005 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/convert.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/convert.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/at_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -8,7 +9,10 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_AT_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_AT_IMPL_HPP
 
-#include <boost/mpl/at.hpp>
+#ifdef BOOST_FUSION_PREFER_MPL
+#   include <boost/mpl/at.hpp>
+#endif
+#include <boost/mpl/int.hpp>
 
 namespace boost { namespace fusion { namespace extension
 {
@@ -24,19 +28,26 @@
             typedef typename
                 detail::forward_as<
                     SeqRef
+#ifdef BOOST_FUSION_PREFER_MPL
                   , typename mpl::at<
                         typename detail::remove_reference<
                             SeqRef
                         >::type::types
                       , N
                     >::type
+#else
+                  , typename vector_meta_value_at<
+                        typename detail::remove_reference<SeqRef>::type
+                      , N::value
+                    >::type
+#endif
                 >::type
             type;
 
             static type
             call(SeqRef seq)
             {
-                return seq.at_impl(N());
+                return seq.at_impl(mpl::int_<N::value>());
             }
         };
     };
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/begin_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/deref_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/deref_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -8,7 +9,9 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_DEREF_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_DEREF_IMPL_HPP
 
-#include <boost/mpl/at.hpp>
+#ifdef BOOST_FUSION_PREFER_MPL
+#   include <boost/mpl/at.hpp>
+#endif
 
 namespace boost { namespace fusion { namespace extension
 {
@@ -27,12 +30,19 @@
             typedef
                 typename detail::forward_as<
                     vector
+#ifdef BOOST_FUSION_PREFER_MPL
                   , typename mpl::at<
                         typename detail::remove_reference<
                             vector
                         >::type::types
                       , typename it::index
                     >::type
+#else
+                  , typename vector_meta_value_at<
+                        typename detail::remove_reference<vector>::type
+                      , it::index::value
+                    >::type
+#endif
                 >::type
             type;
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/end_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_PP_VECTOR_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_PP_VECTOR_HPP
@@ -21,66 +24,47 @@
 
     VARIADIC_TEMPLATE(FUSION_MAX_VECTOR_SIZE)
     struct vector
-      : sequence_base<vector<EXPAND_TEMPLATE_ARGUMENTS(FUSION_MAX_VECTOR_SIZE)> >
+      : detail::vector_n_chooser<
+            EXPAND_TEMPLATE_ARGUMENTS(FUSION_MAX_VECTOR_SIZE)
+        >::type
     {
+    private:
         typedef typename
             detail::vector_n_chooser<
                 EXPAND_TEMPLATE_ARGUMENTS(FUSION_MAX_VECTOR_SIZE)
             >::type
-        vector_n;
-
-        typedef typename vector_n::fusion_tag fusion_tag;
-        typedef typename vector_n::tag tag;
-        typedef typename vector_n::size size;
-        typedef typename vector_n::category category;
-        typedef typename vector_n::is_view is_view;
-
-        typedef typename vector_n::types types;
-        typedef vector<EXPAND_TEMPLATE_ARGUMENTS(FUSION_MAX_VECTOR_SIZE)> self_type;
+        base_type;
 
+    public:
         vector()
         {}
 
 #define BOOST_FUSION_VECTOR_CTOR(COMBINATION,_)\
-        vector(self_type COMBINATION vec)\
-          : data(BOOST_FUSION_FORWARD(self_type COMBINATION,vec).data)\
+        vector(\
+            vector<EXPAND_TEMPLATE_ARGUMENTS(FUSION_MAX_VECTOR_SIZE)>\
+                COMBINATION vec)\
+          : base_type(BOOST_FUSION_FORWARD(base_type COMBINATION,vec))\
         {}
 
         BOOST_FUSION_ALL_CTOR_COMBINATIONS(BOOST_FUSION_VECTOR_CTOR,_);
 
 #undef BOOST_FUSION_VECTOR_CTOR
 
+#define BOOST_FUSION_USE_BASE_TYPE
 #define BOOST_FUSION_SEQ_NAME vector
 #define BOOST_FUSION_MAX_SEQ_SIZE FUSION_MAX_VECTOR_SIZE
 #include <boost/fusion/container/detail/forward_ctor.hpp>
 #undef BOOST_FUSION_MAX_SEQ_SIZE
 #undef BOOST_FUSION_SEQ_NAME
+#undef BOOST_FUSION_USE_BASE_TYPE
 
         template <typename Seq>
         vector&
         operator=(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
         {
-            data = BOOST_FUSION_FORWARD(Seq,seq);
+            *static_cast<base_type*>(this)=BOOST_FUSION_FORWARD(Seq,seq);
             return *this;
         }
-
-        template <typename I>
-        typename detail::add_lref<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return data.at_impl(I());
-        }
-
-        template <typename I>
-        typename detail::add_lref<
-            typename add_const<typename mpl::at<types, I>::type>::type
-        >::type
-        at_impl(I) const
-        {
-            return data.at_impl(I());
-        }
-
-        vector_n data;
     };
 }}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_PP_IS_ITERATING
 #   include <boost/fusion/container/vector/vector_fwd.hpp>
@@ -15,29 +18,27 @@
 #   include <boost/fusion/support/sequence_base.hpp>
 #   include <boost/fusion/support/internal/ref.hpp>
 #   include <boost/fusion/support/internal/sequence_assign.hpp>
+#   include <boost/fusion/support/internal/template.hpp>
 
 #   include <boost/preprocessor/cat.hpp>
 #   include <boost/preprocessor/dec.hpp>
 #   include <boost/preprocessor/empty.hpp>
 #   include <boost/preprocessor/repetition/enum.hpp>
-#   include <boost/preprocessor/repetition/enum_params.hpp>
-#   include <boost/preprocessor/repetition/enum_binary_params.hpp>
 #   include <boost/preprocessor/repetition/repeat.hpp>
 #   include <boost/preprocessor/repetition/repeat_from_to.hpp>
 #   include <boost/preprocessor/iteration/iterate.hpp>
 
 #   include <boost/mpl/int.hpp>
 #   include <boost/mpl/bool.hpp>
-#   include <boost/mpl/at.hpp>
+#   ifdef BOOST_FUSION_PREFER_MPL
+#       include <boost/mpl/at.hpp>
+#   endif
 #   ifdef BOOST_FUSION_ENABLE_STATIC_ASSERTS
 #       include <boost/mpl/equal_to.hpp>
 #   endif
 
 #   include <boost/type_traits/add_const.hpp>
 #   include <boost/utility/enable_if.hpp>
-#   ifdef BOOST_NO_RVALUE_REFERENCES
-#       include <boost/call_traits.hpp>
-#   endif
 
 #   include <boost/fusion/container/vector/detail/at_impl.hpp>
 #   include <boost/fusion/container/vector/detail/value_at_impl.hpp>
@@ -46,37 +47,49 @@
 #   include <boost/fusion/container/vector/detail/deref_impl.hpp>
 #   include <boost/fusion/container/vector/detail/value_of_impl.hpp>
 
+namespace boost { namespace fusion
+{
 #   define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/pp/vector_n.hpp>
 #   define BOOST_PP_ITERATION_LIMITS (BOOST_FUSION_FROM, BOOST_FUSION_TO)
 #   include BOOST_PP_ITERATE()
+}}
 
 #else
 #   define BOOST_FUSION_N BOOST_PP_ITERATION()
 
-namespace boost { namespace fusion
-{
 #   if !BOOST_FUSION_N
-    struct void_;
-
-    template <typename T0=void_>
+    VARIADIC_TEMPLATE_WITH_DEFAULT(1)
     struct vector0;
 
     template<>
     struct vector0<void_>
       : sequence_base<vector0<void_> >
 #   else
-    template <BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, typename T)>
+#       ifndef BOOST_FUSION_PREFER_MPL
+    template<typename Vector>
+    struct
+    vector_meta_value_at<Vector,BOOST_PP_DEC(BOOST_FUSION_N)>
+    {
+        typedef typename
+            Vector::BOOST_PP_CAT(t,BOOST_PP_DEC(BOOST_FUSION_N))
+        type;
+    };
+#       endif
+
+    VARIADIC_TEMPLATE(BOOST_FUSION_N)
     struct BOOST_PP_CAT(vector, BOOST_FUSION_N)
       : sequence_base<BOOST_PP_CAT(vector, BOOST_FUSION_N)<
-            BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N,T)>
+            EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)>
         >
 #   endif
     {
+#ifdef BOOST_FUSION_PREFER_MPL
         typedef
             mpl::BOOST_PP_CAT(vector, BOOST_FUSION_N)<
-                BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, T)
+                EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
             >
         types;
+#endif
         typedef vector_tag fusion_tag;
         typedef fusion_sequence_tag tag; 
         typedef mpl::false_ is_view;
@@ -94,18 +107,17 @@
 #   undef BOOST_FUSION_DEFAULT_MEMBER_INIT
 
 #   if BOOST_FUSION_N
-#       define BOOST_FUSION_SELF_TYPE\
-            BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N,T)>
-
 #       define BOOST_FUSION_MEMBER_INIT(Z, N, COMBINATION)\
             BOOST_PP_CAT(m,N)(\
-                BOOST_FUSION_FORWARD(BOOST_FUSION_SELF_TYPE COMBINATION,vec).\
+                BOOST_FUSION_FORWARD(\
+                    BOOST_PP_CAT(vector, N)<EXPAND_TEMPLATE_ARGUMENTS(N)>\
+                        COMBINATION,vec).\
                     BOOST_PP_CAT(m,N))
 
 #       define BOOST_FUSION_VECTOR_CTOR(COMBINATION,_)\
         BOOST_PP_CAT(vector, BOOST_FUSION_N)(\
             BOOST_PP_CAT(vector, BOOST_FUSION_N)<\
-                BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N,T)\
+                EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)\
             > COMBINATION vec)\
           : BOOST_PP_ENUM(BOOST_FUSION_N, BOOST_FUSION_MEMBER_INIT, COMBINATION)\
         {}
@@ -113,7 +125,6 @@
         BOOST_FUSION_ALL_CTOR_COMBINATIONS(BOOST_FUSION_VECTOR_CTOR,_)
 
 #       undef BOOST_FUSION_MEMBER_INIT
-#       undef BOOST_FUSION_SELF_TYPE
 #   else
 #       define BOOST_FUSION_VECTOR_CTOR(COMBINATION,_)\
         BOOST_PP_CAT(vector, BOOST_FUSION_N)(\
@@ -131,22 +142,16 @@
             BOOST_FUSION_FORWARD(BOOST_PP_CAT(A,N), BOOST_PP_CAT(_,N)))
 
 #ifndef BOOST_NO_RVALUE_REFERENCES
-        template <BOOST_PP_ENUM_PARAMS(N, typename A)>
+        VARIADIC_TEMPLATE_A(BOOST_FUSION_N)
 #endif
 #       if (BOOST_FUSION_N == 1)
         explicit
 #       endif
         BOOST_PP_CAT(vector, BOOST_FUSION_N)(
 #ifdef BOOST_NO_RVALUE_REFERENCES
-            BOOST_PP_ENUM_BINARY_PARAMS(
-                    BOOST_FUSION_N,
-                    typename call_traits<T,
-                    >::param_type _)
+            EXPAND_TEMPLATE_ARGUMENTS_CALL_PARAMS(BOOST_FUSION_N)
 #else
-            BOOST_PP_ENUM_BINARY_PARAMS(
-                    BOOST_FUSION_N,
-                    A,
-                    BOOST_FUSION_R_ELSE_CLREF(BOOST_PP_EMPTY()) _)
+            EXPAND_TEMPLATE_ARGUMENTS_PARAMETERS_A_R_ELSE_CLREF(BOOST_FUSION_N)
 #endif
             )
           : BOOST_PP_ENUM(BOOST_FUSION_N, BOOST_FUSION_MEMBER_INIT, _)
@@ -190,7 +195,7 @@
 
         template <typename Seq>
         BOOST_PP_CAT(vector, BOOST_FUSION_N)<
-            BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, T)
+            EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
         >&
         operator=(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
         {
@@ -227,43 +232,38 @@
         }
 
         BOOST_PP_CAT(vector, BOOST_FUSION_N)<
-            BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, T)
+            EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
         >&
         operator=(
             BOOST_PP_CAT(vector, BOOST_FUSION_N)<
-                BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, T)
+                EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
             >const& seq)
         {
 #ifdef BOOST_NO_RVALUE_REFERENCES
             return this->operator=<
-                    BOOST_PP_CAT(vector, BOOST_FUSION_N)
-                        <BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, T)>
+                    BOOST_PP_CAT(vector, BOOST_FUSION_N)<
+                        EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
+                    >
                 >(seq);
 #else
             return this->operator=<
-                    BOOST_PP_CAT(vector, BOOST_FUSION_N)
-                        <BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, T)> const&
+                    BOOST_PP_CAT(vector, BOOST_FUSION_N)<
+                        EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
+                    > const&
                 >(seq);
 #endif
         }
 
-        template<typename I>
-        typename detail::add_lref<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return at_impl(mpl::int_<I::value>());
-        }
-
-        template<typename I>
-        typename detail::add_lref<
-            typename add_const<typename mpl::at<types, I>::type>::type
-        >::type
-        at_impl(I) const
-        {
-            return at_impl(mpl::int_<I::value>());
-        }
+#   ifdef BOOST_FUSION_PREFER_MPL
+#       define BOOST_FUSION_META_VALUE_AT(N)
+#   else
+#       define BOOST_FUSION_META_VALUE_AT(N)\
+            typedef BOOST_PP_CAT(T,N) BOOST_PP_CAT(t,N);
+#   endif
 
 #   define BOOST_FUSION_MEMBER_DECL(Z, N, _)\
+        BOOST_FUSION_META_VALUE_AT(N)\
+        \
         typename detail::add_lref<BOOST_PP_CAT(T,N)>::type\
         at_impl(mpl::int_<N>)\
         {\
@@ -283,8 +283,9 @@
         BOOST_PP_REPEAT(BOOST_FUSION_N, BOOST_FUSION_MEMBER_DECL, _)
 
 #   undef BOOST_FUSION_MEMBER_DECL
+#   undef BOOST_FUSION_META_VALUE_AT
     };
-}}
+
 #   undef BOOST_FUSION_N
 #endif
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n_chooser.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n_chooser.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n_chooser.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -6,85 +6,54 @@
 ==============================================================================*/
 
 #ifndef BOOST_PP_IS_ITERATING
-#ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_PP_VECTOR_N_CHOOSER_HPP
-#define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_PP_VECTOR_N_CHOOSER_HPP
+#   ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_PP_VECTOR_N_CHOOSER_HPP
+#   define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_PP_VECTOR_N_CHOOSER_HPP
 
-#include <boost/fusion/container/vector/limits.hpp>
+#   include <boost/fusion/container/vector/limits.hpp>
 //  include vector0..N where N is FUSION_MAX_VECTOR_SIZE
-#include <boost/fusion/container/vector/vector10.hpp>
-#if (FUSION_MAX_VECTOR_SIZE > 10)
-#   include <boost/fusion/container/vector/vector20.hpp>
-#endif
-#if (FUSION_MAX_VECTOR_SIZE > 20)
-#   include <boost/fusion/container/vector/vector30.hpp>
-#endif
-#if (FUSION_MAX_VECTOR_SIZE > 30)
-#   include <boost/fusion/container/vector/vector40.hpp>
-#endif
-#if (FUSION_MAX_VECTOR_SIZE > 40)
-#   include <boost/fusion/container/vector/vector50.hpp>
-#endif
-
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
+#   include <boost/fusion/container/vector/vector10.hpp>
+#   if (FUSION_MAX_VECTOR_SIZE > 10)
+#       include <boost/fusion/container/vector/vector20.hpp>
+#   endif
+#   if (FUSION_MAX_VECTOR_SIZE > 20)
+#       include <boost/fusion/container/vector/vector30.hpp>
+#   endif
+#   if (FUSION_MAX_VECTOR_SIZE > 30)
+#       include <boost/fusion/container/vector/vector40.hpp>
+#   endif
+#   if (FUSION_MAX_VECTOR_SIZE > 40)
+#       include <boost/fusion/container/vector/vector50.hpp>
+#   endif
+#   include <boost/fusion/support/internal/template.hpp>
 
-#include <boost/mpl/distance.hpp>
-#include <boost/mpl/find.hpp>
-#include <boost/mpl/begin_end.hpp>
-
-namespace boost { namespace fusion
-{
-    struct void_;
-}}
+#   include <boost/preprocessor/cat.hpp>
 
 namespace boost { namespace fusion { namespace detail
 {
-    template <int N>
-    struct get_vector_n;
+    VARIADIC_TEMPLATE_WITH_DEFAULT(FUSION_MAX_VECTOR_SIZE)
+    struct vector_n_chooser;
+
+#   define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/pp/vector_n_chooser.hpp>
+#   define BOOST_PP_ITERATION_LIMITS (0, FUSION_MAX_VECTOR_SIZE)
+#   include BOOST_PP_ITERATE()
+
+}}}
 
-#define BOOST_PP_FILENAME_1 \
-    <boost/fusion/container/vector/detail/pp/vector_n_chooser.hpp>
-#define BOOST_PP_ITERATION_LIMITS (0, FUSION_MAX_VECTOR_SIZE)
-#include BOOST_PP_ITERATE()
+#   endif
+#else
+#   define BOOST_FUSION_N BOOST_PP_ITERATION()
 
-    template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, typename T)>
+    VARIADIC_TEMPLATE(BOOST_FUSION_N)
     struct vector_n_chooser
+        EXPAND_TEMPLATE_ARGUMENTS_SPECIALIZATION(
+            FUSION_MAX_VECTOR_SIZE,BOOST_FUSION_N)
     {
         typedef
-            mpl::BOOST_PP_CAT(vector, FUSION_MAX_VECTOR_SIZE)
-                <BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, T)>
-        input;
-
-        typedef typename mpl::begin<input>::type begin;
-        typedef typename mpl::find<input, void_>::type end;
-        typedef typename mpl::distance<begin, end>::type size;
-
-        typedef typename get_vector_n<size::value>::template
-            call<BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, T)>::type
+            BOOST_PP_CAT(vector, BOOST_FUSION_N)<
+                EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
+            >
         type;
     };
-}}}
 
+#   undef BOOST_FUSION_N
 #endif
-
-///////////////////////////////////////////////////////////////////////////////
-//
-//  Preprocessor vertical repetition code
-//
-///////////////////////////////////////////////////////////////////////////////
-#else // defined(BOOST_PP_IS_ITERATING)
-
-#define N BOOST_PP_ITERATION()
-
-    template <>
-    struct get_vector_n<N>
-    {
-        template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, typename T)>
-        struct call
-        {
-            typedef BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, T)> type;
-        };
-    };
-
-#undef BOOST_FUSION_N
-#endif // defined(BOOST_PP_IS_ITERATING)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_at_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -8,7 +9,9 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_VALUE_AT_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_VALUE_AT_IMPL_HPP
 
-#include <boost/mpl/at.hpp>
+#ifdef BOOST_FUSION_PREFER_MPL
+#   include <boost/mpl/at.hpp>
+#endif
 
 namespace boost { namespace fusion { namespace extension
 {
@@ -20,14 +23,18 @@
     {
         template <typename SeqRef, typename N>
         struct apply
-        {
-            typedef typename
-                mpl::at<
-                    typename detail::remove_reference<SeqRef>::type::types
-                  , N
-                >::type
-            type;
-        };
+#ifdef BOOST_FUSION_PREFER_MPL
+          : mpl::at<
+                typename detail::remove_reference<SeqRef>::type::types
+              , N
+            >
+#else
+          : vector_meta_value_at<
+                typename detail::remove_reference<SeqRef>::type
+              , N::value
+            >
+#endif
+        {};
     };
 }}}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_of_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -8,7 +9,9 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_VALUE_OF_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_VALUE_OF_IMPL_HPP
 
-#include <boost/mpl/at.hpp>
+#ifdef BOOST_FUSION_PREFER_MPL
+#   include <boost/mpl/at.hpp>
+#endif
 
 namespace boost { namespace fusion { namespace extension
 {
@@ -24,12 +27,21 @@
             typedef typename detail::remove_reference<ItRef>::type it;
 
             typedef typename
+#ifdef BOOST_FUSION_PREFER_MPL
                 mpl::at<
                     typename detail::remove_reference<
                         typename it::seq_type
                     >::type::types
                   , typename it::index
                 >::type
+#else
+                vector_meta_value_at<
+                    typename detail::remove_reference<
+                        typename it::seq_type
+                    >::type
+                  , it::index::value
+                >::type
+#endif
             type;
         };
     };
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,135 +1,267 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_VARIADIC_TEMPLATES_VECTOR_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_VARIADIC_TEMPLATES_VECTOR_HPP
 
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 #include <boost/fusion/sequence/intrinsic/size.hpp>
+#include <boost/fusion/iterator/advance_c.hpp>
 #include <boost/fusion/iterator/next.hpp>
 #include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/support/internal/variadic_templates/variadic_arguments_to_vector.hpp>
+#ifdef BOOST_FUSION_PREFER_MPL
+#   include <boost/fusion/support/internal/variadic_templates/variadic_arguments_to_vector.hpp>
+#endif
 #include <boost/fusion/support/internal/sequence_assign.hpp>
 #include <boost/fusion/support/internal/assign_tags.hpp>
 #include <boost/fusion/support/sequence_base.hpp>
 #include <boost/fusion/support/internal/assert.hpp>
 
+#include <boost/preprocessor/inc.hpp>
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/repetition/repeat.hpp>
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+#include <boost/preprocessor/repetition/enum.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>
 #include <boost/mpl/int.hpp>
+#ifdef BOOST_NO_RVALUE_REFERENCES
+#   include <boost/call_traits.hpp>
+#endif
 
 #include <utility>
 
 namespace boost { namespace fusion
 {
-    struct void_;
-
     namespace detail
     {
         template<int Index,typename... Elements>
         struct vector_impl;
 
-        template<int Index>
-        struct vector_impl<Index>
+        template<>
+        struct vector_impl<0>
         {
-            template<int,typename...>friend struct vector_impl;
-            template<typename...>friend struct fusion::vector;
-
-        protected:
-            typedef void_ head;
-
             vector_impl()
             {}
 
-            vector_impl(assign_directly)
+            template<typename It>
+            vector_impl(assign_by_deref,It const& it)
             {}
 
-            template<typename It>
-            vector_impl(assign_by_deref,It const&)
+            vector_impl(assign_directly)
             {}
 
-            template<typename It>
+            template<typename It0>
             void
-            assign(It const&)
+            assign(It0 const& it0)
             {}
-
-            void at_impl();
         };
 
-        template<int Index,typename Head,typename... Others>
-        struct vector_impl<Index,Head,Others...>
-          : vector_impl<Index+1,Others...>
-        {
-            template<int,typename...>friend struct vector_impl;
-            template<typename...>friend struct fusion::vector;
+#define BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEFAULT_INIT(Z,N,_)\
+        BOOST_PP_CAT(_element,N)()
+
+#define BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEREF_ASSIGN_PARAMS(Z,N,_)\
+        BOOST_PP_CAT(_element,N)(\
+            fusion::deref(fusion::advance_c<N>(it)))
+
+#define BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEREF_ASSIGN(Z,N,_)\
+        BOOST_PP_CAT(_element,N)=fusion::deref(BOOST_PP_CAT(it,N));\
+        \
+        typedef typename\
+            result_of::next<BOOST_PP_CAT(It,N)>::type\
+        BOOST_PP_CAT(It,BOOST_PP_INC(N));\
+        BOOST_PP_CAT(It,BOOST_PP_INC(N)) BOOST_PP_CAT(it,BOOST_PP_INC(N))=\
+            fusion::next(BOOST_PP_CAT(it,N));
+
+#ifdef BOOST_NO_RVALUE_REFERENCES
+#   define BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DIRECT_ASSIGN_TEMPLATE_ARGS(N)
+
+#   define BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DIRECT_ASSIGN_PARAMS(N)\
+        BOOST_PP_ENUM_BINARY_PARAMS(N, typename call_traits<H,>::type _)
+#else
+#   define BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DIRECT_ASSIGN_TEMPLATE_ARGS(N)\
+        template<BOOST_PP_ENUM_PARAMS(N, typename OtherH)>
+
+#   define BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DIRECT_ASSIGN_PARAMS(N)\
+        BOOST_PP_ENUM_BINARY_PARAMS(N, OtherH,&& _)
+#endif
+
+#define BOOST_FUSION_UNROLLED_VECTOR_DIRECT_ASSIGN(Z,N,_)\
+        BOOST_PP_CAT(_element,N)(BOOST_PP_CAT(_,N))
+
+#ifdef BOOST_FUSION_PREFER_MPL
+#   define BOOST_FUSION_META_VALUE_AT(N)
+#else
+#   define BOOST_FUSION_META_VALUE_AT(N)\
+        typedef BOOST_PP_CAT(H,N) BOOST_PP_CAT(h,N);
+#endif
 
-        private:
-            typedef vector_impl<Index+1,Others...> base;
+#define BOOST_FUSION_UNROLLED_VECTOR_AT(Z,N,_)\
+        BOOST_FUSION_META_VALUE_AT(N)\
+        \
+        typename detail::add_lref<BOOST_PP_CAT(H,N)>::type\
+        at_impl(mpl::int_<Index+N>)\
+        {\
+            return BOOST_PP_CAT(_element,N) ;\
+        }\
+        \
+        typename detail::add_lref<\
+            typename add_const<BOOST_PP_CAT(H,N)>::type\
+        >::type\
+        at_impl(mpl::int_<Index+N>)const\
+        {\
+            return BOOST_PP_CAT(_element,N) ;\
+        }\
+        \
+        BOOST_PP_CAT(H,N) BOOST_PP_CAT(_element,N);
+
+#define BOOST_FUSION_UNROLLED_VECTOR_IMPL(Z, N, MAX)\
+        template<int Index, BOOST_PP_ENUM_PARAMS(N, typename H)>\
+        struct vector_impl<Index,BOOST_PP_ENUM_PARAMS(N, H)>\
+        {\
+            vector_impl()\
+              : BOOST_PP_ENUM(\
+                      N,\
+                      BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEFAULT_INIT,\
+                      _)\
+            {}\
+            \
+            template<typename It>\
+            vector_impl(assign_by_deref,It const& it)\
+              : BOOST_PP_ENUM(N,\
+                    BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEREF_ASSIGN_PARAMS,\
+                    _)\
+            {}\
+            \
+            template<typename It0>\
+            void\
+            assign(It0 const& it0)\
+            {\
+                BOOST_PP_REPEAT(N,\
+                        BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEREF_ASSIGN,\
+                        _)\
+            }\
+            \
+            BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DIRECT_ASSIGN_TEMPLATE_ARGS(N)\
+            vector_impl(\
+                assign_directly,\
+                BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DIRECT_ASSIGN_PARAMS(N)\
+            )\
+              : BOOST_PP_ENUM(N, BOOST_FUSION_UNROLLED_VECTOR_DIRECT_ASSIGN, _)\
+            {}\
+            \
+            BOOST_PP_REPEAT(N,BOOST_FUSION_UNROLLED_VECTOR_AT,_)\
+        };
 
-        public:
-            using base::at_impl;
+        BOOST_PP_REPEAT_FROM_TO(1, 5, BOOST_FUSION_UNROLLED_VECTOR_IMPL, _)
 
-        protected:
-            typedef Head head;
+        template<
+            int Index
+          , BOOST_PP_ENUM_PARAMS(4, typename H)
+          , typename... Others
+        >
+        struct vector_impl<Index,BOOST_PP_ENUM_PARAMS(4, H),Others...>
+          : vector_impl<Index+4,Others...>
+        {
+            typedef vector_impl<Index+4,Others...> base_type;
+            typedef base_type chain_upper;
 
-        private:
-            Head _element;
+            using base_type::at_impl;
 
-        protected:
             vector_impl()
-              : _element()
+              : BOOST_PP_ENUM(4,
+                      BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEFAULT_INIT,
+                      _)
             {}
 
             template<typename It>
             vector_impl(assign_by_deref,It const& it)
-              : base(assign_by_deref(),fusion::next(it))
-              , _element(fusion::deref(it))
+              : base_type(assign_by_deref(),fusion::advance_c<4>(it))
+              , BOOST_PP_ENUM(4,
+                    BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEREF_ASSIGN_PARAMS,
+                    _)
             {}
 
-            template<typename It>
+            template<typename It0>
             void
-            assign(It const& it)
+            assign(It0 const& it0)
             {
-                _element=fusion::deref(it);
-                static_cast<base*>(this)->assign(fusion::next(it));
+                BOOST_PP_REPEAT(4,
+                        BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEREF_ASSIGN,
+                        _)
+
+                static_cast<base_type*>(this)->assign(fusion::next(it4));
             }
 
-            template<typename OtherHead,typename... OtherElements>
-            vector_impl(assign_directly,
-                    BOOST_FUSION_R_ELSE_CLREF(OtherHead) head,
-                    BOOST_FUSION_R_ELSE_CLREF(OtherElements)... elements)
-                : base(assign_directly(),
+#ifndef BOOST_NO_RVALUE_REFERENCES
+            template<
+                BOOST_PP_ENUM_PARAMS(4, typename OtherH)
+              , typename... OtherElements
+            >
+#endif
+            vector_impl(
+                assign_directly,
+                BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DIRECT_ASSIGN_PARAMS(4),
+#ifdef BOOST_NO_RVALUE_REFERENCES
+                typename call_traits<Others>::param_type...  elements
+#else
+                OtherElements&&... elements
+#endif
+            )
+              : base_type(assign_directly(),
                         BOOST_FUSION_FORWARD(OtherElements,elements)...)
-                , _element(BOOST_FUSION_FORWARD(OtherHead,head))
+              , BOOST_PP_ENUM(4, BOOST_FUSION_UNROLLED_VECTOR_DIRECT_ASSIGN, _)
             {}
 
-            typename detail::add_lref<Head>::type
-            at_impl(mpl::int_<Index>)
-            {
-                return _element;
-            }
-
-            typename detail::add_lref<typename add_const<Head>::type>::type
-            at_impl(mpl::int_<Index>)const
-            {
-                return _element;
-            }
+            BOOST_PP_REPEAT(4,BOOST_FUSION_UNROLLED_VECTOR_AT,_)
         };
+
+#undef BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEFAULT_INIT
+#undef BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEREF_ASSIGN_PARAMS
+#undef BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DEREF_ASSIGN
+#undef BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DIRECT_ASSIGN_TEMPLATE_ARGS
+#undef BOOST_FUSION_UNROLLED_VECTOR_MEMBER_DIRECT_ASSIGN_PARAMS
+#undef BOOST_FUSION_UNROLLED_VECTOR_DIRECT_ASSIGN
+#undef BOOST_FUSION_META_VALUE_AT
+#undef BOOST_FUSION_UNROLLED_VECTOR_AT
+#undef BOOST_FUSION_UNROLLED_VECTOR_IMPL
     }
 
+#ifndef BOOST_FUSION_PREFER_MPL
+    template<typename Vector, int Index>
+    struct vector_meta_value_at
+      : vector_meta_value_at<typename Vector::chain_upper, Index-4>
+    {};
+
+#   define BOOST_FUSION_META_VALUE_AT_SPECIALIZATION(Z,N,_)\
+    template<typename Vector>\
+    struct vector_meta_value_at<Vector,N>\
+    {\
+        typedef typename Vector::BOOST_PP_CAT(h,N) type;\
+    };
+
+    BOOST_PP_REPEAT(4, BOOST_FUSION_META_VALUE_AT_SPECIALIZATION, _)
+
+#   undef BOOST_FUSION_META_VALUE_AT_SPECIALIZATION
+#endif
+
     template<typename... Elements>
     struct vector
       : sequence_base<vector<Elements...> >
       , detail::vector_impl<0,Elements...>
     {
-    private:
-        typedef detail::vector_impl<0,Elements...> base;
+        typedef detail::vector_impl<0,Elements...> base_type;
 
-    public:
-        typedef vector<Elements...> this_type;
+#ifdef BOOST_FUSION_PREFER_MPL
         typedef typename
             detail::variadic_arguments_to_vector<Elements...>::type
         types;
+#endif
+
         typedef vector_tag fusion_tag;
         typedef fusion_sequence_tag tag;
         typedef mpl::false_ is_view;
@@ -141,7 +273,7 @@
 
 #define VECTOR_CTOR(COMBINATION,_)\
         vector(vector COMBINATION vec)\
-          : base(detail::assign_by_deref(),\
+          : base_type(detail::assign_by_deref(),\
                 fusion::begin(BOOST_FUSION_FORWARD(vector COMBINATION,vec)))\
         {}
 
@@ -149,10 +281,18 @@
 
 #undef VECTOR_CTOR
 
+#ifndef BOOST_NO_RVALUE_REFERENCES
         template<typename... OtherArguments>
+#endif
         explicit
-        vector(BOOST_FUSION_R_ELSE_CLREF(OtherArguments)... arguments)
-          : base(detail::assign_directly(),
+        vector(
+#ifdef BOOST_NO_RVALUE_REFERENCES
+            typename call_traits<Elements>::param_type...  arguments
+#else
+            OtherArguments&&... arguments
+#endif
+            )
+          : base_type(detail::assign_directly(),
                  BOOST_FUSION_FORWARD(OtherArguments,arguments)...)
         {
             BOOST_FUSION_STATIC_ASSERT((
@@ -162,7 +302,7 @@
 #define BOOST_FUSION_VECTOR_ASSIGN_CTOR(COMBINATION,_)\
         template<typename SeqRef>\
         vector(detail::sequence_assign_type<SeqRef> COMBINATION seq_assign)\
-          : base(detail::assign_by_deref(),fusion::begin(seq_assign.get()))\
+          : base_type(detail::assign_by_deref(),fusion::begin(seq_assign.get()))\
         {\
             BOOST_FUSION_STATIC_ASSERT((\
                 sizeof...(Elements)==result_of::size<SeqRef>::value));\
@@ -176,7 +316,7 @@
         template<typename Seq>
         vector(typename enable_if_c<sizeof...(Elements)!=1,
                                 BOOST_FUSION_R_ELSE_CLREF(Seq)>::type seq)
-          : base(detail::assign_by_deref(),
+          : base_type(detail::assign_by_deref(),
                  fusion::begin(BOOST_FUSION_FORWARD(Seq,seq.seq)))
         {}
         */
@@ -188,28 +328,10 @@
             BOOST_FUSION_STATIC_ASSERT((
                 sizeof...(Elements)==result_of::size<Seq>::value));
 
-            static_cast<base*>(this)->assign(
+            static_cast<base_type*>(this)->assign(
                 fusion::begin(BOOST_FUSION_FORWARD(Seq,seq)));
             return *this;
         }
-
-        template<typename I>
-        typename detail::add_lref<
-            typename mpl::at<types, I>::type
-        >::type
-        at_impl(I)
-        {
-            return base::at_impl(mpl::int_<I::value>());
-        }
-
-        template<typename I>
-        typename detail::add_lref<
-        typename add_const<typename mpl::at<types, I>::type>::type
-        >::type
-        at_impl(I) const
-        {
-            return base::at_impl(mpl::int_<I::value>());
-        }
     };
 
 }}
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_PP_IS_ITERATING
 #   include <boost/fusion/container/vector/vector.hpp>
@@ -10,6 +12,7 @@
 #   include <boost/preprocessor/cat.hpp>
 #   include <boost/preprocessor/repetition/enum.hpp>
 #   include <boost/preprocessor/repetition/enum_binary_params.hpp>
+#   include <boost/call_traits.hpp>
 
 #   define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/variadic_templates/vector_n.hpp>
 #   define BOOST_PP_ITERATION_LIMITS (BOOST_FUSION_FROM, BOOST_FUSION_TO)
@@ -35,17 +38,15 @@
 #   endif
       : vector<BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, T)>
     {
-    private:
-        typedef vector<BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, T)> base;
+        typedef vector<BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, T)> base_type;
 
-    public:
         BOOST_PP_CAT(vector, BOOST_FUSION_N)()
         {}
 
 #   define BOOST_FUSION_VECTOR_CTOR(COMBINATION,_)\
         BOOST_PP_CAT(vector, BOOST_FUSION_N)(\
             BOOST_PP_CAT(vector, BOOST_FUSION_N) COMBINATION vec)\
-          : base(sequence_assign(BOOST_FUSION_FORWARD(\
+          : base_type(sequence_assign(BOOST_FUSION_FORWARD(\
                   BOOST_PP_CAT(vector, BOOST_FUSION_N) COMBINATION,vec)))\
         {}
 
@@ -55,23 +56,23 @@
 
         template<typename Arg>
         BOOST_PP_CAT(vector, BOOST_FUSION_N)(BOOST_FUSION_R_ELSE_CLREF(Arg) arg)
-          : base(BOOST_FUSION_FORWARD(Arg,arg))
+          : base_type(BOOST_FUSION_FORWARD(Arg,arg))
         {}
 
 #   if BOOST_FUSION_N > 1
 #       ifdef BOOST_NO_RVALUE_REFERENCES
         BOOST_PP_CAT(vector, BOOST_FUSION_N)(
-            BOOST_PP_ENUM_BINARY_PARAMS(N, T, const& a))
-          : base(BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, a))
+            BOOST_PP_ENUM_BINARY_PARAMS(N, call_traits<T,>::param_type a))
+          : base_type(BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, a))
         {}
 #       else
-#           define BOOST_FUSION_FORWARD_ARGUMENT(Z, N, __) std::forward<\
-                BOOST_PP_CAT(A,N)>(BOOST_PP_CAT(_,N))
+#           define BOOST_FUSION_FORWARD_ARGUMENT(Z, N, __)\
+                std::forward<BOOST_PP_CAT(A,N)>(BOOST_PP_CAT(_,N))
 
         template <BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, typename A)>
         BOOST_PP_CAT(vector, BOOST_FUSION_N)(
             BOOST_PP_ENUM_BINARY_PARAMS(BOOST_FUSION_N, A,&& _))
-          : base(
+          : base_type(
               BOOST_PP_ENUM(BOOST_FUSION_N, BOOST_FUSION_FORWARD_ARGUMENT, _))
         {}
 
@@ -83,7 +84,7 @@
         BOOST_PP_CAT(vector, BOOST_FUSION_N)&
         operator=(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
         {
-            *static_cast<base*>(this)=BOOST_FUSION_FORWARD(Seq,seq);
+            *static_cast<base_type*>(this)=BOOST_FUSION_FORWARD(Seq,seq);
             return *this;
         }
     };
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/limits.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/limits.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/limits.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_VECTOR_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_VECTOR_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector10.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector10.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector10.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,13 +1,18 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_VECTOR10_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_VECTOR10_HPP
 
 #include <boost/config.hpp>
-#include <boost/mpl/vector/vector10.hpp>
+#ifdef BOOST_FUSION_PREFER_MPL
+#   include <boost/mpl/vector/vector10.hpp>
+#endif
 
 #if defined(BOOST_NO_VARIADIC_TEMPLATES) || !defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
 #   define BOOST_FUSION_FROM 0
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector20.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector20.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector20.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,13 +1,18 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_VECTOR20_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_VECTOR20_HPP
 
 #include <boost/config.hpp>
-#include <boost/mpl/vector/vector20.hpp>
+#ifdef BOOST_FUSION_PREFER_MPL
+#   include <boost/mpl/vector/vector20.hpp>
+#endif
 
 #if defined(BOOST_NO_VARIADIC_TEMPLATES) || !defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
 #   define BOOST_FUSION_FROM 11
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector30.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector30.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector30.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,13 +1,18 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_VECTOR30_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_VECTOR30_HPP
 
 #include <boost/config.hpp>
-#include <boost/mpl/vector/vector30.hpp>
+#ifdef BOOST_FUSION_PREFER_MPL
+#   include <boost/mpl/vector/vector30.hpp>
+#endif
 
 #if defined(BOOST_NO_VARIADIC_TEMPLATES) || !defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
 #   define BOOST_FUSION_FROM 21
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector40.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector40.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector40.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,13 +1,18 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_VECTOR40_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_VECTOR40_HPP
 
 #include <boost/config.hpp>
-#include <boost/mpl/vector/vector40.hpp>
+#ifdef BOOST_FUSION_PREFER_MPL
+#   include <boost/mpl/vector/vector40.hpp>
+#endif
 
 #if defined(BOOST_NO_VARIADIC_TEMPLATES) || !defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
 #   define BOOST_FUSION_FROM 31
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector50.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector50.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector50.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,13 +1,18 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_VECTOR50_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_VECTOR50_HPP
 
 #include <boost/config.hpp>
-#include <boost/mpl/vector/vector50.hpp>
+#ifdef BOOST_FUSION_PREFER_MPL
+#   include <boost/mpl/vector/vector50.hpp>
+#endif
 
 #if defined(BOOST_NO_VARIADIC_TEMPLATES) || !defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
 #   define BOOST_FUSION_FROM 41
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_fwd.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_fwd.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 1999-2003 Jaakko Jarvi
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -18,6 +19,11 @@
     struct vector_iterator_tag;
     struct random_access_traversal_tag;
 
+#ifndef BOOST_FUSION_PREFER_MPL
+    template<typename Vector, int Index>
+    struct vector_meta_value_at;
+#endif
+
     VARIADIC_TEMPLATE_WITH_DEFAULT(FUSION_MAX_VECTOR_SIZE)
     struct vector;
 }}
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/0x/fused_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/0x/fused_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/0x/fused_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #include <boost/fusion/functional/invocation/invoke.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/0x/unfused_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/0x/unfused_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/0x/unfused_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #include <boost/fusion/support/internal/ref.hpp>
 #include <boost/fusion/support/internal/result_of.hpp>
@@ -18,8 +20,6 @@
 #   define BOOST_FUSION_ADAPTER_NAME unfused
 #endif
 
-//TODO cschmidt: handle rvalue ref F
-
 namespace boost { namespace fusion
 {
     template<
@@ -74,7 +74,7 @@
 #ifdef BOOST_FUSION_TYPED
 #   define BOOST_FUSION_CALL_OPERATOR(COMBINATION)\
         template<typename... Args>\
-        typename detail::internal::result_of<\
+        typename boost::result_of<\
             typename detail::get_func_base<\
                 typename detail::forward_as<int COMBINATION, F>::type\
             >::type(typename result_of::as_vector<TransformSeq&&>::type&&)\
@@ -87,7 +87,7 @@
 #else
 #   define BOOST_FUSION_CALL_OPERATOR(COMBINATION)\
         template<typename... Args>\
-        typename detail::internal::result_of<\
+        typename boost::result_of<\
             typename detail::get_func_base<\
                 typename detail::forward_as<int COMBINATION, F>::type\
             >::type(typename result_of::vector_tie<Args&&...>::type&&)\
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_FUNCTIONAL_ADAPTER_FUSED_HPP
 #define BOOST_FUSION_FUNCTIONAL_ADAPTER_FUSED_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_function_object.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_function_object.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_function_object.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_FUNCTIONAL_ADAPTER_FUSED_FUNCTION_OBJECT_HPP
 #define BOOST_FUSION_FUNCTIONAL_ADAPTER_FUSED_FUNCTION_OBJECT_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_procedure.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_procedure.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_procedure.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_FUNCTIONAL_ADAPTER_FUSED_PROCEDURE_HPP
 #define BOOST_FUSION_FUNCTIONAL_ADAPTER_FUSED_PROCEDURE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/limits.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/limits.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/limits.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2006-2007 Tobias Schwinger
+    Copyright (c) 2009 Christopher Schmidt
   
     Use modification and distribution are subject to the Boost Software 
     License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_FUNCTIONAL_ADAPTER_UNFUSED_HPP
 #define BOOST_FUSION_FUNCTIONAL_ADAPTER_UNFUSED_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused_typed.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused_typed.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused_typed.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_FUNCTIONAL_ADAPTER_UNFUSED_TYPED_HPP
 #define BOOST_FUSION_FUNCTIONAL_ADAPTER_UNFUSED_TYPED_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -7,7 +7,7 @@
 ==============================================================================*/
 
 #include <boost/fusion/support/internal/ref.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
 
 #include <boost/preprocessor/cat.hpp>
 
@@ -22,7 +22,7 @@
         {
             typedef
                 BOOST_FUSION_CLASS_TPL_NAME<
-                    typename detail::as_fusion_element<F>::type
+                    typename traits::deduce<F>::type
                 >
             type;
         };
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/0x/invoke_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/0x/invoke_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/0x/invoke_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #include <boost/fusion/functional/invocation/detail/0x/invoke_impl_detail.hpp>
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/0x/invoke_impl_detail.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/0x/invoke_impl_detail.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/0x/invoke_impl_detail.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_FUNCTIONAL_INVOCATION_DETAIL_DECLTYPE_AND_VARIADIC_TEMPLATES_INVOKE_IMPL_DETAIL_HPP
 #define BOOST_FUSION_FUNCTIONAL_INVOCATION_DETAIL_DECLTYPE_AND_VARIADIC_TEMPLATES_INVOKE_IMPL_DETAIL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_FUNCTIONAL_INVOCATION_INVOKE_HPP
 #define BOOST_FUSION_FUNCTIONAL_INVOCATION_INVOKE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_function_object.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_function_object.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_function_object.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_FUNCTIONAL_INVOCATION_INVOKE_FUNCTION_OBJECT_HPP
 #define BOOST_FUSION_FUNCTIONAL_INVOCATION_INVOKE_FUNCTION_OBJECT_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_procedure.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_procedure.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_procedure.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_FUNCTIONAL_INVOCATION_INVOKE_PROCEDURE_HPP
 #define BOOST_FUSION_FUNCTIONAL_INVOCATION_INVOKE_PROCEDURE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/include/advance_c.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/advance_c.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/advance_c.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_INCLUDE_ADVANCE_C_HPP
 #define BOOST_FUSION_INCLUDE_ADVANCE_C_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/include/boost_array.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/boost_array.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/boost_array.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_INCLUDE_BOOST_ARRAY_HPP
 #define BOOST_FUSION_INCLUDE_BOOST_ARRAY_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/include/deref_data.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/deref_data.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/deref_data.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_INCLUDE_DEREF_DATA_HPP
 #define BOOST_FUSION_INCLUDE_DEREF_DATA_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/include/find_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/find_key.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/find_key.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_INCLUDE_FIND_KEY_HPP
 #define BOOST_FUSION_INCLUDE_FIND_KEY_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/include/key_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/key_of.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/key_of.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_INCLUDE_KEY_OF_HPP
 #define BOOST_FUSION_INCLUDE_KEY_OF_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/include/std_array.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/std_array.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/std_array.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_INCLUDE_STD_ARRAY_HPP
 #define BOOST_FUSION_INCLUDE_STD_ARRAY_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/include/value_at_c.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/value_at_c.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/value_at_c.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_INCLUDE_VALUE_AT_C_HPP
 #define BOOST_FUSION_INCLUDE_VALUE_AT_C_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/include/value_of_data.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/value_of_data.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/value_of_data.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_INCLUDE_VALUE_OF_DATA_HPP
 #define BOOST_FUSION_INCLUDE_VALUE_OF_DATA_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/advance_c.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/advance_c.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/advance_c.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ITERATOR_ADVANCE_C_HPP
 #define BOOST_FUSION_ITERATOR_ADVANCE_C_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/basic_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/basic_iterator.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/basic_iterator.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,14 +1,15 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ITERATOR_BASIC_ITERATOR_HPP
 #define BOOST_FUSION_ITERATOR_BASIC_ITERATOR_HPP
 
 #include <boost/fusion/iterator/iterator_facade.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
-#include <boost/fusion/support/internal/assert.hpp>
 
 #include <boost/mpl/and.hpp>
 #include <boost/mpl/equal_to.hpp>
@@ -40,15 +41,15 @@
         typename Tag
       , typename Category
       , typename SeqRef
-      , int Pos
+      , int Index
     >
     struct basic_iterator
       : iterator_facade<
-            basic_iterator<Tag,Category,SeqRef,Pos>
+            basic_iterator<Tag,Category,SeqRef,Index>
           , Category
         >
     {
-        typedef mpl::int_<Pos> index;
+        typedef mpl::int_<Index> index;
         typedef SeqRef seq_type;
 
         template <typename ItRef>
@@ -84,7 +85,7 @@
                     Tag
                   , Category
                   , SeqRef
-                  , Pos + N::value
+                  , Index + N::value
                 >
             type;
 
@@ -129,8 +130,8 @@
             type;
         };
 
-        template<typename OtherIt>
-        basic_iterator(OtherIt const& it)
+        template<typename OtherSeqRef>
+        basic_iterator(basic_iterator<Tag,Category,OtherSeqRef,Index> const& it)
           : seq(it.seq)
         {}
 
@@ -138,9 +139,9 @@
           : seq(&seq)
         {}
 
-        template<typename OtherIt>
+        template<typename OtherSeqRef>
         basic_iterator&
-        operator=(OtherIt const& it)
+        operator=(basic_iterator<Tag,Category,OtherSeqRef,Index> const& it)
         {
             seq=it.seq;
             return *this;
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/deref_data.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/deref_data.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/deref_data.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
 /*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/detail/advance.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/detail/advance.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/detail/advance.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -25,14 +25,11 @@
 
     template <typename ItRef, int N>
     struct next_forward
-    {
-        typedef typename
-            forward<
-                typename result_of::next<ItRef>::type
-              , N-1
-            >::type
-        type;
-    };
+      : forward<
+            typename result_of::next<ItRef>::type
+          , N-1
+        >
+    {};
 
     template <typename ItRef, int N>
     struct forward
@@ -64,14 +61,11 @@
 
     template <typename ItRef, int N>
     struct next_backward
-    {
-        typedef typename
-            backward<
-                typename result_of::prior<ItRef>::type
-              , N+1
-            >::type
-        type;
-    };
+      : backward<
+            typename result_of::prior<ItRef>::type
+          , N+1
+        >
+    {};
 
     template <typename ItRef, int N>
     struct backward
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/detail/distance.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/detail/distance.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/detail/distance.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -27,16 +27,13 @@
 
     template <typename Begin, typename End>
     struct next_distance
-    {
-        typedef typename
-            mpl::next<
-                typename linear_distance<
-                    typename result_of::next<Begin>::type
-                  , End
-                >::type
+      : mpl::next<
+            typename linear_distance<
+                typename result_of::next<Begin>::type
+              , End
             >::type
-        type;
-    };
+        >
+    {};
 
     template <typename Begin, typename End>
     struct linear_distance
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -8,6 +9,7 @@
 #ifndef BOOST_FUSION_ITERATOR_EQUAL_TO_HPP
 #define BOOST_FUSION_ITERATOR_EQUAL_TO_HPP
 
+#include <boost/config.hpp>
 #include <boost/fusion/support/tag_of.hpp>
 #include <boost/fusion/support/is_iterator.hpp>
 #include <boost/fusion/support/internal/assert.hpp>
@@ -15,8 +17,6 @@
 #include <boost/mpl/and.hpp>
 #include <boost/utility/enable_if.hpp>
 
-//TODO constexpr
-
 namespace boost { namespace fusion
 {
     struct iterator_facade_tag;
@@ -55,7 +55,11 @@
     namespace iterator_operators
     {
         template <typename It1, typename It2>
-        inline typename
+        inline
+#ifndef BOOST_NO_CONSTEXPR
+        constexpr
+#endif
+        typename
             enable_if<
                 mpl::and_<traits::is_iterator<It1>, traits::is_iterator<It2> >
               , bool
@@ -66,7 +70,11 @@
         }
 
         template <typename It1, typename It2>
-        inline typename
+        inline
+#ifndef BOOST_NO_CONSTEXPR
+        constexpr
+#endif
+        typename
             enable_if<
                 mpl::and_<
                     traits::is_iterator<It1>
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/iterator_facade.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/iterator_facade.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/iterator_facade.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,13 +1,13 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_ITERATOR_ITERATOR_FACADE_HPP
 #define BOOST_FUSION_ITERATOR_ITERATOR_FACADE_HPP
 
-#include <boost/fusion/iterator/equal_to.hpp>
-#include <boost/fusion/iterator/detail/advance.hpp>
 #include <boost/fusion/support/iterator_base.hpp>
 #include <boost/fusion/support/internal/assert.hpp>
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/key_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/key_of.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/key_of.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
 /*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of_data.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of_data.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of_data.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
 /*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/clear.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/clear.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/clear.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/erase.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/erase.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/erase.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -22,14 +22,11 @@
     {
         template <typename Seq, typename Begin, typename End>
         struct apply
-        {
-            typedef typename
-                fusion::result_of::convert<
-                    typename fusion::traits::tag_of<Seq>::type
-                  , typename fusion::result_of::erase<Seq, Begin, End>::type
-                >::type
-            type;
-        };
+          : fusion::result_of::convert<
+                typename fusion::traits::tag_of<Seq>::type
+              , typename fusion::result_of::erase<Seq, Begin, End>::type
+            >
+        {};
     };
 }}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/erase_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/erase_key.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/erase_key.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -22,18 +22,11 @@
     {
         template <typename Seq, typename Key>
         struct apply
-        {
-            typedef typename
-                fusion::result_of::erase_key<Seq, Key>::type
-            result;
-
-            typedef typename
-                fusion::result_of::convert<
-                    typename fusion::traits::tag_of<Seq>::type
-                  , result
-                >::type
-            type;
-        };
+          : fusion::result_of::convert<
+                typename fusion::traits::tag_of<Seq>::type
+              , typename fusion::result_of::erase_key<Seq, Key>::type
+            >::type
+        {};
     };
 }}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/fusion_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/fusion_iterator.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/fusion_iterator.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,5 @@
 /*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying 
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -23,8 +23,8 @@
 {
     template <typename It>
     struct fusion_iterator
+      : fusion::result_of::value_of<It>
     {
-        typedef typename fusion::result_of::value_of<It>::type type;
         typedef typename fusion::traits::category_of<It>::type category;
         typedef It iterator;
     };
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/insert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/insert.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/insert.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -22,14 +22,11 @@
     {
         template <typename Seq, typename Pos, typename T>
         struct apply
-        {
-            typedef typename
-                fusion::result_of::convert<
-                    typename fusion::traits::tag_of<Seq>::type
-                  , typename fusion::result_of::insert<Seq, Pos, T>::type
-                >::type
-            type;
-        };
+          : fusion::result_of::convert<
+                typename fusion::traits::tag_of<Seq>::type
+              , typename fusion::result_of::insert<Seq, Pos, T>::type
+            >
+        {};
     };
 }}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/insert_range.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/insert_range.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/insert_range.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -22,14 +22,11 @@
     {
         template <typename Seq, typename Pos, typename Range>
         struct apply
-        {
-            typedef typename
-                fusion::result_of::convert<
-                    typename fusion::traits::tag_of<Seq>::type
-                  , typename fusion::result_of::insert_range<Seq, Pos, Range>::type
-                >::type
-            type;
-        };
+          : fusion::result_of::convert<
+                typename fusion::traits::tag_of<Seq>::type
+              , typename fusion::result_of::insert_range<Seq, Pos, Range>::type
+            >
+        {};
     };
 }}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/pop_back.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/pop_back.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/pop_back.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -22,14 +22,11 @@
     {
         template <typename Seq>
         struct apply
-        {
-            typedef typename
-                fusion::result_of::convert<
-                    typename fusion::traits::tag_of<Seq>::type
-                  , typename fusion::result_of::pop_back<Seq>::type
-                >::type
-            type;
-        };
+          : fusion::result_of::convert<
+                typename fusion::traits::tag_of<Seq>::type
+              , typename fusion::result_of::pop_back<Seq>::type
+            >
+        {};
     };
 }}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/pop_front.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/pop_front.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/pop_front.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -22,14 +22,11 @@
     {
         template <typename Seq>
         struct apply
-        {
-            typedef typename
-                fusion::result_of::convert<
-                    typename fusion::traits::tag_of<Seq>::type
-                  , typename fusion::result_of::pop_front<Seq>::type
-                >::type
-            type;
-        };
+          : fusion::result_of::convert<
+                typename fusion::traits::tag_of<Seq>::type
+              , typename fusion::result_of::pop_front<Seq>::type
+            >
+        {};
     };
 }}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/push_back.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/push_back.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/push_back.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -22,14 +22,11 @@
     {
         template <typename Seq, typename T>
         struct apply
-        {
-            typedef typename
-                fusion::result_of::convert<
-                    typename fusion::traits::tag_of<Seq>::type
-                  , typename fusion::result_of::push_back<Seq, T>::type
-                >::type
-            type;
-        };
+          : fusion::result_of::convert<
+                typename fusion::traits::tag_of<Seq>::type
+              , typename fusion::result_of::push_back<Seq, T>::type
+            >
+        {};
     };
 }}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/push_front.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/push_front.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/push_front.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -22,14 +22,11 @@
     {
         template <typename Seq, typename T>
         struct apply
-        {
-            typedef typename
-                fusion::result_of::convert<
-                    typename fusion::traits::tag_of<Seq>::type
-                  , typename fusion::result_of::push_front<Seq, T>::type
-                >::type
-            type;
-        };
+          : fusion::result_of::convert<
+                typename fusion::traits::tag_of<Seq>::type
+              , typename fusion::result_of::push_front<Seq, T>::type
+            >
+        {};
     };
 }}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/equal_to.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/equal_to.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/equal_to.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -9,6 +9,7 @@
 #ifndef BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_EQUAL_TO_HPP
 #define BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_EQUAL_TO_HPP
 
+#include <boost/config.hpp>
 #include <boost/fusion/iterator/deref.hpp>
 #include <boost/fusion/iterator/next.hpp>
 #include <boost/fusion/iterator/equal_to.hpp>
@@ -24,7 +25,11 @@
         typedef typename result_of::end<Seq2Ref>::type end2_type;
 
         template <typename It1, typename It2>
-        static bool
+        static
+#ifndef BOOST_NO_CONSTEXPR
+        constexpr
+#endif
+        bool
         call(It1 const&, It2 const&, mpl::true_)
         {
             return true;
@@ -52,7 +57,11 @@
     struct sequence_equal_to<Seq1Ref, Seq2Ref, false>
     {
         template <typename It1, typename It2>
-        static bool
+        static
+#ifndef BOOST_NO_CONSTEXPR
+        constexpr
+#endif
+        bool
         call(It1 const&, It2 const&)
         {
             return false;
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -9,6 +9,7 @@
 #ifndef BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_GREATER_HPP
 #define BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_GREATER_HPP
 
+#include <boost/config.hpp>
 #include <boost/mpl/bool.hpp>
 #include <boost/fusion/iterator/deref.hpp>
 #include <boost/fusion/iterator/next.hpp>
@@ -23,7 +24,11 @@
         typedef typename result_of::end<Seq2>::type end2_type;
 
         template <typename It1, typename I2>
-        static bool
+        static
+#ifndef BOOST_NO_CONSTEXPR
+        constexpr
+#endif
+        bool
         call(It1 const&, I2 const&, mpl::true_)
         {
             return false;
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater_equal.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater_equal.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater_equal.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -9,6 +9,7 @@
 #ifndef BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_GREATER_EQUAL_HPP
 #define BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_GREATER_EQUAL_HPP
 
+#include <boost/config.hpp>
 #include <boost/mpl/bool.hpp>
 #include <boost/fusion/iterator/deref.hpp>
 #include <boost/fusion/iterator/next.hpp>
@@ -23,7 +24,11 @@
         typedef typename result_of::end<Seq2Ref>::type end2_type;
 
         template <typename It1, typename It2>
-        static bool
+        static
+#ifndef BOOST_NO_CONSTEXPR
+        constexpr
+#endif
+        bool
         call(It1 const&, It2 const&, mpl::true_)
         {
             return true;
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -9,6 +9,7 @@
 #ifndef BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_LESS_HPP
 #define BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_LESS_HPP
 
+#include <boost/config.hpp>
 #include <boost/mpl/bool.hpp>
 #include <boost/fusion/iterator/deref.hpp>
 #include <boost/fusion/iterator/next.hpp>
@@ -23,7 +24,11 @@
         typedef typename result_of::end<Seq2>::type end2_type;
 
         template <typename It1, typename It2>
-        static bool
+        static
+#ifndef BOOST_NO_CONSTEXPR
+        constexpr
+#endif
+        bool
         call(It1 const&, It2 const&, mpl::true_)
         {
             return false;
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less_equal.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less_equal.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less_equal.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -9,6 +9,7 @@
 #ifndef BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_LESS_EQUAL_HPP
 #define BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_LESS_EQUAL_HPP
 
+#include <boost/config.hpp>
 #include <boost/mpl/bool.hpp>
 #include <boost/fusion/iterator/deref.hpp>
 #include <boost/fusion/iterator/next.hpp>
@@ -23,7 +24,11 @@
         typedef typename result_of::end<Seq2>::type end2_type;
 
         template <typename It1, typename It2>
-        static bool
+        static
+#ifndef BOOST_NO_CONSTEXPR
+        constexpr
+#endif
+        bool
         call(It1 const&, It2 const&, mpl::true_)
         {
             return true;
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/not_equal_to.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/not_equal_to.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/not_equal_to.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -9,6 +9,7 @@
 #ifndef BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_NOT_EQUAL_TO_HPP
 #define BOOST_FUSION_SEQUENCE_COMPARISON_DETAIL_NOT_EQUAL_TO_HPP
 
+#include <boost/config.hpp>
 #include <boost/mpl/bool.hpp>
 #include <boost/fusion/iterator/deref.hpp>
 #include <boost/fusion/iterator/next.hpp>
@@ -23,7 +24,11 @@
         typedef typename result_of::end<Seq2Ref>::type end2_type;
 
         template <typename It1, typename It2>
-        static bool
+        static
+#ifndef BOOST_NO_CONSTEXPR
+        constexpr
+#endif
+        bool
         call(It1 const&, It2 const&, mpl::true_)
         {
             return false;
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less_equal.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less_equal.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less_equal.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -72,7 +72,6 @@
 #else
 // Somehow VC8.0 and VC7.1 does not like this code
 // but barfs somewhere else. 
-
         template <typename Seq1, typename Seq2>
         inline typename
             enable_if<
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/has_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/has_key.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/has_key.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_c.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_c.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_c.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_SEQUENCE_INTRINSIC_VALUE_AT_C_HPP
 #define BOOST_FUSION_SEQUENCE_INTRINSIC_VALUE_AT_C_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_key.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_key.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -31,13 +31,10 @@
         {
             template <typename SeqRef, typename Key>
             struct apply
-            {
-                typedef typename
-                    result_of::value_of_data<
-                        typename result_of::find_key<SeqRef, Key>::type
-                    >::type
-                type;
-            };
+              : result_of::value_of_data<
+                    typename result_of::find_key<SeqRef, Key>::type
+                >
+            {};
         };
 
         template <>
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/sequence_facade.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/sequence_facade.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/sequence_facade.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_SEQUENCE_SEQUENCE_FACADE_HPP
 #define BOOST_FUSION_SEQUENCE_SEQUENCE_FACADE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/category_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/category_of.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/category_of.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -8,10 +9,14 @@
 #ifndef BOOST_FUSION_SUPPORT_CATEGORY_OF_HPP
 #define BOOST_FUSION_SUPPORT_CATEGORY_OF_HPP
 
+#include <boost/config.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
 #include <boost/fusion/support/tag_of.hpp>
+#include <boost/fusion/support/internal/assert.hpp>
 
-#include <boost/config.hpp>
+#ifdef BOOST_FUSION_ENABLE_STATIC_ASSERTS
+#   include <boost/mpl/or.hpp>
+#endif
 #include <boost/mpl/iterator_tags.hpp>
 #include <boost/type_traits/is_base_of.hpp>
 
@@ -89,6 +94,9 @@
             template<typename T>
             struct apply
             {
+                BOOST_FUSION_MPL_ASSERT((
+                    mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
+
                 typedef typename
                     detail::remove_reference<T>::type::category
                 type;
@@ -103,7 +111,10 @@
           : extension::category_of_impl<
                 typename fusion::traits::tag_of<T>::type
             >::template apply<typename detail::add_lref<T>::type>
-        {};
+        {
+            BOOST_FUSION_MPL_ASSERT((
+                mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
+        };
 
         template <typename T>
         struct is_associative
@@ -111,7 +122,10 @@
                 associative_sequence_tag
               , typename category_of<T>::type
             >
-        {};
+        {
+            BOOST_FUSION_MPL_ASSERT((
+                mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
+        };
 
         template <typename T>
         struct is_incrementable
@@ -119,7 +133,10 @@
                 incrementable_traversal_tag
               , typename category_of<T>::type
             >
-        {};
+        {
+            BOOST_FUSION_MPL_ASSERT((
+                mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
+        };
 
         template <typename T>
         struct is_single_pass
@@ -127,7 +144,10 @@
                 single_pass_traversal_tag
               , typename category_of<T>::type
             >
-        {};
+        {
+            BOOST_FUSION_MPL_ASSERT((
+                mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
+        };
 
         template <typename T>
         struct is_forward
@@ -135,7 +155,10 @@
                 forward_traversal_tag
               , typename category_of<T>::type
             >
-        {};
+        {
+            BOOST_FUSION_MPL_ASSERT((
+                mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
+        };
 
         template <typename T>
         struct is_bidirectional
@@ -143,7 +166,10 @@
                 bidirectional_traversal_tag
               , typename category_of<T>::type
             >
-        {};
+        {
+            BOOST_FUSION_MPL_ASSERT((
+                mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
+        };
 
         template <typename T>
         struct is_random_access
@@ -151,7 +177,10 @@
                 random_access_traversal_tag
               , typename category_of<T>::type
             >
-        {};
+        {
+            BOOST_FUSION_MPL_ASSERT((
+                mpl::or_<traits::is_sequence<T>, traits::is_iterator<T> >));
+        };
     }
 }}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/deduce.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/deduce.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/deduce.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,77 +1,120 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2007 Tobias Schwinger
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_SUPPORT_DEDUCE_HPP
 #define BOOST_FUSION_SUPPORT_DEDUCE_HPP
 
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/internal/result_of.hpp>
+#include <boost/fusion/support/internal/ref.hpp>
 
-#include <boost/config.hpp>
-#ifdef BOOST_NO_RVALUE_REFERENCES
-#   include <boost/mpl/eval_if.hpp>
-#   include <boost/mpl/identity.hpp>
-#else
-#   include <boost/mpl/if.hpp>
-#endif
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/ref.hpp>
 
-namespace boost { namespace fusion { namespace traits
+//TODO doc
+namespace boost { namespace fusion
 {
-    //TODO doc!
-#ifdef BOOST_NO_RVALUE_REFERENCES
-    template <typename T>
-    struct deduce_impl
-    {
-        typedef T type;
-    };
-
-    template <typename T>
-    struct deduce_impl<T const&>
+    namespace traits
     {
-        typedef T type;
-    };
+        template <typename T>
+        struct deduce
+        {
+            typedef T type;
+        };
+
+        template <typename T>
+        struct deduce<reference_wrapper<T> >
+        {
+            typedef T& type;
+        };
+
+#define BOOST_FUSION_CV_REF_SPECIALIZATION(COMBINATION,_)\
+        template <typename T>\
+        struct deduce<T COMBINATION>\
+        {\
+            typedef detail::is_po_callable<T COMBINATION> is_po_callable;\
+            \
+            typedef typename\
+                mpl::eval_if<\
+                    is_po_callable\
+                  , mpl::if_<\
+                        typename is_po_callable::is_pointer\
+                      , T\
+                      , T COMBINATION\
+                    >\
+                  , deduce<T>\
+                >::type\
+            type;\
+        };\
+        \
+        template <typename T>\
+        struct deduce<reference_wrapper<T> COMBINATION>\
+        {\
+            typedef T& type;\
+        };
+
+        BOOST_FUSION_CV_REF_SPECIALIZATION(volatile&,_)
+        BOOST_FUSION_CV_REF_SPECIALIZATION(const volatile&,_)
+#ifndef BOOST_NO_RVALUE_REFERENCES
+        BOOST_FUSION_CV_REF_SPECIALIZATION(volatile&&,_)
+        BOOST_FUSION_CV_REF_SPECIALIZATION(const volatile&&,_)
+#endif
+        BOOST_FUSION_ALL_CV_REF_COMBINATIONS(BOOST_FUSION_CV_REF_SPECIALIZATION,_)
 
-    template <typename T>
-    struct deduce_impl<T const volatile&>
-    {
-        typedef T type;
-    };
+#undef BOOST_FUSION_CV_REF_SPECIALIZATION
 
-    template <typename T>
-    struct deduce
-    {
-        typedef typename detail::as_fusion_element<T>::type element;
+        template <typename T, int N>
+        struct deduce<T(&)[N]>
+        {
+            typedef T(&type)[N];
+        };
+
+        template <typename T, int N>
+        struct deduce<const T(&)[N]>
+        {
+            typedef const T(&type)[N];
+        };
+
+        template <typename T, int N>
+        struct deduce<volatile T(&)[N]>
+        {
+            typedef volatile T(&type)[N];
+        };
+
+        template <typename T, int N>
+        struct deduce<const volatile T(&)[N]>
+        {
+            typedef const volatile T(&type)[N];
+        };
+    }
 
-        typedef typename
-            mpl::eval_if<
-                mpl::and_<
-                    detail::is_lrref<T>
-                  , is_same<typename detail::identity<T>::type,element>
-                >
-              , deduce_impl<T>
-              , mpl::identity<element>
-            >::type
-        type;
-    };
-#else
-    template <typename T>
-    struct deduce
+    namespace detail
     {
-        typedef typename detail::as_fusion_element<T>::type element;
-
-        typedef typename
-            mpl::if_<
-                mpl::and_<
-                    detail::is_lrref<T>
-                  , is_same<typename detail::identity<T>::type,element>
-                >
-              , T
-              , element
-            >::type
-        type;
-    };
-#endif
-}}}
+        template <typename T>
+        struct deduce_ref
+        {
+            typedef typename traits::deduce<T>::type deduced;
+
+            typedef typename
+                mpl::if_<
+                    mpl::and_<
+                        detail::is_lrref<T>
+                      , is_same<typename identity<T>::type,deduced>
+                    >
+                  , T
+                  , typename add_lref<deduced>::type
+                >::type
+            type;
+        };
+    }
+}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/deduce_sequence.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/deduce_sequence.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/deduce_sequence.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2007 Tobias Schwinger
+    Copyright (c) 2009 Christopher Schmidt
 
     Use modification and distribution are subject to the Boost Software
     License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -9,32 +10,31 @@
 #ifndef BOOST_FUSION_SUPPORT_DEDUCE_SEQUENCE_HPP
 #define BOOST_FUSION_SUPPORT_DEDUCE_SEQUENCE_HPP
 
+#include <boost/fusion/mpl.hpp>
 #include <boost/fusion/container/vector/convert.hpp>
-#include <boost/fusion/view/transform_view.hpp>
+#include <boost/fusion/adapted/mpl.hpp>
 #include <boost/fusion/support/deduce.hpp>
+#include <boost/fusion/support/internal/ref.hpp>
+#include <boost/fusion/support/internal/assert.hpp>
+
+#include <boost/mpl/transform_view.hpp>
+#include <boost/mpl/quote.hpp>
 
 namespace boost { namespace fusion
 {
-    namespace detail
-    {
-        struct deducer
-        {
-            template <typename Sig>
-            struct result;
-
-            template<typename Self,typename T>
-            struct result<Self(T)>
-              : fusion::traits::deduce<T>
-            {};
-        };
-    }
-
     namespace traits
     {
         template <typename Seq>
         struct deduce_sequence
-          : result_of::as_vector<fusion::transform_view<Seq, detail::deducer> >
-        {};
+          : result_of::as_vector<
+                mpl::transform_view<
+                    typename detail::remove_reference<Seq>::type
+                  , mpl::quote1<traits::deduce>
+                >
+            >
+        {
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
+        };
     }
 }}
 
Deleted: sandbox/SOC/2009/fusion/boost/fusion/support/internal/as_fusion_element.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/as_fusion_element.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
+++ (empty file)
@@ -1,106 +0,0 @@
-/*=============================================================================
-    Copyright (c) 1999-2003 Jaakko Jarvi
-    Copyright (c) 2001-2006 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_SUPPORT_INTERNAL_AS_FUSION_ELEMENT_HPP
-#define BOOST_FUSION_SUPPORT_INTERNAL_AS_FUSION_ELEMENT_HPP
-
-//TODO cschmidt: rref
-
-#include <boost/fusion/support/internal/result_of.hpp>
-#include <boost/fusion/support/internal/ref.hpp>
-
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/ref.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
-    template <typename T>
-    struct as_fusion_element
-    {
-        typedef T type;
-    };
-
-    template <typename T>
-    struct as_fusion_element<reference_wrapper<T> >
-    {
-        typedef T& type;
-    };
-
-    //TODO preserve rvalues?
-#define BOOST_FUSION_CV_REF_SPECIALIZATION(COMBINATION,_)\
-    template <typename T>\
-    struct as_fusion_element<T COMBINATION>\
-    {\
-        typedef typename\
-            mpl::eval_if<\
-                detail::is_po_callable<T COMBINATION>\
-              , mpl::identity<T COMBINATION>\
-              , as_fusion_element<T>\
-            >::type\
-        type;\
-    };\
-    \
-    template <typename T>\
-    struct as_fusion_element<reference_wrapper<T> COMBINATION>\
-    {\
-        typedef T& type;\
-    };
-
-    BOOST_FUSION_CV_REF_SPECIALIZATION(volatile&,_)
-    BOOST_FUSION_CV_REF_SPECIALIZATION(const volatile&,_)
-    BOOST_FUSION_ALL_CV_REF_COMBINATIONS(BOOST_FUSION_CV_REF_SPECIALIZATION,_)
-
-#undef BOOST_FUSION_CV_REF_SPECIALIZATION
-
-    template <typename T, int N>
-    struct as_fusion_element<T(&)[N]>
-    {
-        typedef T(&type)[N];
-    };
-
-    template <typename T, int N>
-    struct as_fusion_element<const T(&)[N]>
-    {
-        typedef const T(&type)[N];
-    };
-
-    template <typename T, int N>
-    struct as_fusion_element<volatile T(&)[N]>
-    {
-        typedef volatile T(&type)[N];
-    };
-
-    template <typename T, int N>
-    struct as_fusion_element<const volatile T(&)[N]>
-    {
-        typedef const volatile T(&type)[N];
-    };
-
-    template <typename T>
-    struct as_fusion_element_ref
-    {
-        typedef typename as_fusion_element<T>::type element;
-
-        typedef typename
-            mpl::if_<
-                mpl::and_<
-                    is_lrref<T>
-                  , is_same<typename identity<T>::type,element>
-                >
-              , T
-              , typename add_lref<element>::type
-            >::type
-        type;
-    };
-}}}
-
-#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/assert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/assert.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/assert.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_SUPPORT_INTERNAL_ASSERT_HPP
 #define BOOST_FUSION_SUPPORT_INTERNAL_ASSERT_HPP
@@ -94,13 +96,17 @@
         "Index (" BOOST_PP_STRINGIZE(INDEX) ") out of range " \
         "( [0..." BOOST_PP_STRINGIZE(MAX) ") )" \
     )
+#define BOOST_FUSION_TAG_CHECK(TYPE,TAG)\
+    BOOST_FUSION_MPL_ASSERT((is_same<typename traits::tag_of<TYPE>::type,TAG>))
 
 #ifdef BOOST_FUSION_ENABLE_STATIC_ASSERTS
-#   include <boost/fusion/support/is_view.hpp>
 #   include <boost/fusion/support/is_sequence.hpp>
+#   include <boost/fusion/support/is_view.hpp>
 #   include <boost/fusion/support/is_iterator.hpp>
 #   include <boost/fusion/support/category_of.hpp>
 #   include <boost/fusion/support/tag_of.hpp>
+
+#   include <boost/type_traits/is_same.hpp>
 #endif
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/assign_tags.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/assign_tags.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/assign_tags.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_SUPPORT_INTERNAL_ASSIGN_TAGS_HPP
 #define BOOST_FUSION_SUPPORT_INTERNAL_ASSIGN_TAGS_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/ref.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/ref.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/ref.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_SUPPORT_INTERNAL_REF_HPP
 #define BOOST_FUSION_SUPPORT_INTERNAL_REF_HPP
@@ -144,12 +146,6 @@
         >::type type;
     };
 
-    template <typename T>
-    struct non_ref_parameter
-    {
-        typedef typename boost::remove_cv<T>::type const& type;
-    };
-
     template <typename TestType,typename Type>
     struct forward_as
     {
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/result_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/result_of.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/result_of.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_SUPPORT_INTERNAL_RESULT_OF_HPP
 #define BOOST_FUSION_SUPPORT_INTERNAL_RESULT_OF_HPP
@@ -13,17 +15,12 @@
 #include <boost/fusion/support/internal/ref.hpp>
 
 #include <boost/mpl/if.hpp>
-#include <boost/utility/result_of.hpp>
+#include <boost/mpl/or.hpp>
+#include <boost/type_traits/is_pointer.hpp>
 #include <boost/type_traits/remove_pointer.hpp>
 #include <boost/type_traits/is_function.hpp>
 #include <boost/type_traits/is_member_function_pointer.hpp>
-
-#if defined(BOOST_NO_DECLTYPE) || defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
-#   include <boost/mpl/if.hpp>
-#else
-#   include <boost/mpl/eval_if.hpp>
-#   include <boost/mpl/has_xxx.hpp>
-#endif
+#include <boost/utility/result_of.hpp>
 
 namespace boost { namespace fusion { namespace detail
 {
@@ -51,24 +48,23 @@
     template<typename FRef>
     struct is_po_callable_impl
     {
-         typedef typename
-             remove_pointer<
-                 typename detail::identity<FRef>::type
-             >::type
-         f;
-
-         typedef
-             mpl::or_<
-                typename is_function<f>::type
-              , typename is_member_function_pointer<f>::type
-             >
-         type;
+        typedef typename detail::identity<FRef>::type f;
+        typedef typename is_pointer<f>::type is_pointer;
+
+        typedef
+            mpl::or_<
+                is_function<typename remove_pointer<f>::type>
+              , is_member_function_pointer<f>
+            >
+        type;
     };
 
     template<typename FRef>
     struct is_po_callable
       : is_po_callable_impl<FRef>::type
-    {};
+    {
+        typedef typename is_po_callable_impl<FRef>::is_pointer is_pointer;
+    };
 
 //cschmidt: a pp implementation won't be worth the effort
 #ifdef BOOST_NO_VARIADIC_TEMPLATES
@@ -139,12 +135,6 @@
     {};
 #endif
 
-#if defined(BOOST_NO_DECLTYPE) || defined(BOOST_NO_VARIADIC_TEMPLATES) || defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
-    namespace internal
-    {
-        using boost::result_of;
-    }
-
     //cschmidt: The non-decltype result_of does not like ref-qualified
     //'class type' functions
     template<typename FRef>
@@ -167,63 +157,6 @@
             >::type
         type;
     };
-#else
-    BOOST_MPL_HAS_XXX_TRAIT_DEF(result_type)
-
-    template<typename IdentityF>
-    struct get_result_type
-    {
-        typedef typename IdentityF::result_type type;
-    };
-
-    template<typename IdentityF, typename Sig>
-    struct get_result
-      : IdentityF::template result<Sig>
-    {};
-
-    template<typename IdentityF,typename F,typename... Args>
-    struct result_of_class_type
-    {
-        typedef typename
-            mpl::eval_if<
-                detail::has_result_type<IdentityF>
-              , detail::get_result_type<IdentityF>
-                //TODO cschmidt: fallback to boost::result_of (decltype) if
-                //'F::template result' does not exist.
-                //Is this even possible?
-              , detail::get_result<IdentityF,F(Args...)>
-            >::type
-        type;
-    };
-
-    namespace internal
-    {
-        template<typename Sig>
-        struct result_of
-          : boost::result_of<Sig>
-        {};
-
-        template<typename F, typename... Args>
-        struct result_of<F(Args...)>
-        {
-            typedef typename detail::identity<F>::type f;
-
-            typedef typename
-                mpl::eval_if<
-                    is_function<f>
-                  , boost::result_of<F(Args...)>
-                  , result_of_class_type<f,F,Args...>
-                >::type
-            type;
-        };
-    }
-
-    template<typename FRef>
-    struct get_func_base
-    {
-        typedef FRef type;
-    };
-#endif
 }}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/sequence_assign.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/sequence_assign.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/sequence_assign.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,12 +1,15 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_SUPPORT_INTERNAL_SEQUENCE_ASSIGN_HPP
 #define BOOST_FUSION_SUPPORT_INTERNAL_SEQUENCE_ASSIGN_HPP
 
 #include <boost/fusion/support/internal/ref.hpp>
+#include <boost/fusion/support/internal/assert.hpp>
 
 #include <boost/mpl/bool.hpp>
 #include <boost/mpl/if.hpp>
@@ -38,6 +41,8 @@
     detail::sequence_assign_type<BOOST_FUSION_R_ELSE_CLREF(Seq)>
     sequence_assign(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
+
         return seq;
     }
 }}
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/template.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/template.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/template.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_SUPPORT_INTERNAL_TEMPLATE_HPP
 #define BOOST_FUSION_SUPPORT_INTERNAL_TEMPLATE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/detail/variadic_arguments_to_vector_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/detail/variadic_arguments_to_vector_n.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/detail/variadic_arguments_to_vector_n.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
     template<BOOST_PP_ENUM_PARAMS_Z(1, BOOST_PP_ITERATION(), typename T)>
     struct variadic_arguments_to_vector<
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/variadic_arguments_to_vector.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/variadic_arguments_to_vector.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/variadic_arguments_to_vector.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_SUPPORT_INTERNAL_VARIADIC_TEMPLATES_VARIADIC_ARGUMENTS_TO_VECTOR_HPP
 #define BOOST_FUSION_SUPPORT_INTERNAL_VARIADIC_TEMPLATES_VARIADIC_ARGUMENTS_TO_VECTOR_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/variadic_quote.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/variadic_quote.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/variadic_templates/variadic_quote.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_SUPPORT_INTERNAL_VARIADIC_TEMPLATES_VARIADIC_QUOTE_HPP
 #define BOOST_FUSION_SUPPORT_INTERNAL_VARIADIC_TEMPLATES_VARIADIC_QUOTE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/workaround.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/workaround.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/workaround.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_SUPPORT_INTERNAL_WORKAROUND_HPP
 #define BOOST_FUSION_SUPPORT_INTERNAL_WORKAROUND_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/is_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/is_iterator.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/is_iterator.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/is_sequence.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/is_sequence.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/is_sequence.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/is_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/is_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/is_view.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -10,6 +11,7 @@
 
 #include <boost/fusion/support/tag_of.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
+#include <boost/fusion/support/internal/assert.hpp>
 
 namespace boost { namespace fusion
 {
@@ -27,11 +29,13 @@
 
     namespace traits
     {
-        template <typename T>
+        template <typename Seq>
         struct is_view
-          : extension::is_view_impl<typename fusion::traits::tag_of<T>::type>::
-                template apply<typename detail::add_lref<T>::type>::type
-        {};
+          : extension::is_view_impl<typename fusion::traits::tag_of<Seq>::type>::
+                template apply<typename detail::add_lref<Seq>::type>::type
+        {
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
+        };
     }
 }}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/pair.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/pair.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/pair.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2005 Joel de Guzman
     Copyright (c) 2006 Tobias Schwinger
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -10,7 +11,7 @@
 #define BOOST_FUSION_SUPPORT_PAIR_HPP
 
 #include <boost/fusion/support/internal/ref.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
+#include <boost/fusion/support/deduce.hpp>
 
 #if defined(BOOST_NO_VARIADIC_TEMPLATES) && defined(BOOST_NO_RVALUE_REFERENCES)
 #   include <boost/call_traits.hpp>
@@ -85,7 +86,7 @@
             typedef
                 fusion::pair<
                     First
-                  , typename detail::as_fusion_element<Second>::type
+                  , typename traits::deduce<Second>::type
                 >
             type;
         };
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_SUPPORT_TAG_OF_HPP
 #define BOOST_FUSION_SUPPORT_TAG_OF_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/tag_of_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/tag_of_fwd.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/tag_of_fwd.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -9,7 +9,8 @@
 #ifndef BOOST_FUSION_SUPPORT_TAG_OF_FWD_HPP
 #define BOOST_FUSION_SUPPORT_TAG_OF_FWD_HPP
 
-//cschmidt: only provided for backwards compatibility
+#include <boost/config.hpp>
+
 namespace boost { namespace fusion
 {
     namespace traits
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/unused.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/unused.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/unused.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -10,21 +10,20 @@
 
 #include <boost/config.hpp>
 #if defined(BOOST_MSVC)
-# pragma warning(push)
-# pragma warning(disable: 4522) // multiple assignment operators specified warning
+#   pragma warning(push)
+// multiple assignment operators specified warning
+#   pragma warning(disable: 4522)
 #endif
 
 namespace boost { namespace fusion {
     struct unused_type
     {
         unused_type()
-        {
-        }
+        {}
 
         template <typename T>
         unused_type(T const&)
-        {
-        }
+        {}
 
         template <typename T>
         unused_type const&
@@ -57,7 +56,7 @@
 }}
 
 #if defined(BOOST_MSVC)
-# pragma warning(pop)
+#   pragma warning(pop)
 #endif
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/tuple/make_tuple.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/tuple/make_tuple.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/tuple/make_tuple.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_TUPLE_MAKE_TUPLE_HPP
 #define BOOST_FUSION_TUPLE_MAKE_TUPLE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2005 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_fwd.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_fwd.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2005 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying 
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_tie.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_tie.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_TUPLE_TUPLE_TIE_HPP
 #define BOOST_FUSION_TUPLE_TUPLE_TIE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/detail/strictest_traversal.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/detail/strictest_traversal.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/detail/strictest_traversal.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -41,6 +41,12 @@
                     >::type
                 type;
             };
+
+            template<typename NextSeq,typename StrictestSoFar>
+            typename result<
+                strictest_traversal_impl(NextSeq const&, StrictestSoFar const&)
+            >::type
+            operator()(NextSeq const&,StrictestSoFar const&);
         };
 
         template<typename Seq>
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/detail/view_storage.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/detail/view_storage.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/detail/view_storage.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_DETAIL_VIEW_STORAGE_HPP
 #define BOOST_FUSION_VIEW_DETAIL_VIEW_STORAGE_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_data_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_data_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_DEREF_DATA_IMPL_HPP
 #define BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_DEREF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_fwd.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_fwd.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_FILTER_VIEW_FWD_HPP
 #define BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_FILTER_VIEW_FWD_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_iterator.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_iterator.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -11,6 +12,7 @@
 #include <boost/fusion/iterator/value_of.hpp>
 #include <boost/fusion/algorithm/query/detail/find_if.hpp>
 #include <boost/fusion/support/iterator_base.hpp>
+#include <boost/fusion/support/internal/assert.hpp>
 
 #include <boost/mpl/quote.hpp>
 #include <boost/mpl/lambda.hpp>
@@ -46,7 +48,9 @@
         template<typename OtherIt>
         filter_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
           : first(BOOST_FUSION_FORWARD(OtherIt,it).first)
-        {}
+        {
+            BOOST_FUSION_TAG_CHECK(OtherIt,filter_view_iterator_tag);
+        }
 
         filter_iterator(Begin const& first,int)
           : first(filter::call(first))
@@ -56,6 +60,8 @@
         filter_iterator&
         operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
         {
+            BOOST_FUSION_TAG_CHECK(OtherIt,filter_view_iterator_tag);
+
             first=BOOST_FUSION_FORWARD(OtherIt,it).first;
             return *this;
         }
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/key_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/key_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/key_of_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_KEY_OF_IMPL_HPP
 #define BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_KEY_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/value_of_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/value_of_data_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/value_of_data_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP
 #define BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -84,11 +85,13 @@
         {}
 #endif
 
-        template<typename OtherFilterView>
+        template<typename OtherView>
         filter_view&
-        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherFilterView) other_view)
+        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherView) other_view)
         {
-            seq=BOOST_FUSION_FORWARD(OtherFilterView,other_view).seq;
+            BOOST_FUSION_TAG_CHECK(OtherView,filter_view_tag);
+
+            seq=BOOST_FUSION_FORWARD(OtherView,other_view).seq;
             return *this;
         }
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/iterator_range_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/iterator_range_fwd.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/iterator_range_fwd.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_ITERATOR_RANGE_DETAIL_ITERATOR_RANGE_FWD_HPP
 #define BOOST_FUSION_VIEW_ITERATOR_RANGE_DETAIL_ITERATOR_RANGE_FWD_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -51,21 +52,25 @@
         typedef fusion_sequence_tag tag;
         typedef mpl::true_ is_view;
 
-        template<typename OtherIteratorRange>
-        iterator_range(BOOST_FUSION_R_ELSE_CLREF(OtherIteratorRange) range)
+        template<typename OtherRange>
+        iterator_range(BOOST_FUSION_R_ELSE_CLREF(OtherRange) range)
           : first(range.first)
           , last(range.last)
-        {}
+        {
+            BOOST_FUSION_TAG_CHECK(OtherRange,iterator_range_tag);
+        }
 
         iterator_range(Begin const& first, End const& last)
           : first(first)
           , last(last)
         {}
 
-        template<typename OtherIteratorRange>
+        template<typename OtherRange>
         iterator_range&
-        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIteratorRange) other_range)
+        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherRange) other_range)
         {
+            BOOST_FUSION_TAG_CHECK(OtherRange,iterator_range_tag);
+
             first=other_range.first;
             last=other_range.last;
             return *this;
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/begin_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_data_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_data_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_DEREF_DATA_IMPL_HPP
 #define BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_DEREF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/end_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/equal_to_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/equal_to_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,5 @@
 /*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_fwd.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_fwd.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_JOINT_VIEW_FWD_HPP
 #define BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_JOINT_VIEW_FWD_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_iterator.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_iterator.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/key_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/key_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/key_of_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_KEY_OF_IMPL_HPP
 #define BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_KEY_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/next_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/next_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP
 #define BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -68,7 +69,6 @@
         typedef joint_view_tag fusion_tag;
         typedef fusion_sequence_tag tag;
         typedef mpl::true_ is_view;
-
         typedef typename
             mpl::plus<
                 result_of::size<seq1_type>
@@ -76,11 +76,13 @@
             >::type
         size;
 
-        template<typename OtherJointView>
-        joint_view(BOOST_FUSION_R_ELSE_CLREF(OtherJointView) view)
-          : seq1(BOOST_FUSION_FORWARD(OtherJointView,view).seq1)
-          , seq2(BOOST_FUSION_FORWARD(OtherJointView,view).seq2)
-        {}
+        template<typename OtherView>
+        joint_view(BOOST_FUSION_R_ELSE_CLREF(OtherView) view)
+          : seq1(BOOST_FUSION_FORWARD(OtherView,view).seq1)
+          , seq2(BOOST_FUSION_FORWARD(OtherView,view).seq2)
+        {
+            BOOST_FUSION_TAG_CHECK(OtherView,joint_view_tag);
+        }
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
         joint_view(typename storage1_type::call_param seq1,
@@ -97,12 +99,14 @@
         {}
 #endif
 
-        template<typename OtherJointView>
+        template<typename OtherView>
         joint_view&
-        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherJointView) other_view)
+        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherView) other_view)
         {
-            seq1=BOOST_FUSION_FORWARD(OtherJointView,other_view).seq1;
-            seq2=BOOST_FUSION_FORWARD(OtherJointView,other_view).seq2;
+            BOOST_FUSION_TAG_CHECK(OtherView,joint_view_tag);
+
+            seq1=BOOST_FUSION_FORWARD(OtherView,other_view).seq1;
+            seq2=BOOST_FUSION_FORWARD(OtherView,other_view).seq2;
             return *this;
         }
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/advance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/advance_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/advance_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_ADVANCE_IMPL_HPP
 #define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_ADVANCE_IMPL_HPP
@@ -20,8 +22,7 @@
     namespace detail
     {
         template<
-            typename ItRef
-          , typename It
+            typename It
           , typename N
           , bool /*ReuseOldIterator*/=
                 mpl::or_<
@@ -39,14 +40,14 @@
             type;
 
             static type
-            call(ItRef it)
+            call(It const& it)
             {
                 return fusion::advance<N>(it.it);
             }
         };
 
-        template<typename ItRef, typename It, typename N>
-        struct get_cyclic_next_iterator<ItRef,It,N,/*ReuseOldIterator*/false>
+        template<typename It, typename N>
+        struct get_cyclic_next_iterator<It,N,/*ReuseOldIterator*/false>
         {
             typedef
                 mpl::modulus<
@@ -63,9 +64,9 @@
             type;
 
             static type
-            call(ItRef it)
+            call(It const& it)
             {
-                return fusion::advance<real_n>(begin(it.seq));
+                return fusion::advance<real_n>(fusion::begin(it.seq));
             }
         };
     }
@@ -82,7 +83,7 @@
             struct apply
             {
                 typedef typename detail::remove_reference<ItRef>::type it;
-                typedef detail::get_cyclic_next_iterator<ItRef, it, N> gen;
+                typedef detail::get_cyclic_next_iterator<it, N> gen;
 
                 typedef
                     repetitive_view_iterator<
@@ -99,6 +100,7 @@
                 }
             };
         };
+
     }
 }}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/begin_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2007 Tobias Schwinger
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_BEGIN_IMPL_HPP
 #define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_BEGIN_IMPL_HPP
@@ -24,7 +27,7 @@
             typedef
                 repetitive_view_iterator<
                     typename seq::seq_type
-                  , typename result_of::begin<seq>::type
+                  , typename result_of::begin<typename seq::seq_type>::type
                   , 0
                 >
             type;
@@ -32,7 +35,7 @@
             static type
             call(SeqRef seq)
             {
-                return type(fusion::begin(seq.seq.get()));
+                return type(seq.seq.get(),fusion::begin(seq.seq.get()));
             }
         };
     };
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_data_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_data_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_DEREF_DATA_IMPL_HPP
 #define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_DEREF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2007 Tobias Schwinger
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_DEREF_IMPL_HPP
 #define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_DEREF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/distance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/distance_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/distance_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_DISTANCE_IMPL_HPP
 #define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_DISTANCE_IMPL_HPP
@@ -18,18 +20,15 @@
     {
         template<typename BeginRef, typename EndRef>
         struct apply
-        {
-            typedef
-                mpl::minus<
-                    typename detail::remove_reference<
-                        BeginRef
-                    >::type::index
-                  , typename detail::remove_reference<
-                        EndRef
-                    >::type::index
-                >
-            type;
-        };
+          : mpl::minus<
+                typename detail::remove_reference<
+                    BeginRef
+                >::type::index
+              , typename detail::remove_reference<
+                    EndRef
+                >::type::index
+            >
+        {};
     };
 }}}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/end_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,15 +1,18 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2007 Tobias Schwinger
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_END_IMPL_HPP
 #define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_END_IMPL_HPP
 
 #include <boost/fusion/sequence/intrinsic/empty.hpp>
 #include <boost/fusion/sequence/intrinsic/end.hpp>
+#include <boost/fusion/iterator/advance_c.hpp>
 #include <boost/fusion/support/category_of.hpp>
-#include <boost/fusion/iterator/detail/advance.hpp>
 
 #include <boost/mpl/modulus.hpp>
 #include <boost/mpl/negate.hpp>
@@ -28,42 +31,25 @@
                 mpl::or_<
                     result_of::empty<SeqRef>
                   , mpl::not_<traits::is_bidirectional<SeqRef> >
-                >::type/*false*/
+                >::value/*false*/
         >
         struct get_real_end_it
         {
-            typedef typename result_of::end<SeqRef>::type seq_end;
             typedef
-                mpl::modulus<MaxIndex, result_of::size<SeqRef> >
+                mpl::negate<mpl::modulus<MaxIndex, result_of::size<SeqRef> > >
             backwards_n;
 
             typedef typename
-                mpl::eval_if<
-                    traits::is_random_access<SeqRef>
-                  , result_of::advance<seq_end, mpl::negate<backwards_n> >
-                  , detail::backward<seq_end, backwards_n::value>
+                result_of::advance<
+                    typename result_of::end<SeqRef>::type
+                  , typename backwards_n::type
                 >::type
             type;
 
             static type
-            call_impl(SeqRef seq, mpl::true_ /*is_random_access*/)
-            {
-                return fusion::advance<mpl::negate<backwards_n> >(
-                        fusion::end(seq));
-            }
-
-            static type
-            call_impl(SeqRef seq, mpl::false_ /*is_random_access*/)
-            {
-                return detail::backward<seq_end, backwards_n::value>::call(
-                        fusion::end(seq));
-            }
-
-            static type
             call(SeqRef seq)
             {
-                return call_impl(seq,
-                        typename traits::is_random_access<SeqRef>::type());
+                return fusion::advance<backwards_n>(fusion::end(seq));
             }
         };
 
@@ -79,7 +65,7 @@
             static type
             call(SeqRef seq)
             {
-                return fusion::end(seq);
+                return type(seq,fusion::end(seq));
             }
         };
     }
@@ -114,7 +100,7 @@
                 static type
                 call(SeqRef seq)
                 {
-                    return type(gen::call(seq.seq.get()));
+                    return type(seq.seq.get(),gen::call(seq.seq.get()));
                 }
             };
         };
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/equal_to_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/equal_to_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_EQUAL_TO_IMPL_HPP
 #define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_EQUAL_TO_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/key_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/key_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/key_of_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_KEY_OF_IMPL_HPP
 #define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_KEY_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/next_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/next_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2007 Tobias Schwinger
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_NEXT_IMPL_HPP
 #define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_NEXT_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/prior_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/prior_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/prior_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_PRIOR_IMPL_HPP
 #define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_PRIOR_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/repetitive_view_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/repetitive_view_fwd.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/repetitive_view_fwd.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2007 Tobias Schwinger
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_REPETITIVE_VIEW_FWD_HPP
 #define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_REPETITIVE_VIEW_FWD_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/repetitive_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/repetitive_view_iterator.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/repetitive_view_iterator.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,13 +1,17 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2007 Tobias Schwinger
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_REPETITIVE_VIEW_ITERATOR_HPP
 #define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_REPETITIVE_VIEW_ITERATOR_HPP
 
 #include <boost/fusion/support/iterator_base.hpp>
 #include <boost/fusion/support/category_of.hpp>
+#include <boost/fusion/support/internal/assert.hpp>
 
 #include <boost/mpl/int.hpp>
 
@@ -30,10 +34,31 @@
         typedef repetitive_view_iterator_tag fusion_tag;
         typedef typename traits::category_of<It>::type category;
 
-        repetitive_view_iterator(It const& it)
-          : it(it)
+        template<typename OtherIt>
+        repetitive_view_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+          : seq(BOOST_FUSION_FORWARD(OtherIt,it).seq)
+          , it(BOOST_FUSION_FORWARD(OtherIt,it).it)
+        {
+            BOOST_FUSION_TAG_CHECK(OtherIt,repetitive_view_iterator_tag);
+        }
+
+        repetitive_view_iterator(SeqRef seq, It const& it)
+          : seq(seq)
+          , it(it)
         {}
 
+        template<typename OtherIt>
+        repetitive_view_iterator&
+        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it_)
+        {
+            BOOST_FUSION_TAG_CHECK(OtherIt,repetitive_view_iterator_tag);
+
+            seq=BOOST_FUSION_FORWARD(OtherIt,it_).seq;
+            it=BOOST_FUSION_FORWARD(OtherIt,it_).it;
+            return *this;
+        }
+
+        SeqRef seq;
         It it;
     };
 }}
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/value_of_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/value_of_data_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/value_of_data_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP
 #define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/value_of_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2007 Tobias Schwinger
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_VALUE_OF_IMPL_HPP
 #define BOOST_FUSION_VIEW_REPETITIVE_VIEW_DETAIL_VALUE_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/repetitive_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/repetitive_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/repetitive_view.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2007 Tobias Schwinger
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_REPETITIVE_VIEW_REPETITIVE_VIEW_HPP
 #define BOOST_FUSION_VIEW_REPETITIVE_VIEW_REPETITIVE_VIEW_HPP
@@ -15,7 +18,7 @@
 #include <boost/fusion/view/detail/view_storage.hpp>
 
 #include <boost/mpl/bool.hpp>
-#include <boost/mpl/int.hpp>
+#include <boost/mpl/long.hpp>
 #include <boost/integer_traits.hpp>
 
 #include <boost/fusion/view/repetitive_view/detail/repetitive_view_fwd.hpp>
@@ -47,8 +50,8 @@
         typedef typename storage_type::type seq_type;
 
         typedef typename traits::category_of<seq_type>::type category;
-        typedef mpl::int_<integer_traits<int>::const_max> size;
-        typedef reverse_view_tag fusion_tag;
+        typedef mpl::int_<integer_traits<int>::const_max-1> size;
+        typedef repetitive_view_tag fusion_tag;
         typedef fusion_sequence_tag tag;
         typedef mpl::true_ is_view;
 
@@ -76,11 +79,13 @@
         {}
 #endif
 
-        template<typename OtherRepetitiveView>
+        template<typename OtherView>
         repetitive_view&
-        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherRepetitiveView) other_view)
+        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherView) other_view)
         {
-            seq=BOOST_FUSION_FORWARD(OtherRepetitiveView,other_view).seq;
+            BOOST_FUSION_TAG_CHECK(OtherView,reverse_view_tag);
+
+            seq=BOOST_FUSION_FORWARD(OtherView,other_view).seq;
             return *this;
         }
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_data_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_data_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_DEREF_DATA_IMPL_HPP
 #define BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_DEREF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/distance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/distance_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/distance_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -21,18 +21,15 @@
     {
         template<typename BeginRef, typename EndRef>
         struct apply
-        {
-            typedef typename
-                result_of::distance<
-                    typename detail::remove_reference<
-                        BeginRef
-                    >::type::it_type
-                  , typename detail::remove_reference<
-                        EndRef
-                    >::type::it_type
-                >::type
-            type;
-        };
+          : result_of::distance<
+                typename detail::remove_reference<
+                    BeginRef
+                >::type::it_type
+              , typename detail::remove_reference<
+                    EndRef
+                >::type::it_type
+            >
+        {};
     };
 }}}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/equal_to_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/equal_to_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,5 @@
 /*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/key_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/key_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/key_of_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_KEY_OF_IMPL_HPP
 #define BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_KEY_OF_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_fwd.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_fwd.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_REVERSE_VIEW_FWD_HPP
 #define BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_REVERSE_VIEW_FWD_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_of_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_of_data_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_of_data_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP
 #define BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -86,11 +87,13 @@
         {}
 #endif
 
-        template<typename OtherReverseView>
+        template<typename OtherView>
         reverse_view&
-        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherReverseView) other_view)
+        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherView) other_view)
         {
-            seq=BOOST_FUSION_FORWARD(OtherReverseView,other_view).seq;
+            BOOST_FUSION_TAG_CHECK(OtherView,reverse_view_tag);
+
+            seq=BOOST_FUSION_FORWARD(OtherView,other_view).seq;
             return *this;
         }
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/equal_to_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/equal_to_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,5 @@
 /*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_fwd.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_fwd.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_SINGLE_VIEW_FWD_HPP
 #define BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_SINGLE_VIEW_FWD_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_iterator.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_iterator.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -44,8 +45,8 @@
         typedef single_view_iterator_tag fusion_tag;
         typedef forward_traversal_tag category;
 
-        template<typename OtherIt>
-        single_view_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+        template<typename OtherSingleViewRef>
+        single_view_iterator(single_view_iterator<OtherSingleViewRef> const& it)
           : view(it.view)
         {}
 
@@ -53,9 +54,9 @@
           : view(&view)
         {}
 
-        template<typename OtherIt>
+        template<typename OtherSingleViewRef>
         single_view_iterator&
-        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+        operator=(single_view_iterator<OtherSingleViewRef> const& it)
         {
             view=it.view;
             return *this;
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -14,8 +15,8 @@
 #include <boost/fusion/sequence/intrinsic/front.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
 #include <boost/fusion/support/sequence_base.hpp>
+#include <boost/fusion/support/deduce.hpp>
 #include <boost/fusion/support/internal/sequence_assign.hpp>
-#include <boost/fusion/support/internal/as_fusion_element.hpp>
 
 #include <boost/mpl/bool.hpp>
 #include <boost/mpl/int.hpp>
@@ -117,15 +118,13 @@
 
     template <typename T>
     inline single_view<
-        typename detail::as_fusion_element<BOOST_FUSION_R_ELSE_CLREF(T)>::type
+        typename traits::deduce<BOOST_FUSION_R_ELSE_CLREF(T)>::type
     >
     make_single_view(BOOST_FUSION_R_ELSE_CLREF(T) v)
     {
         typedef
             single_view<
-                typename detail::as_fusion_element<
-                    BOOST_FUSION_R_ELSE_CLREF(T)
-                >::type
+                typename traits::deduce<BOOST_FUSION_R_ELSE_CLREF(T)>::type
             >
         view;
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/advance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/advance_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/advance_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -37,7 +37,7 @@
             static type
             call(ItRef it)
             {
-                return type(boost::fusion::advance<N>(it.it), *it.f);
+                return type(fusion::advance<N>(it.it), *it.f);
             }
         };
     };
@@ -64,8 +64,8 @@
             static type
             call(ItRef it)
             {
-                return type(boost::fusion::advance<N>(it.it1),
-                            boost::fusion::advance<N>(it.it2),
+                return type(fusion::advance<N>(it.it1),
+                            fusion::advance<N>(it.it2),
                             it.f);
             }
         };
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/at_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -26,7 +26,7 @@
             typedef typename detail::remove_reference<SeqRef>::type seq;
 
             typedef typename
-                detail::internal::result_of<
+                boost::result_of<
                     typename detail::get_func_base<
                         typename seq::transform_type
                     >::type(
@@ -38,7 +38,7 @@
             static type
             call(SeqRef seq)
             {
-                return seq.f(boost::fusion::at<N>(seq.seq.get()));
+                return seq.f(fusion::at<N>(seq.seq.get()));
             }
         };
     };
@@ -52,15 +52,15 @@
             typedef typename detail::remove_reference<SeqRef>::type seq;
 
             typedef typename
-                detail::internal::result_of<
+                boost::result_of<
                     typename detail::get_func_base<
                         typename seq::transform_type
                     >::type(
-                   typename boost::fusion::result_of::at<
-                        typename seq::seq1_type
+                   typename fusion::result_of::at<
+                       typename seq::seq1_type
                       , N
                     >::type
-                  , typename boost::fusion::result_of::at<
+                  , typename fusion::result_of::at<
                         typename seq::seq2_type
                       , N
                     >::type)
@@ -70,8 +70,8 @@
             static type call(SeqRef seq)
             {
                 return seq.f(
-                        boost::fusion::at<N>(seq.seq1.get()),
-                        boost::fusion::at<N>(seq.seq2.get()));
+                        fusion::at<N>(seq.seq1.get()),
+                        fusion::at<N>(seq.seq2.get()));
             }
         };
     };
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/begin_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/deref_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/deref_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -29,7 +29,7 @@
             it;
 
             typedef typename
-                detail::internal::result_of<
+                boost::result_of<
                     typename detail::get_func_base<
                         typename it::transform_type
                     >::type(
@@ -56,7 +56,7 @@
             typedef typename detail::remove_reference<ItRef>::type it;
 
             typedef typename
-                detail::internal::result_of<
+                boost::result_of<
                     typename detail::get_func_base<
                         typename it::transform_type
                     >::type(
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/end_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/transform_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/transform_view_iterator.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/transform_view_iterator.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -10,6 +11,7 @@
 
 #include <boost/fusion/support/iterator_base.hpp>
 #include <boost/fusion/support/category_of.hpp>
+#include <boost/fusion/support/internal/assert.hpp>
 
 namespace boost { namespace fusion
 {
@@ -30,7 +32,9 @@
         transform_view_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
           : it(BOOST_FUSION_FORWARD(OtherIt,it).it)
           , f(BOOST_FUSION_FORWARD(OtherIt,it).f)
-        {}
+        {
+            BOOST_FUSION_TAG_CHECK(OtherIt,transform_view_iterator_tag);
+        }
 
         transform_view_iterator(It const& it, transform_type f)
           : it(it)
@@ -41,6 +45,8 @@
         transform_view_iterator&
         operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it_)
         {
+            BOOST_FUSION_TAG_CHECK(OtherIt,transform_view_iterator_tag);
+
             it=BOOST_FUSION_FORWARD(OtherIt,it_).it;
             f=BOOST_FUSION_FORWARD(OtherIt,it_).f;
             return *this;
@@ -82,6 +88,8 @@
         transform_view_iterator2&
         operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
         {
+            BOOST_FUSION_TAG_CHECK(OtherIt,transform_view_iterator2_tag);
+
             it1=BOOST_FUSION_FORWARD(OtherIt,it).it1;
             it2=BOOST_FUSION_FORWARD(OtherIt,it).it2;
             f=BOOST_FUSION_FORWARD(OtherIt,it).f;
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_at_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -26,11 +26,11 @@
             typedef typename detail::remove_reference<SeqRef>::type seq;
 
             typedef typename
-                detail::internal::result_of<
+                boost::result_of<
                     typename detail::get_func_base<
                         typename seq::transform_type
                     >::type(
-                    typename boost::fusion::result_of::value_at<
+                    typename fusion::result_of::value_at<
                         typename seq::seq_type
                       , N
                     >::type)
@@ -48,14 +48,14 @@
             typedef typename detail::remove_reference<SeqRef>::type seq;
 
             typedef typename
-                detail::internal::result_of<
+                boost::result_of<
                     typename detail::get_func_base<
                         typename seq::transform_type
                     >::type(
-                    typename boost::fusion::result_of::value_at<
+                    typename fusion::result_of::value_at<
                         typename seq::seq1_type, N
                     >::type
-                  , typename boost::fusion::result_of::value_at<
+                  , typename fusion::result_of::value_at<
                         typename seq::seq2_type, N
                     >::type)
                 >::type
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_of_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -26,7 +26,7 @@
             typedef typename detail::remove_reference<ItRef>::type it;
 
             typedef typename
-                detail::internal::result_of<
+                boost::result_of<
                     typename detail::get_func_base<
                         typename it::transform_type
                     >::type(
@@ -46,7 +46,7 @@
             typedef typename detail::remove_reference<ItRef>::type it;
 
             typedef typename
-                detail::internal::result_of<
+                boost::result_of<
                     typename detail::get_func_base<
                         typename it::transform_type
                     >::type(
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -96,11 +97,11 @@
         category;
         typedef typename result_of::size<seq1_type>::type size;
 
-        template<typename OtherTransformView>
-        transform_view(BOOST_FUSION_R_ELSE_CLREF(OtherTransformView) view)
-          : seq1(BOOST_FUSION_FORWARD(OtherTransformView,view).seq1)
-          , seq2(BOOST_FUSION_FORWARD(OtherTransformView,view).seq2)
-          , f(BOOST_FUSION_FORWARD(OtherTransformView,view).f)
+        template<typename OtherView>
+        transform_view(BOOST_FUSION_R_ELSE_CLREF(OtherView) view)
+          : seq1(BOOST_FUSION_FORWARD(OtherView,view).seq1)
+          , seq2(BOOST_FUSION_FORWARD(OtherView,view).seq2)
+          , f(BOOST_FUSION_FORWARD(OtherView,view).f)
         {}
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
@@ -122,13 +123,15 @@
         {}
 #endif
 
-        template<typename OtherTransformView>
-        OtherTransformView&
-        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherTransformView) other_view)
+        template<typename OtherView>
+        OtherView&
+        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherView) other_view)
         {
-            seq1=BOOST_FUSION_FORWARD(OtherTransformView,other_view).seq1;
-            seq2=BOOST_FUSION_FORWARD(OtherTransformView,other_view).seq2;
-            f=BOOST_FUSION_FORWARD(OtherTransformView,other_view).f;
+            BOOST_FUSION_TAG_CHECK(OtherView,transform_view2_tag);
+
+            seq1=BOOST_FUSION_FORWARD(OtherView,other_view).seq1;
+            seq2=BOOST_FUSION_FORWARD(OtherView,other_view).seq2;
+            f=BOOST_FUSION_FORWARD(OtherView,other_view).f;
             return *this;
         }
 
@@ -162,10 +165,10 @@
         typedef fusion_sequence_tag tag;
         typedef mpl::true_ is_view;
 
-        template<typename OtherTransformView>
-        unary_transform_view(BOOST_FUSION_R_ELSE_CLREF(OtherTransformView) view)
-          : seq(BOOST_FUSION_FORWARD(OtherTransformView,view).seq)
-          , f(BOOST_FUSION_FORWARD(OtherTransformView,view).f)
+        template<typename OtherView>
+        unary_transform_view(BOOST_FUSION_R_ELSE_CLREF(OtherView) view)
+          : seq(BOOST_FUSION_FORWARD(OtherView,view).seq)
+          , f(BOOST_FUSION_FORWARD(OtherView,view).f)
         {}
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
@@ -183,12 +186,14 @@
         {}
 #endif
 
-        template<typename OtherTransformView>
+        template<typename OtherView>
         unary_transform_view&
-        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherTransformView) view)
+        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherView) view)
         {
-            seq=BOOST_FUSION_FORWARD(OtherTransformView,view).seq;
-            f=BOOST_FUSION_FORWARD(OtherTransformView,view).f;
+            BOOST_FUSION_TAG_CHECK(OtherView,transform_view_tag);
+
+            seq=BOOST_FUSION_FORWARD(OtherView,view).seq;
+            f=BOOST_FUSION_FORWARD(OtherView,view).f;
             return *this;
         }
 
@@ -203,9 +208,9 @@
     {
         typedef unary_transform_view<Seq, F, mpl::true_> base;
 
-        template<typename OtherTransformView>
-        transform_view(BOOST_FUSION_R_ELSE_CLREF(OtherTransformView) view)
-          : base(BOOST_FUSION_FORWARD(OtherTransformView,view))
+        template<typename OtherView>
+        transform_view(BOOST_FUSION_R_ELSE_CLREF(OtherView) view)
+          : base(BOOST_FUSION_FORWARD(OtherView,view))
         {}
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
@@ -221,12 +226,11 @@
         {}
 #endif
 
-        template<typename OtherTransformView>
+        template<typename OtherView>
         transform_view&
-        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherTransformView) view)
+        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherView) view)
         {
-            *static_cast<base*>(this)=
-                    BOOST_FUSION_FORWARD(OtherTransformView,view);
+            *static_cast<base*>(this)=BOOST_FUSION_FORWARD(OtherView,view);
             return *this;
         }
     };
@@ -237,9 +241,9 @@
     {
         typedef unary_transform_view<Seq, F, mpl::false_> base;
 
-        template<typename OtherTransformView>
-        transform_view(BOOST_FUSION_R_ELSE_CLREF(OtherTransformView) view)
-          : base(BOOST_FUSION_FORWARD(OtherTransformView,view))
+        template<typename OtherView>
+        transform_view(BOOST_FUSION_R_ELSE_CLREF(OtherView) view)
+          : base(BOOST_FUSION_FORWARD(OtherView,view))
         {}
 
 #ifdef BOOST_NO_RVALUE_REFERENCES
@@ -255,12 +259,11 @@
         {}
 #endif
 
-        template<typename OtherTransformView>
+        template<typename OtherView>
         transform_view&
-        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherTransformView) view)
+        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherView) view)
         {
-            *static_cast<base*>(this)=
-                    BOOST_FUSION_FORWARD(OtherTransformView,view);
+            *static_cast<base*>(this)=BOOST_FUSION_FORWARD(OtherView,view);
             return *this;
         }
     };
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view_fwd.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view_fwd.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,5 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying 
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/begin_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -79,8 +79,8 @@
                 call(SeqRef seq)
                 {
                     return type(
-                            fusion::transform(seq.seqs, detail::poly_begin())
-                          , 0);
+                        fusion::transform(seq.seqs, detail::poly_begin()),
+                        0);
                 }
             };
         };
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/distance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/distance_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/distance_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -27,20 +27,17 @@
     {
         template<typename FoundIt, typename SearchIt>
         struct best_distance
-        {
-            typedef typename
-                result_of::distance<
-                    FoundIt
-                  , typename result_of::find_if<
-                        typename SearchIt::iterators
-                      , is_same<
-                            traits::category_of<mpl::_1>
-                          , random_access_iterator_tag
-                        >
-                    >::type
+          : result_of::distance<
+                FoundIt
+              , typename result_of::find_if<
+                    typename SearchIt::iterators
+                  , is_same<
+                        traits::category_of<mpl::_1>
+                      , random_access_iterator_tag
+                    >
                 >::type
-            type;
-        };
+            >
+        {};
 
         template<typename It1, typename It2>
         struct default_distance
@@ -88,8 +85,7 @@
                     typename detail::remove_reference<ItRef1>::type
                   , typename detail::remove_reference<ItRef2>::type
                 >
-            {
-            };
+            {};
         };
     }
 }}
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/end_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -91,10 +91,10 @@
                 {
                     return type(
                             fusion::transform(
-                                seq.seqs
-                              , detail::endpoints<typename seq::size>()
-                            )
-                          , 0);
+                                seq.seqs,
+                                detail::endpoints<typename seq::size>()
+                            ),
+                            0);
                 }
             };
         };
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/equal_to_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/equal_to_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -15,7 +15,7 @@
 #include <boost/mpl/and.hpp>
 #include <boost/mpl/transform_view.hpp>
 #include <boost/mpl/zip_view.hpp>
-#include <boost/mpl/vector.hpp>
+#include <boost/mpl/vector/vector10.hpp>
 #include <boost/mpl/unpack_args.hpp>
 #include <boost/mpl/find_if.hpp>
 #include <boost/mpl/end.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_at_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -36,6 +36,10 @@
                   , result_of::value_at<SeqRef, N>
                 >
             {};
+
+            template<typename Seq>
+            typename result<poly_value_at(Seq const&)>::type
+            operator()(Seq const&);
         };
     }
 
@@ -49,18 +53,15 @@
         {
             template<typename SeqRef, typename N>
             struct apply
-            {
-                typedef typename
-                    result_of::transform<
+              : result_of::as_vector<
+                    typename result_of::transform<
                         typename detail::remove_reference<
                             SeqRef
                         >::type::seqs_type
                       , detail::poly_value_at<N>
                     >::type
-                values;
-
-                typedef typename result_of::as_vector<values>::type type;
-            };
+                >
+            {};
         };
     }
 }}
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_of_impl.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -35,6 +35,10 @@
                   , result_of::value_of<ItRef>
                 >
             {};
+
+            template<typename It>
+            typename result<poly_value_of(It const&)>::type
+            operator()(It const&);
         };
     }
 
@@ -48,18 +52,15 @@
         {
             template<typename ItRef>
             struct apply
-            {
-                typedef typename
-                    result_of::transform<
+              : result_of::as_vector<
+                    typename result_of::transform<
                         typename detail::remove_reference<
                             ItRef
                         >::type::iterators
                       , detail::poly_value_of
                     >::type
-                values;
-
-                typedef typename result_of::as_vector<values>::type type;
-            };
+                >
+            {};
         };
     }
 }}
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_fwd.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_fwd.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #ifndef BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_ZIP_VIEW_FWD_HPP
 #define BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_ZIP_VIEW_FWD_HPP
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_iterator.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_iterator.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -12,6 +13,7 @@
 #include <boost/fusion/container/vector/convert.hpp>
 #include <boost/fusion/support/iterator_base.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
+#include <boost/fusion/support/internal/assert.hpp>
 
 namespace boost { namespace fusion {
 
@@ -29,20 +31,24 @@
 
         template<typename OtherIt>
         zip_view_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
-          : iterators_(sequence_assign(it.iterators_))
-        {}
+          : iterators_(sequence_assign(
+                BOOST_FUSION_FORWARD(OtherIt,it).iterators_))
+        {
+            BOOST_FUSION_TAG_CHECK(OtherIt,zip_view_iterator_tag);
+        }
 
         template<typename Seq>
         zip_view_iterator(BOOST_FUSION_R_ELSE_CLREF(Seq) seq,int)
-          : iterators_(
-                sequence_assign(BOOST_FUSION_FORWARD(Seq,seq)))
+          : iterators_(sequence_assign(BOOST_FUSION_FORWARD(Seq,seq)))
         {}
 
         template<typename OtherIt>
         zip_view_iterator&
         operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
         {
-            iterators_=it.iterators_;
+            BOOST_FUSION_TAG_CHECK(OtherIt,zip_view_iterator_tag);
+
+            iterators_=BOOST_FUSION_FORWARD(OtherIt,it).iterators_;
             return *this;
         }
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,6 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2006 Dan Marsden
+    Copyright (c) 2009 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -86,6 +87,10 @@
             struct result<Self(Seq)>
               : result_of::size<Seq>
             {};
+
+            template<typename Seq>
+            typename result<seq_size(Seq const&)>::type
+            operator()(Seq const&);
         };
 
         struct poly_min
@@ -100,6 +105,10 @@
                     typename detail::remove_reference<SeqSize>::type
                 >
             {};
+
+            template<typename MinSize,typename SeqSize>
+            typename result<poly_min(MinSize const&,SeqSize const&)>::type
+            operator()(MinSize const&, SeqSize const&);
         };
 
         template<typename Seqs>
@@ -173,11 +182,13 @@
               BOOST_FUSION_FORWARD(OtherSeqs,seqs)))
         {}
 
-        template<typename OtherZipView>
+        template<typename OtherView>
         zip_view&
-        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherZipView) other_zip_view)
+        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherView) other_zip_view)
         {
-            seqs=BOOST_FUSION_FORWARD(OtherZipView,other_zip_view).seqs;
+            BOOST_FUSION_TAG_CHECK(OtherView,zip_view_tag);
+
+            seqs=BOOST_FUSION_FORWARD(OtherView,other_zip_view).seqs;
             return *this;
         }
 
Modified: sandbox/SOC/2009/fusion/build.bat
==============================================================================
--- sandbox/SOC/2009/fusion/build.bat	(original)
+++ sandbox/SOC/2009/fusion/build.bat	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,8 +1,11 @@
 @echo off
-rem Copyright Christopher Schmidt 2009.
-rem Distributed under the Boost Software License, Version 1.0.
-rem (See accompanying file LICENSE_1_0.txt or copy at
-rem http://www.boost.org/LICENSE_1_0.txt)
+rem ===========================================================================
+rem    Copyright (c) 2009 Christopher Schmidt
+rem
+rem   Use, modification and distribution is subject to the Boost Software
+rem   License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+rem   http://www.boost.org/LICENSE_1_0.txt)
+rem ===========================================================================
 
 rem (re-)set environment variables
 set BOOST_ROOT=d:/projekte/libs/boost
@@ -19,7 +22,7 @@
             call :gcc3
         ) else (
             if "%1" == "" (
-                call :vc9
+                call :gcc4
             ) else (
                 echo Unknown toolset '%1'
                 goto :eof
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/performance/measure.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/performance/measure.hpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/performance/measure.hpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,11 @@
-// Copyright David Abrahams, Matthias Troyer, Michael Gauckler
-// 2005. Distributed under the Boost Software License, Version
-// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2005 David Abrahams
+    Copyright (c) 2005 Matthias Troyer
+    Copyright (c) 2005 Michael Gauckler
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #if !defined(LIVE_CODE_TYPE)
 # define LIVE_CODE_TYPE int
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/performance/sequence_efficiency.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/performance/sequence_efficiency.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/performance/sequence_efficiency.cpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -167,9 +167,7 @@
     > 
     lmedium(BOOST_PP_ENUM(10, INIT, _));
 
-    //TODO cschmidt: uncomment this once mpl got variadic templates
-    //and we are not limited to BOOST_MPL_MAX_VECTOR_SIZE any more!
-    /*vector<
+    vector<
         int, int, int, int, int, int, int, int, int, int
       , int, int, int, int, int, int, int, int, int, int
       , int, int, int, int, int, int, int, int, int, int
@@ -181,7 +179,7 @@
       , int, int, int, int, int, int, int, int, int, int
       , int, int, int, int, int, int, int, int, int, int
     > 
-    lbig(BOOST_PP_ENUM(30, INIT, _));*/
+    lbig(BOOST_PP_ENUM(30, INIT, _));
 
     // first decide how many repetitions to measure
     long repeats = 100;
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/test/Jamfile.v2
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/test/Jamfile.v2	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/test/Jamfile.v2	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-# Copyright Christopher Schmidt 2009.
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or copy at
-# http://www.boost.org/LICENSE_1_0.txt)
+#==============================================================================
+#    Copyright (c) 2009 Christopher Schmidt
+#
+#   Use, modification and distribution is subject to the Boost Software
+#   License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+#   http://www.boost.org/LICENSE_1_0.txt)
+#==============================================================================
 
 project test ;
 
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/test/main.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/test/main.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/test/main.cpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,9 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
 
 #include <boost/fusion/sequence.hpp>
 #include <boost/fusion/iterator.hpp>
@@ -101,9 +103,18 @@
 
     //beg=cbeg2;
 
-    deref(begin(std::forward<Seq>(seq)));
-    advance_c<1>(begin(std::forward<Seq>(seq)));
-    end(std::forward<Seq>(seq));
+    {
+        auto it=begin(std::forward<Seq>(seq));
+        it=begin(std::forward<Seq>(seq));
+    }
+    {
+        auto it=advance_c<1>(begin(std::forward<Seq>(seq)));
+        it=advance_c<1>(begin(std::forward<Seq>(seq)));
+    }
+    {
+        auto it=end(std::forward<Seq>(seq));
+        it=end(std::forward<Seq>(seq));
+    }
 }
 
 struct identity_int
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -62,10 +62,11 @@
 
 int main()
 {
+    //TODO !!!
+    /*
     TEST_SAME_TYPE(deduce<int &>::type, int &);
     TEST_SAME_TYPE(deduce<int volatile &>::type, int volatile &);
 
-    //TODO rvalue tests
     TEST_SAME_TYPE(deduce<int>::type, int);
 #ifdef BOOST_NO_RVALUE_REFERENCES
     TEST_SAME_TYPE(deduce<int const&>::type, int);
@@ -85,10 +86,13 @@
     TEST_SAME_TYPE(deduce< int volatile (&)[2] >::type, int volatile (&)[2]);
     TEST_SAME_TYPE(deduce< int const volatile (&)[2] >::type, int const volatile (&)[2]);
 
+    TEST_SAME_TYPE(deduce< void(*&)() >::type, void(*)());
+
     TEST_SAME_ELEMENTS(deduce_sequence<args1>::type,storable1);
     TEST_SAME_ELEMENTS(deduce_sequence<args2>::type,storable2);
     TEST_SAME_ELEMENTS(deduce_sequence<args3>::type,storable3);
     TEST_SAME_ELEMENTS(deduce_sequence<args4>::type,storable4);
+    */
 
     return boost::report_errors();
 }
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_n.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_n.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_n.cpp	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -173,9 +173,7 @@
         cout << "vector20 of int: " << sizeof(vec) << endl;
     }
 
-    //TODO: Due to limitations in Boost.MPL vector only up to
-    //BOOST_MPL_LIMIT_VECTOR_SIZE
-    /*{
+    {
         typedef vector30<
             int, int, int, int, int, int, int, int, int, int
           , int, int, int, int, int, int, int, int, int, int
@@ -206,7 +204,7 @@
 
         type vec; // compile check only
         cout << "vector50 of int: " << sizeof(vec) << endl;
-    }*/
+    }
 
     {
         // testing copy and assign from a view
Modified: sandbox/SOC/2009/fusion/project-root.jam
==============================================================================
--- sandbox/SOC/2009/fusion/project-root.jam	(original)
+++ sandbox/SOC/2009/fusion/project-root.jam	2009-08-24 16:18:12 EDT (Mon, 24 Aug 2009)
@@ -1,7 +1,10 @@
-# Copyright Christopher Schmidt 2009.
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or copy at
-# http://www.boost.org/LICENSE_1_0.txt)
+#==============================================================================
+#    Copyright (c) 2009 Christopher Schmidt
+#
+#   Use, modification and distribution is subject to the Boost Software
+#   License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+#   http://www.boost.org/LICENSE_1_0.txt)
+#==============================================================================
 
 import os ;
 local BOOST_INCLUDES_PATH = [ os.environ BOOST_INCLUDES_PATH ] ;
@@ -10,14 +13,15 @@
     : requirements <include>.
                    <include>$(BOOST_INCLUDES_PATH)
                    <define>BOOST_FUSION_ENABLE_STATIC_ASSERTS
-                   <toolset>gcc-4:<cxxflags>-std=c++0x
+                   <define>BOOST_FUSION_PREFER_MPL
+                   <toolset>gcc:<cxxflags>-std=c++0x
     : build-dir ../bin
     : default-build debug <link>shared <runtime-link>shared <threading>multi
     ;
 
 build-project libs/fusion/example/test ;
 
-#build-project libs/fusion/doc ;
+build-project libs/fusion/doc ;
 #build-project libs/fusion/example/extension ;
-#build-project libs/fusion/example/performance ;
+build-project libs/fusion/example/performance ;
 build-project libs/fusion/test ;
\ No newline at end of file