forked from boostorg/fusion
phase4: refactoring for v2.1
[SVN r40213]
This commit is contained in:
@ -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>
|
||||
|
@ -9,6 +9,7 @@
|
||||
#define BOOST_FUSION_SEQUENCE_CONTAINER_DEQUE_24112006_2036
|
||||
|
||||
#include <boost/fusion/container/deque/deque.hpp>
|
||||
#include <boost/fusion/container/deque/convert.hpp>
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -5,10 +5,11 @@
|
||||
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>
|
@ -55,7 +55,7 @@ namespace boost { namespace fusion { namespace detail
|
||||
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()
|
||||
|
45
include/boost/fusion/container/deque/detail/convert_impl.hpp
Normal file
45
include/boost/fusion/container/deque/detail/convert_impl.hpp
Normal 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
|
@ -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
|
||||
|
@ -4,14 +4,15 @@
|
||||
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
|
||||
{
|
51
include/boost/fusion/container/list/detail/convert_impl.hpp
Normal file
51
include/boost/fusion/container/list/detail/convert_impl.hpp
Normal 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
|
@ -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
|
||||
|
@ -4,10 +4,11 @@
|
||||
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>
|
@ -54,7 +54,7 @@ namespace boost { namespace fusion { namespace detail
|
||||
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()
|
||||
|
45
include/boost/fusion/container/map/detail/convert_impl.hpp
Normal file
45
include/boost/fusion/container/map/detail/convert_impl.hpp
Normal 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
|
@ -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
|
||||
|
@ -4,10 +4,11 @@
|
||||
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>
|
@ -54,7 +54,7 @@ namespace boost { namespace fusion { namespace detail
|
||||
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()
|
||||
|
45
include/boost/fusion/container/set/detail/convert_impl.hpp
Normal file
45
include/boost/fusion/container/set/detail/convert_impl.hpp
Normal 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
|
@ -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
|
||||
|
@ -4,10 +4,11 @@
|
||||
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>
|
@ -54,7 +54,7 @@ namespace boost { namespace fusion { namespace detail
|
||||
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()
|
||||
|
@ -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
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
|
@ -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
|
@ -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
|
||||
{
|
||||
@ -28,7 +28,8 @@ namespace boost { namespace mpl
|
||||
result;
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
@ -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
|
||||
{
|
||||
@ -28,7 +28,8 @@ namespace boost { namespace mpl
|
||||
result;
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
@ -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
|
||||
{
|
||||
@ -28,7 +28,8 @@ namespace boost { namespace mpl
|
||||
result;
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
@ -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
|
||||
{
|
||||
@ -28,7 +28,8 @@ namespace boost { namespace mpl
|
||||
result;
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
@ -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
|
||||
{
|
||||
@ -28,7 +28,8 @@ namespace boost { namespace mpl
|
||||
result;
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
@ -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
|
||||
{
|
||||
@ -28,7 +28,8 @@ namespace boost { namespace mpl
|
||||
result;
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
@ -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
|
||||
{
|
||||
@ -28,7 +28,8 @@ namespace boost { namespace mpl
|
||||
result;
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
@ -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
|
||||
{
|
||||
@ -28,7 +28,8 @@ namespace boost { namespace mpl
|
||||
result;
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
@ -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
|
||||
|
@ -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
|
48
include/boost/fusion/sequence/convert.hpp
Normal file
48
include/boost/fusion/sequence/convert.hpp
Normal 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
|
@ -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>
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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 {
|
||||
|
||||
|
Reference in New Issue
Block a user