mirror of
https://github.com/boostorg/fusion.git
synced 2025-07-19 23:32:17 +02:00
Better is_equal test
[SVN r73698]
This commit is contained in:
@ -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
|
|
||||||
>
|
>
|
||||||
{};
|
{};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user