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

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

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

Returns `true_`

if `T1::value != T2::value`

and `false_`

otherwise [1].

#include "boost/mpl/not_equal_to.hpp"

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

`T1, T2` | A model of Integral Constant |

Expression | Expression type | Precondition | Semantics | Postcondition |
---|---|---|---|---|

`typedef not_equal_to<t1,t2>::type c;` | A model of `bool` Integral Constant | Equivalent to `typedef bool_<(t1::value != t2::value)> c;` |

Amortized constant time.

typedef list_c<int,1,5,0,7,5,-1,2,4,5> numbers; typedef remove_if< numbers, not_equal_to<_1,int_<5> > >::type fives; BOOST_STATIC_ASSERT(equal_to< count_if< fives, equal_to<_1,int_<5> > >::type, size<fives>::type >::type::value));

[1] The `not_equal_to`

metafunction can be (and is expected to be) specialized by user to work on user-defined types that do not satisfy the Integral Constant requirements. The requirements listed here are the ones imposed by the default implementation.

Metafunctions, `equal_to`

, `less`

, `less_equal`

, `greater`

, `greater_equal`

Table of Contents

Last edited March 10, 2003 6:20 am