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_NOT_EQUAL_TO_05052005_0431)
0009 #define FUSION_NOT_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/enable_comparison.hpp>
0016 
0017 #if defined(FUSION_DIRECT_OPERATOR_USAGE)
0018 #include <boost/fusion/sequence/comparison/detail/not_equal_to.hpp>
0019 #else
0020 #include <boost/fusion/sequence/comparison/equal_to.hpp>
0021 #endif
0022 
0023 namespace boost { namespace fusion
0024 {
0025     template <typename Seq1, typename Seq2>
0026     BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0027     inline bool
0028     not_equal_to(Seq1 const& a, Seq2 const& b)
0029     {
0030 #if defined(FUSION_DIRECT_OPERATOR_USAGE)
0031         return result_of::size<Seq1>::value != result_of::size<Seq2>::value
0032             || detail::sequence_not_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 #else
0037         return !(a == b);
0038 #endif
0039     }
0040 
0041     namespace operators
0042     {
0043         template <typename Seq1, typename Seq2>
0044         BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0045         inline typename
0046             boost::enable_if<
0047                 traits::enable_equality<Seq1, Seq2>
0048               , bool
0049             >::type
0050         operator!=(Seq1 const& a, Seq2 const& b)
0051         {
0052             return fusion::not_equal_to(a, b);
0053         }
0054     }
0055     using operators::operator!=;
0056 }}
0057 
0058 #endif