adapt plain old array types (1)

[SVN r59576]
This commit is contained in:
Christopher Schmidt
2010-02-07 18:22:06 +00:00
parent b86d7dbe80
commit 5eb9c03cd2
25 changed files with 100 additions and 61 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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