forked from boostorg/fusion
adapt plain old array types (1)
[SVN r59576]
This commit is contained in:
@ -21,7 +21,7 @@ namespace boost { namespace fusion
|
||||
|
||||
// Special tags:
|
||||
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 std_pair_iterator_tag; // std::pair iterator tag
|
||||
|
||||
@ -51,7 +51,7 @@ namespace boost { namespace fusion
|
||||
};
|
||||
|
||||
template <>
|
||||
struct advance_impl<array_iterator_tag>;
|
||||
struct advance_impl<boost_array_iterator_tag>;
|
||||
|
||||
template <>
|
||||
struct advance_impl<mpl_iterator_tag>;
|
||||
|
@ -95,11 +95,16 @@ namespace boost { namespace fusion
|
||||
|
||||
template <typename It1, typename It2>
|
||||
struct distance
|
||||
: mpl::minus<
|
||||
typename It2::index
|
||||
, typename It1::index
|
||||
>
|
||||
{};
|
||||
{
|
||||
typedef mpl::minus<typename It2::index, typename It1::index> type;
|
||||
|
||||
static
|
||||
type
|
||||
call(It1 const&, It2 const&)
|
||||
{
|
||||
return type();
|
||||
}
|
||||
};
|
||||
|
||||
template <typename It1, typename It2>
|
||||
struct equal_to
|
||||
|
@ -14,7 +14,7 @@ namespace boost { namespace fusion
|
||||
{
|
||||
// Special tags:
|
||||
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 std_pair_iterator_tag; // std::pair iterator tag
|
||||
|
||||
@ -35,7 +35,7 @@ namespace boost { namespace fusion
|
||||
};
|
||||
|
||||
template <>
|
||||
struct deref_impl<array_iterator_tag>;
|
||||
struct deref_impl<boost_array_iterator_tag>;
|
||||
|
||||
template <>
|
||||
struct deref_impl<mpl_iterator_tag>;
|
||||
|
@ -22,7 +22,7 @@ namespace boost { namespace fusion
|
||||
|
||||
// Special tags:
|
||||
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 std_pair_iterator_tag; // std::pair iterator tag
|
||||
|
||||
@ -48,7 +48,7 @@ namespace boost { namespace fusion
|
||||
};
|
||||
|
||||
template <>
|
||||
struct distance_impl<array_iterator_tag>;
|
||||
struct distance_impl<boost_array_iterator_tag>;
|
||||
|
||||
template <>
|
||||
struct distance_impl<mpl_iterator_tag>;
|
||||
@ -61,8 +61,8 @@ namespace boost { namespace fusion
|
||||
{
|
||||
template <typename First, typename Last>
|
||||
struct distance
|
||||
: extension::distance_impl<typename detail::tag_of<First>::type>::
|
||||
template apply<First, Last>
|
||||
: extension::distance_impl<typename detail::tag_of<First>::type>::
|
||||
template apply<First, Last>
|
||||
{
|
||||
typedef typename extension::distance_impl<typename detail::tag_of<First>::type>::
|
||||
template apply<First, Last>::type distance_application;
|
||||
|
@ -18,7 +18,7 @@ namespace boost { namespace fusion
|
||||
{
|
||||
// Special tags:
|
||||
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 std_pair_iterator_tag; // std::pair iterator tag
|
||||
|
||||
@ -42,7 +42,7 @@ namespace boost { namespace fusion
|
||||
};
|
||||
|
||||
template <>
|
||||
struct equal_to_impl<array_iterator_tag>;
|
||||
struct equal_to_impl<boost_array_iterator_tag>;
|
||||
|
||||
template <>
|
||||
struct equal_to_impl<mpl_iterator_tag>;
|
||||
|
@ -13,7 +13,7 @@ namespace boost { namespace fusion
|
||||
{
|
||||
// Special tags:
|
||||
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 std_pair_iterator_tag; // std::pair iterator tag
|
||||
|
||||
@ -34,7 +34,7 @@ namespace boost { namespace fusion
|
||||
};
|
||||
|
||||
template <>
|
||||
struct next_impl<array_iterator_tag>;
|
||||
struct next_impl<boost_array_iterator_tag>;
|
||||
|
||||
template <>
|
||||
struct next_impl<mpl_iterator_tag>;
|
||||
|
@ -13,7 +13,7 @@ namespace boost { namespace fusion
|
||||
{
|
||||
// Special tags:
|
||||
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 std_pair_iterator_tag; // std::pair iterator tag
|
||||
|
||||
@ -34,7 +34,7 @@ namespace boost { namespace fusion
|
||||
};
|
||||
|
||||
template <>
|
||||
struct prior_impl<array_iterator_tag>;
|
||||
struct prior_impl<boost_array_iterator_tag>;
|
||||
|
||||
template <>
|
||||
struct prior_impl<mpl_iterator_tag>;
|
||||
|
@ -14,7 +14,7 @@ namespace boost { namespace fusion
|
||||
{
|
||||
// Special tags:
|
||||
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 std_pair_iterator_tag; // std::pair iterator tag
|
||||
|
||||
@ -35,7 +35,7 @@ namespace boost { namespace fusion
|
||||
};
|
||||
|
||||
template <>
|
||||
struct value_of_impl<array_iterator_tag>;
|
||||
struct value_of_impl<boost_array_iterator_tag>;
|
||||
|
||||
template <>
|
||||
struct value_of_impl<mpl_iterator_tag>;
|
||||
|
Reference in New Issue
Block a user