File indexing completed on 2025-12-16 09:49:28
0001
0002
0003
0004
0005
0006
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