comparison DEPENDENCIES/generic/include/boost/fusion/sequence/comparison/detail/less_equal.hpp @ 101:c530137014c0

Update Boost headers (1.58.0)
author Chris Cannam
date Mon, 07 Sep 2015 11:12:49 +0100
parents 2665513ce2d3
children
comparison
equal deleted inserted replaced
100:793467b5e61c 101:c530137014c0
6 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 ==============================================================================*/ 7 ==============================================================================*/
8 #if !defined(FUSION_LESS_EQUAL_05052005_1141) 8 #if !defined(FUSION_LESS_EQUAL_05052005_1141)
9 #define FUSION_LESS_EQUAL_05052005_1141 9 #define FUSION_LESS_EQUAL_05052005_1141
10 10
11 #include <boost/fusion/support/config.hpp>
11 #include <boost/mpl/bool.hpp> 12 #include <boost/mpl/bool.hpp>
12 #include <boost/fusion/iterator/deref.hpp> 13 #include <boost/fusion/iterator/deref.hpp>
13 #include <boost/fusion/iterator/next.hpp> 14 #include <boost/fusion/iterator/next.hpp>
14 #include <boost/fusion/iterator/equal_to.hpp> 15 #include <boost/fusion/iterator/equal_to.hpp>
15 #include <boost/fusion/support/as_const.hpp> 16 #include <boost/fusion/support/as_const.hpp>
21 { 22 {
22 typedef typename result_of::end<Seq1>::type end1_type; 23 typedef typename result_of::end<Seq1>::type end1_type;
23 typedef typename result_of::end<Seq2>::type end2_type; 24 typedef typename result_of::end<Seq2>::type end2_type;
24 25
25 template <typename I1, typename I2> 26 template <typename I1, typename I2>
27 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
26 static bool 28 static bool
27 call(I1 const&, I2 const&, mpl::true_) 29 call(I1 const&, I2 const&, mpl::true_)
28 { 30 {
29 return true; 31 return true;
30 } 32 }
31 33
32 template <typename I1, typename I2> 34 template <typename I1, typename I2>
35 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
33 static bool 36 static bool
34 call(I1 const& a, I2 const& b, mpl::false_) 37 call(I1 const& a, I2 const& b, mpl::false_)
35 { 38 {
36 return extension::as_const(*a) <= extension::as_const(*b) 39 return extension::as_const(*a) <= extension::as_const(*b)
37 && (!(extension::as_const(*b) <= extension::as_const(*a)) || 40 && (!(extension::as_const(*b) <= extension::as_const(*a)) ||
38 call(fusion::next(a), fusion::next(b))); 41 call(fusion::next(a), fusion::next(b)));
39 } 42 }
40 43
41 template <typename I1, typename I2> 44 template <typename I1, typename I2>
45 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
42 static bool 46 static bool
43 call(I1 const& a, I2 const& b) 47 call(I1 const& a, I2 const& b)
44 { 48 {
45 typename result_of::equal_to<I1, end1_type>::type eq; 49 typename result_of::equal_to<I1, end1_type>::type eq;
46 return call(a, b, eq); 50 return call(a, b, eq);