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.

Header

#include <boost/mpl/equal.hpp>

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<s1,s2,pred>::type c; 
Return type:Integral Constant
Semantics:

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

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

Complexity

Linear. At most size<s1>::value comparisons.

Example

typedef vector<char,int,unsigned,long,unsigned long> s1;
typedef list<char,int,unsigned,long,unsigned long> s2;

BOOST_MPL_ASSERT(( equal<s1,s2> ));

See also

Querying Algorithms, find, find_if