$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r74385 - in sandbox/SOC/2009/fusion: boost/fusion/algorithm/iteration boost/fusion/algorithm/iteration/detail boost/fusion/algorithm/iteration/ext_ boost/fusion/algorithm/query boost/fusion/algorithm/query/detail boost/fusion/algorithm/query/ext_ boost/fusion/algorithm/transformation boost/fusion/algorithm/transformation/detail/pp boost/fusion/algorithm/transformation/detail/variadic_templates boost/fusion/container/detail boost/fusion/container/ext_ boost/fusion/container/generation boost/fusion/container/generation/detail/pp boost/fusion/container/generation/detail/variadic_templates boost/fusion/container/list boost/fusion/container/vector/detail/pp boost/fusion/functional/generation/detail boost/fusion/functional/invocation/detail boost/fusion/iterator boost/fusion/mpl/detail boost/fusion/sequence boost/fusion/sequence/intrinsic boost/fusion/sequence/intrinsic/ext_ boost/fusion/sequence/io boost/fusion/sequence/io/detail boost/fusion/support boost/fusion/support/ext_ boost/fusion/support/internal boost/fusion/tuple boost/fusion/view/ext_ boost/fusion/view/repetitive_view boost/fusion/view/single_view libs/fusion
From: mr.chr.schmidt_at_[hidden]
Date: 2011-09-15 11:29:33
Author: cschmidt
Date: 2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
New Revision: 74385
URL: http://svn.boost.org/trac/boost/changeset/74385
Log:
Fusion: updates
Removed:
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/ext_/
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/ext_/
   sandbox/SOC/2009/fusion/boost/fusion/container/ext_/
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/ext_/
   sandbox/SOC/2009/fusion/boost/fusion/support/ext_/
   sandbox/SOC/2009/fusion/boost/fusion/view/ext_/
   sandbox/SOC/2009/fusion/libs/fusion/CMakeLists.txt
   sandbox/SOC/2009/fusion/libs/fusion/todo.txt
Text files modified: 
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp                          |     7 +--                                     
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp                         |     6 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/for_each.hpp                     |    12 +++++-                                  
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp                            |    36 +++++++++---------                      
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp                                     |    13 +++---                                  
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp                                     |    15 +++----                                 
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count.hpp                                   |     6 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp                                |    15 +++----                                 
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/find_if.hpp                          |    20 ++++++++++                              
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find.hpp                                    |    28 +++++++++-----                          
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_if.hpp                                 |    29 ++++++---------                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_key.hpp                                |     9 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/none.hpp                                    |    11 ++---                                   
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/clear.hpp                          |     6 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/pp/zip_n.hpp                |    11 ++---                                   
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/variadic_templates/zip.hpp  |     4 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase_key.hpp                      |     6 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter.hpp                         |     6 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter_if.hpp                      |    17 ++++----                                
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert.hpp                         |    15 +++----                                 
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp                   |    74 ++++++++++++++++++++--------------------
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/join.hpp                           |    35 +++++++++---------                      
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_back.hpp                       |    12 +++---                                  
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_front.hpp                      |    12 +++---                                  
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_back.hpp                      |    15 +++----                                 
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_front.hpp                     |     8 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove.hpp                         |     8 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove_if.hpp                      |     6 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace.hpp                        |    13 +++---                                  
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp                     |     6 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/reverse.hpp                        |     8 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp                      |    39 +++++++++-----------                    
   sandbox/SOC/2009/fusion/boost/fusion/container/detail/convert_impl.hpp                           |     9 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/cons_tie.hpp                           |    26 ++++++-------                           
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_map_n.hpp               |     4 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_seq_n.hpp               |     4 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/map_tie_n.hpp                |     3 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/seq_tie_n.hpp                |     4 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp |     4 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_seq.hpp |     5 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/map_tie.hpp  |     8 ++-                                     
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/seq_tie.hpp  |     5 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/make_cons.hpp                          |    13 +++---                                  
   sandbox/SOC/2009/fusion/boost/fusion/container/list/cons.hpp                                     |    10 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/container/list/list_fwd.hpp                                 |    10 ++++                                    
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n.hpp                     |     3 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n_chooser.hpp             |    15 ++++---                                 
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n_chooser_n.hpp           |    28 ++++++++-------                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp           |     5 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/invoke.hpp                     |     9 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/that_ptr.hpp                   |    16 ++++----                                
   sandbox/SOC/2009/fusion/boost/fusion/iterator/advance.hpp                                        |     6 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/iterator/distance.hpp                                       |     4 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp                                       |     6 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/iterator/iterator_facade.hpp                                |    21 +++++-----                              
   sandbox/SOC/2009/fusion/boost/fusion/mpl/detail/begin.hpp                                        |     3 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/mpl/detail/end.hpp                                          |     3 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/sequence/convert.hpp                                        |     5 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic.hpp                                      |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at.hpp                                   |    11 ++---                                   
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp                               |     9 +---                                    
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/back.hpp                                 |     7 +--                                     
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/begin.hpp                                |    17 +++++++--                               
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/empty.hpp                                |     4 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/end.hpp                                  |    17 +++++++--                               
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/front.hpp                                |     5 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/has_key.hpp                              |     4 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/size.hpp                                 |    23 ++++++++++--                            
   sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/in.hpp                                   |     4 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/manip.hpp                                |    48 ++++++++++++------------                
   sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/out.hpp                                  |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/sequence/io/in.hpp                                          |    11 ++---                                   
   sandbox/SOC/2009/fusion/boost/fusion/sequence/io/out.hpp                                         |    15 +++----                                 
   sandbox/SOC/2009/fusion/boost/fusion/sequence/sequence_facade.hpp                                |    24 +++++++-----                            
   sandbox/SOC/2009/fusion/boost/fusion/support/internal/base.hpp                                   |     8 ++-                                     
   sandbox/SOC/2009/fusion/boost/fusion/support/internal/facade_generation.hpp                      |    26 +++++++-------                          
   sandbox/SOC/2009/fusion/boost/fusion/support/pair.hpp                                            |    24 +++++-------                            
   sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple.hpp                                             |     8 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/repetitive_view.hpp                    |    11 ++---                                   
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp                            |    10 ++--                                    
   80 files changed, 533 insertions(+), 493 deletions(-)
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -26,7 +26,7 @@
     }
 
     template<typename Seq, typename State, typename F>
-    inline typename result_of::accumulate<
+    typename result_of::accumulate<
         BOOST_FUSION_R_ELSE_CLREF(Seq)
       , BOOST_FUSION_R_ELSE_CLREF(State)
       , BOOST_FUSION_RREF_ELSE_OBJ(F)
@@ -43,8 +43,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Seq, typename State, typename F>
-    inline typename
-        result_of::accumulate<Seq&, State const&, F>::type
+    typename result_of::accumulate<Seq&, State const&, F>::type
     accumulate(Seq& seq,State const& state,F f)
     {
         return fusion::fold(seq,state,f);
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/fold.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,7 +1,7 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2006 Dan Marsden
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -401,7 +401,7 @@
     }
 
     template<typename Seq, typename State, typename F>
-    inline typename result_of::BOOST_FUSION_FOLD_NAME<
+    typename result_of::BOOST_FUSION_FOLD_NAME<
         BOOST_FUSION_R_ELSE_CLREF(Seq)
       , BOOST_FUSION_R_ELSE_CLREF(State)
       , BOOST_FUSION_RREF_ELSE_OBJ(F)
@@ -423,7 +423,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Seq, typename State, typename F>
-    inline typename result_of::BOOST_FUSION_FOLD_NAME<
+    typename result_of::BOOST_FUSION_FOLD_NAME<
         Seq&
       , State const&
       , F
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the 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,6 +23,7 @@
 #include <boost/preprocessor/tuple/eat.hpp>
 #include <boost/preprocessor/repetition/repeat.hpp>
 #include <boost/preprocessor/repetition/repeat_from_to.hpp>
+#include <boost/mpl/bool.hpp>
 
 namespace boost { namespace fusion { namespace detail
 {
@@ -94,7 +95,14 @@
 #undef BOOST_FUSION_UNROLLED_FOR_EACH_IMPL
 #undef BOOST_FUSION_UNROLLED_FOR_EACH_IMPL_NEXT
 #undef BOOST_FUSION_UNROLLED_FOR_EACH_IMPL_N
-}}}
 
+    template<typename SeqRef, typename F>
+    void
+    for_each(SeqRef seq, BOOST_FUSION_RREF_ELSE_OBJ(F), mpl::false_)
+    {
+        for_each_unrolled<result_of::size<SeqRef>::type::value>(
+            fusion::begin(BOOST_FUSION_FORWARD(SeqRef, seq)));
+    }
+}}}
 
 #endif
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,7 +1,7 @@
 /*==============================================================================
     Copyright (c) 2001-2007 Joel de Guzman
     Copyright (c) 2007 Dan Marsden
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the 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,8 +11,9 @@
 #define BOOST_FUSION_ALGORITHM_ITERATION_FOR_EACH_HPP
 
 #include <boost/fusion/support/internal/base.hpp>
-#include <boost/fusion/sequence/intrinsic/size.hpp>
+#include <boost/fusion/support/is_segmented.hpp>
 #include <boost/fusion/algorithm/iteration/detail/for_each.hpp>
+#include <boost/fusion/algorithm/iteration/detail/for_each_segmented.hpp>
 
 namespace boost { namespace fusion
 {
@@ -22,36 +23,35 @@
         struct for_each
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>))
-            BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>))
+            BOOST_FUSION_MPL_ASSERT((
+                mpl::or_<traits::is_forward<Seq>,traits::is_segmented<Seq> >))
 
             typedef void type;
         };
     }
 
     template<typename Seq, typename F>
-    inline typename
-        result_of::for_each<
-            BOOST_FUSION_R_ELSE_CLREF(Seq)
-          , BOOST_FUSION_RREF_ELSE_OBJ(F)
-        >::type
+    void
     for_each(BOOST_FUSION_R_ELSE_CLREF(Seq) seq,
-            BOOST_FUSION_RREF_ELSE_OBJ(F) f)
+        BOOST_FUSION_RREF_ELSE_OBJ(F) f)
     {
-        detail::for_each_unrolled<
-            result_of::size<BOOST_FUSION_R_ELSE_CLREF(Seq)>::value
-        >::call(
-            fusion::begin(BOOST_FUSION_FORWARD(Seq,seq)),
-            BOOST_FUSION_FORWARD(F,f));
+        detail::for_each<BOOST_FUSION_R_ELSE_CLREF(Seq)>(
+            BOOST_FUSION_FORWARD(Seq,seq),
+            BOOST_FUSION_FORWARD(F,f),
+            typename traits::is_segmented<
+                BOOST_FUSION_R_ELSE_CLREF(Seq)
+            >::type());
     }
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Seq, typename F>
-    inline typename result_of::for_each<Seq&,F>::type
+    void
     for_each(Seq& seq,F f)
     {
-        detail::for_each_unrolled<
-            result_of::size<Seq>::value
-        >::call(fusion::begin(seq),f);
+        detail::for_each<Seq&>(
+            seq,
+            f,
+            typename traits::is_segmented<Seq&>::type());
     }
 #endif
 }}
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,7 +1,7 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2007 Dan Marsden
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -31,11 +31,10 @@
     }
 
     template<typename Seq, typename F>
-    inline typename
-        result_of::all<
-            BOOST_FUSION_R_ELSE_CLREF(Seq)
-          , BOOST_FUSION_RREF_ELSE_OBJ(F)
-        >::type
+    typename result_of::all<
+        BOOST_FUSION_R_ELSE_CLREF(Seq)
+      , BOOST_FUSION_RREF_ELSE_OBJ(F)
+    >::type
     all(BOOST_FUSION_R_ELSE_CLREF(Seq) seq, BOOST_FUSION_RREF_ELSE_OBJ(F) f)
     {
         return detail::unrolled_all<
@@ -46,7 +45,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Seq, typename F>
-    inline typename result_of::all<Seq&, F>::type
+    typename result_of::all<Seq&, F>::type
     all(Seq& seq, F f)
     {
         return detail::unrolled_all<
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -2,7 +2,7 @@
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2005 Eric Niebler
     Copyright (c) 2007 Dan Marsden
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -28,7 +28,7 @@
             {}
 
             template<typename E>
-            inline bool
+            bool
             operator()(BOOST_FUSION_R_ELSE_CLREF(E) e)
             {
                 return !f(BOOST_FUSION_FORWARD(E,e));
@@ -55,11 +55,10 @@
     }
 
     template<typename Seq, typename F>
-    inline typename
-        result_of::any<
-            BOOST_FUSION_R_ELSE_CLREF(Seq)
-          , BOOST_FUSION_RREF_ELSE_OBJ(F)
-        >::type
+    typename result_of::any<
+        BOOST_FUSION_R_ELSE_CLREF(Seq)
+      , BOOST_FUSION_RREF_ELSE_OBJ(F)
+    >::type
     any(BOOST_FUSION_R_ELSE_CLREF(Seq) seq, BOOST_FUSION_RREF_ELSE_OBJ(F) f)
     {
         return !fusion::all(
@@ -70,7 +69,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Seq, typename F>
-    inline typename result_of::any<Seq&,F>::type
+    typename result_of::any<Seq&,F>::type
     any(Seq& seq, F f)
     {
         return !fusion::all(seq,detail::any_helper<F>(f));
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -29,7 +29,7 @@
     }
 
     template<typename Seq, typename T>
-    inline typename result_of::count<
+    typename result_of::count<
         BOOST_FUSION_R_ELSE_CLREF(Seq)
       , BOOST_FUSION_R_ELSE_CLREF(T)
     >::type
@@ -43,7 +43,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Seq, typename T>
-    inline typename result_of::count<Seq&, T const&>::type
+    typename result_of::count<Seq&, T const&>::type
     count(Seq& seq, T const& x)
     {
         return fusion::count_if(seq,detail::count_helper<T const&>(x));
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,7 +1,7 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2007 Dan Marsden
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -27,7 +27,7 @@
             {}
 
             template<typename E>
-            inline int
+            int
             operator()(int count, BOOST_FUSION_R_ELSE_CLREF(E) e)
             {
                 return f(BOOST_FUSION_FORWARD(E,e)) ? ++count : count;
@@ -54,11 +54,10 @@
     }
 
     template<typename Seq, typename F>
-    inline typename
-        result_of::count_if<
-            BOOST_FUSION_R_ELSE_CLREF(Seq)
-          , BOOST_FUSION_RREF_ELSE_OBJ(F)
-        >::type
+    typename result_of::count_if<
+        BOOST_FUSION_R_ELSE_CLREF(Seq)
+      , BOOST_FUSION_RREF_ELSE_OBJ(F)
+    >::type
     count_if(BOOST_FUSION_R_ELSE_CLREF(Seq) seq,
              BOOST_FUSION_RREF_ELSE_OBJ(F) f)
     {
@@ -70,7 +69,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Seq, typename F>
-    inline typename result_of::count_if<Seq&,F>::type
+    typename result_of::count_if<Seq&,F>::type
     count_if(Seq& seq, F f)
     {
         return fusion::fold(seq,
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,7 +1,7 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2007 Dan Marsden
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the 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 +11,8 @@
 #define BOOST_FUSION_ALGORITHM_QUERY_DETAIL_FIND_IF_HPP
 
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/sequence/intrinsic/end.hpp>
+#include <boost/fusion/iterator/value_of.hpp>
 #include <boost/fusion/iterator/equal_to.hpp>
 #include <boost/fusion/iterator/next.hpp>
 #include <boost/fusion/iterator/advance_c.hpp>
@@ -26,6 +28,10 @@
 #include <boost/mpl/or.hpp>
 #include <boost/mpl/apply.hpp>
 #include <boost/mpl/identity.hpp>
+#include <boost/mpl/quote.hpp>
+#include <boost/mpl/lambda.hpp>
+#include <boost/mpl/bind.hpp>
+#include <boost/mpl/placeholders.hpp>
 
 namespace boost { namespace fusion
 {
@@ -194,6 +200,18 @@
                     fusion::begin(BOOST_FUSION_FORWARD(Seq,seq)));
             }
         };
+
+        template<typename Seq, typename Pred>
+        struct find_if
+          : static_find_if<
+                 typename result_of::begin<Seq>::type
+               , typename result_of::end<Seq>::type
+               , mpl::bind1<
+                     typename mpl::lambda<Pred>::type
+                   , mpl::bind1<mpl::quote1<result_of::value_of>,mpl::_1>
+                 >
+            >
+        {};
     }
 }}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,7 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
+    Copyright (c) 2011 Eric Niebler
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -13,11 +14,14 @@
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 #include <boost/fusion/iterator/value_of.hpp>
+#include <boost/fusion/support/is_segmented.hpp>
 #include <boost/fusion/support/internal/workaround.hpp>
+#include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/placeholders.hpp>
 #include <boost/type_traits/is_same.hpp>
 
 #include <boost/fusion/algorithm/query/detail/find_if.hpp>
+#include <boost/fusion/algorithm/query/detail/find_segmented.hpp>
 
 namespace boost { namespace fusion
 {
@@ -25,20 +29,24 @@
     {
         template<typename Seq, typename T>
         struct find
-          : detail::static_seq_find_if<
-                typename begin<Seq>::type
-              , typename end<Seq>::type
-              , is_same<value_of<mpl::_1>, T>
+          : mpl::eval_if<
+                traits::is_segmented<Seq>
+              , detail::find_semented<Seq, T>
+              , detail::static_seq_find_if<
+                    typename begin<Seq>::type
+                  , typename end<Seq>::type
+                  , is_same<value_of<mpl::_1>, T>
+                >
             >
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>))
-            BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>))
+            BOOST_FUSION_MPL_ASSERT((
+                mpl::or_<traits::is_forward<Seq>, traits::is_segmented<Seq> >))
         };
     }
 
     template<typename T, typename Seq>
-    inline typename
-        result_of::find<BOOST_FUSION_R_ELSE_CLREF(Seq), T>::type const
+    typename result_of::find<BOOST_FUSION_R_ELSE_CLREF(Seq), T>::type
     find(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
         return result_of::find<BOOST_FUSION_R_ELSE_CLREF(Seq), T>::call(seq);
@@ -46,8 +54,8 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename T, typename Seq>
-    inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
-            result_of::find<,Seq,&, T>) const
+    BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
+        result_of::find<,Seq,&, T>)
     find(Seq& seq)
     {
         return result_of::find<Seq&, T>::call(seq);
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_if.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_if.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the 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,14 +12,12 @@
 #include <boost/fusion/support/internal/base.hpp>
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 #include <boost/fusion/sequence/intrinsic/end.hpp>
-#include <boost/fusion/iterator/value_of.hpp>
+#include <boost/fusion/support/is_segmented.hpp>
 #include <boost/fusion/support/internal/workaround.hpp>
-#include <boost/mpl/quote.hpp>
-#include <boost/mpl/lambda.hpp>
-#include <boost/mpl/bind.hpp>
-#include <boost/mpl/placeholders.hpp>
+#include <boost/mpl/eval_if.hpp>
 
 #include <boost/fusion/algorithm/query/detail/find_if.hpp>
+#include <boost/fusion/algorithm/query/detail/find_if_segmented.hpp>
 
 namespace boost { namespace fusion
 {
@@ -27,23 +25,20 @@
     {
         template<typename Seq, typename Pred>
         struct find_if
-          : detail::static_find_if<
-                typename begin<Seq>::type
-              , typename end<Seq>::type
-              , mpl::bind1<
-                    typename mpl::lambda<Pred>::type
-                  , mpl::bind1<mpl::quote1<value_of>,mpl::_1>
-                >
+          : mpl::eval_if<
+                typename traits::is_segmented<Seq>::type
+              , detail::find_if_segmented<Seq, Pred>
+              , detail::find_if<Seq, Pred>
             >
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>))
-            BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>))
+            BOOST_FUSION_MPL_ASSERT((
+                mpl::or_<traits::is_forward<Seq>, traits::is_forward<Seq> >))
         };
     }
 
     template<typename Pred, typename Seq>
-    inline typename
-        result_of::find_if<BOOST_FUSION_R_ELSE_CLREF(Seq), Pred>::type
+    typename result_of::find_if<BOOST_FUSION_R_ELSE_CLREF(Seq), Pred>::type
     find_if(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
         return
@@ -54,7 +49,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Pred, typename Seq>
-    inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
+    BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
             result_of::find_if<,Seq,&,Pred>)
     find_if(Seq& seq)
     {
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_key.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_key.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,5 +1,5 @@
 /*==============================================================================
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -36,8 +36,7 @@
     }
 
     template<typename T, typename Seq>
-    inline typename
-        result_of::find_key<BOOST_FUSION_R_ELSE_CLREF(Seq), T>::type const
+    typename result_of::find_key<BOOST_FUSION_R_ELSE_CLREF(Seq), T>::type
     find_key(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
         return result_of::find_key<BOOST_FUSION_R_ELSE_CLREF(Seq), T>::call(
@@ -46,8 +45,8 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename T, typename Seq>
-    inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
-            result_of::find_key<,Seq,&, T>) const
+    BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
+        result_of::find_key<,Seq,&, T>) const
     find_key(Seq& seq)
     {
         return result_of::find_key<Seq&, T>::call(seq);
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/none.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/none.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/none.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -27,11 +27,10 @@
     }
 
     template<typename Seq, typename F>
-    inline typename
-        result_of::none<
-            BOOST_FUSION_R_ELSE_CLREF(Seq)
-          , BOOST_FUSION_RREF_ELSE_OBJ(F)
-        >::type
+    typename result_of::none<
+        BOOST_FUSION_R_ELSE_CLREF(Seq)
+      , BOOST_FUSION_RREF_ELSE_OBJ(F)
+    >::type
     none(BOOST_FUSION_R_ELSE_CLREF(Seq) seq, BOOST_FUSION_RREF_ELSE_OBJ(F) f)
     {
         return !fusion::any(
@@ -41,7 +40,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Seq, typename F>
-    inline typename result_of::none<Seq&, F>::type
+    typename result_of::none<Seq&, F>::type
     none(Seq& seq, F f)
     {
         return !fusion::any(seq,f);
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/clear.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/clear.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/clear.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,8 +1,8 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
@@ -38,7 +38,7 @@
     }
 
     template<typename Seq>
-    inline typename result_of::clear<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
+    typename result_of::clear<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
     clear(BOOST_FUSION_R_ELSE_CLREF(Seq))
     {
         return typename result_of::clear<
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/pp/zip_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/pp/zip_n.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/detail/pp/zip_n.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,5 +1,5 @@
 /*==============================================================================
-    Copyright (c) 2009 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -34,13 +34,12 @@
     }
 
     VARIADIC_TEMPLATE_A(BOOST_FUSION_N)
-    inline
 #if BOOST_FUSION_N
-        typename
+    typename
 #endif
-        result_of::zip<
-            EXPAND_TEMPLATE_ARGUMENTS_A_R_ELSE_CLREF(BOOST_FUSION_N)
-        >::type
+    result_of::zip<
+        EXPAND_TEMPLATE_ARGUMENTS_A_R_ELSE_CLREF(BOOST_FUSION_N)
+    >::type
     zip(EXPAND_TEMPLATE_ARGUMENTS_PARAMETERS_A_R_ELSE_CLREF(BOOST_FUSION_N))
     {
         return
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,5 +1,5 @@
 /*==============================================================================
-    Copyright (c) 2009 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -29,7 +29,7 @@
     }
 
     template<typename... Seqs>
-    inline typename result_of::zip<BOOST_FUSION_R_ELSE_CLREF(Seqs)...>::type
+    typename result_of::zip<BOOST_FUSION_R_ELSE_CLREF(Seqs)...>::type
     zip(BOOST_FUSION_R_ELSE_CLREF(Seqs)... seqs)
     {
         return typename
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -73,7 +73,7 @@
     }
 
     template<typename Key, typename Seq>
-    inline typename result_of::erase_key<
+    typename result_of::erase_key<
         BOOST_FUSION_R_ELSE_CLREF(Seq)
       , Key
     >::type
@@ -86,7 +86,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Key, typename Seq>
-    inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
+    BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
         result_of::erase_key<,Seq,&, Key>)
     erase_key(Seq& seq)
     {
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,7 +1,7 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2005-2006 Dan Marsden
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -30,7 +30,7 @@
     }
 
     template<typename T, typename Seq>
-    inline typename result_of::filter<BOOST_FUSION_R_ELSE_CLREF(Seq), T>::type
+    typename result_of::filter<BOOST_FUSION_R_ELSE_CLREF(Seq), T>::type
     filter(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
         return filter_if<is_same<mpl::_1, T> >(BOOST_FUSION_FORWARD(Seq,seq));
@@ -38,7 +38,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename T, typename Seq>
-    inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
+    BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
             result_of::filter<,Seq,&, T>)
     filter(Seq& seq)
     {
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter_if.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter_if.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,8 +1,8 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
@@ -38,10 +38,9 @@
             typedef filter_view<Seq, Pred, PredIsMetafunction> type;
         };
     }
-    
+
     template<typename Pred, typename Seq>
-    inline typename
-        result_of::filter_if<BOOST_FUSION_R_ELSE_CLREF(Seq), Pred>::type
+    typename result_of::filter_if<BOOST_FUSION_R_ELSE_CLREF(Seq), Pred>::type
     filter_if(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
         return typename result_of::filter_if<
@@ -51,7 +50,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Pred, typename Seq>
-    inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
+    BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
             result_of::filter_if<,Seq,&, Pred>)
     filter_if(Seq& seq)
     {
@@ -60,7 +59,7 @@
 #endif
 
     template<typename Pred, typename PredIsMetafunction, typename Seq>
-    inline typename result_of::filter_if<
+    typename result_of::filter_if<
         BOOST_FUSION_R_ELSE_CLREF(Seq)
       , Pred
       , PredIsMetafunction
@@ -78,12 +77,12 @@
     template<typename Pred, typename PredIsMetafunction, typename Seq>
 #   if defined(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS) ||\
         BOOST_WORKAROUND(__GNUC__,<4)
-    inline typename lazy_disable_if<
+    typename lazy_disable_if<
         is_const<Seq>
       , result_of::filter_if<Seq&,Pred,PredIsMetafunction>
     >::type
 #   else
-    inline typename result_of::filter_if<Seq&,Pred,PredIsMetafunction>::type
+    typename result_of::filter_if<Seq&,Pred,PredIsMetafunction>::type
 #   endif
     filter_if(Seq& seq)
     {
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -36,12 +36,11 @@
     }
 
     template<typename Seq, typename Pos, typename T>
-    inline typename
-        result_of::insert<
-            BOOST_FUSION_R_ELSE_CLREF(Seq)
-          , Pos const&
-          , BOOST_FUSION_R_ELSE_CLREF(T)
-        >::type
+    typename result_of::insert<
+        BOOST_FUSION_R_ELSE_CLREF(Seq)
+      , Pos const&
+      , BOOST_FUSION_R_ELSE_CLREF(T)
+    >::type
     insert(BOOST_FUSION_R_ELSE_CLREF(Seq) seq,
             Pos const& pos,
             BOOST_FUSION_R_ELSE_CLREF(T) x)
@@ -54,7 +53,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Seq, typename Pos, typename T>
-    inline typename result_of::insert<Seq&, Pos const&, T const&>::type
+    typename result_of::insert<Seq&, Pos const&, T const&>::type
     insert(Seq& seq,Pos const& pos,T const& x)
     {
         return insert_range(seq, pos, fusion::make_single_view(x));
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the 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,42 +51,42 @@
         };
     }
 
-#define BOOST_FUSION_INSERT_RANGE(SEQ_CV_REF_MODIFIER,RANGE_CV_REF_MODIFIER)\
-    template<typename Seq, typename Pos, typename Range>\
-    inline typename\
-        result_of::insert_range<\
-            Seq SEQ_CV_REF_MODIFIER\
-          , Pos const&\
-          , Range RANGE_CV_REF_MODIFIER\
-        >::type\
-    insert_range(Seq SEQ_CV_REF_MODIFIER seq,\
-            Pos const& pos,\
-            Range RANGE_CV_REF_MODIFIER range)\
-    {\
-        typedef\
-            result_of::insert_range<\
-                Seq SEQ_CV_REF_MODIFIER\
-              , Pos const&\
-              , Range RANGE_CV_REF_MODIFIER\
-            >\
-        result;\
-        typedef typename result::left_type left_type;\
-        typedef typename result::right_type right_type;\
-        typedef typename result::left_insert_type left_insert_type;\
-        \
-        return typename result::type(\
-                left_insert_type(\
-                    left_type(\
-                        fusion::begin(BOOST_FUSION_FORWARD(Seq,seq)),\
-                        pos\
-                    ),\
-                    static_cast<Range RANGE_CV_REF_MODIFIER>(range)\
-                ),\
-                right_type(\
-                    pos,\
-                    fusion::end(seq)\
-                )\
-               );\
+#define BOOST_FUSION_INSERT_RANGE(SEQ_CV_REF_MODIFIER,RANGE_CV_REF_MODIFIER)    \
+    template<typename Seq, typename Pos, typename Range>                        \
+    typename                                                                    \
+        result_of::insert_range<                                                \
+            Seq SEQ_CV_REF_MODIFIER                                             \
+          , Pos const&                                                          \
+          , Range RANGE_CV_REF_MODIFIER                                         \
+        >::type                                                                 \
+    insert_range(Seq SEQ_CV_REF_MODIFIER seq,                                   \
+            Pos const& pos,                                                     \
+            Range RANGE_CV_REF_MODIFIER range)                                  \
+    {                                                                           \
+        typedef                                                                 \
+            result_of::insert_range<                                            \
+                Seq SEQ_CV_REF_MODIFIER                                         \
+              , Pos const&                                                      \
+              , Range RANGE_CV_REF_MODIFIER                                     \
+            >                                                                   \
+        result;                                                                 \
+        typedef typename result::left_type left_type;                           \
+        typedef typename result::right_type right_type;                         \
+        typedef typename result::left_insert_type left_insert_type;             \
+                                                                                \
+        return typename result::type(                                           \
+                left_insert_type(                                               \
+                    left_type(                                                  \
+                        fusion::begin(BOOST_FUSION_FORWARD(Seq,seq)),           \
+                        pos                                                     \
+                    ),                                                          \
+                    static_cast<Range RANGE_CV_REF_MODIFIER>(range)             \
+                ),                                                              \
+                right_type(                                                     \
+                    pos,                                                        \
+                    fusion::end(seq)                                            \
+                )                                                               \
+               );                                                               \
     }
 
     BOOST_FUSION_INSERT_RANGE(
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,9 +1,9 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2006 Dan Marsden
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
@@ -30,22 +30,21 @@
         };
     }
 
-#define BOOST_FUSION_JOIN(SEQ1_CV_REF_MODIFIER,SEQ2_CV_REF_MODIFIER)\
-    template<typename Seq1, typename Seq2>\
-    inline typename\
-        result_of::join<\
-            Seq1 SEQ1_CV_REF_MODIFIER\
-          , Seq2 SEQ2_CV_REF_MODIFIER\
-        >::type\
-    join(Seq1 SEQ1_CV_REF_MODIFIER seq1,\
-         Seq2 SEQ2_CV_REF_MODIFIER seq2)\
-    {\
-        return typename\
-            result_of::join<\
-                Seq1 SEQ1_CV_REF_MODIFIER\
-              , Seq2 SEQ2_CV_REF_MODIFIER\
-            >::type(static_cast<Seq1 SEQ1_CV_REF_MODIFIER>(seq1)\
-                  , static_cast<Seq2 SEQ2_CV_REF_MODIFIER>(seq2));\
+#define BOOST_FUSION_JOIN(SEQ1_CV_REF_MODIFIER,SEQ2_CV_REF_MODIFIER)            \
+    template<typename Seq1, typename Seq2>                                      \
+    typename                                                                    \
+        result_of::join<                                                        \
+            Seq1 SEQ1_CV_REF_MODIFIER                                           \
+          , Seq2 SEQ2_CV_REF_MODIFIER                                           \
+        >::type                                                                 \
+    join(Seq1 SEQ1_CV_REF_MODIFIER seq1,                                        \
+         Seq2 SEQ2_CV_REF_MODIFIER seq2)                                        \
+    {                                                                           \
+        return typename result_of::join<                                        \
+            Seq1 SEQ1_CV_REF_MODIFIER                                           \
+          , Seq2 SEQ2_CV_REF_MODIFIER                                           \
+        >::type(static_cast<Seq1 SEQ1_CV_REF_MODIFIER>(seq1)                    \
+          , static_cast<Seq2 SEQ2_CV_REF_MODIFIER>(seq2));                      \
     }
 
     BOOST_FUSION_JOIN(
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,8 +1,8 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
@@ -26,17 +26,17 @@
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>))
             BOOST_FUSION_MPL_ASSERT_NOT((empty<Seq>))
 
-            typedef 
+            typedef
                 iterator_range<
                     typename begin<Seq>::type
                   , typename prior<typename end<Seq>::type>::type
-                > 
+                >
             type;
         };
     }
 
     template<typename Seq>
-    inline typename result_of::pop_back<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
+    typename result_of::pop_back<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
     pop_back(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
         return typename
@@ -47,7 +47,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Seq>
-    inline typename result_of::pop_back<Seq&>::type
+    typename result_of::pop_back<Seq&>::type
     pop_back(Seq& seq)
     {
         return typename
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,8 +1,8 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
@@ -26,17 +26,17 @@
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>))
             BOOST_FUSION_MPL_ASSERT_NOT((empty<Seq>))
 
-            typedef 
+            typedef
                 iterator_range<
                     typename next<typename begin<Seq>::type>::type
                   , typename end<Seq>::type
-                > 
+                >
             type;
         };
     }
 
     template<typename Seq>
-    inline typename result_of::pop_front<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
+    typename result_of::pop_front<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
     pop_front(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
         return typename
@@ -49,7 +49,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Seq>
-    inline typename result_of::pop_front<Seq&>::type
+    typename result_of::pop_front<Seq&>::type
     pop_front(Seq& seq)
     {
         return typename
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,8 +1,8 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
@@ -34,11 +34,10 @@
     }
 
     template<typename Seq, typename T>
-    inline typename
-        result_of::push_back<
-            BOOST_FUSION_R_ELSE_CLREF(Seq)
-          , BOOST_FUSION_R_ELSE_CLREF(T)
-        >::type
+    typename result_of::push_back<
+        BOOST_FUSION_R_ELSE_CLREF(Seq)
+      , BOOST_FUSION_R_ELSE_CLREF(T)
+    >::type
     push_back(BOOST_FUSION_R_ELSE_CLREF(Seq) seq, BOOST_FUSION_R_ELSE_CLREF(T) x)
     {
         return typename
@@ -51,7 +50,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Seq, typename T>
-    inline typename result_of::push_back<Seq&, T const&>::type
+    typename result_of::push_back<Seq&, T const&>::type
     push_back(Seq& seq, T const& x)
     {
         return typename result_of::push_back<Seq&, T const&>::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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,8 +1,8 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
@@ -34,7 +34,7 @@
     }
 
     template<typename Seq, typename T>
-    inline typename result_of::push_front<
+    typename result_of::push_front<
         BOOST_FUSION_R_ELSE_CLREF(Seq)
       , BOOST_FUSION_R_ELSE_CLREF(T)
     >::type
@@ -51,7 +51,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Seq, typename T>
-    inline typename result_of::push_front<Seq&, T const&>::type
+    typename result_of::push_front<Seq&, T const&>::type
     push_front(Seq& seq, T const& x)
     {
         return typename result_of::push_front<Seq&, T const&>::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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,8 +1,8 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
@@ -30,7 +30,7 @@
     }
 
     template<typename T, typename Seq>
-    inline typename result_of::remove<BOOST_FUSION_R_ELSE_CLREF(Seq), T>::type
+    typename result_of::remove<BOOST_FUSION_R_ELSE_CLREF(Seq), T>::type
     remove(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
         return fusion::remove_if<is_same<mpl::_1, T> >(
@@ -39,7 +39,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename T, typename Seq>
-    inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
+    BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
         result_of::remove<,Seq,&, T>)
     remove_if(Seq& seq)
     {
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove_if.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove_if.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -29,7 +29,7 @@
     }
 
     template<typename Pred, typename Seq>
-    inline typename result_of::remove_if<
+    typename result_of::remove_if<
         BOOST_FUSION_R_ELSE_CLREF(Seq)
       , Pred
     >::type
@@ -43,7 +43,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Pred, typename Seq>
-    inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
+    BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
             result_of::remove_if<,Seq,&, Pred>)
     remove_if(Seq& seq)
     {
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -74,11 +74,10 @@
     }
 
     template<typename Seq, typename OldValue, typename NewValue>
-    inline typename
-        result_of::replace<
-            BOOST_FUSION_R_ELSE_CLREF(Seq)
-          , BOOST_FUSION_R_ELSE_CLREF(OldValue)
-        >::type
+    typename result_of::replace<
+        BOOST_FUSION_R_ELSE_CLREF(Seq)
+      , BOOST_FUSION_R_ELSE_CLREF(OldValue)
+    >::type
     replace(BOOST_FUSION_R_ELSE_CLREF(Seq) seq,
             BOOST_FUSION_R_ELSE_CLREF(OldValue) old_value,
             BOOST_FUSION_R_ELSE_CLREF(NewValue) new_value)
@@ -108,7 +107,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Seq, typename OldValue, typename NewValue>
-    inline typename result_of::replace<Seq&, OldValue const&>::type
+    typename result_of::replace<Seq&, OldValue const&>::type
     replace(Seq& seq, OldValue const& old_value, NewValue const& new_value)
     {
         BOOST_FUSION_MPL_ASSERT((
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -37,7 +37,7 @@
     }
 
     template<typename Seq, typename F, typename NewValue>
-    inline typename result_of::replace_if<
+    typename result_of::replace_if<
         BOOST_FUSION_R_ELSE_CLREF(Seq)
       , BOOST_FUSION_RREF_ELSE_OBJ(F)
       , BOOST_FUSION_R_ELSE_CLREF(NewValue)
@@ -63,7 +63,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Seq, typename F, typename NewValue>
-    inline typename result_of::replace_if<Seq&, F, NewValue const&>::type
+    typename result_of::replace_if<Seq&, F, NewValue const&>::type
     replace_if(Seq& seq,F pred,NewValue const& new_value)
     {
         typedef result_of::replace_if<Seq&, F, NewValue const&> result;
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,8 +1,8 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
@@ -27,7 +27,7 @@
     }
 
     template<typename Seq>
-    inline typename result_of::reverse<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
+    typename result_of::reverse<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
     reverse(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
         return typename result_of::reverse<
@@ -37,7 +37,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Seq>
-    inline typename result_of::reverse<Seq&>::type
+    typename result_of::reverse<Seq&>::type
     reverse(Seq& seq)
     {
         return typename result_of::reverse<Seq&>::type(seq);
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -76,12 +76,11 @@
 
     //TODO boost config macro for default arguments for function templates
     template<typename IsAssociative,typename Seq, typename F>
-    inline typename
-        result_of::transform<
-            BOOST_FUSION_R_ELSE_CLREF(Seq)
-          , BOOST_FUSION_RREF_ELSE_OBJ(F)
-          , IsAssociative
-        >::type
+    typename result_of::transform<
+        BOOST_FUSION_R_ELSE_CLREF(Seq)
+      , BOOST_FUSION_RREF_ELSE_OBJ(F)
+      , IsAssociative
+    >::type
     transform(BOOST_FUSION_R_ELSE_CLREF(Seq) seq,
             BOOST_FUSION_RREF_ELSE_OBJ(F) f)
     {
@@ -93,11 +92,10 @@
     }
 
     template<typename Seq, typename F>
-    inline typename
-        result_of::transform<
-            BOOST_FUSION_R_ELSE_CLREF(Seq)
-          , BOOST_FUSION_RREF_ELSE_OBJ(F)
-        >::type
+    typename result_of::transform<
+        BOOST_FUSION_R_ELSE_CLREF(Seq)
+      , BOOST_FUSION_RREF_ELSE_OBJ(F)
+    >::type
     transform(BOOST_FUSION_R_ELSE_CLREF(Seq) seq,
             BOOST_FUSION_RREF_ELSE_OBJ(F) f)
     {
@@ -109,7 +107,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename IsAssociative,typename Seq, typename F>
-    inline typename result_of::transform<Seq&, F>::type
+    typename result_of::transform<Seq&, F>::type
     transform(Seq& seq, F f)
     {
 #ifdef BOOST_MSVC
@@ -124,7 +122,7 @@
     }
 
     template<typename Seq, typename F>
-    inline typename result_of::transform<Seq&, F>::type
+    typename result_of::transform<Seq&, F>::type
     transform(Seq& seq, F f)
     {
         return typename result_of::transform<Seq&, F>::type(seq, f);
@@ -133,7 +131,7 @@
 
 #define BOOST_FUSION_TRANSFORM_BINARY(SEQ1_CV_REF_MODIFIER,SEQ2_CV_REF_MODIFIER)\
     template<typename IsAssociative,typename Seq1, typename Seq2, typename F>\
-    inline typename\
+    typename\
         result_of::transform<\
             Seq1 SEQ1_CV_REF_MODIFIER\
           , Seq2 SEQ2_CV_REF_MODIFIER\
@@ -156,12 +154,11 @@
     }\
     \
     template<typename Seq1, typename Seq2, typename F>\
-    inline typename\
-        result_of::transform<\
-            Seq1 SEQ1_CV_REF_MODIFIER\
-          , Seq2 SEQ2_CV_REF_MODIFIER\
-          , BOOST_FUSION_RREF_ELSE_OBJ(F)\
-        >::type\
+    typename result_of::transform<\
+        Seq1 SEQ1_CV_REF_MODIFIER\
+      , Seq2 SEQ2_CV_REF_MODIFIER\
+      , BOOST_FUSION_RREF_ELSE_OBJ(F)\
+    >::type\
     transform(Seq1 SEQ1_CV_REF_MODIFIER seq1\
           , Seq2 SEQ2_CV_REF_MODIFIER seq2\
           , BOOST_FUSION_RREF_ELSE_OBJ(F) f)\
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,5 +1,5 @@
 /*==============================================================================
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -76,10 +76,9 @@
     }
 
     template<typename Seq>
-    inline typename
-        result_of::BOOST_PP_CAT(as_,BOOST_FUSION_SEQ_NAME)<
-            BOOST_FUSION_R_ELSE_CLREF(Seq)
-        >::type
+    typename result_of::BOOST_PP_CAT(as_,BOOST_FUSION_SEQ_NAME)<
+        BOOST_FUSION_R_ELSE_CLREF(Seq)
+    >::type
     BOOST_PP_CAT(as_,BOOST_FUSION_SEQ_NAME)(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
         return result_of::BOOST_PP_CAT(as_,BOOST_FUSION_SEQ_NAME)<
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2005 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -31,9 +31,8 @@
         };
     }
 
-    // $$$ do we really want a cons_tie? $$$
     template<typename Car>
-    inline typename result_of::cons_tie<BOOST_FUSION_R_ELSE_LREF(Car)>::type
+    typename result_of::cons_tie<BOOST_FUSION_R_ELSE_LREF(Car)>::type
     cons_tie(BOOST_FUSION_R_ELSE_LREF(Car) car)
     {
         return typename
@@ -42,20 +41,19 @@
     }
 
     template<typename Car, typename Cdr>
-    inline typename
-        result_of::cons_tie<
-            BOOST_FUSION_R_ELSE_LREF(Car)
-          , BOOST_FUSION_R_ELSE_LREF(Cdr)
-        >::type
+    typename result_of::cons_tie<
+        BOOST_FUSION_R_ELSE_LREF(Car)
+      , BOOST_FUSION_R_ELSE_LREF(Cdr)
+    >::type
     cons_tie(BOOST_FUSION_R_ELSE_LREF(Car) car
            , BOOST_FUSION_R_ELSE_LREF(Cdr) cdr)
     {
-        return typename
-            result_of::cons_tie<
-                BOOST_FUSION_R_ELSE_LREF(Car)
-              , BOOST_FUSION_R_ELSE_LREF(Cdr)>::type(
-                    BOOST_FUSION_FORWARD(Car,car)
-                  , BOOST_FUSION_FORWARD(Cdr,cdr));
+        return typename result_of::cons_tie<
+            BOOST_FUSION_R_ELSE_LREF(Car)
+          , BOOST_FUSION_R_ELSE_LREF(Cdr)
+        >::type(
+            BOOST_FUSION_FORWARD(Car,car)
+          , BOOST_FUSION_FORWARD(Cdr,cdr));
     }
 }}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_map_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_map_n.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_map_n.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -49,7 +49,6 @@
       , BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, typename A)
     >
 #endif
-    inline
 #if BOOST_FUSION_N
         typename
 #endif
@@ -74,4 +73,3 @@
 
 #undef BOOST_FUSION_COMMA
 #undef BOOST_FUSION_N
-
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_seq_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_seq_n.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/make_seq_n.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,5 +1,5 @@
 /*==============================================================================
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -27,7 +27,6 @@
     }
 
     VARIADIC_TEMPLATE_A(BOOST_FUSION_N)
-    inline
 #if BOOST_FUSION_N
         typename
 #endif
@@ -47,4 +46,3 @@
     }
 
 #undef BOOST_FUSION_N
-
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/map_tie_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/map_tie_n.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/map_tie_n.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,7 +1,7 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2006 Dan Marsden
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -50,7 +50,6 @@
       , BOOST_PP_ENUM_PARAMS(BOOST_FUSION_N, typename A)
     >
 #endif
-    inline
 #if BOOST_FUSION_N
         typename
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/seq_tie_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/seq_tie_n.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/pp/seq_tie_n.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,5 +1,5 @@
 /*==============================================================================
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -27,7 +27,6 @@
     }
 
     VARIADIC_TEMPLATE_A(BOOST_FUSION_N)
-    inline
 #if BOOST_FUSION_N
         typename
 #endif
@@ -63,4 +62,3 @@
     }
 
 #undef BOOST_FUSION_N
-
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,5 +1,5 @@
 /*==============================================================================
-    Copyright (c) 2009 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -70,7 +70,7 @@
     }
 
     template<typename... Keys, typename... Types>
-    inline typename
+    typename
         result_of::make_map<Keys...,BOOST_FUSION_R_ELSE_CLREF(Types)...>::type
     make_map(BOOST_FUSION_R_ELSE_CLREF(Types)... types)
     {
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_seq.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_seq.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_seq.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,5 +1,5 @@
 /*==============================================================================
-    Copyright (c) 2009 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the 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,7 +23,7 @@
     }
 
     template<typename... Types>
-    inline typename result_of::BOOST_FUSION_FUNCTION_NAME<
+    typename result_of::BOOST_FUSION_FUNCTION_NAME<
         BOOST_FUSION_R_ELSE_CLREF(Types)...
     >::type
     BOOST_PP_CAT(make_,BOOST_FUSION_SEQ_NAME)(
@@ -34,4 +34,3 @@
         >::type(BOOST_FUSION_FORWARD(Types, types)...);
     }
 }}
-
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/map_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/map_tie.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/map_tie.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,5 +1,5 @@
 /*==============================================================================
-    Copyright (c) 2009 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -73,8 +73,10 @@
     }
 
     template<typename... Keys, typename... Types>
-    inline typename
-        result_of::map_tie<Keys...,BOOST_FUSION_R_ELSE_LREF(Types)...>::type
+    typename result_of::map_tie<
+        Keys...
+      , BOOST_FUSION_R_ELSE_LREF(Types)...
+    >::type
     map_tie(BOOST_FUSION_R_ELSE_LREF(Types)... types)
     {
         return typename result_of::map_tie<
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,5 +1,5 @@
 /*==============================================================================
-    Copyright (c) 2009 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -25,7 +25,7 @@
     }
 
     template<typename... Types>
-    inline typename result_of::BOOST_FUSION_FUNCTION_NAME<
+    typename result_of::BOOST_FUSION_FUNCTION_NAME<
         BOOST_FUSION_R_ELSE_LREF(Types)...
     >::type
     BOOST_FUSION_FUNCTION_NAME(BOOST_FUSION_R_ELSE_LREF(Types)... types)
@@ -41,4 +41,3 @@
         );
     }
 }}
-
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,7 +1,7 @@
 /*==============================================================================
     Copyright (c) 2005 Joel de Guzman
     Copyright (c) 2005 Eric Niebler
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -33,7 +33,7 @@
     }
 
     template<typename Car>
-    inline typename result_of::make_cons<BOOST_FUSION_R_ELSE_CLREF(Car)>::type
+    typename result_of::make_cons<BOOST_FUSION_R_ELSE_CLREF(Car)>::type
     make_cons(BOOST_FUSION_R_ELSE_CLREF(Car) car)
     {
         typedef typename
@@ -44,11 +44,10 @@
     }
 
     template<typename Car, typename Cdr>
-    inline typename
-        result_of::make_cons<
-            BOOST_FUSION_R_ELSE_CLREF(Car)
-          , BOOST_FUSION_R_ELSE_CLREF(Cdr)
-        >::type
+    typename result_of::make_cons<
+        BOOST_FUSION_R_ELSE_CLREF(Car)
+      , BOOST_FUSION_R_ELSE_CLREF(Cdr)
+    >::type
     make_cons(BOOST_FUSION_R_ELSE_CLREF(Car) car,
               BOOST_FUSION_R_ELSE_CLREF(Cdr) cdr)
     {
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/cons.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/cons.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/cons.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,7 +1,7 @@
 /*==============================================================================
     Copyright (c) 2005 Joel de Guzman
     Copyright (c) 2005 Eric Niebler
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -27,7 +27,7 @@
 #endif
 #include <boost/utility/enable_if.hpp>
 
-#include <boost/fusion/container/list/detail/cons_fwd.hpp>
+#include <boost/fusion/container/list/list_fwd.hpp>
 #include <boost/fusion/container/list/detail/cons_iterator.hpp>
 #include <boost/fusion/container/list/detail/value_at_impl.hpp>
 #include <boost/fusion/container/list/detail/at_impl.hpp>
@@ -58,7 +58,7 @@
 
         typedef mpl::int_<0> size;
         typedef cons_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
+        typedef fusion_sequence_tag tag;
         typedef forward_traversal_tag category;
 
         nil()
@@ -104,7 +104,7 @@
         {}
     };
 
-    template<typename Car, typename Cdr = nil>
+    template<typename Car, typename Cdr>
     struct cons
     {
         typedef Car car_type;
@@ -112,7 +112,7 @@
 
         typedef mpl::int_<Cdr::size::value+1> size;
         typedef cons_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
+        typedef fusion_sequence_tag tag;
         typedef forward_traversal_tag category;
 
         cons()
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2005 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -15,8 +15,16 @@
 
 namespace boost { namespace fusion
 {
+    struct list_tag;
+    struct cons_tag;
+
     VARIADIC_TEMPLATE_WITH_DEFAULT(FUSION_MAX_LIST_SIZE)
     struct list;
+
+    struct nil;
+
+    template<typename Car, typename Cdr=nil>
+    struct cons;
 }}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -328,4 +328,3 @@
 
 #   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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,8 +1,8 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
@@ -28,15 +28,18 @@
 
 #include <boost/preprocessor/cat.hpp>
 
-namespace boost { namespace fusion { namespace detail
+namespace boost { namespace fusion
 {
-    VARIADIC_TEMPLATE_WITH_DEFAULT(FUSION_MAX_VECTOR_SIZE)
-    struct vector_n_chooser;
+    namespace detail
+    {
+        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_n.hpp>
 #define BOOST_PP_ITERATION_LIMITS (0, FUSION_MAX_VECTOR_SIZE)
 #include BOOST_PP_ITERATE()
 
-}}}
+}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n_chooser_n.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n_chooser_n.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/pp/vector_n_chooser_n.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,24 +1,26 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
 #define BOOST_FUSION_N BOOST_PP_ITERATION()
 
-    VARIADIC_TEMPLATE(BOOST_FUSION_N)
-    struct vector_n_chooser
-        EXPAND_TEMPLATE_ARGUMENTS_SPECIALIZATION(
-            FUSION_MAX_VECTOR_SIZE,BOOST_FUSION_N)
+    namespace detail
     {
-        typedef
-            BOOST_PP_CAT(vector, BOOST_FUSION_N)<
-                EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
-            >
-        type;
-    };
+        VARIADIC_TEMPLATE(BOOST_FUSION_N)
+        struct vector_n_chooser
+            EXPAND_TEMPLATE_ARGUMENTS_SPECIALIZATION(
+                FUSION_MAX_VECTOR_SIZE,BOOST_FUSION_N)
+        {
+            typedef
+                BOOST_PP_CAT(vector, BOOST_FUSION_N)<
+                    EXPAND_TEMPLATE_ARGUMENTS(BOOST_FUSION_N)
+                >
+            type;
+        };
+    }
 
 #undef BOOST_FUSION_N
-
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,7 +1,7 @@
 /*==============================================================================
     Copyright (c) 2007 Tobias Schwinger
 
-    Use modification and distribution are subject to the Boost Software 
+    Use modification and distribution are subject to the Boost Software
     License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
     http://www.boost.org/LICENSE_1_0.txt).
 ==============================================================================*/
@@ -27,7 +27,7 @@
     }
 
     template<typename F>
-    inline typename
+    typename
         result_of::BOOST_FUSION_FUNC_NAME<BOOST_FUSION_RREF_ELSE_OBJ(F)>::type
     BOOST_FUSION_FUNC_NAME(BOOST_FUSION_RREF_ELSE_OBJ(F) f)
     {
@@ -38,4 +38,3 @@
 }}
 
 #undef BOOST_FUSION_FUSED_CLASS_NAME
-
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/invoke.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/invoke.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/invoke.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,5 +1,5 @@
 /*==============================================================================
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -35,7 +35,7 @@
 #if defined(BOOST_FUSION_NO_RVALUE_REFERENCES) ||\
     defined(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS)
     template<typename F, typename Seq>
-    inline typename result_of::BOOST_FUSION_INVOKE_NAME<F, Seq const&>::type
+    typename result_of::BOOST_FUSION_INVOKE_NAME<F, Seq const&>::type
     BOOST_FUSION_INVOKE_NAME(F f, BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
          return result_of::BOOST_FUSION_INVOKE_NAME<
@@ -46,7 +46,7 @@
 
 #   ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename F, typename Seq>
-    inline typename result_of::BOOST_FUSION_INVOKE_NAME<F,Seq&>::type
+    typename result_of::BOOST_FUSION_INVOKE_NAME<F,Seq&>::type
     BOOST_FUSION_INVOKE_NAME(F f,Seq& seq)
     {
         return result_of::BOOST_FUSION_INVOKE_NAME<F,Seq&>::call(f,seq);
@@ -54,7 +54,7 @@
 #   endif
 #else
     template<typename FQualified=void,typename F=void, typename Seq=void>
-    inline typename result_of::BOOST_FUSION_INVOKE_NAME<
+    typename result_of::BOOST_FUSION_INVOKE_NAME<
         typename mpl::if_c<
             is_same<FQualified, void>::value
           , F&&
@@ -75,4 +75,3 @@
     }
 #endif
 }}
-
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/that_ptr.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/that_ptr.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/that_ptr.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,8 +1,8 @@
 /*==============================================================================
     Copyright (c) 2006-2007 Tobias Schwinger
-    Copyright (c) 2009 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
-    Use modification and distribution are subject to the Boost Software 
+    Use modification and distribution are subject to the Boost Software
     License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
     http://www.boost.org/LICENSE_1_0.txt).
 ==============================================================================*/
@@ -29,34 +29,34 @@
         typedef typename detail::remove_reference<WantedRef>::type* wanted;
 
         template<typename T>
-        static inline wanted
+        static wanted
         do_get_pointer(BOOST_FUSION_R_ELSE_LREF(T), wanted ptr)
         {
             return ptr;
         }
 
         template<typename T>
-        static inline wanted
+        static wanted
         do_get_pointer(BOOST_FUSION_R_ELSE_LREF(T) t, void const*)
         {
             return get_pointer(BOOST_FUSION_FORWARD(T,t));
         }
 
     public:
-        static inline wanted
+        static wanted
         get(WantedRef x)
         {
             return boost::addressof(x);
         }
 
-        static inline wanted
+        static wanted
         get(wanted ptr)
         {
             return ptr;
         }
 
         template<typename T>
-        static inline wanted
+        static wanted
         get(BOOST_FUSION_R_ELSE_LREF(T) t,
             //TODO
             typename disable_if<
@@ -76,7 +76,7 @@
     {
         using boost::get_pointer;
         void const* get_pointer(...);
-  
+
         template<typename T>
         small_type const_tester(T*);
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/advance.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/advance.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/advance.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -60,14 +60,14 @@
     }
 
     template<int N, typename It>
-    inline typename result_of::advance_c<It const&, N>::type
+    typename result_of::advance_c<It const&, N>::type
     advance_c(It const& it)
     {
         return result_of::advance_c<It const&, N>::call(it);
     }
 
     template<typename N, typename It>
-    inline typename result_of::advance<It const&, N>::type
+    typename result_of::advance<It const&, N>::type
     advance(It const& it)
     {
         return result_of::advance<It const&, N>::call(it);
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/distance.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/distance.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/distance.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -42,7 +42,7 @@
     }
 
     template<typename Begin, typename End>
-    inline typename result_of::distance<Begin const&, End const&>::type
+    typename result_of::distance<Begin const&, End const&>::type
     distance(Begin const&, End const&)
     {
         return typename result_of::distance<Begin const&, End const&>::type();
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -39,7 +39,7 @@
     namespace iterator_operators
     {
         template<typename It1, typename It2>
-        inline BOOST_FUSION_CONSTEXPR
+        BOOST_FUSION_CONSTEXPR
         typename enable_if<
             mpl::and_<traits::is_iterator<It1>, traits::is_iterator<It2> >
           , bool
@@ -50,7 +50,7 @@
         }
 
         template<typename It1, typename It2>
-        inline BOOST_FUSION_CONSTEXPR
+        BOOST_FUSION_CONSTEXPR
         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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -12,16 +12,17 @@
 #include <boost/fusion/support/internal/facade_generation.hpp>
 
 #define BOOST_FUSION_ITERATOR_INTRINSIC_FUNCS                                   \
-    ((advance, 1, 1))                                                           \
-    ((deref_data, 0, 0))                                                        \
-    ((deref, 0, 0))                                                             \
-    ((distance, 1, 0))                                                          \
-    ((equal_to, 1, 0))                                                          \
-    ((key_of, 0, 0))                                                            \
-    ((next, 0, 0))                                                              \
-    ((prior, 0, 0))                                                             \
-    ((value_of_data, 0, 0))                                                     \
-    ((value_of, 0, 0))
+    ((advance, 1))                                                              \
+    ((deref_data, 0))                                                           \
+    ((deref, 0))                                                                \
+    ((distance, 1))                                                             \
+    ((equal_to, 1))                                                             \
+    ((is_segmented, 0))                                                         \
+    ((key_of, 0))                                                               \
+    ((next, 0))                                                                 \
+    ((prior, 0))                                                                \
+    ((value_of_data, 0))                                                        \
+    ((value_of, 0))
 
 BOOST_FUSION_FACADE_DEFINE_INTRINSIC_FUNCS_WRAPPER(
     iterator_facade_tag, BOOST_FUSION_ITERATOR_INTRINSIC_FUNCS)
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/detail/begin.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/detail/begin.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/detail/begin.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the 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,7 +9,6 @@
 #ifndef BOOST_FUSION_MPL_DETAIL_BEGIN_HPP
 #define BOOST_FUSION_MPL_DETAIL_BEGIN_HPP
 
-#include <boost/fusion/container/vector/convert.hpp>
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 #include <boost/fusion/mpl/detail/fusion_iterator.hpp>
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/mpl/detail/end.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/mpl/detail/end.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/mpl/detail/end.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the 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,7 +9,6 @@
 #ifndef BOOST_FUSION_MPL_DETAIL_END_HPP
 #define BOOST_FUSION_MPL_DETAIL_END_HPP
 
-#include <boost/fusion/container/vector/convert.hpp>
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 #include <boost/fusion/mpl/detail/fusion_iterator.hpp>
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/convert.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/convert.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,5 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the 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,7 +12,6 @@
 #include <boost/fusion/support/internal/base.hpp>
 #include <boost/fusion/container/vector/convert.hpp>
 
-//TODO doc!!!
 namespace boost { namespace fusion
 {
     namespace extension
@@ -45,8 +45,7 @@
     }
 
     template<typename Tag, typename Seq>
-    inline typename
-        result_of::convert<Tag, BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
+    typename result_of::convert<Tag, BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
     convert(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
         return result_of::convert<
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -17,6 +17,7 @@
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 #include <boost/fusion/sequence/intrinsic/front.hpp>
 #include <boost/fusion/sequence/intrinsic/has_key.hpp>
+#include <boost/fusion/sequence/intrinsic/segments.hpp>
 #include <boost/fusion/sequence/intrinsic/size.hpp>
 #include <boost/fusion/sequence/intrinsic/swap.hpp>
 #include <boost/fusion/sequence/intrinsic/value_at_c.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -73,7 +73,7 @@
     }
 
     template<typename N, typename Seq>
-    inline typename result_of::at<BOOST_FUSION_R_ELSE_CLREF(Seq), N>::type
+    typename result_of::at<BOOST_FUSION_R_ELSE_CLREF(Seq), N>::type
     at(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
         return result_of::at<BOOST_FUSION_R_ELSE_CLREF(Seq), N>::call(
@@ -82,7 +82,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename N, typename Seq>
-    inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
+    BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
             result_of::at<,Seq,&,N>)
     at(Seq& seq)
     {
@@ -91,8 +91,7 @@
 #endif
 
     template<int N, typename Seq>
-    inline typename
-        result_of::at_c<BOOST_FUSION_R_ELSE_CLREF(Seq), N>::type
+    typename result_of::at_c<BOOST_FUSION_R_ELSE_CLREF(Seq), N>::type
     at_c(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
         return fusion::at<mpl::int_<N> >(BOOST_FUSION_FORWARD(Seq,seq));
@@ -100,7 +99,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<int N, typename Seq>
-    inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
+    BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
             result_of::at_c<,Seq,&, N>)
     at_c(Seq& seq)
     {
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,7 +1,7 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2006 Dan Marsden
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -59,10 +59,7 @@
     }
 
     template<typename Key, typename Seq>
-    inline typename result_of::at_key<
-        BOOST_FUSION_R_ELSE_CLREF(Seq)
-      , Key
-    >::type
+    typename result_of::at_key<BOOST_FUSION_R_ELSE_CLREF(Seq), Key>::type
     at_key(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
         return result_of::at_key<BOOST_FUSION_R_ELSE_CLREF(Seq), Key>::call(
@@ -71,7 +68,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Key, typename Seq>
-    inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
+    BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
         result_of::at_key<,Seq,&,Key>)
     at_key(Seq& seq)
     {
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/back.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/back.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/back.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the 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 +13,6 @@
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 #include <boost/fusion/iterator/prior.hpp>
 #include <boost/fusion/iterator/deref.hpp>
-#include <boost/mpl/bool.hpp>
 
 namespace boost { namespace fusion
 {
@@ -30,7 +29,7 @@
     }
 
     template<typename Seq>
-    inline typename result_of::back<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
+    typename result_of::back<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
     back(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
         return fusion::deref(fusion::prior(fusion::end(
@@ -39,7 +38,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Seq>
-    inline typename result_of::back<Seq&>::type
+    typename result_of::back<Seq&>::type
     back(Seq& seq)
     {
         return fusion::deref(fusion::prior(fusion::end(seq)));
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/begin.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/begin.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/begin.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the 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,13 +13,22 @@
 #include <boost/fusion/support/tag_of.hpp>
 #include <boost/fusion/support/is_sequence.hpp>
 #include <boost/utility/enable_if.hpp>
+#include <boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp>
 
 namespace boost { namespace fusion
 {
     namespace extension
     {
         template<typename>
-        struct begin_impl;
+        struct begin_impl
+        {
+            template<typename Seq>
+            struct apply
+              : detail::segmented_begin<Seq>
+            {
+                BOOST_FUSION_MPL_ASSERT((traits::is_segmented<Seq>))
+            };
+        };
     }
 
     namespace result_of
@@ -36,7 +45,7 @@
     }
 
     template<typename Seq>
-    inline typename lazy_enable_if<
+    typename lazy_enable_if<
         traits::is_sequence<BOOST_FUSION_R_ELSE_CLREF(Seq)>
       , result_of::begin<BOOST_FUSION_R_ELSE_CLREF(Seq)>
     >::type
@@ -48,7 +57,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Seq>
-    inline typename lazy_enable_if<
+    typename lazy_enable_if<
         traits::is_sequence<Seq&>
       , result_of::begin<Seq&>
     >::type
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/empty.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/empty.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/empty.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -41,7 +41,7 @@
     }
 
     template<typename Seq>
-    inline typename result_of::empty<Seq const&>::type
+    typename result_of::empty<Seq const&>::type
     empty(Seq const&)
     {
         return typename result_of::empty<Seq const&>::type();
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/end.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/end.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/end.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the 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,13 +13,22 @@
 #include <boost/fusion/support/tag_of.hpp>
 #include <boost/fusion/support/is_sequence.hpp>
 #include <boost/utility/enable_if.hpp>
+#include <boost/fusion/sequence/intrinsic/detail/segmented_end.hpp>
 
 namespace boost { namespace fusion
 {
     namespace extension
     {
         template<typename>
-        struct end_impl;
+        struct end_impl
+        {
+            template<typename Seq>
+            struct apply
+              : detail::segmented_end<Seq>
+            {
+                BOOST_FUSION_MPL_ASSERT((traits::is_segmented<Seq>))
+            };
+        };
     }
 
     namespace result_of
@@ -35,7 +44,7 @@
     }
 
     template<typename Seq>
-    inline typename lazy_enable_if<
+    typename lazy_enable_if<
         traits::is_sequence<BOOST_FUSION_R_ELSE_CLREF(Seq)>
       , result_of::end<BOOST_FUSION_R_ELSE_CLREF(Seq)>
     >::type
@@ -47,7 +56,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Seq>
-    inline typename lazy_enable_if<
+    typename lazy_enable_if<
         traits::is_sequence<Seq&>
       , result_of::end<Seq&>
     >::type
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/front.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/front.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/front.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,5 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -29,7 +30,7 @@
     }
 
     template<typename Seq>
-    inline typename result_of::front<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
+    typename result_of::front<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
     front(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
         return fusion::deref(fusion::begin(BOOST_FUSION_FORWARD(Seq,seq)));
@@ -37,7 +38,7 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Seq>
-    inline typename result_of::front<Seq&>::type
+    typename result_of::front<Seq&>::type
     front(Seq& seq)
     {
         return fusion::deref(fusion::begin(seq));
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/has_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/has_key.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/has_key.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -49,7 +49,7 @@
     }
 
     template<typename Key, typename Seq>
-    inline typename result_of::has_key<Seq const&, Key>::type
+    typename result_of::has_key<Seq const&, Key>::type
     has_key(Seq const& seq)
     {
         return typename result_of::has_key<Seq const&, Key>::type();
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/size.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/size.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/size.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,5 +1,7 @@
+
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,12 +11,22 @@
 #define BOOST_FUSION_SEQUENCE_INTRINSIC_SIZE_HPP
 
 #include <boost/fusion/support/internal/base.hpp>
+#include <boost/fusion/support/is_segmented.hpp>
 #include <boost/fusion/support/tag_of.hpp>
-
+#include <boost/mpl/if.hpp>
 #include <boost/mpl/int.hpp>
+#include <boost/fusion/sequence/intrinsic/detail/segmented_size.hpp>
 
 namespace boost { namespace fusion
 {
+    namespace detail
+    {
+        template<typename Seq>
+        struct size
+          : remove_reference<Seq>::type::size
+        {};
+    }
+
     namespace extension
     {
         template<typename>
@@ -22,7 +34,11 @@
         {
             template<typename Seq>
             struct apply
-              : detail::remove_reference<Seq>::type::size
+              : mpl::if_<
+                    traits::is_segmented<Seq>
+                  , detail::segmented_size<Seq>
+                  , detail::size<Seq>
+                >::type
             {};
         };
     }
@@ -35,12 +51,11 @@
                 template apply<Seq>::type
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>))
-            BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>))
         };
     }
 
     template<typename Seq>
-    inline typename result_of::size<Seq const&>::type
+    typename result_of::size<Seq const&>::type
     size(Seq const&)
     {
         return typename result_of::size<Seq const&>::type();
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/in.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/in.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/in.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -3,7 +3,7 @@
     Copyright (c) 1999-2003 Jeremiah Willcock
     Copyright (c) 2001-2006 Joel de Guzman
 
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
@@ -79,7 +79,7 @@
     };
 
     template<typename IS, typename Seq>
-    inline void
+    void
     read_sequence(IS& is, Seq& seq)
     {
         delimiter_in<tuple_open_tag>::read(is, "(");
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/manip.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/manip.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/manip.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -3,7 +3,7 @@
     Copyright (c) 1999-2003 Jaakko Jarvi
     Copyright (c) 2001-2006 Joel de Guzman
 
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
@@ -27,7 +27,7 @@
 #endif
 
 //$$$ these should be part of the public API$$$
-//$$$ rename tuple_open, tuple_close and tuple_delimiter to 
+//$$$ rename tuple_open, tuple_close and tuple_delimiter to
 //    open, close and delimeter and add these synonyms to the
 //    TR1 tuple module.
 
@@ -164,14 +164,14 @@
             name##_type(const string_type& d): data(d) {}                       \
         };                                                                      \
                                                                                 \
-        template<typename Stream>                                              \
+        template<typename Stream>                                               \
         Stream& operator>>(Stream& s, const name##_type& m)                     \
         {                                                                       \
             string_ios_manip<name##_tag, Stream>(s).set(m.data);                \
             return s;                                                           \
         }                                                                       \
                                                                                 \
-        template<typename Stream>                                              \
+        template<typename Stream>                                               \
         Stream& operator<<(Stream& s, const name##_type& m)                     \
         {                                                                       \
             string_ios_manip<name##_tag, Stream>(s).set(m.data);                \
@@ -180,19 +180,19 @@
     }
 
 #define STD_TUPLE_DEFINE_MANIPULATOR_FUNCTIONS(name)                            \
-    inline detail::name##_type                                                  \
+    detail::name##_type                                                         \
     name(const std::string& s)                                                  \
     {                                                                           \
         return detail::name##_type(s);                                          \
     }                                                                           \
                                                                                 \
-    inline detail::name##_type                                                  \
+    detail::name##_type                                                         \
     name(const char* s)                                                         \
     {                                                                           \
         return detail::name##_type(std::string(s));                             \
     }                                                                           \
                                                                                 \
-    inline detail::name##_type                                                  \
+    detail::name##_type                                                         \
     name(char c)                                                                \
     {                                                                           \
         return detail::name##_type(std::string(1, c));                          \
@@ -203,32 +203,32 @@
 #if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
 
 #define STD_TUPLE_DEFINE_MANIPULATOR_FUNCTIONS(name)                            \
-    template<typename Char, typename Traits>                                   \
-    inline detail::name##_type<Char, Traits>                                    \
+    template<typename Char, typename Traits>                                    \
+    detail::name##_type<Char, Traits>                                           \
     name(const std::basic_string<Char, Traits>& s)                              \
     {                                                                           \
         return detail::name##_type<Char, Traits>(s);                            \
     }                                                                           \
                                                                                 \
-    inline detail::name##_type<char>                                            \
+    detail::name##_type<char>                                                   \
     name(char const* s)                                                         \
     {                                                                           \
         return detail::name##_type<char>(std::basic_string<char>(s));           \
     }                                                                           \
                                                                                 \
-    inline detail::name##_type<wchar_t>                                         \
+    detail::name##_type<wchar_t>                                                \
     name(wchar_t const* s)                                                      \
     {                                                                           \
         return detail::name##_type<wchar_t>(std::basic_string<wchar_t>(s));     \
     }                                                                           \
                                                                                 \
-    inline detail::name##_type<char>                                            \
+    detail::name##_type<char>                                                   \
     name(char c)                                                                \
     {                                                                           \
         return detail::name##_type<char>(std::basic_string<char>(1, c));        \
     }                                                                           \
                                                                                 \
-    inline detail::name##_type<wchar_t>                                         \
+    detail::name##_type<wchar_t>                                                \
     name(wchar_t c)                                                             \
     {                                                                           \
         return detail::name##_type<wchar_t>(std::basic_string<wchar_t>(1, c));  \
@@ -237,29 +237,29 @@
 #else // defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
 
 #define STD_TUPLE_DEFINE_MANIPULATOR_FUNCTIONS(name)                            \
-    template<typename Char, typename Traits>                                   \
-    inline detail::name##_type<Char, Traits>                                    \
+    template<typename Char, typename Traits>                                    \
+    detail::name##_type<Char, Traits>                                           \
     name(const std::basic_string<Char, Traits>& s)                              \
     {                                                                           \
         return detail::name##_type<Char, Traits>(s);                            \
     }                                                                           \
                                                                                 \
-    template<typename Char>                                                    \
-    inline detail::name##_type<Char>                                            \
+    template<typename Char>                                                     \
+    detail::name##_type<Char>                                                   \
     name(Char s[])                                                              \
     {                                                                           \
         return detail::name##_type<Char>(std::basic_string<Char>(s));           \
     }                                                                           \
                                                                                 \
-    template<typename Char>                                                    \
-    inline detail::name##_type<Char>                                            \
+    template<typename Char>                                                     \
+    detail::name##_type<Char>                                                   \
     name(Char const s[])                                                        \
     {                                                                           \
         return detail::name##_type<Char>(std::basic_string<Char>(s));           \
     }                                                                           \
                                                                                 \
-    template<typename Char>                                                    \
-    inline detail::name##_type<Char>                                            \
+    template<typename Char>                                                     \
+    detail::name##_type<Char>                                                   \
     name(Char c)                                                                \
     {                                                                           \
         return detail::name##_type<Char>(std::basic_string<Char>(1, c));        \
@@ -272,7 +272,7 @@
     {                                                                           \
         struct name##_tag;                                                      \
                                                                                 \
-        template<typename Char, typename Traits = std::char_traits<Char> >     \
+        template<typename Char, typename Traits = std::char_traits<Char> >      \
         struct name##_type                                                      \
         {                                                                       \
             typedef std::basic_string<Char, Traits> string_type;                \
@@ -280,14 +280,14 @@
             name##_type(const string_type& d): data(d) {}                       \
         };                                                                      \
                                                                                 \
-        template<typename Stream, typename Char, typename Traits>              \
+        template<typename Stream, typename Char, typename Traits>               \
         Stream& operator>>(Stream& s, const name##_type<Char,Traits>& m)        \
         {                                                                       \
             string_ios_manip<name##_tag, Stream>(s).set(m.data);                \
             return s;                                                           \
         }                                                                       \
                                                                                 \
-        template<typename Stream, typename Char, typename Traits>              \
+        template<typename Stream, typename Char, typename Traits>               \
         Stream& operator<<(Stream& s, const name##_type<Char,Traits>& m)        \
         {                                                                       \
             string_ios_manip<name##_tag, Stream>(s).set(m.data);                \
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/out.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/out.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/io/detail/out.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -78,7 +78,7 @@
     };
 
     template<typename OS, typename Seq>
-    inline void
+    void
     print_sequence(OS& os, Seq const& seq)
     {
         delimiter_out<tuple_open_tag>::print(os, "(");
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/io/in.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/io/in.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/io/in.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -19,7 +19,7 @@
 namespace boost { namespace fusion
 {
     template<typename Seq>
-    inline std::istream&
+    std::istream&
     in(std::istream& is, Seq& seq)
     {
         BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>))
@@ -32,11 +32,10 @@
     namespace operators
     {
         template<typename Seq>
-        inline typename
-            enable_if<
-               fusion::traits::is_sequence<Seq>
-             , std::istream&
-            >::type
+        typename enable_if<
+            fusion::traits::is_sequence<Seq>
+          , std::istream&
+        >::type
         operator>>(std::istream& is, Seq& seq)
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>))
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/io/out.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/io/out.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/io/out.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -3,7 +3,7 @@
     Copyright (c) 1999-2003 Jeremiah Willcock
     Copyright (c) 2001-2006 Joel de Guzman
 
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 
@@ -21,7 +21,7 @@
 namespace boost { namespace fusion
 {
     template<typename Seq>
-    inline std::ostream&
+    std::ostream&
     out(std::ostream& os, Seq& seq)
     {
         BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>))
@@ -30,15 +30,14 @@
         detail::print_sequence(os, seq);
         return os;
     }
-    
+
     namespace operators
     {
         template<typename Seq>
-        inline typename
-            enable_if<
-                fusion::traits::is_sequence<Seq>
-              , std::ostream&
-            >::type
+        typename enable_if<
+            fusion::traits::is_sequence<Seq>
+          , std::ostream&
+        >::type
         operator<<(std::ostream& os, Seq const& seq)
         {
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>))
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/sequence_facade.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/sequence_facade.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/sequence_facade.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,5 +1,5 @@
 /*==============================================================================
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the 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,17 +12,19 @@
 #include <boost/fusion/support/internal/facade_generation.hpp>
 #include <boost/mpl/bool.hpp>
 
+// TODO 3rd parameter?
 #define BOOST_FUSION_SEQUENCE_INTRINSIC_FUNCS                                   \
-    ((at_key, 1, 1))                                                            \
-    ((at, 1, 0))                                                                \
-    ((back, 0, 0))                                                              \
-    ((begin, 0, 0))                                                             \
-    ((empty, 0, 1))                                                             \
-    ((end, 0, 0))                                                               \
-    ((has_key, 1, 1))                                                           \
-    ((size, 0, 1))                                                              \
-    ((value_at_key, 1, 1))                                                      \
-    ((value_at, 1, 0))
+    ((at_key, 1))                                                               \
+    ((at, 1))                                                                   \
+    ((back, 0))                                                                 \
+    ((begin, 0))                                                                \
+    ((empty, 0))                                                                \
+    ((end, 0))                                                                  \
+    ((has_key, 1))                                                              \
+    ((is_segmented, 0))                                                         \
+    ((size, 0))                                                                 \
+    ((value_at_key, 1))                                                         \
+    ((value_at, 1))
 
 BOOST_FUSION_FACADE_DEFINE_INTRINSIC_FUNCS_WRAPPER(
     sequence_facade_tag, BOOST_FUSION_SEQUENCE_INTRINSIC_FUNCS)
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/base.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/base.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/base.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,5 +1,5 @@
 /*==============================================================================
-    Copyright (c) 2010 Christopher Schmidt
+    Copyright (c) 2010-2011 Christopher Schmidt
 
     Distributed under the 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,10 +11,12 @@
 #include <boost/config.hpp>
 #include <boost/detail/workaround.hpp>
 
-#if !defined(BOOST_FUSION_NO_RVALUE_REFERENCES) &&                              \
+#ifdef BOOST_NO_RVALUE_REFERENCES
+#   define BOOST_FUSION_NO_RVALUE_REFERENCES
+#elif !defined(BOOST_FUSION_NO_RVALUE_REFERENCES) &&                            \
     BOOST_WORKAROUND(__GNUC__,==4)&&                                            \
     BOOST_WORKAROUND(__GNUC_MINOR__,<5)
-#   error The c++0x extension of your compiler is not supported!
+#   error The c++11 extension of your compiler is not supported!
 #endif
 
 #include <boost/fusion/support/internal/base/config.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/internal/facade_generation.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/internal/facade_generation.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/internal/facade_generation.hpp	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -20,23 +20,23 @@
 
 #define BOOST_FUSION_DEFINE_SEQUENCE_FACADE_INTRINSIC_FUNC_WRAPPER(R, TAG, FUNC)\
     template<typename>                                                          \
-    struct BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(3, 0, FUNC),_impl);                 \
+    struct BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(2, 0, FUNC),_impl);                 \
                                                                                 \
     template<>                                                                  \
-    struct BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(3, 0, FUNC),_impl)<TAG>             \
+    struct BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(2, 0, FUNC),_impl)<TAG>             \
     {                                                                           \
         template<                                                               \
             typename T                                                          \
-            BOOST_PP_COMMA_IF(BOOST_PP_TUPLE_ELEM(3, 1, FUNC))                  \
+            BOOST_PP_COMMA_IF(BOOST_PP_TUPLE_ELEM(2, 1, FUNC))                  \
             BOOST_PP_ENUM_PARAMS(                                               \
-                BOOST_PP_TUPLE_ELEM(3, 1, FUNC), typename T)                    \
+                BOOST_PP_TUPLE_ELEM(2, 1, FUNC), typename T)                    \
         >                                                                       \
         struct apply                                                            \
           : detail::remove_reference<T>::type::                                 \
-                template BOOST_PP_TUPLE_ELEM(3, 0, FUNC)<                       \
+                template BOOST_PP_TUPLE_ELEM(2, 0, FUNC)<                       \
                 T                                                               \
-                BOOST_PP_COMMA_IF(BOOST_PP_TUPLE_ELEM(3, 1, FUNC))              \
-                BOOST_PP_ENUM_PARAMS(BOOST_PP_TUPLE_ELEM(3, 1, FUNC), T)        \
+                BOOST_PP_COMMA_IF(BOOST_PP_TUPLE_ELEM(2, 1, FUNC))              \
+                BOOST_PP_ENUM_PARAMS(BOOST_PP_TUPLE_ELEM(2, 1, FUNC), T)        \
             >                                                                   \
         {};                                                                     \
     };
@@ -60,17 +60,17 @@
 #define BOOST_FUSION_DEFINE_SEQUENCE_FACADE_INTRINSIC_FUNC_FORDER(R, _, FUNC)   \
     template<                                                                   \
         typename T                                                              \
-        BOOST_PP_COMMA_IF(BOOST_PP_TUPLE_ELEM(3, 1, FUNC))                      \
+        BOOST_PP_COMMA_IF(BOOST_PP_TUPLE_ELEM(2, 1, FUNC))                      \
         BOOST_PP_ENUM_PARAMS(                                                   \
-            BOOST_PP_TUPLE_ELEM(3, 1, FUNC), typename T)                        \
+            BOOST_PP_TUPLE_ELEM(2, 1, FUNC), typename T)                        \
     >                                                                           \
-    struct BOOST_PP_TUPLE_ELEM(3, 0, FUNC)                                      \
-      : extension::BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(3, 0, FUNC),_impl)<         \
+    struct BOOST_PP_TUPLE_ELEM(2, 0, FUNC)                                      \
+      : extension::BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(2, 0, FUNC),_impl)<         \
             typename mpl::apply1<mpl::always<void_>,T>::type                    \
         >::template apply<                                                      \
             T                                                                   \
-            BOOST_PP_COMMA_IF(BOOST_PP_TUPLE_ELEM(3, 1, FUNC))                  \
-            BOOST_PP_ENUM_PARAMS(BOOST_PP_TUPLE_ELEM(3, 1, FUNC), T)            \
+            BOOST_PP_COMMA_IF(BOOST_PP_TUPLE_ELEM(2, 1, FUNC))                  \
+            BOOST_PP_ENUM_PARAMS(BOOST_PP_TUPLE_ELEM(2, 1, FUNC), T)            \
         >                                                                       \
     {};
 
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,7 +1,7 @@
 /*==============================================================================
     Copyright (c) 2005 Joel de Guzman
     Copyright (c) 2006 Tobias Schwinger
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the 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,13 +16,13 @@
 #ifndef BOOST_FUSION_NO_RVALUE_REFERENCES
 #   include <boost/fusion/support/internal/is_explicitly_convertible.hpp>
 #endif
-
 #include <boost/preprocessor/empty.hpp>
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
 #   include <boost/call_traits.hpp>
 #else
 #   include <boost/utility/enable_if.hpp>
 #endif
+#include <iosfwd>
 
 namespace boost { namespace fusion
 {
@@ -145,8 +145,7 @@
     }
 
     template<typename First, typename Second>
-    inline typename
-        result_of::make_pair<First,BOOST_FUSION_R_ELSE_CLREF(Second)>::type
+    typename result_of::make_pair<First,BOOST_FUSION_R_ELSE_CLREF(Second)>::type
     make_pair(BOOST_FUSION_R_ELSE_CLREF(Second) second)
     {
         return typename result_of::make_pair<
@@ -165,18 +164,17 @@
         >::type(BOOST_FUSION_FORWARD(T,t));
     }
 
-    template<typename OStream, typename First, typename Second>
-    inline BOOST_FUSION_R_ELSE_LREF(OStream)
-    operator<<(BOOST_FUSION_R_ELSE_LREF(OStream) os,
-        pair<First, Second> const& p)
+    template<typename First, typename Second>
+    std::ostream&
+    operator<<(ostream& os, pair<First, Second> const& p)
     {
         os << p.second;
         return os;
     }
 
-    template<typename IStream, typename First, typename Second>
-    inline BOOST_FUSION_R_ELSE_LREF(IStream)
-    operator>>(BOOST_FUSION_R_ELSE_LREF(IStream) is,
+    template<typename First, typename Second>
+    std::istream&
+    operator>>(std::istream& is,
         pair<First, Second> BOOST_FUSION_R_ELSE_LREF(BOOST_PP_EMPTY()) p)
     {
         is >> static_cast<
@@ -186,7 +184,7 @@
     }
 
     template<typename First, typename SecondLhs, typename SecondRhs>
-    inline bool
+    bool
     operator==(pair<First, SecondLhs> const& lhs,
             pair<First, SecondRhs> const& rhs)
     {
@@ -194,7 +192,7 @@
     }
 
     template<typename First, typename SecondLhs, typename SecondRhs>
-    inline bool
+    bool
     operator!=(pair<First, SecondLhs> const& lhs,
             pair<First, SecondRhs> const& rhs)
     {
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2005 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the 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 +68,7 @@
     {};
 
     template<int N, typename Tuple>
-    inline typename result_of::at_c<BOOST_FUSION_R_ELSE_CLREF(Tuple), N>::type
+    typename result_of::at_c<BOOST_FUSION_R_ELSE_CLREF(Tuple), N>::type
     get(BOOST_FUSION_R_ELSE_CLREF(Tuple) tuple)
     {
         return fusion::at_c<N>(tuple);
@@ -76,8 +76,8 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<int N, typename Tuple>
-    inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
-            result_of::at_c<,Tuple,&, N>)
+    BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
+        result_of::at_c<,Tuple,&, N>)
     get(Tuple& tuple)
     {
         return fusion::at_c<N>(tuple);
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2007 Tobias Schwinger
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -129,8 +129,7 @@
     }
 
     template<typename Size, typename Seq>
-    inline typename
-        result_of::repeat<BOOST_FUSION_R_ELSE_CLREF(Seq),Size>::type
+    typename result_of::repeat<BOOST_FUSION_R_ELSE_CLREF(Seq),Size>::type
     repeat(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
         return typename result_of::repeat<
@@ -141,8 +140,8 @@
 
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename Size, typename Seq>
-    inline BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
-            result_of::repeat<,Seq,&, Size>)
+    BOOST_FUSION_EXPLICIT_TEMPLATE_NON_CONST_ARG_OVERLOAD(
+        result_of::repeat<,Seq,&, Size>)
     repeat(Seq& seq)
     {
         return typename result_of::repeat<Seq&,Size>::type(seq);
@@ -150,7 +149,7 @@
 #endif
 
     template<typename Seq>
-    inline typename result_of::repeat<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
+    typename result_of::repeat<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type
     repeat(BOOST_FUSION_R_ELSE_CLREF(Seq) seq)
     {
         return typename result_of::repeat<BOOST_FUSION_R_ELSE_CLREF(Seq)>::type(
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	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
@@ -1,6 +1,6 @@
 /*==============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2009-2010 Christopher Schmidt
+    Copyright (c) 2009-2011 Christopher Schmidt
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -59,7 +59,7 @@
         typedef T value_type;
 
         typedef single_view_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
+        typedef fusion_sequence_tag tag;
         typedef random_access_traversal_tag category;
         typedef mpl::int_<1> size;
 
@@ -179,8 +179,7 @@
     }
 
     template<typename T>
-    inline typename
-        result_of::make_single_view<BOOST_FUSION_R_ELSE_CLREF(T)>::type
+    typename result_of::make_single_view<BOOST_FUSION_R_ELSE_CLREF(T)>::type
     make_single_view(BOOST_FUSION_R_ELSE_CLREF(T) val)
     {
         return typename result_of::make_single_view<
@@ -191,7 +190,8 @@
 #ifdef BOOST_FUSION_NO_RVALUE_REFERENCES
     template<typename T, typename Seq>
     //cschmidt: see https://svn.boost.org/trac/boost/ticket/3305
-#   if defined(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS) || BOOST_WORKAROUND(__GNUC__,<4)
+#   if defined(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS) || \
+        BOOST_WORKAROUND(__GNUC__,<4)
     typename lazy_disable_if<
         is_const<T>
       , result_of::make_single_view<T&>
Deleted: sandbox/SOC/2009/fusion/libs/fusion/CMakeLists.txt
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/CMakeLists.txt	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
+++ (empty file)
@@ -1,23 +0,0 @@
-#----------------------------------------------------------------------------
-# This file was automatically generated from the original CMakeLists.txt file
-# Add a variable to hold the headers for the library
-set (lib_headers
-    fusion
-)
-
-# Add a library target to the build system
-boost_library_project(
-  fusion
-  #  SRCDIRS 
-  #  TESTDIRS 
-  HEADERS ${lib_headers}
-  #  DOCDIRS 
-  DESCRIPTION  "Library for working with tuples, including various containers, algorithms, etc."
-  MODULARIZED
-  AUTHORS  "Joel de Guzman <joel -at- boost-consulting.com>"
-           "Dan Marsden <danmarsden -at- yahoo.co.uk>"
-           "Tobias Schwinger <tschwinger -at- isonews2.com>"
-  #  MAINTAINERS 
-)
-
-
Deleted: sandbox/SOC/2009/fusion/libs/fusion/todo.txt
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/todo.txt	2011-09-15 11:29:20 EDT (Thu, 15 Sep 2011)
+++ (empty file)
@@ -1,189 +0,0 @@
-===============================================================================
-Copyright (C) 2001-2007 Joel de Guzman, Dan Marsden, Tobias Schwinger
-
-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)
-===============================================================================
-
-* Provide macros for adapting classes, similar to BOOST_FUSION_ADAPT_STRUCT
-  and BOOST_FUSION_ADAPT_ASSOC_STRUCT, but with with user control over
-  member accessors (e.g. get and set free functions).
-
-* Document extension::struct_size, extension::struct_member and
-  extension::struct_assoc_member in extension section.
-
-* Document rationale behind at and value_at and how to choose which
-  to use.
-
-* Reinstate the function object algorithms
-
-* Break all dependency cycles if there are some more
-
-* Break the view<-->algorithm dependency cycle
-
-* Improve extension docs
-
-* Document sequence/convert
-
-* Consider object equivalent of functions and algorithms (so you can do
-  transform(iterators, deref()) with needing to put together a wrapper for deref).
-
-* Make algorithms work with mutable data
-
-* Consider segmented sequence / algorithm support
-
-* Consider utility element_ref<Seq,Member>::type thats consts and refs as appropriate
-
-* Improved motivation section
-
-* Expand details of view concept
-
-* Examples, examples, examples
-
-* look at lambda stuff
-
-* Complete the fusion/include/ directory containing a flat list of
-  include files for all the modules and components.
-
-* The error messages when e.g. the function is not set as const are difficult
-  to decipher. e.g. transform(s, f) <<- where f has a non-const operator()
-
-* mpl, fusion, container type preserving operations incompatible
-  -- shall we consider container-type preserving variations of the
-  functions/algorithms?
-
-  How about making joint_view Concept preserving? This way push/pop/front/back
-  will return a view of the same Concept. - tosh
-
-* map_tie is implemented. It seems not yet documented? - Dan: done now!
-
-* multi_set, multi_map?
-
-* why is insert_range not spelled insert_sequence ?
-
-* Document the new fusion extension mechanisms
-  ->iterator_facade
-  ->sequence_facade
-
-* David A:
-  Wouldn't extension be a lot easier if iterator_base and sequence_base
-  took (optional) 2nd arguments that specify the tag?  Then you wouldn't
-  need that whole dance that enables tag dispatching (right?)
-
-* David A: is_iterator isn't documented?
-  JDG: There is no is_iterator ;) There is is_fusion_iterator, but it should
-  probably be placed in detail.
-
-* for_each takes the function object by reference to const, so you have to
-  const qualify operator() and make the data members mutable so you can change
-  them anyway.
-  Eric N: IMO, this is a bug in Fusion. There should be an overload of for_each
-  that takes a function object by non-const reference. Stateful predicates should
-  be supported, and Fusion should be explicit about where and when predicates
-  are copied, so that the state doesn't get messed up.
-
-* Make Boost.parameters library's ArgumentPacks a conforming fusion sequence
-
-* Optimize container performance with typeof / compiler defect typeof. In particular
-  improve the performance of the prototype deque implementation.
-
-* Deque docs if we decide we like it
-
-* Rewrite the whole extension docs section. More formal docs of extension point,
-  example to use the various facade types, rather than hand coding everything.
-
-* zip optimization - Zip is rather compiler heavy, try and reduce the likelihood
-  of compilers like msvc7 hitting internal compiler limits
-
-* Document the unused support added to zip for Hartmut.
-
-* Rationalize support/unused.hpp and the ignore stuff needed for tie etc.
-
-* Why do we need to set FUSION_MAX_VECTOR_SIZE when we set
-  FUSION_MAX_MAP_SIZE? Setting FUSION_MAX_MAP_SIZE should be enough.
-
-tosh:
-
-* Document Incrementable / Single Pass Concepts
-* Provide infinity-aware default implementation for Incrementable Sequences
-
-  Thoughts: It would probably be cleaner to have infinity conceptually
-  orthogonal so there can be infinite Bidi/RA/Assoc Sequences.
-  OTOH it complicates things in way that might not be worth it...
-
-* Implement always_view/always with repetitive_view<single_view<T> >
-  semantics - using repetitive_view will for this purpose will be way
-  too much overhead.
-
-? Functional wrappers for intrinsics/algorithms.
-
-* Rewrite functional benchmark
-
-==========================================================
-
-From the fusion review (please mark all done items):
-
-The following comments refer to issues that the library authors should
-address prior to merging the library into CVS:
-
-* Documentation: Many of the reviewers stated that they would like to
-   see more tutorial documentation that demonstrates not only what the
-   particular constructs in Fusion do, but also how they are expected
-   to be used. A reasonably concise motivating example has been
-   requested. It has already been pointed out that Fusion is used for
-   some other boost libraries. A well-developed and self-contained
-   case study of when and how to use Fusion would be greatly
-   appreciated. The relationship between this library and the current
-   Boost.Tuple library, as well as Boost.Mpl, should be discussed. The
-   reference documentation is quite thorough and detailed comments
-   regarding them have already been addressed by the authors. However
-   the notion of "views" requires greater documentation. The
-   examples in the algorithm sections currently do little more than
-   demonstrate the syntax by which they can be called. Examples that
-   more specifically express intent would be a notable
-   improvement. (see for example Matt Austern's "Generic Programming
-   and the STL"). In general the documentation would benefit from
-   copy-editing.
-
-* Several commented on the use of the name "pair" for the fusion type
-   that has typedefs for two types but only contains the second type.
-   Although the typedefs and member names are consistent with the
-   std::pair object, the name "pair" is confusing. The
-   compile-time/run-time hybrid nature of this library makes it
-   difficult to find perfect metaphors for constructs in the library.
-   In this case, it seems better to find a term for this template (and
-   the concept that it models) that more directly states its purpose.
-   The name "tag_of" would also benefit from renaming.
-
-* The behavior of Fusion functions in the face of argument-dependent
-   lookup (ADL) is not well specified. This should be made
-   explicit in the reference documentation.
-
-The following comments refer to issues that, while not mandatory,
-deserve consideration:
-
-* The library name "Fusion", though not arbitrary, says little about
-   the library's purpose. There is precedent for this within boost,
-   however. A name change is not mandatory for the
-   library's acceptance, but it would be worth while for the authors to
-   consider a more telling name.
-
-   Dan - I like the name Fusion, and there is precendent for less direct
-   library names like Spirit and Xpressive in Boost. (And Boost is not
-   exactly an explicit name either).
-
-* The mechanism for extending Fusion with new containers and iterators
-   is complex and involves implementing a number of components,
-   especially regarding iterators. An adaptation layer that is
-   analogous to the Boost.Iterator library would be a fine addition to
-   Fusion.
-
-   Dan - Joel added iterator and container adapters, still to be documented
-   as part of the improved extension docs to be done by me.
-
-* It would be beneficial to supply Boost.Serialization support for the
-   Fusion container types. I am sure, as mentioned, that the authors
-   of this library would accept a volunteer to implement this
-   functionality.
-