mirror of
https://github.com/boostorg/fusion.git
synced 2025-07-14 21:06:40 +02:00
adapt plain old array types (1)
[SVN r59576]
This commit is contained in:
@ -1,6 +1,7 @@
|
|||||||
/*=============================================================================
|
/*=============================================================================
|
||||||
Copyright (c) 2001-2006 Joel de Guzman
|
Copyright (c) 2001-2006 Joel de Guzman
|
||||||
Copyright (c) 2005-2006 Dan Marsden
|
Copyright (c) 2005-2006 Dan Marsden
|
||||||
|
Copyright (c) 2010 Christopher Schmidt
|
||||||
|
|
||||||
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)
|
||||||
@ -8,15 +9,19 @@
|
|||||||
#if !defined(BOOST_FUSION_ARRAY_27122005_1035)
|
#if !defined(BOOST_FUSION_ARRAY_27122005_1035)
|
||||||
#define BOOST_FUSION_ARRAY_27122005_1035
|
#define BOOST_FUSION_ARRAY_27122005_1035
|
||||||
|
|
||||||
#include <boost/fusion/adapted/array/array_iterator.hpp>
|
//For backwards compatibility
|
||||||
|
#include <boost/fusion/adapted/boost_array.hpp>
|
||||||
|
|
||||||
#include <boost/fusion/adapted/array/tag_of.hpp>
|
#include <boost/fusion/adapted/array/tag_of.hpp>
|
||||||
#include <boost/fusion/adapted/array/detail/is_view_impl.hpp>
|
#include <boost/fusion/adapted/array/is_view_impl.hpp>
|
||||||
#include <boost/fusion/adapted/array/detail/is_sequence_impl.hpp>
|
#include <boost/fusion/adapted/array/is_sequence_impl.hpp>
|
||||||
#include <boost/fusion/adapted/array/detail/category_of_impl.hpp>
|
#include <boost/fusion/adapted/array/category_of_impl.hpp>
|
||||||
#include <boost/fusion/adapted/array/detail/begin_impl.hpp>
|
#include <boost/fusion/adapted/array/begin_impl.hpp>
|
||||||
#include <boost/fusion/adapted/array/detail/end_impl.hpp>
|
#include <boost/fusion/adapted/array/end_impl.hpp>
|
||||||
#include <boost/fusion/adapted/array/detail/size_impl.hpp>
|
#include <boost/fusion/adapted/array/size_impl.hpp>
|
||||||
#include <boost/fusion/adapted/array/detail/at_impl.hpp>
|
#include <boost/fusion/adapted/array/at_impl.hpp>
|
||||||
#include <boost/fusion/adapted/array/detail/value_at_impl.hpp>
|
#include <boost/fusion/adapted/array/value_at_impl.hpp>
|
||||||
|
#include <boost/fusion/adapted/array/deref_impl.hpp>
|
||||||
|
#include <boost/fusion/adapted/array/value_of_impl.hpp>
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
22
include/boost/fusion/adapted/boost_array.hpp
Normal file
22
include/boost/fusion/adapted/boost_array.hpp
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
Copyright (c) 2001-2006 Joel de Guzman
|
||||||
|
Copyright (c) 2005-2006 Dan Marsden
|
||||||
|
|
||||||
|
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
|
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
==============================================================================*/
|
||||||
|
#if !defined(BOOST_FUSION_BOOST_ARRAY_27122005_1035)
|
||||||
|
#define BOOST_FUSION_BOOST_ARRAY_27122005_1035
|
||||||
|
|
||||||
|
#include <boost/fusion/adapted/boost_array/array_iterator.hpp>
|
||||||
|
#include <boost/fusion/adapted/boost_array/tag_of.hpp>
|
||||||
|
#include <boost/fusion/adapted/boost_array/detail/is_view_impl.hpp>
|
||||||
|
#include <boost/fusion/adapted/boost_array/detail/is_sequence_impl.hpp>
|
||||||
|
#include <boost/fusion/adapted/boost_array/detail/category_of_impl.hpp>
|
||||||
|
#include <boost/fusion/adapted/boost_array/detail/begin_impl.hpp>
|
||||||
|
#include <boost/fusion/adapted/boost_array/detail/end_impl.hpp>
|
||||||
|
#include <boost/fusion/adapted/boost_array/detail/size_impl.hpp>
|
||||||
|
#include <boost/fusion/adapted/boost_array/detail/at_impl.hpp>
|
||||||
|
#include <boost/fusion/adapted/boost_array/detail/value_at_impl.hpp>
|
||||||
|
|
||||||
|
#endif
|
12
include/boost/fusion/include/boost_array.hpp
Normal file
12
include/boost/fusion/include/boost_array.hpp
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
Copyright (c) 2010 Christopher Schmidt
|
||||||
|
|
||||||
|
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
|
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
==============================================================================*/
|
||||||
|
#if !defined(FUSION_INCLUDE_BOOST_ARRAY)
|
||||||
|
#define FUSION_INCLUDE_BOOST_ARRAY
|
||||||
|
|
||||||
|
#include <boost/fusion/adapted/boost_array.hpp>
|
||||||
|
|
||||||
|
#endif
|
@ -21,7 +21,7 @@ namespace boost { namespace fusion
|
|||||||
|
|
||||||
// Special tags:
|
// Special tags:
|
||||||
struct iterator_facade_tag; // iterator facade tag
|
struct iterator_facade_tag; // iterator facade tag
|
||||||
struct array_iterator_tag; // boost::array iterator tag
|
struct boost_array_iterator_tag; // boost::array iterator tag
|
||||||
struct mpl_iterator_tag; // mpl sequence iterator tag
|
struct mpl_iterator_tag; // mpl sequence iterator tag
|
||||||
struct std_pair_iterator_tag; // std::pair iterator tag
|
struct std_pair_iterator_tag; // std::pair iterator tag
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ namespace boost { namespace fusion
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct advance_impl<array_iterator_tag>;
|
struct advance_impl<boost_array_iterator_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct advance_impl<mpl_iterator_tag>;
|
struct advance_impl<mpl_iterator_tag>;
|
||||||
|
@ -95,11 +95,16 @@ namespace boost { namespace fusion
|
|||||||
|
|
||||||
template <typename It1, typename It2>
|
template <typename It1, typename It2>
|
||||||
struct distance
|
struct distance
|
||||||
: mpl::minus<
|
{
|
||||||
typename It2::index
|
typedef mpl::minus<typename It2::index, typename It1::index> type;
|
||||||
, typename It1::index
|
|
||||||
>
|
static
|
||||||
{};
|
type
|
||||||
|
call(It1 const&, It2 const&)
|
||||||
|
{
|
||||||
|
return type();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
template <typename It1, typename It2>
|
template <typename It1, typename It2>
|
||||||
struct equal_to
|
struct equal_to
|
||||||
|
@ -14,7 +14,7 @@ namespace boost { namespace fusion
|
|||||||
{
|
{
|
||||||
// Special tags:
|
// Special tags:
|
||||||
struct iterator_facade_tag; // iterator facade tag
|
struct iterator_facade_tag; // iterator facade tag
|
||||||
struct array_iterator_tag; // boost::array iterator tag
|
struct boost_array_iterator_tag; // boost::array iterator tag
|
||||||
struct mpl_iterator_tag; // mpl sequence iterator tag
|
struct mpl_iterator_tag; // mpl sequence iterator tag
|
||||||
struct std_pair_iterator_tag; // std::pair iterator tag
|
struct std_pair_iterator_tag; // std::pair iterator tag
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ namespace boost { namespace fusion
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct deref_impl<array_iterator_tag>;
|
struct deref_impl<boost_array_iterator_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct deref_impl<mpl_iterator_tag>;
|
struct deref_impl<mpl_iterator_tag>;
|
||||||
|
@ -22,7 +22,7 @@ namespace boost { namespace fusion
|
|||||||
|
|
||||||
// Special tags:
|
// Special tags:
|
||||||
struct iterator_facade_tag; // iterator facade tag
|
struct iterator_facade_tag; // iterator facade tag
|
||||||
struct array_iterator_tag; // boost::array iterator tag
|
struct boost_array_iterator_tag; // boost::array iterator tag
|
||||||
struct mpl_iterator_tag; // mpl sequence iterator tag
|
struct mpl_iterator_tag; // mpl sequence iterator tag
|
||||||
struct std_pair_iterator_tag; // std::pair iterator tag
|
struct std_pair_iterator_tag; // std::pair iterator tag
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ namespace boost { namespace fusion
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct distance_impl<array_iterator_tag>;
|
struct distance_impl<boost_array_iterator_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct distance_impl<mpl_iterator_tag>;
|
struct distance_impl<mpl_iterator_tag>;
|
||||||
|
@ -18,7 +18,7 @@ namespace boost { namespace fusion
|
|||||||
{
|
{
|
||||||
// Special tags:
|
// Special tags:
|
||||||
struct iterator_facade_tag; // iterator facade tag
|
struct iterator_facade_tag; // iterator facade tag
|
||||||
struct array_iterator_tag; // boost::array iterator tag
|
struct boost_array_iterator_tag; // boost::array iterator tag
|
||||||
struct mpl_iterator_tag; // mpl sequence iterator tag
|
struct mpl_iterator_tag; // mpl sequence iterator tag
|
||||||
struct std_pair_iterator_tag; // std::pair iterator tag
|
struct std_pair_iterator_tag; // std::pair iterator tag
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ namespace boost { namespace fusion
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct equal_to_impl<array_iterator_tag>;
|
struct equal_to_impl<boost_array_iterator_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct equal_to_impl<mpl_iterator_tag>;
|
struct equal_to_impl<mpl_iterator_tag>;
|
||||||
|
@ -13,7 +13,7 @@ namespace boost { namespace fusion
|
|||||||
{
|
{
|
||||||
// Special tags:
|
// Special tags:
|
||||||
struct iterator_facade_tag; // iterator facade tag
|
struct iterator_facade_tag; // iterator facade tag
|
||||||
struct array_iterator_tag; // boost::array iterator tag
|
struct boost_array_iterator_tag; // boost::array iterator tag
|
||||||
struct mpl_iterator_tag; // mpl sequence iterator tag
|
struct mpl_iterator_tag; // mpl sequence iterator tag
|
||||||
struct std_pair_iterator_tag; // std::pair iterator tag
|
struct std_pair_iterator_tag; // std::pair iterator tag
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ namespace boost { namespace fusion
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct next_impl<array_iterator_tag>;
|
struct next_impl<boost_array_iterator_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct next_impl<mpl_iterator_tag>;
|
struct next_impl<mpl_iterator_tag>;
|
||||||
|
@ -13,7 +13,7 @@ namespace boost { namespace fusion
|
|||||||
{
|
{
|
||||||
// Special tags:
|
// Special tags:
|
||||||
struct iterator_facade_tag; // iterator facade tag
|
struct iterator_facade_tag; // iterator facade tag
|
||||||
struct array_iterator_tag; // boost::array iterator tag
|
struct boost_array_iterator_tag; // boost::array iterator tag
|
||||||
struct mpl_iterator_tag; // mpl sequence iterator tag
|
struct mpl_iterator_tag; // mpl sequence iterator tag
|
||||||
struct std_pair_iterator_tag; // std::pair iterator tag
|
struct std_pair_iterator_tag; // std::pair iterator tag
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ namespace boost { namespace fusion
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct prior_impl<array_iterator_tag>;
|
struct prior_impl<boost_array_iterator_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct prior_impl<mpl_iterator_tag>;
|
struct prior_impl<mpl_iterator_tag>;
|
||||||
|
@ -14,7 +14,7 @@ namespace boost { namespace fusion
|
|||||||
{
|
{
|
||||||
// Special tags:
|
// Special tags:
|
||||||
struct iterator_facade_tag; // iterator facade tag
|
struct iterator_facade_tag; // iterator facade tag
|
||||||
struct array_iterator_tag; // boost::array iterator tag
|
struct boost_array_iterator_tag; // boost::array iterator tag
|
||||||
struct mpl_iterator_tag; // mpl sequence iterator tag
|
struct mpl_iterator_tag; // mpl sequence iterator tag
|
||||||
struct std_pair_iterator_tag; // std::pair iterator tag
|
struct std_pair_iterator_tag; // std::pair iterator tag
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ namespace boost { namespace fusion
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct value_of_impl<array_iterator_tag>;
|
struct value_of_impl<boost_array_iterator_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct value_of_impl<mpl_iterator_tag>;
|
struct value_of_impl<mpl_iterator_tag>;
|
||||||
|
@ -17,7 +17,7 @@ namespace boost { namespace fusion
|
|||||||
// Special tags:
|
// Special tags:
|
||||||
struct sequence_facade_tag;
|
struct sequence_facade_tag;
|
||||||
struct boost_tuple_tag; // boost::tuples::tuple tag
|
struct boost_tuple_tag; // boost::tuples::tuple tag
|
||||||
struct array_tag; // boost::array tag
|
struct boost_array_tag; // boost::array tag
|
||||||
struct mpl_sequence_tag; // mpl sequence tag
|
struct mpl_sequence_tag; // mpl sequence tag
|
||||||
struct std_pair_tag; // std::pair tag
|
struct std_pair_tag; // std::pair tag
|
||||||
|
|
||||||
@ -41,7 +41,7 @@ namespace boost { namespace fusion
|
|||||||
struct at_impl<boost_tuple_tag>;
|
struct at_impl<boost_tuple_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct at_impl<array_tag>;
|
struct at_impl<boost_array_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct at_impl<mpl_sequence_tag>;
|
struct at_impl<mpl_sequence_tag>;
|
||||||
|
@ -18,7 +18,7 @@ namespace boost { namespace fusion
|
|||||||
{
|
{
|
||||||
// Special tags:
|
// Special tags:
|
||||||
struct sequence_facade_tag;
|
struct sequence_facade_tag;
|
||||||
struct array_tag; // boost::array tag
|
struct boost_array_tag; // boost::array tag
|
||||||
struct mpl_sequence_tag; // mpl sequence tag
|
struct mpl_sequence_tag; // mpl sequence tag
|
||||||
struct std_pair_tag; // std::pair tag
|
struct std_pair_tag; // std::pair tag
|
||||||
|
|
||||||
@ -52,7 +52,7 @@ namespace boost { namespace fusion
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct at_key_impl<array_tag>;
|
struct at_key_impl<boost_array_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct at_key_impl<mpl_sequence_tag>;
|
struct at_key_impl<mpl_sequence_tag>;
|
||||||
|
@ -14,7 +14,7 @@ namespace boost { namespace fusion
|
|||||||
// Special tags:
|
// Special tags:
|
||||||
struct sequence_facade_tag; // iterator facade tag
|
struct sequence_facade_tag; // iterator facade tag
|
||||||
struct boost_tuple_tag; // boost::tuples::tuple tag
|
struct boost_tuple_tag; // boost::tuples::tuple tag
|
||||||
struct array_tag; // boost::array tag
|
struct boost_array_tag; // boost::array tag
|
||||||
struct mpl_sequence_tag; // mpl sequence tag
|
struct mpl_sequence_tag; // mpl sequence tag
|
||||||
struct std_pair_tag; // std::pair tag
|
struct std_pair_tag; // std::pair tag
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ namespace boost { namespace fusion
|
|||||||
struct begin_impl<boost_tuple_tag>;
|
struct begin_impl<boost_tuple_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct begin_impl<array_tag>;
|
struct begin_impl<boost_array_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct begin_impl<mpl_sequence_tag>;
|
struct begin_impl<mpl_sequence_tag>;
|
||||||
|
@ -14,7 +14,7 @@ namespace boost { namespace fusion
|
|||||||
// Special tags:
|
// Special tags:
|
||||||
struct sequence_facade_tag;
|
struct sequence_facade_tag;
|
||||||
struct boost_tuple_tag; // boost::tuples::tuple tag
|
struct boost_tuple_tag; // boost::tuples::tuple tag
|
||||||
struct array_tag; // boost::array tag
|
struct boost_array_tag; // boost::array tag
|
||||||
struct mpl_sequence_tag; // mpl sequence tag
|
struct mpl_sequence_tag; // mpl sequence tag
|
||||||
struct std_pair_tag; // std::pair tag
|
struct std_pair_tag; // std::pair tag
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ namespace boost { namespace fusion
|
|||||||
struct end_impl<boost_tuple_tag>;
|
struct end_impl<boost_tuple_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct end_impl<array_tag>;
|
struct end_impl<boost_array_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct end_impl<mpl_sequence_tag>;
|
struct end_impl<mpl_sequence_tag>;
|
||||||
|
@ -19,7 +19,7 @@ namespace boost { namespace fusion
|
|||||||
|
|
||||||
// Special tags:
|
// Special tags:
|
||||||
struct sequence_facade_tag;
|
struct sequence_facade_tag;
|
||||||
struct array_tag; // boost::array tag
|
struct boost_array_tag; // boost::array tag
|
||||||
struct mpl_sequence_tag; // mpl sequence tag
|
struct mpl_sequence_tag; // mpl sequence tag
|
||||||
struct std_pair_tag; // std::pair tag
|
struct std_pair_tag; // std::pair tag
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ namespace boost { namespace fusion
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct has_key_impl<array_tag>;
|
struct has_key_impl<boost_array_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct has_key_impl<mpl_sequence_tag>;
|
struct has_key_impl<mpl_sequence_tag>;
|
||||||
|
@ -15,7 +15,7 @@ namespace boost { namespace fusion
|
|||||||
// Special tags:
|
// Special tags:
|
||||||
struct sequence_facade_tag;
|
struct sequence_facade_tag;
|
||||||
struct boost_tuple_tag; // boost::tuples::tuple tag
|
struct boost_tuple_tag; // boost::tuples::tuple tag
|
||||||
struct array_tag; // boost::array tag
|
struct boost_array_tag; // boost::array tag
|
||||||
struct mpl_sequence_tag; // mpl sequence tag
|
struct mpl_sequence_tag; // mpl sequence tag
|
||||||
struct std_pair_tag; // std::pair tag
|
struct std_pair_tag; // std::pair tag
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ namespace boost { namespace fusion
|
|||||||
struct size_impl<boost_tuple_tag>;
|
struct size_impl<boost_tuple_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct size_impl<array_tag>;
|
struct size_impl<boost_array_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct size_impl<mpl_sequence_tag>;
|
struct size_impl<mpl_sequence_tag>;
|
||||||
|
@ -15,7 +15,7 @@ namespace boost { namespace fusion
|
|||||||
// Special tags:
|
// Special tags:
|
||||||
struct sequence_facade_tag;
|
struct sequence_facade_tag;
|
||||||
struct boost_tuple_tag; // boost::tuples::tuple tag
|
struct boost_tuple_tag; // boost::tuples::tuple tag
|
||||||
struct array_tag; // boost::array tag
|
struct boost_array_tag; // boost::array tag
|
||||||
struct mpl_sequence_tag; // mpl sequence tag
|
struct mpl_sequence_tag; // mpl sequence tag
|
||||||
struct std_pair_tag; // std::pair tag
|
struct std_pair_tag; // std::pair tag
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ namespace boost { namespace fusion
|
|||||||
struct value_at_impl<boost_tuple_tag>;
|
struct value_at_impl<boost_tuple_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct value_at_impl<array_tag>;
|
struct value_at_impl<boost_array_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct value_at_impl<mpl_sequence_tag>;
|
struct value_at_impl<mpl_sequence_tag>;
|
||||||
|
@ -17,7 +17,7 @@ namespace boost { namespace fusion
|
|||||||
{
|
{
|
||||||
// Special tags:
|
// Special tags:
|
||||||
struct sequence_facade_tag;
|
struct sequence_facade_tag;
|
||||||
struct array_tag; // boost::array tag
|
struct boost_array_tag; // boost::array tag
|
||||||
struct mpl_sequence_tag; // mpl sequence tag
|
struct mpl_sequence_tag; // mpl sequence tag
|
||||||
struct std_pair_tag; // std::pair tag
|
struct std_pair_tag; // std::pair tag
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ namespace boost { namespace fusion
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct value_at_key_impl<array_tag>;
|
struct value_at_key_impl<boost_array_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct value_at_key_impl<mpl_sequence_tag>;
|
struct value_at_key_impl<mpl_sequence_tag>;
|
||||||
|
@ -15,7 +15,7 @@ namespace boost { namespace fusion
|
|||||||
{
|
{
|
||||||
// Special tags:
|
// Special tags:
|
||||||
struct boost_tuple_tag; // boost::tuples::tuple tag
|
struct boost_tuple_tag; // boost::tuples::tuple tag
|
||||||
struct array_tag; // boost::array tag
|
struct boost_array_tag; // boost::array tag
|
||||||
struct mpl_sequence_tag; // mpl sequence tag
|
struct mpl_sequence_tag; // mpl sequence tag
|
||||||
struct std_pair_tag; // std::pair tag
|
struct std_pair_tag; // std::pair tag
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ namespace boost { namespace fusion
|
|||||||
struct category_of_impl<boost_tuple_tag>;
|
struct category_of_impl<boost_tuple_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct category_of_impl<array_tag>;
|
struct category_of_impl<boost_array_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct category_of_impl<mpl_sequence_tag>;
|
struct category_of_impl<mpl_sequence_tag>;
|
||||||
|
2
include/boost/fusion/support/ext_/is_segmented.hpp
Executable file → Normal file
2
include/boost/fusion/support/ext_/is_segmented.hpp
Executable file → Normal file
@ -14,7 +14,7 @@ namespace boost { namespace fusion
|
|||||||
// Special tags:
|
// Special tags:
|
||||||
struct sequence_facade_tag;
|
struct sequence_facade_tag;
|
||||||
struct boost_tuple_tag; // boost::tuples::tuple tag
|
struct boost_tuple_tag; // boost::tuples::tuple tag
|
||||||
struct array_tag; // boost::array tag
|
struct boost_array_tag; // boost::array tag
|
||||||
struct mpl_sequence_tag; // mpl sequence tag
|
struct mpl_sequence_tag; // mpl sequence tag
|
||||||
struct std_pair_tag; // std::pair tag
|
struct std_pair_tag; // std::pair tag
|
||||||
struct iterator_range_tag;
|
struct iterator_range_tag;
|
||||||
|
@ -19,7 +19,7 @@ namespace boost { namespace fusion
|
|||||||
// Special tags:
|
// Special tags:
|
||||||
struct non_fusion_tag;
|
struct non_fusion_tag;
|
||||||
struct boost_tuple_tag; // boost::tuples::tuple tag
|
struct boost_tuple_tag; // boost::tuples::tuple tag
|
||||||
struct array_tag; // boost::array tag
|
struct boost_array_tag; // boost::array tag
|
||||||
struct mpl_sequence_tag; // mpl sequence tag
|
struct mpl_sequence_tag; // mpl sequence tag
|
||||||
struct std_pair_tag; // std::pair tag
|
struct std_pair_tag; // std::pair tag
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ namespace boost { namespace fusion
|
|||||||
struct is_sequence_impl<boost_tuple_tag>;
|
struct is_sequence_impl<boost_tuple_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct is_sequence_impl<array_tag>;
|
struct is_sequence_impl<boost_array_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct is_sequence_impl<mpl_sequence_tag>;
|
struct is_sequence_impl<mpl_sequence_tag>;
|
||||||
|
@ -15,7 +15,7 @@ namespace boost { namespace fusion
|
|||||||
// Special tags:
|
// Special tags:
|
||||||
struct sequence_facade_tag;
|
struct sequence_facade_tag;
|
||||||
struct boost_tuple_tag; // boost::tuples::tuple tag
|
struct boost_tuple_tag; // boost::tuples::tuple tag
|
||||||
struct array_tag; // boost::array tag
|
struct boost_array_tag; // boost::array tag
|
||||||
struct mpl_sequence_tag; // mpl sequence tag
|
struct mpl_sequence_tag; // mpl sequence tag
|
||||||
struct std_pair_tag; // std::pair tag
|
struct std_pair_tag; // std::pair tag
|
||||||
|
|
||||||
@ -41,7 +41,7 @@ namespace boost { namespace fusion
|
|||||||
struct is_view_impl<boost_tuple_tag>;
|
struct is_view_impl<boost_tuple_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct is_view_impl<array_tag>;
|
struct is_view_impl<boost_array_tag>;
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct is_view_impl<mpl_sequence_tag>;
|
struct is_view_impl<mpl_sequence_tag>;
|
||||||
|
@ -81,6 +81,7 @@ import testing ;
|
|||||||
[ run sequence/set.cpp : : : : ]
|
[ run sequence/set.cpp : : : : ]
|
||||||
[ run sequence/single_view.cpp : : : : ]
|
[ run sequence/single_view.cpp : : : : ]
|
||||||
[ run sequence/std_pair.cpp : : : : ]
|
[ run sequence/std_pair.cpp : : : : ]
|
||||||
|
[ run sequence/boost_array.cpp : : : : ]
|
||||||
[ run sequence/array.cpp : : : : ]
|
[ run sequence/array.cpp : : : : ]
|
||||||
[ run sequence/tuple_comparison.cpp : : : : ]
|
[ run sequence/tuple_comparison.cpp : : : : ]
|
||||||
[ run sequence/tuple_construction.cpp : : : : ]
|
[ run sequence/tuple_construction.cpp : : : : ]
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
/*=============================================================================
|
/*=============================================================================
|
||||||
Copyright (c) 2001-2006 Joel de Guzman
|
Copyright (c) 2001-2006 Joel de Guzman
|
||||||
Copyright (c) 2005-2006 Dan Marsden
|
Copyright (c) 2005-2006 Dan Marsden
|
||||||
|
Copyright (c) 2010 Christopher Schmidt
|
||||||
|
|
||||||
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)
|
||||||
@ -8,19 +9,15 @@
|
|||||||
|
|
||||||
#include <boost/detail/lightweight_test.hpp>
|
#include <boost/detail/lightweight_test.hpp>
|
||||||
|
|
||||||
#include <boost/fusion/adapted/array.hpp>
|
#include <boost/fusion/adapted/boost_array.hpp>
|
||||||
#include <boost/array.hpp>
|
#include <boost/array.hpp>
|
||||||
|
|
||||||
#include <boost/fusion/sequence/intrinsic.hpp>
|
#include <boost/fusion/sequence/intrinsic.hpp>
|
||||||
#include <boost/fusion/support/is_sequence.hpp>
|
#include <boost/fusion/support/is_sequence.hpp>
|
||||||
#include <boost/fusion/support/is_view.hpp>
|
#include <boost/fusion/support/is_view.hpp>
|
||||||
#include <boost/fusion/iterator.hpp>
|
#include <boost/fusion/iterator.hpp>
|
||||||
#include <boost/fusion/mpl.hpp>
|
|
||||||
|
|
||||||
#include <boost/mpl/is_sequence.hpp>
|
|
||||||
#include <boost/mpl/front.hpp>
|
|
||||||
#include <boost/mpl/assert.hpp>
|
#include <boost/mpl/assert.hpp>
|
||||||
#include <boost/type_traits/is_same.hpp>
|
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
@ -41,8 +38,5 @@ int main()
|
|||||||
BOOST_TEST(size(arr) == 3);
|
BOOST_TEST(size(arr) == 3);
|
||||||
BOOST_TEST(distance(begin(arr), end(arr)) == 3);
|
BOOST_TEST(distance(begin(arr), end(arr)) == 3);
|
||||||
|
|
||||||
BOOST_MPL_ASSERT((boost::mpl::is_sequence<array_type>));
|
|
||||||
BOOST_MPL_ASSERT((boost::is_same<int, boost::mpl::front<array_type>::type>));
|
|
||||||
|
|
||||||
return boost::report_errors();
|
return boost::report_errors();
|
||||||
}
|
}
|
Reference in New Issue
Block a user