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: insert_range</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="./insert.html" class="navigation-link">Prev</a> <a href="./is-sequence.html" class="navigation-link">Next</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./insert.html" class="navigation-link">Back</a> <a href="./is-sequence.html" class="navigation-link">Along</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./intrinsic-metafunctions.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="./intrinsic-metafunctions.html" class="navigation-link">Intrinsic Metafunctions</a> / <a href="./insert-range.html" class="navigation-link">insert_range</a></td> 13</tr></table><div class="header-separator"></div> 14<div class="section" id="insert-range"> 15<h1><a class="toc-backref" href="./intrinsic-metafunctions.html#id1437">insert_range</a></h1> 16<div class="section" id="id283"> 17<h3><a class="subsection-title" href="#synopsis" name="synopsis">Synopsis</a></h3> 18<pre class="literal-block"> 19template< 20 typename Sequence 21 , typename Pos 22 , typename Range 23 > 24struct <a href="./insert-range.html" class="identifier">insert_range</a> 25{ 26 typedef <em>unspecified</em> type; 27}; 28</pre> 29</div> 30<div class="section" id="id284"> 31<h3><a class="subsection-title" href="#description" name="description">Description</a></h3> 32<p><tt class="literal"><span class="pre"><a href="./insert-range.html" class="identifier">insert_range</a></span></tt> performs an insertion of a range of elements at an arbitrary position in 33the sequence.</p> 34</div> 35<div class="section" id="id285"> 36<h3><a class="subsection-title" href="#header" name="header">Header</a></h3> 37<pre class="literal-block"> 38#include <<a href="../../../../boost/mpl/insert_range.hpp" class="header">boost/mpl/insert_range.hpp</a>> 39</pre> 40</div> 41<div class="section" id="id286"> 42<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3> 43<p><a class="reference internal" href="./tag-dispatched-metafunction.html">Tag Dispatched Metafunction</a></p> 44</div> 45<div class="section" id="id287"> 46<h3><a class="subsection-title" href="#parameters" name="parameters">Parameters</a></h3> 47<table border="1" class="docutils table"> 48<colgroup> 49<col width="15%" /> 50<col width="36%" /> 51<col width="48%" /> 52</colgroup> 53<thead valign="bottom"> 54<tr><th class="head">Parameter</th> 55<th class="head">Requirement</th> 56<th class="head">Description</th> 57</tr> 58</thead> 59<tbody valign="top"> 60<tr><td><tt class="literal"><span class="pre">Sequence</span></tt></td> 61<td><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a> or 62<a class="reference internal" href="./extensible-associative-sequence.html">Extensible Associative Sequence</a></td> 63<td>A sequence to insert into.</td> 64</tr> 65<tr><td><tt class="literal"><span class="pre">Pos</span></tt></td> 66<td><a class="reference internal" href="./forward-iterator.html">Forward Iterator</a></td> 67<td>An iterator in <tt class="literal"><span class="pre">Sequence</span></tt> specifying the 68insertion position.</td> 69</tr> 70<tr><td><tt class="literal"><span class="pre">Range</span></tt></td> 71<td><a class="reference internal" href="./forward-sequence.html">Forward Sequence</a></td> 72<td>The range of elements to be inserted.</td> 73</tr> 74</tbody> 75</table> 76</div> 77<div class="section" id="id288"> 78<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3> 79<p>For any <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a> <tt class="literal"><span class="pre">s</span></tt>, iterator <tt class="literal"><span class="pre">pos</span></tt> in <tt class="literal"><span class="pre">s</span></tt>, and <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> <tt class="literal"><span class="pre">range</span></tt>:</p> 80<pre class="literal-block"> 81typedef <a href="./insert.html" class="identifier">insert</a><s,pos,range>::type r; 82</pre> 83<table class="docutils field-list" frame="void" rules="none"> 84<col class="field-name" /> 85<col class="field-body" /> 86<tbody valign="top"> 87<tr class="field"><th class="field-name">Return type:</th><td class="field-body"><p class="first"><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>.</p> 88</td> 89</tr> 90<tr class="field"><th class="field-name">Precondition:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">pos</span></tt> is an iterator into <tt class="literal"><span class="pre">s</span></tt>.</p> 91</td> 92</tr> 93<tr class="field"><th class="field-name">Semantics:</th><td class="field-body"><p class="first"><tt class="literal"><span class="pre">r</span></tt> is a sequence, <a class="reference internal" href="./terminology.html#concept-identical">concept-identical</a> to <tt class="literal"><span class="pre">s</span></tt>, of the following elements: 94[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a><s>::type</span></tt>, <tt class="literal"><span class="pre">pos</span></tt>), [<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>), 95[<tt class="literal"><span class="pre">pos</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a><s>::type</span></tt>).</p> 96</td> 97</tr> 98<tr class="field"><th class="field-name">Postcondition:</th><td class="field-body"><p class="first">The relative order of the elements in <tt class="literal"><span class="pre">r</span></tt> is the same as in <tt class="literal"><span class="pre">s</span></tt>;</p> 99<pre class="last literal-block"> 100<a href="./size.html" class="identifier">size</a><r>::value == <a href="./size.html" class="identifier">size</a><s>::value + <a href="./size.html" class="identifier">size</a><range>::value 101</pre> 102</td> 103</tr> 104</tbody> 105</table> 106</div> 107<div class="section" id="id289"> 108<h3><a class="subsection-title" href="#complexity" name="complexity">Complexity</a></h3> 109<p>Sequence dependent. Quadratic in the worst case, linear at best; see the particular 110sequence class' specification for details.</p> 111</div> 112<div class="section" id="id290"> 113<h3><a class="subsection-title" href="#example" name="example">Example</a></h3> 114<pre class="literal-block"> 115typedef <a href="./vector-c.html" class="identifier">vector_c</a><int,0,1,7,8,9> numbers; 116typedef <a href="./find.html" class="identifier">find</a>< numbers,<a href="./integral-c.html" class="identifier">integral_c</a><int,7> >::type pos; 117typedef <a href="./insert-range.html" class="identifier">insert_range</a>< numbers,pos,<a href="./range-c.html" class="identifier">range_c</a><int,2,7> >::type range; 118 119<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( <a href="./size.html" class="identifier">size</a><range>::value, ==, 10 ); 120<a href="./assert.html" class="identifier">BOOST_MPL_ASSERT</a>(( <a href="./equal.html" class="identifier">equal</a>< range,<a href="./range-c.html" class="identifier">range_c</a><int,0,10> > )); 121 122typedef <a href="./insert-range.html" class="identifier">insert_range</a>< 123 <a href="./list.html" class="identifier">list</a><tt class="literal"><span class="pre">0</span></tt><> 124 , <a href="./end.html" class="identifier">end</a>< <a href="./list.html" class="identifier">list</a><tt class="literal"><span class="pre">0</span></tt><> >::type 125 , <a href="./list.html" class="identifier">list</a><int> 126 >::type result2; 127 128<a href="./assert-relation.html" class="identifier">BOOST_MPL_ASSERT_RELATION</a>( <a href="./size.html" class="identifier">size</a><result2>::value, ==, 1 ); 129</pre> 130</div> 131<div class="section" id="id291"> 132<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3> 133<p><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>, <a class="reference internal" href="./insert.html">insert</a>, <a class="reference internal" href="./push-front.html">push_front</a>, <a class="reference internal" href="./push-back.html">push_back</a>, <a class="reference internal" href="./erase.html">erase</a></p> 134<!-- Sequences/Intrinsic Metafunctions//is_sequence --> 135</div> 136</div> 137 138<div class="footer-separator"></div> 139<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./insert.html" class="navigation-link">Prev</a> <a href="./is-sequence.html" class="navigation-link">Next</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./insert.html" class="navigation-link">Back</a> <a href="./is-sequence.html" class="navigation-link">Along</a></span><span class="navigation-group-separator"> | </span><span class="navigation-group"><a href="./intrinsic-metafunctions.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> 140<td><div class="copyright-footer"><div class="copyright">Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams</div> 141Distributed under the Boost Software License, Version 1.0. (See accompanying 142file 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> 143</html> 144