diff options
Diffstat (limited to 'src/third_party/boost-1.69.0/boost/fusion/sequence/comparison/not_equal_to.hpp')
-rw-r--r-- | src/third_party/boost-1.69.0/boost/fusion/sequence/comparison/not_equal_to.hpp | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/third_party/boost-1.69.0/boost/fusion/sequence/comparison/not_equal_to.hpp b/src/third_party/boost-1.69.0/boost/fusion/sequence/comparison/not_equal_to.hpp new file mode 100644 index 00000000000..fc2fef3343f --- /dev/null +++ b/src/third_party/boost-1.69.0/boost/fusion/sequence/comparison/not_equal_to.hpp @@ -0,0 +1,58 @@ +/*============================================================================= + Copyright (c) 1999-2003 Jaakko Jarvi + Copyright (c) 2001-2011 Joel de Guzman + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(FUSION_NOT_EQUAL_TO_05052005_0431) +#define FUSION_NOT_EQUAL_TO_05052005_0431 + +#include <boost/fusion/support/config.hpp> +#include <boost/fusion/sequence/intrinsic/begin.hpp> +#include <boost/fusion/sequence/intrinsic/end.hpp> +#include <boost/fusion/sequence/intrinsic/size.hpp> +#include <boost/fusion/sequence/comparison/enable_comparison.hpp> + +#if defined(FUSION_DIRECT_OPERATOR_USAGE) +#include <boost/fusion/sequence/comparison/detail/not_equal_to.hpp> +#else +#include <boost/fusion/sequence/comparison/equal_to.hpp> +#endif + +namespace boost { namespace fusion +{ + template <typename Seq1, typename Seq2> + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline bool + not_equal_to(Seq1 const& a, Seq2 const& b) + { +#if defined(FUSION_DIRECT_OPERATOR_USAGE) + return result_of::size<Seq1>::value != result_of::size<Seq2>::value + || detail::sequence_not_equal_to< + Seq1 const, Seq2 const + , result_of::size<Seq1>::value == result_of::size<Seq2>::value>:: + call(fusion::begin(a), fusion::begin(b)); +#else + return !(a == b); +#endif + } + + namespace operators + { + template <typename Seq1, typename Seq2> + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + inline typename + boost::enable_if< + traits::enable_equality<Seq1, Seq2> + , bool + >::type + operator!=(Seq1 const& a, Seq2 const& b) + { + return fusion::not_equal_to(a, b); + } + } + using operators::operator!=; +}} + +#endif |