...one of the most highly
regarded and expertly designed C++ library projects in the
world.

— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards

Front Page / Metafunctions / Comparisons / less_equal |

template< typename T1 , typename T2 > struct less_equal { typedefunspecifiedtype; };

Returns a true-valued Integral Constant if `T1` is less than or equal to `T2`.

#include <boost/mpl/less_equal.hpp> #include <boost/mpl/comparison.hpp>

Parameter | Requirement | Description |
---|---|---|

T1, T2 |
Integral Constant | Operation's arguments. |

[*Note:* The requirements listed in this specification
are the ones imposed by the default implementation. See Numeric Metafunction concept
for the details on how to provide an implementation for a user-defined numeric type
that does not satisfy the Integral Constant requirements. — *end note*]

For any Integral Constants `c1` and `c2`:

typedef less_equal<c1,c2>::type r;

Return type: | |
---|---|

Semantics: | Equivalent to typedef bool_< (c1::value <= c2::value) > r; |

typedef less_equal<c1,c2> r;

Return type: | |
---|---|

Semantics: | Equivalent to struct r : less_equal<c1,c2>::type {}; |

Amortized constant time.

BOOST_MPL_ASSERT(( less_equal< int_<0>, int_<10> > )); BOOST_MPL_ASSERT_NOT(( less_equal< long_<10>, int_<0> > )); BOOST_MPL_ASSERT(( less_equal< long_<10>, int_<10> > ));