Boost logo

Boost-Commit :

From: joel_at_[hidden]
Date: 2007-10-20 09:14:02


Author: djowel
Date: 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
New Revision: 40213
URL: http://svn.boost.org/trac/boost/changeset/40213

Log:
phase4: refactoring for v2.1
Added:
   trunk/boost/fusion/container/deque/convert.hpp
      - copied, changed from r40210, /trunk/boost/fusion/sequence/conversion/as_deque.hpp
   trunk/boost/fusion/container/deque/detail/as_deque.hpp
      - copied, changed from r40210, /trunk/boost/fusion/sequence/conversion/detail/as_deque.hpp
   trunk/boost/fusion/container/deque/detail/convert_impl.hpp (contents, props changed)
   trunk/boost/fusion/container/list/convert.hpp
      - copied, changed from r40210, /trunk/boost/fusion/sequence/conversion/as_list.hpp
   trunk/boost/fusion/container/list/detail/build_cons.hpp
      - copied unchanged from r40210, /trunk/boost/fusion/sequence/conversion/detail/build_cons.hpp
   trunk/boost/fusion/container/list/detail/convert_impl.hpp (contents, props changed)
   trunk/boost/fusion/container/map/convert.hpp
      - copied, changed from r40210, /trunk/boost/fusion/sequence/conversion/as_map.hpp
   trunk/boost/fusion/container/map/detail/as_map.hpp
      - copied, changed from r40210, /trunk/boost/fusion/sequence/conversion/detail/as_map.hpp
   trunk/boost/fusion/container/map/detail/convert_impl.hpp (contents, props changed)
   trunk/boost/fusion/container/set/convert.hpp
      - copied, changed from r40210, /trunk/boost/fusion/sequence/conversion/as_set.hpp
   trunk/boost/fusion/container/set/detail/as_set.hpp
      - copied, changed from r40210, /trunk/boost/fusion/sequence/conversion/detail/as_set.hpp
   trunk/boost/fusion/container/set/detail/convert_impl.hpp (contents, props changed)
   trunk/boost/fusion/container/vector/convert.hpp
      - copied, changed from r40210, /trunk/boost/fusion/sequence/conversion/as_vector.hpp
   trunk/boost/fusion/container/vector/detail/as_vector.hpp
      - copied, changed from r40210, /trunk/boost/fusion/sequence/conversion/detail/as_vector.hpp
   trunk/boost/fusion/container/vector/detail/convert_impl.hpp (contents, props changed)
   trunk/boost/fusion/sequence/convert.hpp (contents, props changed)
Removed:
   trunk/boost/fusion/mpl/detail/as.hpp
   trunk/boost/fusion/sequence/conversion/
   trunk/boost/fusion/sequence/conversion.hpp
Text files modified:
   trunk/boost/fusion/algorithm/transformation/zip.hpp | 2 +-
   trunk/boost/fusion/container/deque.hpp | 3 ++-
   trunk/boost/fusion/container/deque/convert.hpp | 11 ++++++-----
   trunk/boost/fusion/container/deque/detail/as_deque.hpp | 2 +-
   trunk/boost/fusion/container/list.hpp | 3 ++-
   trunk/boost/fusion/container/list/convert.hpp | 13 +++++++------
   trunk/boost/fusion/container/map.hpp | 3 ++-
   trunk/boost/fusion/container/map/convert.hpp | 11 ++++++-----
   trunk/boost/fusion/container/map/detail/as_map.hpp | 2 +-
   trunk/boost/fusion/container/set.hpp | 3 ++-
   trunk/boost/fusion/container/set/convert.hpp | 11 ++++++-----
   trunk/boost/fusion/container/set/detail/as_set.hpp | 2 +-
   trunk/boost/fusion/container/vector.hpp | 3 ++-
   trunk/boost/fusion/container/vector/convert.hpp | 11 ++++++-----
   trunk/boost/fusion/container/vector/detail/as_vector.hpp | 2 +-
   trunk/boost/fusion/container/vector/vector.hpp | 2 +-
   trunk/boost/fusion/functional/adapter/unfused_typed.hpp | 2 +-
   trunk/boost/fusion/include/as_vector.hpp | 2 +-
   trunk/boost/fusion/mpl/erase.hpp | 15 ++++++++-------
   trunk/boost/fusion/mpl/erase_key.hpp | 15 ++++++++-------
   trunk/boost/fusion/mpl/insert.hpp | 15 ++++++++-------
   trunk/boost/fusion/mpl/insert_range.hpp | 15 ++++++++-------
   trunk/boost/fusion/mpl/pop_back.hpp | 15 ++++++++-------
   trunk/boost/fusion/mpl/pop_front.hpp | 15 ++++++++-------
   trunk/boost/fusion/mpl/push_back.hpp | 15 ++++++++-------
   trunk/boost/fusion/mpl/push_front.hpp | 15 ++++++++-------
   trunk/boost/fusion/sequence.hpp | 3 +--
   trunk/boost/fusion/support/deduce_sequence.hpp | 2 +-
   trunk/boost/fusion/view/zip_view/detail/at_impl.hpp | 2 +-
   trunk/boost/fusion/view/zip_view/detail/deref_impl.hpp | 2 +-
   trunk/boost/fusion/view/zip_view/detail/value_at_impl.hpp | 2 +-
   trunk/boost/fusion/view/zip_view/detail/value_of_impl.hpp | 2 +-
   trunk/boost/fusion/view/zip_view/zip_view.hpp | 2 +-
   trunk/boost/fusion/view/zip_view/zip_view_iterator.hpp | 2 +-
   34 files changed, 121 insertions(+), 104 deletions(-)

Modified: trunk/boost/fusion/algorithm/transformation/zip.hpp
==============================================================================
--- trunk/boost/fusion/algorithm/transformation/zip.hpp (original)
+++ trunk/boost/fusion/algorithm/transformation/zip.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -12,7 +12,7 @@
 #include <boost/fusion/view/zip_view.hpp>
 #include <boost/fusion/adapted/mpl.hpp>
 #include <boost/fusion/container/vector.hpp>
-#include <boost/fusion/sequence/conversion/as_vector.hpp>
+#include <boost/fusion/container/vector/convert.hpp>
 #include <boost/type_traits/add_reference.hpp>
 #include <boost/preprocessor/repetition/enum.hpp>
 #include <boost/preprocessor/repetition/enum_params.hpp>

Modified: trunk/boost/fusion/container/deque.hpp
==============================================================================
--- trunk/boost/fusion/container/deque.hpp (original)
+++ trunk/boost/fusion/container/deque.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -2,13 +2,14 @@
     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_SEQUENCE_CONTAINER_DEQUE_24112006_2036)
 #define BOOST_FUSION_SEQUENCE_CONTAINER_DEQUE_24112006_2036
 
 #include <boost/fusion/container/deque/deque.hpp>
+#include <boost/fusion/container/deque/convert.hpp>
 
 #endif
 

Copied: trunk/boost/fusion/container/deque/convert.hpp (from r40210, /trunk/boost/fusion/sequence/conversion/as_deque.hpp)
==============================================================================
--- /trunk/boost/fusion/sequence/conversion/as_deque.hpp (original)
+++ trunk/boost/fusion/container/deque/convert.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -2,18 +2,19 @@
     Copyright (c) 2001-2006 Joel de Guzman
     Copyright (c) 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(FUSION_AS_DEQUE_20061213_2207)
-#define FUSION_AS_DEQUE_20061213_2207
+#if !defined(FUSION_CONVERT_20061213_2207)
+#define FUSION_CONVERT_20061213_2207
 
-#include <boost/fusion/sequence/conversion/detail/as_deque.hpp>
+#include <boost/fusion/container/deque/detail/as_deque.hpp>
+#include <boost/fusion/container/deque/detail/convert_impl.hpp>
 #include <boost/fusion/container/deque/deque.hpp>
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 #include <boost/fusion/sequence/intrinsic/size.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion
 {
     namespace result_of
     {

Copied: trunk/boost/fusion/container/deque/detail/as_deque.hpp (from r40210, /trunk/boost/fusion/sequence/conversion/detail/as_deque.hpp)
==============================================================================
--- /trunk/boost/fusion/sequence/conversion/detail/as_deque.hpp (original)
+++ trunk/boost/fusion/container/deque/detail/as_deque.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -55,7 +55,7 @@
     typedef typename fusion::result_of::value_of<BOOST_PP_CAT(I, n)>::type \
         BOOST_PP_CAT(T, n);
 
-#define BOOST_PP_FILENAME_1 <boost/fusion/sequence/conversion/detail/as_deque.hpp>
+#define BOOST_PP_FILENAME_1 <boost/fusion/container/deque/detail/as_deque.hpp>
 #define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_DEQUE_SIZE)
 #include BOOST_PP_ITERATE()
 

Added: trunk/boost/fusion/container/deque/detail/convert_impl.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/fusion/container/deque/detail/convert_impl.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -0,0 +1,45 @@
+/*=============================================================================
+ 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(FUSION_CONVERT_IMPL_20061213_2207)
+#define FUSION_CONVERT_IMPL_20061213_2207
+
+#include <boost/fusion/container/deque/detail/as_deque.hpp>
+#include <boost/fusion/container/deque/deque.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/sequence/intrinsic/size.hpp>
+
+namespace boost { namespace fusion
+{
+ struct deque_tag;
+
+ namespace extension
+ {
+ template <typename T>
+ struct convert_impl;
+
+ template <>
+ struct convert_impl<deque_tag>
+ {
+ template <typename Sequence>
+ struct apply
+ {
+ typedef typename detail::as_deque<result_of::size<Sequence>::value> gen;
+ typedef typename gen::
+ template apply<typename result_of::begin<Sequence>::type>::type
+ type;
+
+ static type call(Sequence& seq)
+ {
+ return gen::call(fusion::begin(seq));
+ }
+ };
+ };
+ }
+}}
+
+#endif

Modified: trunk/boost/fusion/container/list.hpp
==============================================================================
--- trunk/boost/fusion/container/list.hpp (original)
+++ trunk/boost/fusion/container/list.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -1,7 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
 
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 #if !defined(FUSION_SEQUENCE_CLASS_LIST_10022005_0605)
@@ -12,5 +12,6 @@
 #include <boost/fusion/container/list/limits.hpp>
 #include <boost/fusion/container/list/list.hpp>
 #include <boost/fusion/container/list/list_fwd.hpp>
+#include <boost/fusion/container/list/convert.hpp>
 
 #endif

Copied: trunk/boost/fusion/container/list/convert.hpp (from r40210, /trunk/boost/fusion/sequence/conversion/as_list.hpp)
==============================================================================
--- /trunk/boost/fusion/sequence/conversion/as_list.hpp (original)
+++ trunk/boost/fusion/container/list/convert.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -1,26 +1,27 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
 
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
-#if !defined(FUSION_AS_LIST_09232005_1215)
-#define FUSION_AS_LIST_09232005_1215
+#if !defined(FUSION_CONVERT_09232005_1215)
+#define FUSION_CONVERT_09232005_1215
 
 #include <boost/fusion/container/list/cons.hpp>
+#include <boost/fusion/container/list/detail/build_cons.hpp>
+#include <boost/fusion/container/list/detail/convert_impl.hpp>
 #include <boost/fusion/sequence/intrinsic/empty.hpp>
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 #include <boost/fusion/sequence/intrinsic/end.hpp>
-#include <boost/fusion/sequence/conversion/detail/build_cons.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion
 {
     namespace result_of
     {
         template <typename Sequence>
         struct as_list
         {
- typedef typename
+ typedef typename
                 detail::build_cons<
                     typename result_of::begin<Sequence>::type
                   , typename result_of::end<Sequence>::type

Added: trunk/boost/fusion/container/list/detail/convert_impl.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/fusion/container/list/detail/convert_impl.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -0,0 +1,51 @@
+/*=============================================================================
+ 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(FUSION_CONVERT_IMPL_09232005_1215)
+#define FUSION_CONVERT_IMPL_09232005_1215
+
+#include <boost/fusion/container/list/cons.hpp>
+#include <boost/fusion/container/list/detail/build_cons.hpp>
+#include <boost/fusion/sequence/intrinsic/empty.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/sequence/intrinsic/end.hpp>
+
+namespace boost { namespace fusion
+{
+ struct cons_tag;
+
+ namespace extension
+ {
+ template <typename T>
+ struct convert_impl;
+
+ template <>
+ struct convert_impl<cons_tag>
+ {
+ template <typename Sequence>
+ struct apply
+ {
+ typedef typename
+ detail::build_cons<
+ typename result_of::begin<Sequence>::type
+ , typename result_of::end<Sequence>::type
+ >
+ build_cons;
+
+ typedef typename build_cons::type type;
+
+ static type
+ call(Sequence& seq)
+ {
+ return build_cons::call(fusion::begin(seq), fusion::end(seq));
+ }
+ };
+ };
+ }
+}}
+
+#endif

Modified: trunk/boost/fusion/container/map.hpp
==============================================================================
--- trunk/boost/fusion/container/map.hpp (original)
+++ trunk/boost/fusion/container/map.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -1,7 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
 
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 #if !defined(FUSION_SEQUENCE_CLASS_MAP_10022005_0606)
@@ -10,5 +10,6 @@
 #include <boost/fusion/container/map/limits.hpp>
 #include <boost/fusion/container/map/map.hpp>
 #include <boost/fusion/container/map/map_fwd.hpp>
+#include <boost/fusion/container/map/convert.hpp>
 
 #endif

Copied: trunk/boost/fusion/container/map/convert.hpp (from r40210, /trunk/boost/fusion/sequence/conversion/as_map.hpp)
==============================================================================
--- /trunk/boost/fusion/sequence/conversion/as_map.hpp (original)
+++ trunk/boost/fusion/container/map/convert.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -1,18 +1,19 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
 
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
-#if !defined(FUSION_AS_MAP_09232005_1340)
-#define FUSION_AS_MAP_09232005_1340
+#if !defined(FUSION_CONVERT_09232005_1340)
+#define FUSION_CONVERT_09232005_1340
 
-#include <boost/fusion/sequence/conversion/detail/as_map.hpp>
+#include <boost/fusion/container/map/detail/as_map.hpp>
+#include <boost/fusion/container/map/detail/convert_impl.hpp>
 #include <boost/fusion/container/map/map.hpp>
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 #include <boost/fusion/sequence/intrinsic/size.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion
 {
     namespace result_of
     {

Copied: trunk/boost/fusion/container/map/detail/as_map.hpp (from r40210, /trunk/boost/fusion/sequence/conversion/detail/as_map.hpp)
==============================================================================
--- /trunk/boost/fusion/sequence/conversion/detail/as_map.hpp (original)
+++ trunk/boost/fusion/container/map/detail/as_map.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -54,7 +54,7 @@
     typedef typename fusion::result_of::value_of<BOOST_PP_CAT(I, n)>::type \
         BOOST_PP_CAT(T, n);
 
-#define BOOST_PP_FILENAME_1 <boost/fusion/sequence/conversion/detail/as_map.hpp>
+#define BOOST_PP_FILENAME_1 <boost/fusion/container/map/detail/as_map.hpp>
 #define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_MAP_SIZE)
 #include BOOST_PP_ITERATE()
 

Added: trunk/boost/fusion/container/map/detail/convert_impl.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/fusion/container/map/detail/convert_impl.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -0,0 +1,45 @@
+/*=============================================================================
+ 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(FUSION_CONVERT_IMPL_09232005_1340)
+#define FUSION_CONVERT_IMPL_09232005_1340
+
+#include <boost/fusion/container/map/detail/as_map.hpp>
+#include <boost/fusion/container/map/map.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/sequence/intrinsic/size.hpp>
+
+namespace boost { namespace fusion
+{
+ struct map_tag;
+
+ namespace extension
+ {
+ template <typename T>
+ struct convert_impl;
+
+ template <>
+ struct convert_impl<map_tag>
+ {
+ template <typename Sequence>
+ struct apply
+ {
+ typedef typename detail::as_map<result_of::size<Sequence>::value> gen;
+ typedef typename gen::
+ template apply<typename result_of::begin<Sequence>::type>::type
+ type;
+
+ static type call(Sequence& seq)
+ {
+ return gen::call(fusion::begin(seq));
+ }
+ };
+ };
+ }
+}}
+
+#endif

Modified: trunk/boost/fusion/container/set.hpp
==============================================================================
--- trunk/boost/fusion/container/set.hpp (original)
+++ trunk/boost/fusion/container/set.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -1,7 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
 
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 #if !defined(FUSION_SEQUENCE_CLASS_SET_10022005_0607)
@@ -10,5 +10,6 @@
 #include <boost/fusion/container/set/limits.hpp>
 #include <boost/fusion/container/set/set.hpp>
 #include <boost/fusion/container/set/set_fwd.hpp>
+#include <boost/fusion/container/set/convert.hpp>
 
 #endif

Copied: trunk/boost/fusion/container/set/convert.hpp (from r40210, /trunk/boost/fusion/sequence/conversion/as_set.hpp)
==============================================================================
--- /trunk/boost/fusion/sequence/conversion/as_set.hpp (original)
+++ trunk/boost/fusion/container/set/convert.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -1,18 +1,19 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
 
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
-#if !defined(FUSION_AS_SET_09232005_1341)
-#define FUSION_AS_SET_09232005_1341
+#if !defined(FUSION_CONVERT_09232005_1341)
+#define FUSION_CONVERT_09232005_1341
 
-#include <boost/fusion/sequence/conversion/detail/as_set.hpp>
+#include <boost/fusion/container/set/detail/as_set.hpp>
+#include <boost/fusion/container/set/detail/convert_impl.hpp>
 #include <boost/fusion/container/set/set.hpp>
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 #include <boost/fusion/sequence/intrinsic/size.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion
 {
     namespace result_of
     {

Copied: trunk/boost/fusion/container/set/detail/as_set.hpp (from r40210, /trunk/boost/fusion/sequence/conversion/detail/as_set.hpp)
==============================================================================
--- /trunk/boost/fusion/sequence/conversion/detail/as_set.hpp (original)
+++ trunk/boost/fusion/container/set/detail/as_set.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -54,7 +54,7 @@
     typedef typename fusion::result_of::value_of<BOOST_PP_CAT(I, n)>::type \
         BOOST_PP_CAT(T, n);
 
-#define BOOST_PP_FILENAME_1 <boost/fusion/sequence/conversion/detail/as_set.hpp>
+#define BOOST_PP_FILENAME_1 <boost/fusion/container/set/detail/as_set.hpp>
 #define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_SET_SIZE)
 #include BOOST_PP_ITERATE()
 

Added: trunk/boost/fusion/container/set/detail/convert_impl.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/fusion/container/set/detail/convert_impl.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -0,0 +1,45 @@
+/*=============================================================================
+ 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(FUSION_CONVERT_IMPL_09232005_1341)
+#define FUSION_CONVERT_IMPL_09232005_1341
+
+#include <boost/fusion/container/set/detail/as_set.hpp>
+#include <boost/fusion/container/set/set.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/sequence/intrinsic/size.hpp>
+
+namespace boost { namespace fusion
+{
+ struct set_tag;
+
+ namespace extension
+ {
+ template <typename T>
+ struct convert_impl;
+
+ template <>
+ struct convert_impl<set_tag>
+ {
+ template <typename Sequence>
+ struct apply
+ {
+ typedef typename detail::as_set<result_of::size<Sequence>::value> gen;
+ typedef typename gen::
+ template apply<typename result_of::begin<Sequence>::type>::type
+ type;
+
+ static type call(Sequence& seq)
+ {
+ return gen::call(fusion::begin(seq));
+ }
+ };
+ };
+ }
+}}
+
+#endif

Modified: trunk/boost/fusion/container/vector.hpp
==============================================================================
--- trunk/boost/fusion/container/vector.hpp (original)
+++ trunk/boost/fusion/container/vector.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -1,7 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
 
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 #if !defined(FUSION_SEQUENCE_CLASS_VECTOR_10022005_0602)
@@ -16,5 +16,6 @@
 #include <boost/fusion/container/vector/vector.hpp>
 #include <boost/fusion/container/vector/vector_fwd.hpp>
 #include <boost/fusion/container/vector/vector_iterator.hpp>
+#include <boost/fusion/container/vector/convert.hpp>
 
 #endif

Copied: trunk/boost/fusion/container/vector/convert.hpp (from r40210, /trunk/boost/fusion/sequence/conversion/as_vector.hpp)
==============================================================================
--- /trunk/boost/fusion/sequence/conversion/as_vector.hpp (original)
+++ trunk/boost/fusion/container/vector/convert.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -1,18 +1,19 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
 
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
-#if !defined(FUSION_AS_VECTOR_09222005_1104)
-#define FUSION_AS_VECTOR_09222005_1104
+#if !defined(FUSION_CONVERT_09222005_1104)
+#define FUSION_CONVERT_09222005_1104
 
-#include <boost/fusion/sequence/conversion/detail/as_vector.hpp>
+#include <boost/fusion/container/vector/detail/as_vector.hpp>
+#include <boost/fusion/container/vector/detail/convert_impl.hpp>
 #include <boost/fusion/container/vector/vector.hpp>
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 #include <boost/fusion/sequence/intrinsic/size.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion
 {
     namespace result_of
     {

Copied: trunk/boost/fusion/container/vector/detail/as_vector.hpp (from r40210, /trunk/boost/fusion/sequence/conversion/detail/as_vector.hpp)
==============================================================================
--- /trunk/boost/fusion/sequence/conversion/detail/as_vector.hpp (original)
+++ trunk/boost/fusion/container/vector/detail/as_vector.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -54,7 +54,7 @@
     typedef typename fusion::result_of::value_of<BOOST_PP_CAT(I, n)>::type \
         BOOST_PP_CAT(T, n);
 
-#define BOOST_PP_FILENAME_1 <boost/fusion/sequence/conversion/detail/as_vector.hpp>
+#define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/as_vector.hpp>
 #define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_VECTOR_SIZE)
 #include BOOST_PP_ITERATE()
 

Added: trunk/boost/fusion/container/vector/detail/convert_impl.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/fusion/container/vector/detail/convert_impl.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -0,0 +1,45 @@
+/*=============================================================================
+ 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(FUSION_CONVERT_IMPL_09222005_1104)
+#define FUSION_CONVERT_IMPL_09222005_1104
+
+#include <boost/fusion/container/vector/detail/as_vector.hpp>
+#include <boost/fusion/container/vector/vector.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/sequence/intrinsic/size.hpp>
+
+namespace boost { namespace fusion
+{
+ struct vector_tag;
+
+ namespace extension
+ {
+ template <typename T>
+ struct convert_impl;
+
+ template <>
+ struct convert_impl<vector_tag>
+ {
+ template <typename Sequence>
+ struct apply
+ {
+ typedef typename detail::as_vector<result_of::size<Sequence>::value> gen;
+ typedef typename gen::
+ template apply<typename result_of::begin<Sequence>::type>::type
+ type;
+
+ static type call(Sequence& seq)
+ {
+ return gen::call(fusion::begin(seq));
+ }
+ };
+ };
+ }
+}}
+
+#endif

Modified: trunk/boost/fusion/container/vector/vector.hpp
==============================================================================
--- trunk/boost/fusion/container/vector/vector.hpp (original)
+++ trunk/boost/fusion/container/vector/vector.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -9,7 +9,7 @@
 
 #include <boost/fusion/container/vector/vector_fwd.hpp>
 #include <boost/fusion/container/vector/detail/vector_n_chooser.hpp>
-#include <boost/fusion/sequence/conversion/detail/as_vector.hpp>
+#include <boost/fusion/container/vector/detail/as_vector.hpp>
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 #include <boost/mpl/at.hpp>
 #include <boost/mpl/bool.hpp>

Modified: trunk/boost/fusion/functional/adapter/unfused_typed.hpp
==============================================================================
--- trunk/boost/fusion/functional/adapter/unfused_typed.hpp (original)
+++ trunk/boost/fusion/functional/adapter/unfused_typed.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -23,7 +23,7 @@
 #include <boost/fusion/sequence/intrinsic/value_at.hpp>
 #include <boost/fusion/sequence/intrinsic/size.hpp>
 #include <boost/fusion/container/vector/vector.hpp>
-#include <boost/fusion/sequence/conversion/as_vector.hpp>
+#include <boost/fusion/container/vector/convert.hpp>
 
 #include <boost/fusion/functional/adapter/limits.hpp>
 #include <boost/fusion/functional/adapter/detail/access.hpp>

Modified: trunk/boost/fusion/include/as_vector.hpp
==============================================================================
--- trunk/boost/fusion/include/as_vector.hpp (original)
+++ trunk/boost/fusion/include/as_vector.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -7,6 +7,6 @@
 #if !defined(FUSION_INCLUDE_AS_VECTOR)
 #define FUSION_INCLUDE_AS_VECTOR
 
-#include <boost/fusion/sequence/conversion/as_vector.hpp>
+#include <boost/fusion/container/vector/convert.hpp>
 
 #endif

Deleted: trunk/boost/fusion/mpl/detail/as.hpp
==============================================================================
--- trunk/boost/fusion/mpl/detail/as.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
+++ (empty file)
@@ -1,80 +0,0 @@
-/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_AS_10022005_1442)
-#define FUSION_AS_10022005_1442
-
-namespace boost { namespace fusion
-{
- namespace result_of
- {
- template <typename Sequence>
- struct as_list;
-
- template <typename Sequence>
- struct as_map;
-
- template <typename Sequence>
- struct as_set;
-
- template <typename Sequence>
- struct as_vector;
-
- template <typename Sequence>
- struct as_deque;
- }
-
- namespace detail
- {
- template <typename Tag>
- struct as_impl;
-
- template <>
- struct as_impl<cons_tag>
- {
- template <typename Sequence>
- struct apply : result_of::as_list<Sequence> {};
- };
-
- template <>
- struct as_impl<map_tag>
- {
- template <typename Sequence>
- struct apply : result_of::as_map<Sequence> {};
- };
-
- template <>
- struct as_impl<set_tag>
- {
- template <typename Sequence>
- struct apply : result_of::as_set<Sequence> {};
- };
-
- template <>
- struct as_impl<vector_tag>
- {
- template <typename Sequence>
- struct apply : result_of::as_vector<Sequence> {};
- };
-
- template<>
- struct as_impl<deque_tag>
- {
- template <typename Sequence>
- struct apply : result_of::as_deque<Sequence> {};
- };
-
- template <typename Tag, typename Sequence>
- struct as
- {
- typedef typename
- as_impl<Tag>::template apply<Sequence>::type
- type;
- };
- }
-}}
-
-#endif

Modified: trunk/boost/fusion/mpl/erase.hpp
==============================================================================
--- trunk/boost/fusion/mpl/erase.hpp (original)
+++ trunk/boost/fusion/mpl/erase.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -1,7 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
 
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 #if !defined(FUSION_ERASE_10022005_1835)
@@ -10,7 +10,7 @@
 #include <boost/mpl/erase.hpp>
 #include <boost/fusion/support/tag_of.hpp>
 #include <boost/fusion/algorithm/transformation/erase.hpp>
-#include <boost/fusion/mpl/detail/as.hpp>
+#include <boost/fusion/sequence/convert.hpp>
 
 namespace boost { namespace mpl
 {
@@ -23,12 +23,13 @@
         template <typename Sequence, typename First, typename Last>
         struct apply
         {
- typedef typename
- fusion::result_of::erase<Sequence, First, Last>::type
+ typedef typename
+ fusion::result_of::erase<Sequence, First, Last>::type
             result;
-
- typedef typename
- fusion::detail::as<typename fusion::detail::tag_of<Sequence>::type, result>::type
+
+ typedef typename
+ fusion::result_of::convert<
+ typename fusion::detail::tag_of<Sequence>::type, result>::type
             type;
         };
     };

Modified: trunk/boost/fusion/mpl/erase_key.hpp
==============================================================================
--- trunk/boost/fusion/mpl/erase_key.hpp (original)
+++ trunk/boost/fusion/mpl/erase_key.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -1,7 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
 
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 #if !defined(FUSION_ERASE_KEY_10022005_1907)
@@ -10,7 +10,7 @@
 #include <boost/mpl/erase_key.hpp>
 #include <boost/fusion/support/tag_of.hpp>
 #include <boost/fusion/algorithm/transformation/erase_key.hpp>
-#include <boost/fusion/mpl/detail/as.hpp>
+#include <boost/fusion/sequence/convert.hpp>
 
 namespace boost { namespace mpl
 {
@@ -23,12 +23,13 @@
         template <typename Sequence, typename Key>
         struct apply
         {
- typedef typename
- fusion::result_of::erase_key<Sequence, Key>::type
+ typedef typename
+ fusion::result_of::erase_key<Sequence, Key>::type
             result;
-
- typedef typename
- fusion::detail::as<typename fusion::detail::tag_of<Sequence>::type, result>::type
+
+ typedef typename
+ fusion::result_of::convert<
+ typename fusion::detail::tag_of<Sequence>::type, result>::type
             type;
         };
     };

Modified: trunk/boost/fusion/mpl/insert.hpp
==============================================================================
--- trunk/boost/fusion/mpl/insert.hpp (original)
+++ trunk/boost/fusion/mpl/insert.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -1,7 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
 
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 #if !defined(FUSION_INSERT_10022005_1837)
@@ -10,7 +10,7 @@
 #include <boost/mpl/insert.hpp>
 #include <boost/fusion/support/tag_of.hpp>
 #include <boost/fusion/algorithm/transformation/insert.hpp>
-#include <boost/fusion/mpl/detail/as.hpp>
+#include <boost/fusion/sequence/convert.hpp>
 
 namespace boost { namespace mpl
 {
@@ -23,12 +23,13 @@
         template <typename Sequence, typename Pos, typename T>
         struct apply
         {
- typedef typename
- fusion::result_of::insert<Sequence, Pos, T>::type
+ typedef typename
+ fusion::result_of::insert<Sequence, Pos, T>::type
             result;
-
- typedef typename
- fusion::detail::as<typename fusion::detail::tag_of<Sequence>::type, result>::type
+
+ typedef typename
+ fusion::result_of::convert<
+ typename fusion::detail::tag_of<Sequence>::type, result>::type
             type;
         };
     };

Modified: trunk/boost/fusion/mpl/insert_range.hpp
==============================================================================
--- trunk/boost/fusion/mpl/insert_range.hpp (original)
+++ trunk/boost/fusion/mpl/insert_range.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -1,7 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
 
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 #if !defined(FUSION_INSERT_RANGE_10022005_1838)
@@ -10,7 +10,7 @@
 #include <boost/mpl/insert_range.hpp>
 #include <boost/fusion/support/tag_of.hpp>
 #include <boost/fusion/algorithm/transformation/insert_range.hpp>
-#include <boost/fusion/mpl/detail/as.hpp>
+#include <boost/fusion/sequence/convert.hpp>
 
 namespace boost { namespace mpl
 {
@@ -23,12 +23,13 @@
         template <typename Sequence, typename Pos, typename Range>
         struct apply
         {
- typedef typename
- fusion::result_of::insert_range<Sequence, Pos, Range>::type
+ typedef typename
+ fusion::result_of::insert_range<Sequence, Pos, Range>::type
             result;
-
- typedef typename
- fusion::detail::as<typename fusion::detail::tag_of<Sequence>::type, result>::type
+
+ typedef typename
+ fusion::result_of::convert<
+ typename fusion::detail::tag_of<Sequence>::type, result>::type
             type;
         };
     };

Modified: trunk/boost/fusion/mpl/pop_back.hpp
==============================================================================
--- trunk/boost/fusion/mpl/pop_back.hpp (original)
+++ trunk/boost/fusion/mpl/pop_back.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -1,7 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
 
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 #if !defined(FUSION_POP_BACK_10022005_1801)
@@ -10,7 +10,7 @@
 #include <boost/mpl/pop_back.hpp>
 #include <boost/fusion/support/tag_of.hpp>
 #include <boost/fusion/algorithm/transformation/pop_back.hpp>
-#include <boost/fusion/mpl/detail/as.hpp>
+#include <boost/fusion/sequence/convert.hpp>
 
 namespace boost { namespace mpl
 {
@@ -23,12 +23,13 @@
         template <typename Sequence>
         struct apply
         {
- typedef typename
- fusion::result_of::pop_back<Sequence>::type
+ typedef typename
+ fusion::result_of::pop_back<Sequence>::type
             result;
-
- typedef typename
- fusion::detail::as<typename fusion::detail::tag_of<Sequence>::type, result>::type
+
+ typedef typename
+ fusion::result_of::convert<
+ typename fusion::detail::tag_of<Sequence>::type, result>::type
             type;
         };
     };

Modified: trunk/boost/fusion/mpl/pop_front.hpp
==============================================================================
--- trunk/boost/fusion/mpl/pop_front.hpp (original)
+++ trunk/boost/fusion/mpl/pop_front.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -1,7 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
 
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 #if !defined(FUSION_POP_FRONT_10022005_1800)
@@ -10,7 +10,7 @@
 #include <boost/mpl/pop_front.hpp>
 #include <boost/fusion/support/tag_of.hpp>
 #include <boost/fusion/algorithm/transformation/pop_front.hpp>
-#include <boost/fusion/mpl/detail/as.hpp>
+#include <boost/fusion/sequence/convert.hpp>
 
 namespace boost { namespace mpl
 {
@@ -23,12 +23,13 @@
         template <typename Sequence>
         struct apply
         {
- typedef typename
- fusion::result_of::pop_front<Sequence>::type
+ typedef typename
+ fusion::result_of::pop_front<Sequence>::type
             result;
-
- typedef typename
- fusion::detail::as<typename fusion::detail::tag_of<Sequence>::type, result>::type
+
+ typedef typename
+ fusion::result_of::convert<
+ typename fusion::detail::tag_of<Sequence>::type, result>::type
             type;
         };
     };

Modified: trunk/boost/fusion/mpl/push_back.hpp
==============================================================================
--- trunk/boost/fusion/mpl/push_back.hpp (original)
+++ trunk/boost/fusion/mpl/push_back.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -1,7 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
 
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 #if !defined(FUSION_PUSH_BACK_10022005_1647)
@@ -10,7 +10,7 @@
 #include <boost/mpl/push_back.hpp>
 #include <boost/fusion/support/tag_of.hpp>
 #include <boost/fusion/algorithm/transformation/push_back.hpp>
-#include <boost/fusion/mpl/detail/as.hpp>
+#include <boost/fusion/sequence/convert.hpp>
 
 namespace boost { namespace mpl
 {
@@ -23,12 +23,13 @@
         template <typename Sequence, typename T>
         struct apply
         {
- typedef typename
- fusion::result_of::push_back<Sequence, T>::type
+ typedef typename
+ fusion::result_of::push_back<Sequence, T>::type
             result;
-
- typedef typename
- fusion::detail::as<typename fusion::detail::tag_of<Sequence>::type, result>::type
+
+ typedef typename
+ fusion::result_of::convert<
+ typename fusion::detail::tag_of<Sequence>::type, result>::type
             type;
         };
     };

Modified: trunk/boost/fusion/mpl/push_front.hpp
==============================================================================
--- trunk/boost/fusion/mpl/push_front.hpp (original)
+++ trunk/boost/fusion/mpl/push_front.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -1,7 +1,7 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
 
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 #if !defined(FUSION_PUSH_FRONT_10022005_1720)
@@ -10,7 +10,7 @@
 #include <boost/mpl/push_front.hpp>
 #include <boost/fusion/support/tag_of.hpp>
 #include <boost/fusion/algorithm/transformation/push_front.hpp>
-#include <boost/fusion/mpl/detail/as.hpp>
+#include <boost/fusion/sequence/convert.hpp>
 
 namespace boost { namespace mpl
 {
@@ -23,12 +23,13 @@
         template <typename Sequence, typename T>
         struct apply
         {
- typedef typename
- fusion::result_of::push_front<Sequence, T>::type
+ typedef typename
+ fusion::result_of::push_front<Sequence, T>::type
             result;
-
- typedef typename
- fusion::detail::as<typename fusion::detail::tag_of<Sequence>::type, result>::type
+
+ typedef typename
+ fusion::result_of::convert<
+ typename fusion::detail::tag_of<Sequence>::type, result>::type
             type;
         };
     };

Modified: trunk/boost/fusion/sequence.hpp
==============================================================================
--- trunk/boost/fusion/sequence.hpp (original)
+++ trunk/boost/fusion/sequence.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -9,10 +9,9 @@
 
 #include <boost/fusion/sequence/sequence_facade.hpp>
 #include <boost/fusion/sequence/comparison.hpp>
-#include <boost/fusion/sequence/conversion.hpp>
 #include <boost/fusion/sequence/generation.hpp>
 #include <boost/fusion/sequence/intrinsic.hpp>
 #include <boost/fusion/sequence/io.hpp>
-#include <boost/fusion/adapted.hpp>
+#include <boost/fusion/sequence/convert.hpp>
 
 #endif

Deleted: trunk/boost/fusion/sequence/conversion.hpp
==============================================================================
--- trunk/boost/fusion/sequence/conversion.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
+++ (empty file)
@@ -1,16 +0,0 @@
-/*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_SEQUENCE_CONVERSION_10022005_0622)
-#define FUSION_SEQUENCE_CONVERSION_10022005_0622
-
-#include <boost/fusion/sequence/conversion/as_list.hpp>
-#include <boost/fusion/sequence/conversion/as_map.hpp>
-#include <boost/fusion/sequence/conversion/as_set.hpp>
-#include <boost/fusion/sequence/conversion/as_vector.hpp>
-#include <boost/fusion/sequence/conversion/as_deque.hpp>
-
-#endif

Added: trunk/boost/fusion/sequence/convert.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/fusion/sequence/convert.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -0,0 +1,48 @@
+/*=============================================================================
+ 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)
+==============================================================================*/
+#if !defined(FUSION_CONVERT_10022005_1442)
+#define FUSION_CONVERT_10022005_1442
+
+namespace boost { namespace fusion
+{
+ namespace extension
+ {
+ template <typename Tag>
+ struct convert_impl;
+ }
+
+ namespace result_of
+ {
+ template <typename Tag, typename Sequence>
+ struct convert
+ {
+ typedef typename extension::convert_impl<Tag> gen;
+
+ typedef typename
+ gen::template apply<Sequence>::type
+ type;
+ };
+ }
+
+ template <typename Tag, typename Sequence>
+ inline typename result_of::convert<Tag, Sequence>::type
+ convert(Sequence& seq)
+ {
+ typedef typename result_of::convert<Tag, Sequence>::gen gen;
+ return gen::call(seq);
+ }
+
+ template <typename Tag, typename Sequence>
+ inline typename result_of::convert<Tag, Sequence const>::type
+ convert(Sequence const& seq)
+ {
+ typedef typename result_of::convert<Tag, Sequence const>::gen gen;
+ return gen::call(seq);
+ }
+}}
+
+#endif

Modified: trunk/boost/fusion/support/deduce_sequence.hpp
==============================================================================
--- trunk/boost/fusion/support/deduce_sequence.hpp (original)
+++ trunk/boost/fusion/support/deduce_sequence.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -10,7 +10,7 @@
 #define BOOST_FUSION_SUPPORT_DEDUCE_SEQUENCE_HPP_INCLUDED
 
 #include <boost/fusion/support/deduce.hpp>
-#include <boost/fusion/sequence/conversion/as_vector.hpp>
+#include <boost/fusion/container/vector/convert.hpp>
 #include <boost/fusion/mpl.hpp>
 #include <boost/mpl/transform.hpp>
 

Modified: trunk/boost/fusion/view/zip_view/detail/at_impl.hpp
==============================================================================
--- trunk/boost/fusion/view/zip_view/detail/at_impl.hpp (original)
+++ trunk/boost/fusion/view/zip_view/detail/at_impl.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -10,7 +10,7 @@
 
 #include <boost/fusion/container/vector.hpp>
 #include <boost/fusion/sequence/intrinsic/at.hpp>
-#include <boost/fusion/sequence/conversion/as_vector.hpp>
+#include <boost/fusion/container/vector/convert.hpp>
 #include <boost/fusion/algorithm/transformation/transform.hpp>
 #include <boost/type_traits/remove_reference.hpp>
 #include <boost/type_traits/is_reference.hpp>

Modified: trunk/boost/fusion/view/zip_view/detail/deref_impl.hpp
==============================================================================
--- trunk/boost/fusion/view/zip_view/detail/deref_impl.hpp (original)
+++ trunk/boost/fusion/view/zip_view/detail/deref_impl.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -11,7 +11,7 @@
 #include <boost/fusion/container/vector.hpp>
 #include <boost/fusion/iterator/deref.hpp>
 #include <boost/fusion/algorithm/transformation/transform.hpp>
-#include <boost/fusion/sequence/conversion/as_vector.hpp>
+#include <boost/fusion/container/vector/convert.hpp>
 #include <boost/fusion/support/unused.hpp>
 #include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/identity.hpp>

Modified: trunk/boost/fusion/view/zip_view/detail/value_at_impl.hpp
==============================================================================
--- trunk/boost/fusion/view/zip_view/detail/value_at_impl.hpp (original)
+++ trunk/boost/fusion/view/zip_view/detail/value_at_impl.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -8,7 +8,7 @@
 #if !defined(FUSION_VALUE_AT_IMPL_20060124_2129)
 #define FUSION_VALUE_AT_IMPL_20060124_2129
 
-#include <boost/fusion/sequence/conversion/as_vector.hpp>
+#include <boost/fusion/container/vector/convert.hpp>
 #include <boost/fusion/algorithm/transformation/transform.hpp>
 #include <boost/fusion/sequence/intrinsic/value_at.hpp>
 #include <boost/type_traits/remove_reference.hpp>

Modified: trunk/boost/fusion/view/zip_view/detail/value_of_impl.hpp
==============================================================================
--- trunk/boost/fusion/view/zip_view/detail/value_of_impl.hpp (original)
+++ trunk/boost/fusion/view/zip_view/detail/value_of_impl.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -8,7 +8,7 @@
 #if !defined(FUSION_VALUE_OF_IMPL_20060124_2147)
 #define FUSION_VALUE_OF_IMPL_20060124_2147
 
-#include <boost/fusion/sequence/conversion/as_vector.hpp>
+#include <boost/fusion/container/vector/convert.hpp>
 #include <boost/fusion/algorithm/transformation/transform.hpp>
 #include <boost/fusion/iterator/value_of.hpp>
 #include <boost/mpl/placeholders.hpp>

Modified: trunk/boost/fusion/view/zip_view/zip_view.hpp
==============================================================================
--- trunk/boost/fusion/view/zip_view/zip_view.hpp (original)
+++ trunk/boost/fusion/view/zip_view/zip_view.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -17,7 +17,7 @@
 #include <boost/fusion/view/zip_view/detail/size_impl.hpp>
 #include <boost/fusion/view/zip_view/detail/at_impl.hpp>
 #include <boost/fusion/view/zip_view/detail/value_at_impl.hpp>
-#include <boost/fusion/sequence/conversion/as_vector.hpp>
+#include <boost/fusion/container/vector/convert.hpp>
 #include <boost/fusion/algorithm/query/find_if.hpp>
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 #include <boost/fusion/sequence/intrinsic/size.hpp>

Modified: trunk/boost/fusion/view/zip_view/zip_view_iterator.hpp
==============================================================================
--- trunk/boost/fusion/view/zip_view/zip_view_iterator.hpp (original)
+++ trunk/boost/fusion/view/zip_view/zip_view_iterator.hpp 2007-10-20 09:13:58 EDT (Sat, 20 Oct 2007)
@@ -18,7 +18,7 @@
 #include <boost/fusion/view/zip_view/detail/value_of_impl.hpp>
 #include <boost/fusion/view/zip_view/detail/equal_to_impl.hpp>
 
-#include <boost/fusion/sequence/conversion/as_vector.hpp>
+#include <boost/fusion/container/vector/convert.hpp>
 
 namespace boost { namespace fusion {
     


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk