The MPL Reference Manual: contains

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`