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

Click here to view the latest version of this page.
Front Page / Sequences / Intrinsic Metafunctions / erase_key



      typename AssocSeq
    , typename Key
struct erase_key
    typedef unspecified type;


Erases elements associated with the key Key in the Extensible Associative Sequence AssocSeq .


#include <boost/mpl/erase_key.hpp>

Model of

Tag Dispatched Metafunction


Parameter Requirement Description
AssocSeq Extensible Associative Sequence A sequence to erase elements from.
Key Any type A key for the elements to be removed.

Expression semantics

For any Extensible Associative Sequence s, and arbitrary type key:

typedef erase_key<s,key>::type r; 
Return type:Extensible Associative Sequence.
Semantics:r is concept-identical and equivalent to s except that has_key<r,k>::value == false.
Postcondition:size<r>::value == size<s>::value - 1.


Amortized constant time.


typedef map< pair<int,unsigned>, pair<char,long> > m;
typedef erase_key<m,char>::type m1;

BOOST_MPL_ASSERT_RELATION( size<m1>::type::value, ==, 1 );
BOOST_MPL_ASSERT(( is_same< at<m1,char>::type,void_ > ));
BOOST_MPL_ASSERT(( is_same< at<m1,int>::type,unsigned > ));

See also

Extensible Associative Sequence, erase, has_key, insert