8 template <class LowerBound, class UpperBound, class Item>
12 This is a [link metafunction template metafunction] supporting
13 [link currying currying].
17 [[`LowerBound`] [[link boxed_value boxed integral value]]]
18 [[`UpperBound`] [[link boxed_value boxed integral value]]]
19 [[`Item`] [[link boxed_value boxed integral value]]]
24 It returns a boxed boolean value. The value is `true` when `Item` is in the
25 range `[LowerBound..UpperBound]` and `false` otherwise. `boost::mpl::less_equal`
26 is used for comparison.
30 #include <boost/metaparse/util/in_range.hpp>
32 [h1 Expression semantics]
34 For any `L`, `U` and `T` classes the following are equivalent:
36 in_range<L, U>::apply<T>::type::value
38 boost::mpl::less_equal<L, T>::type::value
39 && boost::mpl::less_equal<T, U>::type::value
43 #include <boost/metaparse/util/in_range.hpp>
45 #include <boost/mpl/int.hpp>
47 using namespace boost::metaparse;
55 "A value below the lower bound should not be in the range"
64 "A value above the upper bound should not be in the range"
73 "The lower bound should be in the range"
82 "The upper bound should be in the range"
91 "A value between the bounds should be in the range"
96 ::apply<boost::mpl::int_<11>>::type
97 ::apply<boost::mpl::int_<13>>::type
98 ::apply<boost::mpl::int_<12>>::type
100 "It should support currying"