1 /*=============================================================================
2     Copyright (c) 2001-2011 Joel de Guzman
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(FUSION_EQUAL_TO_IMPL_09172005_1120)
8 #define FUSION_EQUAL_TO_IMPL_09172005_1120
9 
10 #include <boost/fusion/support/config.hpp>
11 #include <boost/type_traits/is_same.hpp>
12 #include <boost/mpl/equal_to.hpp>
13 #include <boost/mpl/and.hpp>
14 
15 namespace boost { namespace fusion
16 {
17     struct cons_iterator_tag;
18 
19     namespace extension
20     {
21         template <typename Tag>
22         struct equal_to_impl;
23 
24         template <>
25         struct equal_to_impl<cons_iterator_tag>
26         {
27             template <typename I1, typename I2>
28             struct apply
29                 : is_same<
30                     typename I1::identity
31                   , typename I2::identity
32                 >
33             {
34             };
35         };
36     }
37 }}
38 
39 #endif
40 
41