$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r55632 - in sandbox/SOC/2009/fusion: . boost/fusion/adapted boost/fusion/adapted/detail/mpl boost/fusion/algorithm/iteration boost/fusion/algorithm/query boost/fusion/algorithm/query/detail boost/fusion/algorithm/transformation boost/fusion/container/detail/variadic_templates boost/fusion/container/generation/detail/variadic_templates boost/fusion/container/list boost/fusion/container/map boost/fusion/include boost/fusion/iterator boost/fusion/sequence boost/fusion/sequence/comparison boost/fusion/sequence/intrinsic boost/fusion/sequence/io boost/fusion/support boost/fusion/view/filter_view boost/fusion/view/iterator_range boost/fusion/view/joint_view boost/fusion/view/reverse_view boost/fusion/view/transform_view boost/fusion/view/zip_view libs/fusion/example/test
From: mr.chr.schmidt_at_[hidden]
Date: 2009-08-17 18:07:38
Author: cschmidt
Date: 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
New Revision: 55632
URL: http://svn.boost.org/trac/boost/changeset/55632
Log:
final cleanup
Added:
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_iterator_impl.hpp   (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/tag_of.hpp   (contents, props changed)
Removed:
   sandbox/SOC/2009/fusion/boost/fusion/include/sequence_assign.hpp
Text files modified: 
   sandbox/SOC/2009/fusion/boost/fusion/adapted/mpl.hpp                                             |     2 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp                                        |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp                          |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp                                |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp                            |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp                                     |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp                                     |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count.hpp                                   |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp                                |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/count.hpp                            |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find.hpp                                    |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_if.hpp                                 |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_key.hpp                                |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/none.hpp                                    |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/clear.hpp                          |     3 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase.hpp                          |    16 ++++++----                              
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase_key.hpp                      |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter.hpp                         |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter_if.hpp                      |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert.hpp                         |     3 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp                   |     5 ++-                                     
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/join.hpp                           |     4 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_back.hpp                       |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_front.hpp                      |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_back.hpp                      |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_front.hpp                     |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove.hpp                         |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove_if.hpp                      |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace.hpp                        |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp                     |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/reverse.hpp                        |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp                      |     6 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/as_seq.hpp              |    32 ++++++++++++++++++++--                  
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp |    21 ++++++-------                           
   sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/map_tie.hpp  |     6 ++-                                     
   sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp                                  |     3 ++                                      
   sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp                                       |     3 --                                      
   sandbox/SOC/2009/fusion/boost/fusion/iterator/advance.hpp                                        |     6 +--                                     
   sandbox/SOC/2009/fusion/boost/fusion/iterator/deref.hpp                                          |     3 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/iterator/deref_data.hpp                                     |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/iterator/distance.hpp                                       |     6 +--                                     
   sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp                                       |    13 +++++---                                
   sandbox/SOC/2009/fusion/boost/fusion/iterator/key_of.hpp                                         |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/iterator/next.hpp                                           |     3 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/iterator/prior.hpp                                          |     3 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of.hpp                                       |     3 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of_data.hpp                                  |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/equal_to.hpp                            |     8 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater.hpp                             |     8 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater_equal.hpp                       |     8 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less.hpp                                |     8 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less_equal.hpp                          |     8 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/not_equal_to.hpp                        |     8 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/sequence/convert.hpp                                        |     8 ----                                    
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at.hpp                                   |     4 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp                               |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/back.hpp                                 |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/begin.hpp                                |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/empty.hpp                                |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/front.hpp                                |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/has_key.hpp                              |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/size.hpp                                 |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/swap.hpp                                 |     4 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at.hpp                             |     4 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_key.hpp                         |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/sequence/io/in.hpp                                          |     4 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/sequence/io/out.hpp                                         |     4 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/support/sequence_base.hpp                                   |    58 +++++++++++++++++++++------------------ 
   sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp                                          |    38 ++++++++++---------------               
   sandbox/SOC/2009/fusion/boost/fusion/support/tag_of_fwd.hpp                                      |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp                            |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp                      |     7 +++-                                    
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp                              |     4 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp                          |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp                      |    15 +++++----                               
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp                                  |     2                                         
   sandbox/SOC/2009/fusion/build.bat                                                                |     6 ++--                                    
   sandbox/SOC/2009/fusion/libs/fusion/example/test/main.cpp                                        |     9 ++++++                                  
   78 files changed, 233 insertions(+), 200 deletions(-)
Added: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_iterator_impl.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_iterator_impl.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -0,0 +1,29 @@
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2005-2006 Dan Marsden
+
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_FUSION_ADAPTED_DETAIL_MPL_IS_ITERATOR_IMPL_HPP
+#define BOOST_FUSION_ADAPTED_DETAIL_MPL_IS_ITERATOR_IMPL_HPP
+
+#include <boost/mpl/bool.hpp>
+
+namespace boost { namespace fusion { namespace extension
+{
+    template<typename Tag>
+    struct is_iterator_impl;
+
+    template<>
+    struct is_iterator_impl<mpl_iterator_tag>
+    {
+        template<typename SeqRef>
+        struct apply
+          : mpl::true_
+        {};
+    };
+}}}
+
+#endif
Added: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/tag_of.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/tag_of.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -0,0 +1,83 @@
+// Copyright Christopher Schmidt 2009.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_FUSION_ADAPTED_DETAIL_MPL_TAG_OF_HPP
+#define BOOST_FUSION_ADAPTED_DETAIL_MPL_TAG_OF_HPP
+
+#include <boost/fusion/support/tag_of.hpp>
+
+#include <boost/mpl/iterator_tags.hpp>
+#include <boost/mpl/or.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/equal_to.hpp>
+#include <boost/mpl/is_sequence.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace boost
+{
+    namespace fusion
+    {
+        struct mpl_sequence_tag;
+        struct mpl_iterator_tag;
+
+        namespace detail
+        {
+            BOOST_MPL_HAS_XXX_TRAIT_DEF(category);
+
+            template<typename T, typename Category>
+            struct category_is
+              : mpl::equal_to<typename T::category, Category>
+            {};
+        }
+
+        namespace traits
+        {
+            template<typename T>
+            struct tag_of<
+                T
+              , typename disable_if<
+                    typename detail::has_fusion_tag<
+                        typename detail::identity<T>::type
+                    >::type
+                >::type
+            >
+            {
+                typedef typename detail::identity<T>::type identity_t;
+
+                typedef typename
+                    mpl::eval_if<
+                        mpl::is_sequence<identity_t>
+                      , mpl::identity<mpl_sequence_tag>
+                      , mpl::eval_if<
+                            mpl::and_<
+                                detail::has_category<identity_t>
+                              , mpl::or_<
+                                    detail::category_is<
+                                        identity_t
+                                      , mpl::forward_iterator_tag
+                                    >
+                                  , detail::category_is<
+                                        identity_t
+                                      , mpl::bidirectional_iterator_tag
+                                    >
+                                  , detail::category_is<
+                                        identity_t
+                                      , mpl::random_access_iterator_tag
+                                    >
+                                >
+                            >
+                          , mpl::identity<mpl_iterator_tag>
+                          , tag_of<T, bool>
+                        >
+                    >::type
+                type;
+            };
+        }
+    }
+}
+
+#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/mpl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/mpl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/mpl.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -22,11 +22,13 @@
 #include <boost/fusion/adapted/detail/mpl/end_impl.hpp>
 #include <boost/fusion/adapted/detail/mpl/equal_to_impl.hpp>
 #include <boost/fusion/adapted/detail/mpl/has_key_impl.hpp>
+#include <boost/fusion/adapted/detail/mpl/is_iterator_impl.hpp>
 #include <boost/fusion/adapted/detail/mpl/is_view_impl.hpp>
 #include <boost/fusion/adapted/detail/mpl/is_sequence_impl.hpp>
 #include <boost/fusion/adapted/detail/mpl/next_impl.hpp>
 #include <boost/fusion/adapted/detail/mpl/prior_impl.hpp>
 #include <boost/fusion/adapted/detail/mpl/size_impl.hpp>
+#include <boost/fusion/adapted/detail/mpl/tag_of.hpp>
 #include <boost/fusion/adapted/detail/mpl/value_at_impl.hpp>
 #include <boost/fusion/adapted/detail/mpl/value_of_impl.hpp>
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -7,6 +7,7 @@
 #define BOOST_FUSION_ADAPTED_STD_PAIR_HPP
 
 #include <boost/fusion/adapted/struct.hpp>
+#include <boost/fusion/support/tag_of_fwd.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
 
 #include <boost/mpl/int.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -20,7 +20,7 @@
         struct accumulate
           : fold<Seq, State, F>
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
         };
     }
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -24,7 +24,7 @@
         template <typename Seq, typename State, typename F>
         struct fold
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             typedef
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -24,7 +24,7 @@
         template <typename Seq, typename>
         struct for_each
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             typedef void type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -23,7 +23,7 @@
         template <typename Seq, typename>
         struct all
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             typedef bool type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -43,7 +43,7 @@
         template <typename Seq, typename>
         struct any
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             typedef bool type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -22,7 +22,7 @@
         template <typename Seq, typename>
         struct count
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             typedef int type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -42,7 +42,7 @@
         template <typename Seq, typename>
         struct count_if
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             typedef int type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/count.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/count.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/count.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -34,7 +34,7 @@
     {
         template <typename T1, typename T2>
         static bool
-        call(BOOST_FUSION_R_ELSE_CLREF(T1), BOOST_FUSION_R_ELSE_CLREF(T2))
+        call(BOOST_FUSION_R_ELSE_CLREF(T1) x, BOOST_FUSION_R_ELSE_CLREF(T2) y)
         {
             return false;
         }
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -27,7 +27,7 @@
         template <typename Seq, typename T>
         struct find
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             typedef
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	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -29,7 +29,7 @@
         template <typename Seq, typename Pred>
         struct find_if
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             typedef
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_key.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_key.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -26,7 +26,7 @@
         template <typename Seq, typename T>
         struct find_key
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             typedef
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	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -20,7 +20,7 @@
         template <typename Seq, typename F>
         struct none
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             typedef bool type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/clear.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/clear.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/clear.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -14,6 +14,7 @@
 #else
 #   include <boost/fusion/container/vector/vector10.hpp>
 #endif
+#include <boost/fusion/container/vector/convert.hpp>
 #include <boost/fusion/support/tag_of.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
 #include <boost/fusion/support/internal/assert.hpp>
@@ -31,7 +32,7 @@
           : convert<typename traits::tag_of<Seq>::type, vector<> >
 #endif
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
         };
     }
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -72,17 +72,19 @@
         >
         struct erase
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_iterator<First>));
+            BOOST_FUSION_MPL_ASSERT((detail::is_in_seq<First, Seq>));
+            BOOST_FUSION_MPL_ASSERT((
+                detail::is_in_range<
+                    Last
+                  , First
+                  , typename result_of::end<Seq>::type
+                >));
 
             typedef typename begin<Seq>::type seq_first_type;
             typedef typename end<Seq>::type seq_last_type;
-
-            BOOST_FUSION_MPL_ASSERT(
-                    (detail::is_in_range<First,seq_first_type,seq_last_type>));
-            BOOST_FUSION_MPL_ASSERT(
-                    (detail::is_in_range<Last,First,seq_last_type>));
-
             typedef
                 iterator_range<
                     seq_first_type
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase_key.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase_key.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -31,7 +31,7 @@
         template <typename Seq, typename Key>
         struct erase_key
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_associative<Seq>));
             BOOST_FUSION_MPL_ASSERT((has_key<Seq,Key>));
 
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	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -25,7 +25,7 @@
         struct filter
           : filter_if<Seq, is_same<mpl::_1, T> >
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<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	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -20,7 +20,7 @@
         template <typename Seq, typename Pred>
         struct filter_if
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             typedef filter_view<Seq, Pred> type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -27,8 +27,9 @@
                   single_view<typename detail::as_fusion_element<T>::type>)
             >
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_iterator<Pos>));
             BOOST_FUSION_MPL_ASSERT((detail::is_in_seq<Pos, Seq>));
         };
     }
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -26,10 +26,11 @@
         template <typename Seq, typename Pos, typename Range>
         struct insert_range
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_iterator<Pos>));
             BOOST_FUSION_MPL_ASSERT((detail::is_in_seq<Pos, Seq>));
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Range>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Range>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Range>));
 
             typedef
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/join.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/join.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/join.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -22,9 +22,9 @@
         template<typename Seq1, typename Seq2>
         struct join
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
 
             typedef joint_view<Seq1,Seq2> type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_back.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_back.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_back.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -25,7 +25,7 @@
         template <typename Seq>
         struct pop_back
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
             BOOST_FUSION_MPL_ASSERT_NOT((empty<Seq>));
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_front.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_front.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_front.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -25,7 +25,7 @@
         template <typename Seq>
         struct pop_front
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
             BOOST_FUSION_MPL_ASSERT_NOT((empty<Seq>));
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_back.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_back.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_back.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -21,7 +21,7 @@
         template <typename Seq, typename T>
         struct push_back
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             typedef
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_front.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_front.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_front.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -21,7 +21,7 @@
         template <typename Seq, typename T>
         struct push_front
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             typedef
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -25,7 +25,7 @@
         struct remove
           : remove_if<Seq, is_same<mpl::_1, T> >
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<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	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -22,7 +22,7 @@
         template <typename Seq, typename Pred>
         struct remove_if
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             typedef filter_view<Seq, mpl::not_<Pred> > type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -56,7 +56,7 @@
         template <typename Seq, typename T>
         struct replace
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             typedef
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -21,7 +21,7 @@
         template <typename Seq, typename F, typename NewValue>
         struct replace_if
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             typedef
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/reverse.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/reverse.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/reverse.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -19,7 +19,7 @@
         template <typename Seq>
         struct reverse
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             typedef reverse_view<Seq> type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -23,9 +23,9 @@
         template <typename Seq1, typename Seq2, typename F = void_>
         struct transform
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
 
             typedef transform_view<Seq1,Seq2,F> type;
@@ -38,7 +38,7 @@
         struct transform<Seq, F>
 #endif
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             typedef transform_view<Seq, F> type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/as_seq.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/as_seq.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/as_seq.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -3,29 +3,55 @@
 // (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
+//cschmidt: to avoid cyclic references - as some of the (here unneeded) mpl
+//sequence modification metafunctions might instantiate result_of::as_xxx - just
+//include the relevant /fusion/mpl/ headers.
+#include <boost/fusion/support/category_of.hpp>
+
+#include <boost/fusion/mpl/at.hpp>
+#include <boost/fusion/mpl/back.hpp>
 #include <boost/fusion/mpl/begin.hpp>
+#include <boost/fusion/mpl/empty.hpp>
 #include <boost/fusion/mpl/end.hpp>
+#include <boost/fusion/mpl/front.hpp>
+#include <boost/fusion/mpl/size.hpp>
+
 #include <boost/fusion/support/internal/variadic_templates/variadic_quote.hpp>
-#include <boost/fusion/support/internal/variadic_templates/to_random_access_mpl_seq.hpp>
 
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/fold.hpp>
+#include <boost/mpl/quote.hpp>
+#include <boost/mpl/vector.hpp>
+#include <boost/mpl/push_back.hpp>
 #include <boost/mpl/apply.hpp>
 #include <boost/mpl/unpack_args.hpp>
 
 namespace boost { namespace fusion { namespace detail
 {
+
     template<typename SeqRef>
     struct BOOST_PP_CAT(BOOST_PP_CAT(as_,BOOST_FUSION_SEQ_NAME),_impl)
     {
         struct apply
         {
+            typedef typename detail::remove_reference<SeqRef>::type seq;
+
             typedef typename
                 mpl::apply<
                     mpl::unpack_args<variadic_quote<BOOST_FUSION_SEQ_NAME> >
-                  , typename to_random_access_mpl_seq<
-                        typename remove_reference<SeqRef>::type
+                  , typename mpl::eval_if<
+                        traits::is_random_access<SeqRef>
+                      , mpl::identity<seq>
+                      , mpl::fold<
+                            seq
+                          , mpl::vector0<>
+                          , mpl::quote2<mpl::push_back>
+                        >
                     >::type
                 >::type
             type;
         };
     };
 }}}
+
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -34,19 +34,18 @@
             typedef typename
                 detail::variadic_arguments_to_vector<KeysTypes...>::type
             args;
+            typedef typename mpl::begin<args>::type args_begin;
             typedef typename
+                mpl::advance<
+                    args_begin
+                  , mpl::divides<mpl::size<args>, mpl::int_<2> >
+                >::type
+            args_middle;
+
+            typedef mpl::iterator_range<args_begin, args_middle> keys;
+            typedef
                 mpl::iterator_range<
-                    typename mpl::begin<args>::type
-                  , typename mpl::advance<typename mpl::begin<args>::type
-                  , mpl::divides<mpl::size<args>, mpl::int_<2> > >::type
-                >
-            keys;
-            typedef typename
-                mpl::iterator_range<
-                    typename mpl::advance<
-                        typename mpl::begin<args>::type
-                      , mpl::divides<mpl::size<args>, mpl::int_<2> >
-                    >::type
+                    args_middle
                   , typename mpl::end<args>::type
                 >
             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	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -37,8 +37,10 @@
             typedef typename
                 mpl::iterator_range<
                     typename mpl::begin<args>::type
-                  , typename mpl::advance<typename mpl::begin<args>::type
-                  , mpl::divides<mpl::size<args>, mpl::int_<2> > >::type
+                  , typename mpl::advance<
+                        typename mpl::begin<args>::type
+                      , mpl::divides<mpl::size<args>, mpl::int_<2> >
+                    >::type
                 >
             keys;
             typedef typename
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -9,6 +9,7 @@
 #define BOOST_FUSION_CONTAINER_LIST_CONVERT_HPP
 
 #include <boost/fusion/container/list/list.hpp>
+#include <boost/fusion/container/list/cons.hpp>
 
 #define BOOST_FUSION_SEQ_NAME list
 #define BOOST_FUSION_MAX_SEQ_SIZE FUSION_MAX_LIST_SIZE
@@ -16,4 +17,6 @@
 #undef BOOST_FUSION_MAX_SEQ_SIZE
 #undef BOOST_FUSION_SEQ_NAME
 
+#include <boost/fusion/container/list/detail/cons/convert_impl.hpp>
+
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -27,9 +27,6 @@
 namespace boost { namespace fusion
 {
     struct fusion_sequence_tag;
-#ifndef BOOST_NO_VARIADIC_TEMPLATES
-    struct void_;
-#endif
 
     VARIADIC_TEMPLATE(FUSION_MAX_MAP_SIZE)
     struct map
Deleted: sandbox/SOC/2009/fusion/boost/fusion/include/sequence_assign.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/sequence_assign.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
+++ (empty file)
@@ -1,11 +0,0 @@
-// Copyright Christopher Schmidt 2009.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_FUSION_INCLUDE_SEQUENCE_ASSIGN_HPP
-#define BOOST_FUSION_INCLUDE_SEQUENCE_ASSIGN_HPP
-
-#include <boost/fusion/support/internal/sequence_assign.hpp>
-
-#endif
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	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -53,8 +53,7 @@
                   , mpl::int_<N>
                 >
         {
-            //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
-            BOOST_FUSION_MPL_ASSERT((traits::is_forward<It>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
             BOOST_FUSION_STATIC_ASSERT((
                     N>=0 ||
                     traits::is_bidirectional<It>::value));
@@ -66,8 +65,7 @@
           : extension::advance_impl<typename traits::tag_of<It>::type>::
                 template apply<typename detail::add_lref<It>::type, N>
         {
-            //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
-            BOOST_FUSION_MPL_ASSERT((traits::is_forward<It>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
             BOOST_FUSION_STATIC_ASSERT((
                     N::value>=0 ||
                     traits::is_bidirectional<It>::value));
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/deref.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/deref.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/deref.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -39,8 +39,7 @@
           : extension::deref_impl<typename traits::tag_of<It>::type>::
                 template apply<typename detail::add_lref<It>::type>
         {
-            //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
-            BOOST_FUSION_MPL_ASSERT((traits::is_forward<It>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
         };
     }
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/deref_data.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/deref_data.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/deref_data.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -39,7 +39,7 @@
           : extension::deref_data_impl<typename traits::tag_of<It>::type>::
                 template apply<typename detail::add_lref<It>::type>
         {
-            //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
             BOOST_FUSION_MPL_ASSERT((traits::is_associative<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	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -49,10 +49,8 @@
                   , typename detail::add_lref<Last>::type
                 >::type
         {
-            //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<First>));
-            BOOST_FUSION_MPL_ASSERT((traits::is_forward<First>));
-            //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<Last>));
-            BOOST_FUSION_MPL_ASSERT((traits::is_forward<Last>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_iterator<First>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_iterator<Last>));
         };
     }
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -15,6 +15,8 @@
 #include <boost/mpl/and.hpp>
 #include <boost/utility/enable_if.hpp>
 
+//TODO constexpr
+
 namespace boost { namespace fusion
 {
     struct iterator_facade_tag;
@@ -45,10 +47,8 @@
                   , typename detail::add_lref<It2>::type
                 >::type
         {
-            //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It1>));
-            BOOST_FUSION_MPL_ASSERT((traits::is_forward<It1>));
-            //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It2>));
-            BOOST_FUSION_MPL_ASSERT((traits::is_forward<It2>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It1>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It2>));
         };
     }
 
@@ -68,7 +68,10 @@
         template <typename It1, typename It2>
         inline typename
             enable_if<
-                mpl::and_<traits::is_iterator<It1>, traits::is_iterator<It2> >
+                mpl::and_<
+                    traits::is_iterator<It1>
+                  , traits::is_iterator<It2>
+                >
               , bool
             >::type
         operator!=(It1 const&, It1 const&)
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/key_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/key_of.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/key_of.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -38,7 +38,7 @@
           : extension::key_of_impl<typename traits::tag_of<It>::type>::
                 template apply<typename detail::add_lref<It>::type>
         {
-            //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
             BOOST_FUSION_MPL_ASSERT((traits::is_associative<It>));
         };
     }
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/next.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/next.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/next.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -37,8 +37,7 @@
           : extension::next_impl<typename traits::tag_of<It>::type>::
                 template apply<typename detail::add_lref<It>::type>
         {
-            //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
-            BOOST_FUSION_MPL_ASSERT((traits::is_forward<It>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
         };
     }
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/prior.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/prior.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/prior.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -37,8 +37,7 @@
           : extension::prior_impl<typename traits::tag_of<It>::type>::
                 template apply<typename detail::add_lref<It>::type>
         {
-            //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
-            BOOST_FUSION_MPL_ASSERT((traits::is_bidirectional<It>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
         };
     }
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -37,8 +37,7 @@
           : extension::value_of_impl<typename traits::tag_of<It>::type>::
                 template apply<typename detail::add_lref<It>::type>
         {
-            //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
-            BOOST_FUSION_MPL_ASSERT((traits::is_forward<It>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
         };
     }
 }}
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of_data.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of_data.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of_data.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -38,7 +38,7 @@
           : extension::value_of_data_impl<typename traits::tag_of<It>::type>::
                 template apply<typename detail::add_lref<It>::type>
         {
-            //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
             BOOST_FUSION_MPL_ASSERT((traits::is_associative<It>));
         };
     }
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/equal_to.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/equal_to.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/equal_to.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -23,9 +23,9 @@
     inline bool
     equal_to(Seq1 const& seq1, Seq2 const& seq2)
     {
-        //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
-        //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
 
         return
@@ -47,9 +47,9 @@
             >::type
         operator==(Seq1 const& seq1, Seq2 const& seq2)
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
 
             return fusion::equal_to(seq1, seq2);
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -26,9 +26,9 @@
     inline bool
     greater(Seq1 const& seq1, Seq2 const& seq2)
     {
-        //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
-        //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
 
 #ifdef FUSION_DIRECT_OPERATOR_USAGE
@@ -52,9 +52,9 @@
             >::type
         operator>(Seq1 const& seq1, Seq2 const& seq2)
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
 
             return fusion::greater(seq1, seq2);
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater_equal.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater_equal.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater_equal.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -26,9 +26,9 @@
     inline bool
     greater_equal(Seq1 const& seq1, Seq2 const& seq2)
     {
-        //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
-        //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
 
 #ifdef FUSION_DIRECT_OPERATOR_USAGE
@@ -52,9 +52,9 @@
             >::type
         operator>=(Seq1 const& seq1, Seq2 const& seq2)
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
 
             return fusion::greater_equal(seq1, seq2);
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -22,9 +22,9 @@
     inline bool
     less(Seq1 const& seq1, Seq2 const& seq2)
     {
-        //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
-        //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
 
         return
@@ -44,9 +44,9 @@
             >::type
         operator<(Seq1 const& seq1, Seq2 const& seq2)
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
 
             return fusion::less(seq1, seq2);
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less_equal.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less_equal.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less_equal.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -26,9 +26,9 @@
     inline bool
     less_equal(Seq1 const& seq1, Seq2 const& seq2)
     {
-        //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
-        //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
 
 #ifdef FUSION_DIRECT_OPERATOR_USAGE
@@ -81,9 +81,9 @@
             >::type
         operator<=(Seq1 const& seq1, Seq2 const& seq2)
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
 
             return fusion::less_equal(seq1, seq2);
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/not_equal_to.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/not_equal_to.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/not_equal_to.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -26,9 +26,9 @@
     inline bool
     not_equal_to(Seq1 const& seq1, Seq2 const& seq2)
     {
-        //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
-        //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
 
 #ifdef FUSION_DIRECT_OPERATOR_USAGE
@@ -54,9 +54,9 @@
             >::type
         operator!=(Seq1 const& seq1, Seq2 const& seq2)
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
 
             return fusion::not_equal_to(seq1, seq2);
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	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -13,15 +13,9 @@
 #include <boost/fusion/support/internal/ref.hpp>
 #include <boost/fusion/support/internal/assert.hpp>
 
-#include <boost/mpl/always.hpp>
-#include <boost/mpl/apply.hpp>
-
-//TODO in /sequence/intrisic/ or /container/?
 //TODO doc!!!
 namespace boost { namespace fusion
 {
-    struct void_;
-
     namespace extension
     {
         template <typename Tag>
@@ -46,7 +40,7 @@
         template <typename Tag, typename Seq>
         struct convert
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             typedef typename extension::convert_impl<Tag> gen;
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	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -49,7 +49,7 @@
           : extension::at_impl<typename traits::tag_of<Seq>::type>::
                 template apply<typename detail::add_lref<Seq>::type, N>
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((
                 mpl::or_<
                     traits::is_random_access<Seq>
@@ -66,7 +66,7 @@
         struct at_c
           : at<Seq, mpl::int_<N> >
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((
                 mpl::or_<
                     traits::is_random_access<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	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -63,7 +63,7 @@
             : extension::at_key_impl<typename traits::tag_of<Seq>::type>::
                 template apply<typename detail::add_lref<Seq>::type, Key>
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_associative<Seq>));
             BOOST_FUSION_MPL_ASSERT((has_key<Seq,Key>));
         };
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	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -29,7 +29,7 @@
         struct back
           : deref<typename prior<typename end<Seq>::type>::type>
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
             BOOST_FUSION_MPL_ASSERT_NOT((empty<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	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -38,7 +38,7 @@
             : extension::begin_impl<typename traits::tag_of<Seq>::type>::
                 template apply<typename detail::add_lref<Seq>::type>
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
         };
     }
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/empty.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/empty.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/empty.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -47,7 +47,7 @@
           : extension::empty_impl<typename traits::tag_of<Seq>::type>::
                 template apply<typename detail::add_lref<Seq>::type>::type
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
         };
     }
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	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -28,7 +28,7 @@
         struct front
           : deref<typename begin<Seq>::type>
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
             BOOST_FUSION_MPL_ASSERT_NOT((empty<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	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -55,7 +55,7 @@
           : extension::has_key_impl<typename traits::tag_of<Seq>::type>::
                 template apply<typename detail::add_lref<Seq>::type, Key>
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_associative<Seq>));
         };
     }
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/size.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/size.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/size.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -47,7 +47,7 @@
           : extension::size_impl<typename traits::tag_of<Seq>::type>::
                 template apply<typename detail::add_lref<Seq>::type>::type
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
         };
     }
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/swap.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/swap.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/swap.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -46,9 +46,9 @@
         template<typename Seq1, typename Seq2>
         struct swap
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
             BOOST_FUSION_STATIC_ASSERT((size<Seq1>::value==size<Seq2>::value));
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -49,7 +49,7 @@
           : extension::value_at_impl<typename traits::tag_of<Seq>::type>::
                 template apply<typename detail::add_lref<Seq>::type, N>
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((
                 mpl::or_<
                     traits::is_random_access<Seq>
@@ -66,7 +66,7 @@
         struct value_at_c
           : result_of::value_at<Seq,mpl::int_<N> >
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((
                 mpl::or_<
                     traits::is_random_access<Seq>
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_key.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_key.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -58,7 +58,7 @@
           : extension::value_at_key_impl<typename traits::tag_of<Seq>::type>::
                 template apply<typename detail::add_lref<Seq>::type, Key>
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_associative<Seq>));
             BOOST_FUSION_MPL_ASSERT((has_key<Seq,Key>));
         };
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	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -23,7 +23,7 @@
     inline std::istream&
     in(std::istream& is, Seq& seq)
     {
-        //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
         detail::read_sequence(is, seq);
@@ -40,7 +40,7 @@
             >::type
         operator>>(std::istream& is, Seq& seq)
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             return fusion::in(is, 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	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -26,7 +26,7 @@
     inline std::ostream&
     out(std::ostream& os, Seq& seq)
     {
-        //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
         detail::print_sequence(os, seq);
@@ -43,7 +43,7 @@
             >::type
         operator<<(std::ostream& os, Seq const& seq)
         {
-            //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+            BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
             BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
             return fusion::out(os, seq);
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/sequence_base.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/sequence_base.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/sequence_base.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -11,38 +11,42 @@
 
 #include <boost/mpl/begin_end_fwd.hpp>
 
-namespace boost { namespace fusion
+namespace boost
 {
-    struct sequence_root
-    {};
-
-    template <typename Seq>
-    struct sequence_base
-      : sequence_root
+    namespace fusion
     {
-        Seq const&
-        derived() const
-        {
-            return static_cast<Seq const&>(*this);
-        }
+        struct sequence_root
+        {};
 
-        Seq&
-        derived()
+        template <typename Seq>
+        struct sequence_base
+          : sequence_root
         {
-            return static_cast<Seq&>(*this);
-        }
-    };
+            Seq const&
+            derived() const
+            {
+                return static_cast<Seq const&>(*this);
+            }
+
+            Seq&
+            derived()
+            {
+                return static_cast<Seq&>(*this);
+            }
+        };
 
-    struct fusion_sequence_tag;
-}}
+        struct fusion_sequence_tag;
+    }
 
-namespace boost { namespace mpl
-{
-    // Deliberately break mpl::begin, so it doesn't lie that a Fusion sequence
-    // is not an MPL sequence by returning mpl::void_.
-    // In other words: Fusion Sequences are always MPL Sequences, but they can
-    // be incompletely defined.
-    template<> struct begin_impl< boost::fusion::fusion_sequence_tag >;
-}}
+    namespace mpl
+    {
+        // Deliberately break mpl::begin, so it doesn't lie that a Fusion
+        // sequence is not an MPL sequence by returning mpl::void_.
+        // In other words: Fusion Sequences are always MPL Sequences, but they
+        // can be incompletely defined.
+        template<>
+        struct begin_impl<fusion::fusion_sequence_tag>;
+    }
+}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -1,9 +1,7 @@
-/*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
+// Copyright Christopher Schmidt 2009.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
 
 #ifndef BOOST_FUSION_SUPPORT_TAG_OF_HPP
 #define BOOST_FUSION_SUPPORT_TAG_OF_HPP
@@ -11,44 +9,38 @@
 #include <boost/fusion/support/tag_of_fwd.hpp>
 #include <boost/fusion/support/internal/ref.hpp>
 
-#include <boost/mpl/is_sequence.hpp>
 #include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/if.hpp>
+#include <boost/mpl/identity.hpp>
 #include <boost/mpl/has_xxx.hpp>
 
 namespace boost { namespace fusion
 {
-    struct mpl_sequence_tag;
-    struct mpl_iterator_tag;
+    struct non_fusion_tag;
 
     namespace detail
     {
-        BOOST_MPL_HAS_XXX_TRAIT_DEF(fusion_tag)
+        BOOST_MPL_HAS_XXX_TRAIT_DEF(fusion_tag);
 
-        template <typename Seq>
+        template<typename IdentityT>
         struct get_fusion_tag
         {
-            typedef typename Seq::fusion_tag type;
+            typedef typename IdentityT::fusion_tag type;
         };
     }
 
     namespace traits
     {
-        template <typename Seq>
+        template <typename T, typename Dummy>
         struct tag_of
         {
-            typedef typename detail::identity<Seq>::type seq;
+            typedef typename detail::identity<T>::type identity_t;
 
             typedef typename
                 mpl::eval_if<
-                    detail::has_fusion_tag<seq>
-                  , detail::get_fusion_tag<seq>
-                  , mpl::if_<
-                        mpl::is_sequence<seq>
-                      , mpl_sequence_tag
-                      , mpl_iterator_tag
-                    >
-               >::type
+                    detail::has_fusion_tag<identity_t>
+                  , detail::get_fusion_tag<identity_t>
+                  , mpl::identity<non_fusion_tag>
+                >::type
             type;
         };
     }
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/tag_of_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/tag_of_fwd.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/tag_of_fwd.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -14,7 +14,7 @@
 {
     namespace traits
     {
-        template<typename Seq>
+        template<typename Seq, typename Dummy=void>
         struct tag_of;
     }
 }}
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -43,7 +43,7 @@
     struct filter_view
       : sequence_base<filter_view<Seq, Pred> >
     {
-        //BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
         typedef detail::view_storage<Seq> storage_type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -18,6 +18,9 @@
 #include <boost/mpl/bool.hpp>
 #include <boost/mpl/inherit.hpp>
 #include <boost/mpl/identity.hpp>
+#ifdef BOOST_FUSION_ENABLE_STATIC_ASSERTS
+#   include <boost/type_traits/is_same.hpp>
+#endif
 
 #include <boost/fusion/view/iterator_range/detail/iterator_range_fwd.hpp>
 #include <boost/fusion/view/iterator_range/detail/begin_impl.hpp>
@@ -34,9 +37,9 @@
     struct iterator_range
       : sequence_base<iterator_range<First, Last> >
     {
-        //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<First>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_iterator<First>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<First>));
-        //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<Last>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_iterator<Last>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Last>));
 
         typedef First begin_type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -45,9 +45,9 @@
     struct joint_view
       : sequence_base<joint_view<Seq1, Seq2> >
     {
-        //BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
-        //BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
 
         typedef detail::view_storage<Seq1> storage1_type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -46,7 +46,7 @@
     struct reverse_view
       : sequence_base<reverse_view<Seq> >
     {
-        //BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
         BOOST_FUSION_MPL_ASSERT((traits::is_bidirectional<Seq>));
 
         typedef detail::view_storage<Seq> storage_type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -28,6 +28,9 @@
 #include <boost/mpl/inherit.hpp>
 #include <boost/mpl/identity.hpp>
 #include <boost/mpl/bool.hpp>
+#ifdef BOOST_FUSION_ENABLE_STATIC_ASSERTS
+#   include <boost/mpl/equal_to.hpp>
+#endif
 #include <boost/call_traits.hpp>
 
 #include <boost/fusion/view/transform_view/transform_view_fwd.hpp>
@@ -57,14 +60,12 @@
     struct transform_view
       : sequence_base<transform_view<Seq1, Seq2, F,IsAssociative> >
     {
-        //BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
-        //BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
-
-        //BOOST_FUSION_MPL_ASSERT_RELATION(
-        //       result_of::size<Sequence1>,==,result_of::size<Sequence2>,
-        //       "both sequences must have the same length");
+        BOOST_FUSION_MPL_ASSERT((
+            mpl::equal_to<result_of::size<Seq1>,result_of::size<Seq1> >));
 
         typedef detail::view_storage<Seq1> storage1_type;
         typedef typename storage1_type::type seq1_type;
@@ -140,7 +141,7 @@
     struct unary_transform_view
       : sequence_base<unary_transform_view<Seq, F, void_> >
     {
-        //BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
 
         typedef detail::view_storage<Seq> storage_type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -138,7 +138,7 @@
     struct zip_view
       : sequence_base< zip_view<Seqs> >
     {
-        //BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seqs>));
+        BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seqs>));
         BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seqs>));
 
         typedef typename
Modified: sandbox/SOC/2009/fusion/build.bat
==============================================================================
--- sandbox/SOC/2009/fusion/build.bat	(original)
+++ sandbox/SOC/2009/fusion/build.bat	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -16,7 +16,7 @@
         call :msvc
     ) else (
         if "%1" == "" (
-            call :msvc
+            call :gcc
         ) else (
             echo Unknown toolset '%1'
             goto :eof
@@ -29,8 +29,8 @@
 goto :eof
 
 :gcc
-set PATH=C:\MinGW3\bin;%PATH%
-rem set PATH=C:\MinGW\bin;%PATH%
+set PATH=C:\Program Files (x86)\MinGWOld\bin;%PATH%
+rem set PATH=C:\Program Files (x86)\MinGW\bin;%PATH%
 set TOOLSET=gcc
 goto :eof
 
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/test/main.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/test/main.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/test/main.cpp	2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -15,6 +15,7 @@
 #include <boost/fusion/adapted.hpp>
 #include <boost/fusion/tuple.hpp>
 #include <boost/fusion/support.hpp>
+#include <boost/fusion/functional.hpp>
 
 #include <boost/mpl/placeholders.hpp>
 
@@ -121,6 +122,14 @@
 int main()
 {
     {
+        using namespace fusion;
+
+        static_assert(std::is_same<traits::tag_of<int>::type,non_fusion_tag>::value,"");
+        static_assert(std::is_same<traits::tag_of<boost::mpl::vector<> >::type,mpl_sequence_tag>::value,"");
+        static_assert(std::is_same<traits::tag_of<boost::mpl::begin<boost::mpl::vector<> >::type>::type,mpl_iterator_tag>::value,"");
+    }
+
+    {
         using namespace fusion::result_of;
 
         static_assert(std::is_same<deref<begin<vec>::type>::type,char&>::value,"");