...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Front Page / Sequences / Classes / list |
A list is a variadic, forward, extensible sequence of types that supports constant-time insertion and removal of elements at the beginning, and linear-time insertion and removal of elements at the end and in the middle.
Sequence form | Header |
---|---|
Variadic | #include <boost/mpl/list.hpp> |
Numbered | #include <boost/mpl/list/listn.hpp> |
In the following table, l is a list, pos and last are iterators into l, r is a Forward Sequence, and t1,t2,... tn and x are arbitrary types.
Expression | Semantics |
---|---|
list<t1,t2,... tn> listn<t1,t2,... tn> |
list of elements t1,t2,... tn; see Variadic Sequence. |
list<t1,t2,... tn>::type listn<t1,t2,... tn>::type |
Identical to listn<t1,t2,... tn>; see Variadic Sequence. |
begin<l>::type | An iterator to the beginning of l; see Forward Sequence. |
end<l>::type | An iterator to the end of l; see Forward Sequence. |
size<l>::type | The size of l; see Forward Sequence. |
empty<l>::type | A boolean Integral Constant c such that c::value == true if and only if l is empty; see Forward Sequence. |
front<l>::type | The first element in l; see Forward Sequence. |
insert<l,pos,x>::type | A new list of following elements: [begin<l>::type, pos), x, [pos, end<l>::type); see Extensible Sequence. |
insert_range<l,pos,r>::type | A new list of following elements: [begin<l>::type, pos), [begin<r>::type, end<r>::type) [pos, end<l>::type); see Extensible Sequence. |
erase<l,pos>::type | A new list of following elements: [begin<l>::type, pos), [next<pos>::type, end<l>::type); see Extensible Sequence. |
erase<l,pos,last>::type | A new list of following elements: [begin<l>::type, pos), [last, end<l>::type); see Extensible Sequence. |
clear<l>::type | An empty list; see Extensible Sequence. |
push_front<l,x>::type | A new list containing x as its first element; see Front Extensible Sequence. |
pop_front<l>::type | A new list containing all but the first elements of l in the same order; see Front Extensible Sequence. |
typedef list<float,double,long double> floats; typedef push_front<floats,int>::type types; BOOST_MPL_ASSERT(( is_same< front<types>::type, int > ));