1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>noinit_adaptor</title> 5<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css"> 6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> 7<link rel="home" href="../index.html" title="Chapter 1. Boost.Core"> 8<link rel="up" href="../index.html" title="Chapter 1. Boost.Core"> 9<link rel="prev" href="no_exceptions_support.html" title="no_exceptions_support"> 10<link rel="next" href="noncopyable.html" title="noncopyable"> 11</head> 12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 13<table cellpadding="2" width="100%"><tr> 14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td> 15<td align="center"><a href="../../../../../index.html">Home</a></td> 16<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> 17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> 18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> 19<td align="center"><a href="../../../../../more/index.htm">More</a></td> 20</tr></table> 21<hr> 22<div class="spirit-nav"> 23<a accesskey="p" href="no_exceptions_support.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="noncopyable.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> 24</div> 25<div class="section"> 26<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 27<a name="core.noinit_adaptor"></a><a class="link" href="noinit_adaptor.html" title="noinit_adaptor">noinit_adaptor</a> 28</h2></div></div></div> 29<div class="toc"><dl class="toc"> 30<dt><span class="section"><a href="noinit_adaptor.html#core.noinit_adaptor.overview">Overview</a></span></dt> 31<dt><span class="section"><a href="noinit_adaptor.html#core.noinit_adaptor.examples">Examples</a></span></dt> 32<dt><span class="section"><a href="noinit_adaptor.html#core.noinit_adaptor.reference">Reference</a></span></dt> 33</dl></div> 34<div class="simplesect"> 35<div class="titlepage"><div><div><h3 class="title"> 36<a name="idm45312827623424"></a>Authors</h3></div></div></div> 37<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 38 Glen Fernandes 39 </li></ul></div> 40</div> 41<div class="section"> 42<div class="titlepage"><div><div><h3 class="title"> 43<a name="core.noinit_adaptor.overview"></a><a class="link" href="noinit_adaptor.html#core.noinit_adaptor.overview" title="Overview">Overview</a> 44</h3></div></div></div> 45<p> 46 The header <boost/core/noinit_adaptor.hpp> provides the class template 47 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">noinit_adaptor</span></code> that converts any allocator 48 into one whose <code class="computeroutput"><span class="identifier">construct</span><span class="special">(</span><span class="identifier">ptr</span><span class="special">)</span></code> 49 performs default initialization via placement new, and whose <code class="computeroutput"><span class="identifier">destroy</span><span class="special">(</span><span class="identifier">ptr</span><span class="special">)</span></code> invokes 50 <code class="computeroutput"><span class="identifier">value_type</span></code> destructor directly. 51 </p> 52</div> 53<div class="section"> 54<div class="titlepage"><div><div><h3 class="title"> 55<a name="core.noinit_adaptor.examples"></a><a class="link" href="noinit_adaptor.html#core.noinit_adaptor.examples" title="Examples">Examples</a> 56</h3></div></div></div> 57<p> 58 The following example shows use of this allocator adaptor to achieve default 59 initialization of elements of a trivial type, which are later assigned values. 60 </p> 61<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">noinit_adaptor</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 62<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">numeric</span><span class="special">></span> 63<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">vector</span><span class="special">></span> 64 65<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span> 66<span class="special">{</span> 67 <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">noinit_adaptor</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="special">></span> <span class="special">></span> <span class="identifier">v</span><span class="special">(</span><span class="number">5</span><span class="special">);</span> 68 <span class="identifier">std</span><span class="special">::</span><span class="identifier">iota</span><span class="special">(</span><span class="identifier">v</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">v</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="number">1</span><span class="special">);</span> 69<span class="special">}</span> 70</pre> 71<p> 72 The <code class="computeroutput"><span class="identifier">allocate_shared_noinit</span></code> 73 function templates are now implemented simply using <code class="computeroutput"><span class="identifier">allocate_shared</span></code> 74 with <code class="computeroutput"><span class="identifier">noinit_adaptor</span></code>. 75 </p> 76<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">></span> 77<span class="identifier">enable_if_t</span><span class="special"><</span><span class="identifier">is_unbounded_array_v</span><span class="special"><</span><span class="identifier">T</span><span class="special">>,</span> <span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span> 78<span class="identifier">allocate_shared_noinit</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">size_t</span> <span class="identifier">n</span><span class="special">)</span> 79<span class="special">{</span> 80 <span class="keyword">return</span> <span class="identifier">allocate_shared</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">noinit_adapt</span><span class="special">(</span><span class="identifier">a</span><span class="special">),</span> <span class="identifier">n</span><span class="special">);</span> 81<span class="special">}</span> 82 83<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">></span> 84<span class="identifier">enable_if_t</span><span class="special"><!</span><span class="identifier">is_unbounded_array_v</span><span class="special"><</span><span class="identifier">T</span><span class="special">>,</span> <span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span> 85<span class="identifier">allocate_shared_noinit</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&</span> <span class="identifier">a</span><span class="special">)</span> 86<span class="special">{</span> 87 <span class="keyword">return</span> <span class="identifier">allocate_shared</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">noinit_adapt</span><span class="special">(</span><span class="identifier">a</span><span class="special">));</span> 88<span class="special">}</span> 89</pre> 90</div> 91<div class="section"> 92<div class="titlepage"><div><div><h3 class="title"> 93<a name="core.noinit_adaptor.reference"></a><a class="link" href="noinit_adaptor.html#core.noinit_adaptor.reference" title="Reference">Reference</a> 94</h3></div></div></div> 95<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> 96 97<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">A</span><span class="special">></span> 98<span class="keyword">struct</span> <span class="identifier">noinit_adaptor</span> 99 <span class="special">:</span> <span class="identifier">A</span> <span class="special">{</span> 100 <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span> 101 <span class="keyword">struct</span> <span class="identifier">rebind</span> <span class="special">{</span> 102 <span class="keyword">typedef</span> <span class="identifier">noinit_adaptor</span><span class="special"><</span><span class="identifier">allocator_rebind_t</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">U</span><span class="special">></span> <span class="special">></span> <span class="identifier">other</span><span class="special">;</span> 103 <span class="special">};</span> 104 105 <span class="identifier">noinit_adaptor</span><span class="special">()</span> <span class="keyword">noexcept</span><span class="special">;</span> 106 107 <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span> 108 <span class="identifier">noinit_adaptor</span><span class="special">(</span><span class="identifier">U</span><span class="special">&&</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> 109 110 <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span> 111 <span class="identifier">noinit_adaptor</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">noinit_adaptor</span><span class="special"><</span><span class="identifier">U</span><span class="special">>&</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> 112 113 <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span> 114 <span class="keyword">void</span> <span class="identifier">construct</span><span class="special">(</span><span class="identifier">U</span><span class="special">*</span> <span class="identifier">p</span><span class="special">);</span> 115 116 <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span> 117 <span class="keyword">void</span> <span class="identifier">destroy</span><span class="special">(</span><span class="identifier">U</span><span class="special">*</span> <span class="identifier">p</span><span class="special">);</span> 118<span class="special">};</span> 119 120<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span> 121<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">==(</span><span class="keyword">const</span> <span class="identifier">noinit_adaptor</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">lhs</span><span class="special">,</span> 122 <span class="keyword">const</span> <span class="identifier">noinit_adaptor</span><span class="special"><</span><span class="identifier">U</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> 123 124<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span> 125<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">!=(</span><span class="keyword">const</span> <span class="identifier">noinit_adaptor</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">lhs</span><span class="special">,</span> 126 <span class="keyword">const</span> <span class="identifier">noinit_adaptor</span><span class="special"><</span><span class="identifier">U</span><span class="special">>&</span> <span class="identifier">rhs</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> 127 128<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">A</span><span class="special">></span> 129<span class="identifier">noinit_adaptor</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span> <span class="identifier">noinit_adapt</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&</span> <span class="identifier">a</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> 130 131<span class="special">}</span> <span class="comment">/* boost */</span> 132</pre> 133<div class="section"> 134<div class="titlepage"><div><div><h4 class="title"> 135<a name="core.noinit_adaptor.reference.constructors"></a><a class="link" href="noinit_adaptor.html#core.noinit_adaptor.reference.constructors" title="Constructors">Constructors</a> 136</h4></div></div></div> 137<div class="variablelist"> 138<p class="title"><b></b></p> 139<dl class="variablelist"> 140<dt><span class="term"><code class="computeroutput"><span class="identifier">noinit_adaptor</span><span class="special">()</span> <span class="keyword">noexcept</span><span class="special">;</span></code></span></dt> 141<dd><div class="variablelist"> 142<p class="title"><b></b></p> 143<dl class="variablelist"> 144<dt><span class="term">Effects</span></dt> 145<dd><p> 146 Value initializes the A base class. 147 </p></dd> 148</dl> 149</div></dd> 150<dt><span class="term"><code class="computeroutput"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span> <span class="identifier">noinit_adaptor</span><span class="special">(</span><span class="identifier">U</span><span class="special">&&</span> <span class="identifier">u</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></code></span></dt> 151<dd><div class="variablelist"> 152<p class="title"><b></b></p> 153<dl class="variablelist"> 154<dt><span class="term">Requires</span></dt> 155<dd><p> 156 <code class="computeroutput"><span class="identifier">A</span></code> shall be 157 constructible from <code class="computeroutput"><span class="identifier">U</span></code>. 158 </p></dd> 159<dt><span class="term">Effects</span></dt> 160<dd><p> 161 Initializes the <code class="computeroutput"><span class="identifier">A</span></code> 162 base class with <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">forward</span><span class="special"><</span><span class="identifier">U</span><span class="special">>(</span><span class="identifier">u</span><span class="special">)</span></code>. 163 </p></dd> 164</dl> 165</div></dd> 166<dt><span class="term"><code class="computeroutput"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span> <span class="identifier">noinit_adaptor</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">noinit_adaptor</span><span class="special"><</span><span class="identifier">U</span><span class="special">>&</span> 167 <span class="identifier">u</span><span class="special">)</span> 168 <span class="keyword">noexcept</span><span class="special">;</span></code></span></dt> 169<dd><div class="variablelist"> 170<p class="title"><b></b></p> 171<dl class="variablelist"> 172<dt><span class="term">Requires</span></dt> 173<dd><p> 174 <code class="computeroutput"><span class="identifier">A</span></code> shall be 175 constructible from <code class="computeroutput"><span class="identifier">U</span></code>. 176 </p></dd> 177<dt><span class="term">Effects</span></dt> 178<dd><p> 179 Initializes the <code class="computeroutput"><span class="identifier">A</span></code> 180 base class with <code class="computeroutput"><span class="keyword">static_cast</span><span class="special"><</span><span class="keyword">const</span> 181 <span class="identifier">A</span><span class="special">&>(</span><span class="identifier">u</span><span class="special">)</span></code>. 182 </p></dd> 183</dl> 184</div></dd> 185</dl> 186</div> 187</div> 188<div class="section"> 189<div class="titlepage"><div><div><h4 class="title"> 190<a name="core.noinit_adaptor.reference.member_functions"></a><a class="link" href="noinit_adaptor.html#core.noinit_adaptor.reference.member_functions" title="Member functions">Member 191 functions</a> 192</h4></div></div></div> 193<div class="variablelist"> 194<p class="title"><b></b></p> 195<dl class="variablelist"> 196<dt><span class="term"><code class="computeroutput"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">construct</span><span class="special">(</span><span class="identifier">U</span><span class="special">*</span> <span class="identifier">p</span><span class="special">);</span></code></span></dt> 197<dd><div class="variablelist"> 198<p class="title"><b></b></p> 199<dl class="variablelist"> 200<dt><span class="term">Effects</span></dt> 201<dd><p> 202 <code class="computeroutput"><span class="special">::</span><span class="keyword">new</span><span class="special">((</span><span class="keyword">void</span><span class="special">*)</span><span class="identifier">p</span><span class="special">)</span> <span class="identifier">U</span></code>. 203 </p></dd> 204</dl> 205</div></dd> 206<dt><span class="term"><code class="computeroutput"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span> <span class="keyword">void</span> <span class="identifier">destroy</span><span class="special">(</span><span class="identifier">U</span><span class="special">*</span> <span class="identifier">p</span><span class="special">);</span></code></span></dt> 207<dd><div class="variablelist"> 208<p class="title"><b></b></p> 209<dl class="variablelist"> 210<dt><span class="term">Effects</span></dt> 211<dd><p> 212 <code class="computeroutput"><span class="identifier">p</span><span class="special">->~</span><span class="identifier">U</span><span class="special">()</span></code>. 213 </p></dd> 214</dl> 215</div></dd> 216</dl> 217</div> 218</div> 219<div class="section"> 220<div class="titlepage"><div><div><h4 class="title"> 221<a name="core.noinit_adaptor.reference.operators"></a><a class="link" href="noinit_adaptor.html#core.noinit_adaptor.reference.operators" title="Operators">Operators</a> 222</h4></div></div></div> 223<div class="variablelist"> 224<p class="title"><b></b></p> 225<dl class="variablelist"> 226<dt><span class="term"><code class="computeroutput"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span> <span class="keyword">constexpr</span> <span class="keyword">bool</span> 227 <span class="keyword">operator</span><span class="special">==(</span><span class="keyword">const</span> <span class="identifier">noinit_adaptor</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">noinit_adaptor</span><span class="special"><</span><span class="identifier">U</span><span class="special">>&</span> 228 <span class="identifier">rhs</span><span class="special">)</span> 229 <span class="keyword">noexcept</span><span class="special">;</span></code></span></dt> 230<dd><div class="variablelist"> 231<p class="title"><b></b></p> 232<dl class="variablelist"> 233<dt><span class="term">Returns</span></dt> 234<dd><p> 235 <code class="computeroutput"><span class="keyword">static_cast</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&>(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">==</span> 236 <span class="keyword">static_cast</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">U</span><span class="special">&>(</span><span class="identifier">rhs</span><span class="special">)</span></code>. 237 </p></dd> 238</dl> 239</div></dd> 240<dt><span class="term"><code class="computeroutput"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span> <span class="keyword">constexpr</span> <span class="keyword">bool</span> 241 <span class="keyword">operator</span><span class="special">!=(</span><span class="keyword">const</span> <span class="identifier">noinit_adaptor</span><span class="special"><</span><span class="identifier">T</span><span class="special">>&</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">noinit_adaptor</span><span class="special"><</span><span class="identifier">U</span><span class="special">>&</span> 242 <span class="identifier">rhs</span><span class="special">)</span> 243 <span class="keyword">noexcept</span><span class="special">;</span></code></span></dt> 244<dd><div class="variablelist"> 245<p class="title"><b></b></p> 246<dl class="variablelist"> 247<dt><span class="term">Returns</span></dt> 248<dd><p> 249 <code class="computeroutput"><span class="special">!(</span><span class="identifier">lhs</span> 250 <span class="special">==</span> <span class="identifier">rhs</span><span class="special">)</span></code>. 251 </p></dd> 252</dl> 253</div></dd> 254</dl> 255</div> 256</div> 257<div class="section"> 258<div class="titlepage"><div><div><h4 class="title"> 259<a name="core.noinit_adaptor.reference.free_functions"></a><a class="link" href="noinit_adaptor.html#core.noinit_adaptor.reference.free_functions" title="Free functions">Free 260 functions</a> 261</h4></div></div></div> 262<div class="variablelist"> 263<p class="title"><b></b></p> 264<dl class="variablelist"> 265<dt><span class="term"><code class="computeroutput"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">A</span><span class="special">></span> <span class="identifier">noinit_adaptor</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span> <span class="identifier">noinit_adapt</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&</span> <span class="identifier">a</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></code></span></dt> 266<dd><div class="variablelist"> 267<p class="title"><b></b></p> 268<dl class="variablelist"> 269<dt><span class="term">Returns</span></dt> 270<dd><p> 271 <code class="computeroutput"><span class="identifier">noinit_adaptor</span><span class="special"><</span><span class="identifier">A</span><span class="special">>(</span><span class="identifier">a</span><span class="special">)</span></code>. 272 </p></dd> 273</dl> 274</div></dd> 275</dl> 276</div> 277</div> 278</div> 279</div> 280<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 281<td align="left"></td> 282<td align="right"><div class="copyright-footer">Copyright © 2014 Peter Dimov<br>Copyright © 2014 Glen Fernandes<br>Copyright © 2014 Andrey Semashev<p> 283 Distributed under the <a href="http://boost.org/LICENSE_1_0.txt" target="_top">Boost 284 Software License, Version 1.0</a>. 285 </p> 286</div></td> 287</tr></table> 288<hr> 289<div class="spirit-nav"> 290<a accesskey="p" href="no_exceptions_support.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="noncopyable.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> 291</div> 292</body> 293</html> 294