1<?xml version="1.0" encoding="utf-8" ?> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 4<head> 5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 6<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" /> 7<title>The MPL Reference Manual: list</title> 8<link rel="stylesheet" href="../style.css" type="text/css" /> 9</head> 10<body class="docframe refmanual"> 11<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./vector.html" class="navigation-link">Prev</a> <a href="./deque.html" class="navigation-link">Next</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./vector.html" class="navigation-link">Back</a> <a href="./deque.html" class="navigation-link">Along</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./classes.html" class="navigation-link">Up</a> <a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td> 12<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./classes.html" class="navigation-link">Classes</a> / <a href="./list.html" class="navigation-link">list</a></td> 13</tr></table><div class="header-separator"></div> 14<div class="section" id="list"> 15<h1><a class="toc-backref" href="./classes.html#id1407">list</a></h1> 16<div class="section" id="id56"> 17<h3><a class="subsection-title" href="#description" name="description">Description</a></h3> 18<p>A <tt class="literal"><span class="pre"><a href="./list.html" class="identifier">list</a></span></tt> is a <a class="reference internal" href="./variadic-sequence.html">variadic</a>, <a class="reference internal" href="./forward-sequence.html">forward</a>, <a class="reference internal" href="./extensible-sequence.html">extensible</a> sequence of types that 19supports constant-time insertion and removal of elements at the beginning, and 20linear-time insertion and removal of elements at the end and in the middle.</p> 21</div> 22<div class="section" id="id59"> 23<h3><a class="subsection-title" href="#header" name="header">Header</a></h3> 24<table border="1" class="docutils table"> 25<colgroup> 26<col width="26%" /> 27<col width="74%" /> 28</colgroup> 29<thead valign="bottom"> 30<tr><th class="head">Sequence form</th> 31<th class="head">Header</th> 32</tr> 33</thead> 34<tbody valign="top"> 35<tr><td>Variadic</td> 36<td><tt class="literal"><span class="pre">#include <<a href="../../../../boost/mpl/list.hpp" class="header">boost/mpl/list.hpp</a>></span></tt></td> 37</tr> 38<tr><td>Numbered</td> 39<td><tt class="literal"><span class="pre">#include <boost/mpl/list/list</span></tt><em>n</em><tt class="literal"><span class="pre">.hpp></span></tt></td> 40</tr> 41</tbody> 42</table> 43</div> 44<div class="section" id="id60"> 45<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3> 46<ul class="simple"> 47<li><a class="reference internal" href="./variadic-sequence.html">Variadic Sequence</a></li> 48<li><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></li> 49<li><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a></li> 50<li><a class="reference internal" href="./front-extensible-sequence.html">Front Extensible Sequence</a></li> 51</ul> 52</div> 53<div class="section" id="id61"> 54<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3> 55<p>In the following table, <tt class="literal"><span class="pre">l</span></tt> is a <tt class="literal"><span class="pre"><a href="./list.html" class="identifier">list</a></span></tt>, <tt class="literal"><span class="pre">pos</span></tt> and <tt class="literal"><span class="pre">last</span></tt> are iterators into <tt class="literal"><span class="pre">l</span></tt>, 56<tt class="literal"><span class="pre">r</span></tt> is a <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>, and <em>t</em><sub>1</sub>,<em>t</em><sub>2</sub>,... <em>t</em><sub>n</sub> and <tt class="literal"><span class="pre">x</span></tt> are arbitrary types.</p> 57<table border="1" class="docutils table"> 58<colgroup> 59<col width="40%" /> 60<col width="60%" /> 61</colgroup> 62<thead valign="bottom"> 63<tr><th class="head">Expression</th> 64<th class="head">Semantics</th> 65</tr> 66</thead> 67<tbody valign="top"> 68<tr><td><pre class="first last literal-block"> 69<a href="./list.html" class="identifier">list</a><<em>t</em><sub>1</sub>,<em>t</em><sub>2</sub>,... <em>t</em><sub>n</sub>> 70<a href="./list.html" class="identifier">list</a><em>n</em><<em>t</em><sub>1</sub>,<em>t</em><sub>2</sub>,... <em>t</em><sub>n</sub>> 71</pre> 72</td> 73<td><tt class="literal"><span class="pre"><a href="./list.html" class="identifier">list</a></span></tt> of elements <em>t</em><sub>1</sub>,<em>t</em><sub>2</sub>,... <em>t</em><sub>n</sub>; see 74<a class="reference internal" href="./variadic-sequence.html">Variadic Sequence</a>.</td> 75</tr> 76<tr><td><pre class="first last literal-block"> 77<a href="./list.html" class="identifier">list</a><<em>t</em><sub>1</sub>,<em>t</em><sub>2</sub>,... <em>t</em><sub>n</sub>>::type 78<a href="./list.html" class="identifier">list</a><em>n</em><<em>t</em><sub>1</sub>,<em>t</em><sub>2</sub>,... <em>t</em><sub>n</sub>>::type 79</pre> 80</td> 81<td>Identical to <tt class="literal"><span class="pre"><a href="./list.html" class="identifier">list</a></span></tt><em>n</em><tt class="literal"><span class="pre"><</span></tt><em>t</em><sub>1</sub>,<em>t</em><sub>2</sub>,... <em>t</em><sub>n</sub><tt class="literal"><span class="pre">></span></tt>; 82see <a class="reference internal" href="./variadic-sequence.html">Variadic Sequence</a>.</td> 83</tr> 84<tr><td><tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a><l>::type</span></tt></td> 85<td>An iterator to the beginning of <tt class="literal"><span class="pre">l</span></tt>; 86see <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>.</td> 87</tr> 88<tr><td><tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a><l>::type</span></tt></td> 89<td>An iterator to the end of <tt class="literal"><span class="pre">l</span></tt>; 90see <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>.</td> 91</tr> 92<tr><td><tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a><l>::type</span></tt></td> 93<td>The size of <tt class="literal"><span class="pre">l</span></tt>; see <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>.</td> 94</tr> 95<tr><td><tt class="literal"><span class="pre"><a href="./empty.html" class="identifier">empty</a><l>::type</span></tt></td> 96<td>A boolean <a class="reference internal" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">c</span></tt> such that 97<tt class="literal"><span class="pre">c::value</span> <span class="pre">==</span> <span class="pre">true</span></tt> if and only if <tt class="literal"><span class="pre">l</span></tt> is empty; see 98<a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>.</td> 99</tr> 100<tr><td><tt class="literal"><span class="pre"><a href="./front.html" class="identifier">front</a><l>::type</span></tt></td> 101<td>The first element in <tt class="literal"><span class="pre">l</span></tt>; see 102<a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>.</td> 103</tr> 104<tr><td><tt class="literal"><span class="pre"><a href="./insert.html" class="identifier">insert</a><l,pos,x>::type</span></tt></td> 105<td>A new <tt class="literal"><span class="pre"><a href="./list.html" class="identifier">list</a></span></tt> of following elements: 106[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a><l>::type</span></tt>, <tt class="literal"><span class="pre">pos</span></tt>), <tt class="literal"><span class="pre">x</span></tt>, 107[<tt class="literal"><span class="pre">pos</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a><l>::type</span></tt>); see <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>.</td> 108</tr> 109<tr><td><tt class="literal"><span class="pre"><a href="./insert-range.html" class="identifier">insert_range</a><l,pos,r>::type</span></tt></td> 110<td>A new <tt class="literal"><span class="pre"><a href="./list.html" class="identifier">list</a></span></tt> of following elements: 111[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a><l>::type</span></tt>, <tt class="literal"><span class="pre">pos</span></tt>), 112[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a><r>::type</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a><r>::type</span></tt>) 113[<tt class="literal"><span class="pre">pos</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a><l>::type</span></tt>); see <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>.</td> 114</tr> 115<tr><td><tt class="literal"><span class="pre"><a href="./erase.html" class="identifier">erase</a><l,pos>::type</span></tt></td> 116<td>A new <tt class="literal"><span class="pre"><a href="./list.html" class="identifier">list</a></span></tt> of following elements: 117[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a><l>::type</span></tt>, <tt class="literal"><span class="pre">pos</span></tt>), 118[<tt class="literal"><span class="pre"><a href="./next.html" class="identifier">next</a><pos>::type</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a><l>::type</span></tt>); see 119<a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>.</td> 120</tr> 121<tr><td><tt class="literal"><span class="pre"><a href="./erase.html" class="identifier">erase</a><l,pos,last>::type</span></tt></td> 122<td>A new <tt class="literal"><span class="pre"><a href="./list.html" class="identifier">list</a></span></tt> of following elements: 123[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a><l>::type</span></tt>, <tt class="literal"><span class="pre">pos</span></tt>), 124[<tt class="literal"><span class="pre">last</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a><l>::type</span></tt>); see <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>.</td> 125</tr> 126<tr><td><tt class="literal"><span class="pre"><a href="./clear.html" class="identifier">clear</a><l>::type</span></tt></td> 127<td>An empty <tt class="literal"><span class="pre"><a href="./list.html" class="identifier">list</a></span></tt>; see <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>.</td> 128</tr> 129<tr><td><tt class="literal"><span class="pre"><a href="./push-front.html" class="identifier">push_front</a><l,x>::type</span></tt></td> 130<td>A new <tt class="literal"><span class="pre"><a href="./list.html" class="identifier">list</a></span></tt> containing <tt class="literal"><span class="pre">x</span></tt> as its first 131element; see <a class="reference internal" href="./front-extensible-sequence.html">Front Extensible Sequence</a>.</td> 132</tr> 133<tr><td><tt class="literal"><span class="pre"><a href="./pop-front.html" class="identifier">pop_front</a><l>::type</span></tt></td> 134<td>A new <tt class="literal"><span class="pre"><a href="./list.html" class="identifier">list</a></span></tt> containing all but the first elements 135of <tt class="literal"><span class="pre">l</span></tt> in the same order; see 136<a class="reference internal" href="./front-extensible-sequence.html">Front Extensible Sequence</a>.</td> 137</tr> 138</tbody> 139</table> 140</div> 141<div class="section" id="id62"> 142<h3><a class="subsection-title" href="#example" name="example">Example</a></h3> 143<pre class="literal-block"> 144typedef <a href="./list.html" class="identifier">list</a><float,double,long double> floats; 145typedef <a href="./push-front.html" class="identifier">push_front</a><floats,int>::type types; 146 147<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( is_same< <a href="./front.html" class="identifier">front</a><types>::type, int > )); 148</pre> 149</div> 150<div class="section" id="id63"> 151<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3> 152<p><a class="reference internal" href="./sequences.html">Sequences</a>, <a class="reference internal" href="./variadic-sequence.html">Variadic Sequence</a>, <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a>, <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>, <a class="reference internal" href="./vector.html">vector</a>, <a class="reference internal" href="./list-c.html">list_c</a></p> 153<!-- Sequences/Classes//deque |30 --> 154</div> 155</div> 156 157<div class="footer-separator"></div> 158<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./vector.html" class="navigation-link">Prev</a> <a href="./deque.html" class="navigation-link">Next</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./vector.html" class="navigation-link">Back</a> <a href="./deque.html" class="navigation-link">Along</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./classes.html" class="navigation-link">Up</a> <a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td> 159<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div> 160Distributed under the Boost Software License, Version 1.0. (See accompanying 161file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body> 162</html> 163