Boost C++ Libraries 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 / pop_back



      typename Sequence
struct pop_back
    typedef unspecified type;


pop_back performs a removal at the end of the sequence with guaranteed O(1) complexity.


#include <boost/mpl/pop_back.hpp>

Model of

Tag Dispatched Metafunction


Parameter Requirement Description
Sequence Back Extensible Sequence A sequence to erase the last element from.

Expression semantics

For any Back Extensible Sequence s:

typedef pop_back<s>::type r; 
Return type:Back Extensible Sequence.
Precondition:empty<s>::value == false.
Semantics:Equivalent to erase<s,end<s>::type>::type;.
Postcondition:size<r>::value == size<s>::value - 1.


Amortized constant time.


typedef vector<long>::type types1;
typedef vector<long,int>::type types2;
typedef vector<long,int,char>::type types3;

typedef pop_back<types1>::type result1;
typedef pop_back<types2>::type result2;
typedef pop_back<types3>::type result3;
BOOST_MPL_ASSERT_RELATION( size<result1>::value, ==, 0 );
BOOST_MPL_ASSERT_RELATION( size<result2>::value, ==, 1 );
BOOST_MPL_ASSERT_RELATION( size<result3>::value, ==, 2 );
BOOST_MPL_ASSERT(( is_same< back<result2>::type, long> ));
BOOST_MPL_ASSERT(( is_same< back<result3>::type, int > ));

See also

Back Extensible Sequence, erase, push_back, back, pop_front