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

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
Front Page / Algorithms / Querying Algorithms / contains

contains

Synopsis

template<
      typename Sequence
    , typename T
    >
struct contains
{
    typedef unspecified type;
};

Description

Returns a true-valued Integral Constant if one or more elements in Sequence are identical to T.

Header

#include <boost/mpl/contains.hpp>

Parameters

Parameter Requirement Description
Sequence Forward Sequence A sequence to be examined.
T Any type A type to search for.

Expression semantics

For any Forward Sequence s and arbitrary type t:

typedef contains<s,t>::type r;
Return type:Integral Constant.
Semantics:

Equivalent to

typedef not_< is_same< 
      find<s,t>::type
    , end<s>::type
    > >::type r;

Complexity

Linear. At most size<s>::value comparisons for identity.

Example

typedef vector<char,int,unsigned,long,unsigned long> types;
BOOST_MPL_ASSERT_NOT(( contains<types,bool> ));

See also

Querying Algorithms, find, find_if, count, lower_bound