Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

The MPL Reference Manual: equal
Front Page / Algorithms / Querying Algorithms / equal

equal

Synopsis

template<
      typename Seq1
    , typename Seq2
    , typename Pred = is_same<_1,_2>
    >
struct equal
{
    typedef unspecified type;
};

Description

Returns a true-valued Integral Constant if the two sequences Seq1 and Seq2 are identical when compared element-by-element.

Parameters

Parameter Requirement Description
Seq1, Seq2 Forward Sequence Sequences to compare.
Pred Binary Lambda Expression A comparison criterion.

Expression semantics

For any Forward Sequences s1 and s2 and a binary Lambda Expression pred:

typedef equal::type c;
Return type:

Integral Constant

Semantics:

c::value == true is and only if size::value == size::value and for every iterator i in [begin::type, end::type) deref::type is identical to

advance< begin::type, distance< begin::type,i >::type >::type

Complexity

Linear. At most size::value comparisons.

Example

typedef vector s1;
typedef list s2;

BOOST_MPL_ASSERT(( equal ));