Better is_equal test

[SVN r73698]
This commit is contained in:
Joel de Guzman
2011-08-12 12:07:36 +00:00
parent adbdf8550c
commit 1c8d339bb0

View File

@ -47,14 +47,22 @@ namespace boost { namespace fusion
} }
}; };
template <typename I, bool IsLast_>
struct equal_to_helper
: mpl::identity<typename I::iterator_base_type>
{};
template <typename I>
struct equal_to_helper<I, true>
: result_of::next<
typename I::iterator_base_type>
{};
template <typename I1, typename I2> template <typename I1, typename I2>
struct equal_to struct equal_to
: result_of::equal_to< : result_of::equal_to<
typename mpl::if_c<(I1::is_last|I2::is_last) typename equal_to_helper<I1, I2::is_last>::type
, typename result_of::next< , typename equal_to_helper<I2, I1::is_last>::type
typename I1::iterator_base_type>::type
, typename I1::iterator_base_type>::type
, typename I2::iterator_base_type
> >
{}; {};