phase4: refactoring for v2.1

[SVN r40213]
This commit is contained in:
Joel de Guzman
2007-10-20 13:13:58 +00:00
parent e894481f5b
commit c35180f4f9
43 changed files with 400 additions and 200 deletions

View File

@ -12,7 +12,7 @@
#include <boost/fusion/view/zip_view.hpp> #include <boost/fusion/view/zip_view.hpp>
#include <boost/fusion/adapted/mpl.hpp> #include <boost/fusion/adapted/mpl.hpp>
#include <boost/fusion/container/vector.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/type_traits/add_reference.hpp>
#include <boost/preprocessor/repetition/enum.hpp> #include <boost/preprocessor/repetition/enum.hpp>
#include <boost/preprocessor/repetition/enum_params.hpp> #include <boost/preprocessor/repetition/enum_params.hpp>

View File

@ -9,6 +9,7 @@
#define 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/deque.hpp>
#include <boost/fusion/container/deque/convert.hpp>
#endif #endif

View File

@ -5,10 +5,11 @@
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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(FUSION_AS_DEQUE_20061213_2207) #if !defined(FUSION_CONVERT_20061213_2207)
#define FUSION_AS_DEQUE_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/container/deque/deque.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp> #include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp> #include <boost/fusion/sequence/intrinsic/size.hpp>

View File

@ -55,7 +55,7 @@ namespace boost { namespace fusion { namespace detail
typedef typename fusion::result_of::value_of<BOOST_PP_CAT(I, n)>::type \ typedef typename fusion::result_of::value_of<BOOST_PP_CAT(I, n)>::type \
BOOST_PP_CAT(T, n); 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) #define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_DEQUE_SIZE)
#include BOOST_PP_ITERATE() #include BOOST_PP_ITERATE()

View File

@ -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

View File

@ -12,5 +12,6 @@
#include <boost/fusion/container/list/limits.hpp> #include <boost/fusion/container/list/limits.hpp>
#include <boost/fusion/container/list/list.hpp> #include <boost/fusion/container/list/list.hpp>
#include <boost/fusion/container/list/list_fwd.hpp> #include <boost/fusion/container/list/list_fwd.hpp>
#include <boost/fusion/container/list/convert.hpp>
#endif #endif

View File

@ -4,14 +4,15 @@
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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(FUSION_AS_LIST_09232005_1215) #if !defined(FUSION_CONVERT_09232005_1215)
#define FUSION_AS_LIST_09232005_1215 #define FUSION_CONVERT_09232005_1215
#include <boost/fusion/container/list/cons.hpp> #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/empty.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp> #include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/end.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
{ {

View File

@ -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

View File

@ -10,5 +10,6 @@
#include <boost/fusion/container/map/limits.hpp> #include <boost/fusion/container/map/limits.hpp>
#include <boost/fusion/container/map/map.hpp> #include <boost/fusion/container/map/map.hpp>
#include <boost/fusion/container/map/map_fwd.hpp> #include <boost/fusion/container/map/map_fwd.hpp>
#include <boost/fusion/container/map/convert.hpp>
#endif #endif

View File

@ -4,10 +4,11 @@
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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(FUSION_AS_MAP_09232005_1340) #if !defined(FUSION_CONVERT_09232005_1340)
#define FUSION_AS_MAP_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/container/map/map.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp> #include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp> #include <boost/fusion/sequence/intrinsic/size.hpp>

View File

@ -54,7 +54,7 @@ namespace boost { namespace fusion { namespace detail
typedef typename fusion::result_of::value_of<BOOST_PP_CAT(I, n)>::type \ typedef typename fusion::result_of::value_of<BOOST_PP_CAT(I, n)>::type \
BOOST_PP_CAT(T, n); 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) #define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_MAP_SIZE)
#include BOOST_PP_ITERATE() #include BOOST_PP_ITERATE()

View File

@ -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

View File

@ -10,5 +10,6 @@
#include <boost/fusion/container/set/limits.hpp> #include <boost/fusion/container/set/limits.hpp>
#include <boost/fusion/container/set/set.hpp> #include <boost/fusion/container/set/set.hpp>
#include <boost/fusion/container/set/set_fwd.hpp> #include <boost/fusion/container/set/set_fwd.hpp>
#include <boost/fusion/container/set/convert.hpp>
#endif #endif

View File

@ -4,10 +4,11 @@
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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(FUSION_AS_SET_09232005_1341) #if !defined(FUSION_CONVERT_09232005_1341)
#define FUSION_AS_SET_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/container/set/set.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp> #include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp> #include <boost/fusion/sequence/intrinsic/size.hpp>

View File

@ -54,7 +54,7 @@ namespace boost { namespace fusion { namespace detail
typedef typename fusion::result_of::value_of<BOOST_PP_CAT(I, n)>::type \ typedef typename fusion::result_of::value_of<BOOST_PP_CAT(I, n)>::type \
BOOST_PP_CAT(T, n); 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) #define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_SET_SIZE)
#include BOOST_PP_ITERATE() #include BOOST_PP_ITERATE()

View File

@ -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

View File

@ -16,5 +16,6 @@
#include <boost/fusion/container/vector/vector.hpp> #include <boost/fusion/container/vector/vector.hpp>
#include <boost/fusion/container/vector/vector_fwd.hpp> #include <boost/fusion/container/vector/vector_fwd.hpp>
#include <boost/fusion/container/vector/vector_iterator.hpp> #include <boost/fusion/container/vector/vector_iterator.hpp>
#include <boost/fusion/container/vector/convert.hpp>
#endif #endif

View File

@ -4,10 +4,11 @@
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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(FUSION_AS_VECTOR_09222005_1104) #if !defined(FUSION_CONVERT_09222005_1104)
#define FUSION_AS_VECTOR_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/container/vector/vector.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp> #include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp> #include <boost/fusion/sequence/intrinsic/size.hpp>

View File

@ -54,7 +54,7 @@ namespace boost { namespace fusion { namespace detail
typedef typename fusion::result_of::value_of<BOOST_PP_CAT(I, n)>::type \ typedef typename fusion::result_of::value_of<BOOST_PP_CAT(I, n)>::type \
BOOST_PP_CAT(T, n); 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) #define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_VECTOR_SIZE)
#include BOOST_PP_ITERATE() #include BOOST_PP_ITERATE()

View File

@ -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

View File

@ -9,7 +9,7 @@
#include <boost/fusion/container/vector/vector_fwd.hpp> #include <boost/fusion/container/vector/vector_fwd.hpp>
#include <boost/fusion/container/vector/detail/vector_n_chooser.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/fusion/sequence/intrinsic/begin.hpp>
#include <boost/mpl/at.hpp> #include <boost/mpl/at.hpp>
#include <boost/mpl/bool.hpp> #include <boost/mpl/bool.hpp>

View File

@ -23,7 +23,7 @@
#include <boost/fusion/sequence/intrinsic/value_at.hpp> #include <boost/fusion/sequence/intrinsic/value_at.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp> #include <boost/fusion/sequence/intrinsic/size.hpp>
#include <boost/fusion/container/vector/vector.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/limits.hpp>
#include <boost/fusion/functional/adapter/detail/access.hpp> #include <boost/fusion/functional/adapter/detail/access.hpp>

View File

@ -7,6 +7,6 @@
#if !defined(FUSION_INCLUDE_AS_VECTOR) #if !defined(FUSION_INCLUDE_AS_VECTOR)
#define 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 #endif

View 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

View File

@ -10,7 +10,7 @@
#include <boost/mpl/erase.hpp> #include <boost/mpl/erase.hpp>
#include <boost/fusion/support/tag_of.hpp> #include <boost/fusion/support/tag_of.hpp>
#include <boost/fusion/algorithm/transformation/erase.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 namespace boost { namespace mpl
{ {
@ -28,7 +28,8 @@ namespace boost { namespace mpl
result; result;
typedef typename typedef typename
fusion::detail::as<typename fusion::detail::tag_of<Sequence>::type, result>::type fusion::result_of::convert<
typename fusion::detail::tag_of<Sequence>::type, result>::type
type; type;
}; };
}; };

View File

@ -10,7 +10,7 @@
#include <boost/mpl/erase_key.hpp> #include <boost/mpl/erase_key.hpp>
#include <boost/fusion/support/tag_of.hpp> #include <boost/fusion/support/tag_of.hpp>
#include <boost/fusion/algorithm/transformation/erase_key.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 namespace boost { namespace mpl
{ {
@ -28,7 +28,8 @@ namespace boost { namespace mpl
result; result;
typedef typename typedef typename
fusion::detail::as<typename fusion::detail::tag_of<Sequence>::type, result>::type fusion::result_of::convert<
typename fusion::detail::tag_of<Sequence>::type, result>::type
type; type;
}; };
}; };

View File

@ -10,7 +10,7 @@
#include <boost/mpl/insert.hpp> #include <boost/mpl/insert.hpp>
#include <boost/fusion/support/tag_of.hpp> #include <boost/fusion/support/tag_of.hpp>
#include <boost/fusion/algorithm/transformation/insert.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 namespace boost { namespace mpl
{ {
@ -28,7 +28,8 @@ namespace boost { namespace mpl
result; result;
typedef typename typedef typename
fusion::detail::as<typename fusion::detail::tag_of<Sequence>::type, result>::type fusion::result_of::convert<
typename fusion::detail::tag_of<Sequence>::type, result>::type
type; type;
}; };
}; };

View File

@ -10,7 +10,7 @@
#include <boost/mpl/insert_range.hpp> #include <boost/mpl/insert_range.hpp>
#include <boost/fusion/support/tag_of.hpp> #include <boost/fusion/support/tag_of.hpp>
#include <boost/fusion/algorithm/transformation/insert_range.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 namespace boost { namespace mpl
{ {
@ -28,7 +28,8 @@ namespace boost { namespace mpl
result; result;
typedef typename typedef typename
fusion::detail::as<typename fusion::detail::tag_of<Sequence>::type, result>::type fusion::result_of::convert<
typename fusion::detail::tag_of<Sequence>::type, result>::type
type; type;
}; };
}; };

View File

@ -10,7 +10,7 @@
#include <boost/mpl/pop_back.hpp> #include <boost/mpl/pop_back.hpp>
#include <boost/fusion/support/tag_of.hpp> #include <boost/fusion/support/tag_of.hpp>
#include <boost/fusion/algorithm/transformation/pop_back.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 namespace boost { namespace mpl
{ {
@ -28,7 +28,8 @@ namespace boost { namespace mpl
result; result;
typedef typename typedef typename
fusion::detail::as<typename fusion::detail::tag_of<Sequence>::type, result>::type fusion::result_of::convert<
typename fusion::detail::tag_of<Sequence>::type, result>::type
type; type;
}; };
}; };

View File

@ -10,7 +10,7 @@
#include <boost/mpl/pop_front.hpp> #include <boost/mpl/pop_front.hpp>
#include <boost/fusion/support/tag_of.hpp> #include <boost/fusion/support/tag_of.hpp>
#include <boost/fusion/algorithm/transformation/pop_front.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 namespace boost { namespace mpl
{ {
@ -28,7 +28,8 @@ namespace boost { namespace mpl
result; result;
typedef typename typedef typename
fusion::detail::as<typename fusion::detail::tag_of<Sequence>::type, result>::type fusion::result_of::convert<
typename fusion::detail::tag_of<Sequence>::type, result>::type
type; type;
}; };
}; };

View File

@ -10,7 +10,7 @@
#include <boost/mpl/push_back.hpp> #include <boost/mpl/push_back.hpp>
#include <boost/fusion/support/tag_of.hpp> #include <boost/fusion/support/tag_of.hpp>
#include <boost/fusion/algorithm/transformation/push_back.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 namespace boost { namespace mpl
{ {
@ -28,7 +28,8 @@ namespace boost { namespace mpl
result; result;
typedef typename typedef typename
fusion::detail::as<typename fusion::detail::tag_of<Sequence>::type, result>::type fusion::result_of::convert<
typename fusion::detail::tag_of<Sequence>::type, result>::type
type; type;
}; };
}; };

View File

@ -10,7 +10,7 @@
#include <boost/mpl/push_front.hpp> #include <boost/mpl/push_front.hpp>
#include <boost/fusion/support/tag_of.hpp> #include <boost/fusion/support/tag_of.hpp>
#include <boost/fusion/algorithm/transformation/push_front.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 namespace boost { namespace mpl
{ {
@ -28,7 +28,8 @@ namespace boost { namespace mpl
result; result;
typedef typename typedef typename
fusion::detail::as<typename fusion::detail::tag_of<Sequence>::type, result>::type fusion::result_of::convert<
typename fusion::detail::tag_of<Sequence>::type, result>::type
type; type;
}; };
}; };

View File

@ -9,10 +9,9 @@
#include <boost/fusion/sequence/sequence_facade.hpp> #include <boost/fusion/sequence/sequence_facade.hpp>
#include <boost/fusion/sequence/comparison.hpp> #include <boost/fusion/sequence/comparison.hpp>
#include <boost/fusion/sequence/conversion.hpp>
#include <boost/fusion/sequence/generation.hpp> #include <boost/fusion/sequence/generation.hpp>
#include <boost/fusion/sequence/intrinsic.hpp> #include <boost/fusion/sequence/intrinsic.hpp>
#include <boost/fusion/sequence/io.hpp> #include <boost/fusion/sequence/io.hpp>
#include <boost/fusion/adapted.hpp> #include <boost/fusion/sequence/convert.hpp>
#endif #endif

View 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

View File

@ -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

View File

@ -10,7 +10,7 @@
#define BOOST_FUSION_SUPPORT_DEDUCE_SEQUENCE_HPP_INCLUDED #define BOOST_FUSION_SUPPORT_DEDUCE_SEQUENCE_HPP_INCLUDED
#include <boost/fusion/support/deduce.hpp> #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/fusion/mpl.hpp>
#include <boost/mpl/transform.hpp> #include <boost/mpl/transform.hpp>

View File

@ -10,7 +10,7 @@
#include <boost/fusion/container/vector.hpp> #include <boost/fusion/container/vector.hpp>
#include <boost/fusion/sequence/intrinsic/at.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/fusion/algorithm/transformation/transform.hpp>
#include <boost/type_traits/remove_reference.hpp> #include <boost/type_traits/remove_reference.hpp>
#include <boost/type_traits/is_reference.hpp> #include <boost/type_traits/is_reference.hpp>

View File

@ -11,7 +11,7 @@
#include <boost/fusion/container/vector.hpp> #include <boost/fusion/container/vector.hpp>
#include <boost/fusion/iterator/deref.hpp> #include <boost/fusion/iterator/deref.hpp>
#include <boost/fusion/algorithm/transformation/transform.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/fusion/support/unused.hpp>
#include <boost/mpl/eval_if.hpp> #include <boost/mpl/eval_if.hpp>
#include <boost/mpl/identity.hpp> #include <boost/mpl/identity.hpp>

View File

@ -8,7 +8,7 @@
#if !defined(FUSION_VALUE_AT_IMPL_20060124_2129) #if !defined(FUSION_VALUE_AT_IMPL_20060124_2129)
#define 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/algorithm/transformation/transform.hpp>
#include <boost/fusion/sequence/intrinsic/value_at.hpp> #include <boost/fusion/sequence/intrinsic/value_at.hpp>
#include <boost/type_traits/remove_reference.hpp> #include <boost/type_traits/remove_reference.hpp>

View File

@ -8,7 +8,7 @@
#if !defined(FUSION_VALUE_OF_IMPL_20060124_2147) #if !defined(FUSION_VALUE_OF_IMPL_20060124_2147)
#define 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/algorithm/transformation/transform.hpp>
#include <boost/fusion/iterator/value_of.hpp> #include <boost/fusion/iterator/value_of.hpp>
#include <boost/mpl/placeholders.hpp> #include <boost/mpl/placeholders.hpp>

View File

@ -17,7 +17,7 @@
#include <boost/fusion/view/zip_view/detail/size_impl.hpp> #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/at_impl.hpp>
#include <boost/fusion/view/zip_view/detail/value_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/algorithm/query/find_if.hpp>
#include <boost/fusion/sequence/intrinsic/end.hpp> #include <boost/fusion/sequence/intrinsic/end.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp> #include <boost/fusion/sequence/intrinsic/size.hpp>

View File

@ -18,7 +18,7 @@
#include <boost/fusion/view/zip_view/detail/value_of_impl.hpp> #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/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 { namespace boost { namespace fusion {