The MPL Reference Manual: min

Front Page / Metafunctions / Miscellaneous / min

# min

### Synopsis

    template<
          typename N1
        , typename N2
        >
    struct min
    {
        typedef unspecified type;
    };

### Description

Returns the smaller of its two arguments.

### Header

    #include <boost/mpl/min_max.hpp>

### Model of

Metafunction

### Parameters

Parameter | Requirement | Description
--- | --- | ---
`N1`, `N2` | Any type | Types to compare.

### Expression semantics

For arbitrary types `x` and `y`:

    typedef min<x,y>::type r;

Return type: | A type.
Precondition: | `less<x,y>::value` is a well-formed integral constant expression.

Semantics:

Equivalent to

    typedef if_< less<x,y>,x,y >::type r;

### Complexity

Constant time.

### Example

    typedef fold<
          vector_c<int,1,7,0,-2,5,-1>
        , int_<-10>
        , min<_1,_2>
        >::type r;

    BOOST_MPL_ASSERT(( is_same< r, int_<-10> > ));

### See also

Metafunctions, comparison, max, less, min_element