|
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