$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: joel_at_[hidden]
Date: 2007-12-20 21:45:21
Author: djowel
Date: 2007-12-20 21:45:20 EST (Thu, 20 Dec 2007)
New Revision: 42225
URL: http://svn.boost.org/trac/boost/changeset/42225
Log:
merge from trunk
Removed:
   branches/release/boost/fusion/adapted/variant/
   branches/release/boost/fusion/adapted/variant.hpp
   branches/release/boost/fusion/include/utility.hpp
   branches/release/boost/fusion/include/variant.hpp
   branches/release/boost/fusion/sequence/utility.hpp
Text files modified: 
   branches/release/boost/fusion/adapted.hpp                           |     4 ++--                                    
   branches/release/boost/fusion/adapted/struct.hpp                    |    13 +++++++++----                           
   branches/release/boost/fusion/adapted/struct/adapt_assoc_struct.hpp |     6 +++---                                  
   branches/release/boost/fusion/adapted/struct/detail/end_impl.hpp    |    10 +++++++++-                              
   branches/release/boost/fusion/adapted/struct/extension.hpp          |     2 +-                                      
   branches/release/boost/fusion/include/accumulate.hpp                |     2 +-                                      
   branches/release/boost/fusion/support/deduce.hpp                    |    18 ++++++++++++++++++                      
   7 files changed, 43 insertions(+), 12 deletions(-)
Modified: branches/release/boost/fusion/adapted.hpp
==============================================================================
--- branches/release/boost/fusion/adapted.hpp	(original)
+++ branches/release/boost/fusion/adapted.hpp	2007-12-20 21:45:20 EST (Thu, 20 Dec 2007)
@@ -2,7 +2,7 @@
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 2005-2006 Dan Marsden
 
-    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)
 ==============================================================================*/
 #if !defined(BOOST_FUSION_ADAPTED_30122005_1420)
@@ -12,6 +12,6 @@
 #include <boost/fusion/adapted/std_pair.hpp>
 #include <boost/fusion/adapted/array.hpp>
 #include <boost/fusion/adapted/mpl.hpp>
-#include <boost/fusion/adapted/variant.hpp>
+#include <boost/fusion/adapted/struct.hpp>
 
 #endif
Modified: branches/release/boost/fusion/adapted/struct.hpp
==============================================================================
--- branches/release/boost/fusion/adapted/struct.hpp	(original)
+++ branches/release/boost/fusion/adapted/struct.hpp	2007-12-20 21:45:20 EST (Thu, 20 Dec 2007)
@@ -10,14 +10,19 @@
 
 #include <boost/fusion/adapted/struct/extension.hpp>
 #include <boost/fusion/adapted/struct/adapt_struct.hpp>
+#include <boost/fusion/adapted/struct/adapt_assoc_struct.hpp>
 #include <boost/fusion/adapted/struct/struct_iterator.hpp>
-#include <boost/fusion/adapted/struct/detail/is_view_impl.hpp>
-#include <boost/fusion/adapted/struct/detail/is_sequence_impl.hpp>
-#include <boost/fusion/adapted/struct/detail/category_of_impl.hpp>
+
+#include <boost/fusion/adapted/struct/detail/at_impl.hpp>
+#include <boost/fusion/adapted/struct/detail/at_key_impl.hpp>
 #include <boost/fusion/adapted/struct/detail/begin_impl.hpp>
+#include <boost/fusion/adapted/struct/detail/category_of_impl.hpp>
 #include <boost/fusion/adapted/struct/detail/end_impl.hpp>
+#include <boost/fusion/adapted/struct/detail/has_key_impl.hpp>
+#include <boost/fusion/adapted/struct/detail/is_sequence_impl.hpp>
+#include <boost/fusion/adapted/struct/detail/is_view_impl.hpp>
 #include <boost/fusion/adapted/struct/detail/size_impl.hpp>
-#include <boost/fusion/adapted/struct/detail/at_impl.hpp>
 #include <boost/fusion/adapted/struct/detail/value_at_impl.hpp>
+#include <boost/fusion/adapted/struct/detail/value_at_key_impl.hpp>
 
 #endif
Modified: branches/release/boost/fusion/adapted/struct/adapt_assoc_struct.hpp
==============================================================================
--- branches/release/boost/fusion/adapted/struct/adapt_assoc_struct.hpp	(original)
+++ branches/release/boost/fusion/adapted/struct/adapt_assoc_struct.hpp	2007-12-20 21:45:20 EST (Thu, 20 Dec 2007)
@@ -53,7 +53,7 @@
 // SEQ_FOR_EACH_I to generate the "linear" substructures.
 // Thanks to Paul Mensonides for the PP macro help
 
-#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_I(name, seq)                                  \
+#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_I(name, seq)                            \
     namespace boost { namespace fusion { namespace traits                       \
     {                                                                           \
         template <>                                                             \
@@ -66,11 +66,11 @@
     {                                                                           \
         template <>                                                             \
         struct struct_size<name> : mpl::int_<BOOST_PP_SEQ_SIZE(seq)> {};        \
-        BOOST_PP_SEQ_FOR_EACH_I(BOOST_FUSION_ADAPT_ASSOC_STRUCT_C, name, seq)         \
+        BOOST_PP_SEQ_FOR_EACH_I(BOOST_FUSION_ADAPT_ASSOC_STRUCT_C, name, seq)   \
     }}}                                                                         \
     /***/
 
-#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_C(r, name, i, xy)                             \
+#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_C(r, name, i, xy)                       \
     template <>                                                                 \
     struct struct_member<name, i>                                               \
     {                                                                           \
Modified: branches/release/boost/fusion/adapted/struct/detail/end_impl.hpp
==============================================================================
--- branches/release/boost/fusion/adapted/struct/detail/end_impl.hpp	(original)
+++ branches/release/boost/fusion/adapted/struct/detail/end_impl.hpp	2007-12-20 21:45:20 EST (Thu, 20 Dec 2007)
@@ -19,13 +19,21 @@
         template <typename Tag>
         struct end_impl;
 
+        template <typename Struct>
+        struct struct_size;
+
         template <>
         struct end_impl<struct_tag>
         {
             template <typename Sequence>
             struct apply
             {
-                typedef struct_iterator<Sequence, 2> type;
+                typedef
+                    struct_iterator<
+                        Sequence
+                      , struct_size<Sequence>::value
+                    >
+                type;
 
                 static type
                 call(Sequence& v)
Modified: branches/release/boost/fusion/adapted/struct/extension.hpp
==============================================================================
--- branches/release/boost/fusion/adapted/struct/extension.hpp	(original)
+++ branches/release/boost/fusion/adapted/struct/extension.hpp	2007-12-20 21:45:20 EST (Thu, 20 Dec 2007)
@@ -50,7 +50,7 @@
     struct struct_assoc_member<Struct const, Key>
     {
         typedef typename
-        add_const<typename struct_assoc_member<Struct, Key>::type>::type
+            add_const<typename struct_assoc_member<Struct, Key>::type>::type
         type;
 
         static type&
Deleted: branches/release/boost/fusion/adapted/variant.hpp
==============================================================================
--- branches/release/boost/fusion/adapted/variant.hpp	2007-12-20 21:45:20 EST (Thu, 20 Dec 2007)
+++ (empty file)
@@ -1,20 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_VARIANT_12112006_1614)
-#define BOOST_FUSION_VARIANT_12112006_1614
-
-#include <boost/fusion/adapted/variant/variant_iterator.hpp>
-#include <boost/fusion/adapted/variant/detail/is_view_impl.hpp>
-#include <boost/fusion/adapted/variant/detail/is_sequence_impl.hpp>
-#include <boost/fusion/adapted/variant/detail/category_of_impl.hpp>
-#include <boost/fusion/adapted/variant/tag_of.hpp>
-#include <boost/fusion/adapted/variant/detail/size_impl.hpp>
-#include <boost/fusion/adapted/variant/detail/begin_impl.hpp>
-#include <boost/fusion/adapted/variant/detail/end_impl.hpp>
-
-#endif
Modified: branches/release/boost/fusion/include/accumulate.hpp
==============================================================================
--- branches/release/boost/fusion/include/accumulate.hpp	(original)
+++ branches/release/boost/fusion/include/accumulate.hpp	2007-12-20 21:45:20 EST (Thu, 20 Dec 2007)
@@ -7,6 +7,6 @@
 #if !defined(FUSION_INCLUDE_ACCUMULATE)
 #define FUSION_INCLUDE_ACCUMULATE
 
-#include <boost/fusion/algorithm/accumulate.hpp>
+#include <boost/fusion/algorithm/iteration/accumulate.hpp>
 
 #endif
Deleted: branches/release/boost/fusion/include/utility.hpp
==============================================================================
--- branches/release/boost/fusion/include/utility.hpp	2007-12-20 21:45:20 EST (Thu, 20 Dec 2007)
+++ (empty file)
@@ -1,12 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2007 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)
-==============================================================================*/
-#if !defined(FUSION_INCLUDE_UTILITY)
-#define FUSION_INCLUDE_UTILITY
-
-#include <boost/fusion/sequence/utility.hpp>
-
-#endif
Deleted: branches/release/boost/fusion/include/variant.hpp
==============================================================================
--- branches/release/boost/fusion/include/variant.hpp	2007-12-20 21:45:20 EST (Thu, 20 Dec 2007)
+++ (empty file)
@@ -1,12 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2007 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)
-==============================================================================*/
-#if !defined(FUSION_INCLUDE_VARIANT)
-#define FUSION_INCLUDE_VARIANT
-
-#include <boost/fusion/adapted/variant.hpp>
-
-#endif
Deleted: branches/release/boost/fusion/sequence/utility.hpp
==============================================================================
--- branches/release/boost/fusion/sequence/utility.hpp	2007-12-20 21:45:20 EST (Thu, 20 Dec 2007)
+++ (empty file)
@@ -1,14 +0,0 @@
-//
-//  Copyright (c) 2006 João Abecasis
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#if !defined(BOOST_FUSION_SEQUENCE_UTILITY_HPP_INCLUDED)
-#define BOOST_FUSION_SEQUENCE_UTILITY_HPP_INCLUDED
-
-# include <boost/fusion/sequence/utility/unpack_args.hpp>
-
-#endif // include guard
Modified: branches/release/boost/fusion/support/deduce.hpp
==============================================================================
--- branches/release/boost/fusion/support/deduce.hpp	(original)
+++ branches/release/boost/fusion/support/deduce.hpp	2007-12-20 21:45:20 EST (Thu, 20 Dec 2007)
@@ -25,6 +25,24 @@
         typedef T type; 
     };
 
+    template <typename T>
+    struct deduce<T const>
+    {
+        typedef T type;
+    };
+
+    template <typename T>
+    struct deduce<T volatile>
+    {
+        typedef T type;
+    };
+
+    template <typename T>
+    struct deduce<T const volatile>
+    {
+        typedef T type;
+    };
+
     // Keep references on mutable LValues
 
     template <typename T>