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 / Sequences / Intrinsic Metafunctions / empty

empty

Synopsis

template<
      typename Sequence
    >
struct empty
{
    typedef unspecified type;
};

Description

Returns an Integral Constant c such that c::value == true if and only if the sequence is empty.

Header

#include <boost/mpl/empty.hpp>

Model of

Tag Dispatched Metafunction

Parameters

Parameter Requirement Description
Sequence Forward Sequence A sequence to test.

Expression semantics

For any Forward Sequence s:

typedef empty<s>::type c; 
Return type:Boolean Integral Constant.
Semantics:Equivalent to typedef is_same< begin<s>::type,end<s>::type >::type c;.
Postcondition:empty<s>::value == ( size<s>::value == 0 ).

Complexity

Amortized constant time.

Example

typedef range_c<int,0,0> empty_range;
typedef vector<long,float,double> types;

BOOST_MPL_ASSERT( empty<empty_range> );
BOOST_MPL_ASSERT_NOT( empty<types> );

See also

Forward Sequence, Integral Constant, size, begin / end