Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:49:28

0001 /*=============================================================================
0002     Copyright (c) 1999-2003 Jaakko Jarvi
0003     Copyright (c) 2001-2011 Joel de Guzman
0004 
0005     Distributed under the Boost Software License, Version 1.0. (See accompanying
0006     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0007 ==============================================================================*/
0008 #if !defined(FUSION_EQUAL_TO_05052005_0431)
0009 #define FUSION_EQUAL_TO_05052005_0431
0010 
0011 #include <boost/fusion/support/config.hpp>
0012 #include <boost/fusion/sequence/intrinsic/begin.hpp>
0013 #include <boost/fusion/sequence/intrinsic/end.hpp>
0014 #include <boost/fusion/sequence/intrinsic/size.hpp>
0015 #include <boost/fusion/sequence/comparison/detail/equal_to.hpp>
0016 #include <boost/fusion/sequence/comparison/enable_comparison.hpp>
0017 #include <boost/config.hpp>
0018 
0019 #if defined (BOOST_MSVC)
0020 #  pragma warning(push)
0021 #  pragma warning (disable: 4100) // unreferenced formal parameter
0022 #endif
0023 
0024 namespace boost { namespace fusion
0025 {
0026     template <typename Seq1, typename Seq2>
0027     BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0028     inline bool
0029     equal_to(Seq1 const& a, Seq2 const& b)
0030     {
0031         return result_of::size<Seq1>::value == result_of::size<Seq2>::value
0032             && detail::sequence_equal_to<
0033             Seq1 const, Seq2 const
0034             , result_of::size<Seq1>::value == result_of::size<Seq2>::value>::
0035             call(fusion::begin(a), fusion::begin(b));
0036     }
0037 
0038     namespace operators
0039     {
0040         template <typename Seq1, typename Seq2>
0041         BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0042         inline typename
0043             boost::enable_if<
0044                 traits::enable_equality<Seq1, Seq2>
0045               , bool
0046             >::type
0047         operator==(Seq1 const& a, Seq2 const& b)
0048         {
0049             return fusion::equal_to(a, b);
0050         }
0051     }
0052     using operators::operator==;
0053 }}
0054 
0055 #if defined (BOOST_MSVC)
0056 #  pragma warning(pop)
0057 #endif
0058 
0059 #endif