1/*=============================================================================
2 Copyright (c) 2011 Eric Niebler
3
4 Distributed under the Boost Software License, Version 1.0. (See accompanying
5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6==============================================================================*/
7#if !defined(BOOST_FUSION_SEGMENTED_ITERATOR_EQUAL_TO_HPP_INCLUDED)
8#define BOOST_FUSION_SEGMENTED_ITERATOR_EQUAL_TO_HPP_INCLUDED
9
10#include <boost/fusion/support/config.hpp>
11#include <boost/mpl/and.hpp>
12#include <boost/mpl/bool.hpp>
13#include <boost/fusion/iterator/equal_to.hpp>
14
15namespace boost { namespace fusion
16{
17 struct nil_;
18
19 namespace detail
20 {
21 template <typename Stack1, typename Stack2>
22 struct segmented_equal_to
23 : mpl::and_<
24 segmented_equal_to<
25 typename Stack1::cdr_type,
26 typename Stack2::cdr_type
27 >
28 , result_of::equal_to<
29 typename Stack1::car_type::begin_type,
30 typename Stack2::car_type::begin_type
31 >
32 >
33 {};
34
35 template <>
36 struct segmented_equal_to<fusion::nil_, fusion::nil_>
37 : mpl::true_
38 {};
39 }
40}}
41
42#endif
43

source code of include/boost/fusion/iterator/detail/segmented_equal_to.hpp