• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4<title>Store a Parsed Attribute Value into a Container (Qi)</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="Spirit 2.5.8">
8<link rel="up" href="../store_value.html" title="Store Parsed Attribute Values into a Container (Qi)">
9<link rel="prev" href="container_value.html" title="Determine the Type to be Stored in a Container (Qi)">
10<link rel="next" href="../clear_value.html" title="Re-Initialize an Attribute Value before Parsing (Qi)">
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="container_value.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../store_value.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="../clear_value.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
24</div>
25<div class="section">
26<div class="titlepage"><div><div><h5 class="title">
27<a name="spirit.advanced.customize.store_value.push_back"></a><a class="link" href="push_back.html" title="Store a Parsed Attribute Value into a Container (Qi)">Store
28          a Parsed Attribute Value into a Container (Qi)</a>
29</h5></div></div></div>
30<h6>
31<a name="spirit.advanced.customize.store_value.push_back.h0"></a>
32            <span class="phrase"><a name="spirit.advanced.customize.store_value.push_back.push_back_container"></a></span><a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.push_back_container">push_back_container</a>
33          </h6>
34<p>
35            The template <code class="computeroutput"><span class="identifier">push_back_container</span></code>
36            is a type used as an attribute customization point. It is invoked by
37            the <span class="emphasis"><em>Qi</em></span> repetitive parsers (<a class="link" href="../../../qi/reference/operator/kleene.html" title="Kleene Parser (*a)">Kleene</a>,
38            <a class="link" href="../../../qi/reference/operator/plus.html" title="Plus Parser (+a)">Plus</a>, <a class="link" href="../../../qi/reference/operator/list.html" title="List Parser (a % b)">List</a>, and <a class="link" href="../../../qi/reference/directive/repeat.html" title="Repetition Parser Directive (repeat[])">Repeat</a>)
39            to store a parsed attribute value into a container.
40          </p>
41<h6>
42<a name="spirit.advanced.customize.store_value.push_back.h1"></a>
43            <span class="phrase"><a name="spirit.advanced.customize.store_value.push_back.module_headers"></a></span><a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.module_headers">Module
44            Headers</a>
45          </h6>
46<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">home</span><span class="special">/</span><span class="identifier">support</span><span class="special">/</span><span class="identifier">container</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
47</pre>
48<p>
49            Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
50          </p>
51<div class="note"><table border="0" summary="Note">
52<tr>
53<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
54<th align="left">Note</th>
55</tr>
56<tr><td align="left" valign="top"><p>
57              This header file does not need to be included directly by any user
58              program as it is normally included by other Spirit header files relying
59              on its content.
60            </p></td></tr>
61</table></div>
62<h6>
63<a name="spirit.advanced.customize.store_value.push_back.h2"></a>
64            <span class="phrase"><a name="spirit.advanced.customize.store_value.push_back.namespace"></a></span><a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.namespace">Namespace</a>
65          </h6>
66<div class="informaltable"><table class="table">
67<colgroup><col></colgroup>
68<thead><tr><th>
69                    <p>
70                      Name
71                    </p>
72                  </th></tr></thead>
73<tbody><tr><td>
74                    <p>
75                      <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></code>
76                    </p>
77                  </td></tr></tbody>
78</table></div>
79<h6>
80<a name="spirit.advanced.customize.store_value.push_back.h3"></a>
81            <span class="phrase"><a name="spirit.advanced.customize.store_value.push_back.synopsis"></a></span><a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.synopsis">Synopsis</a>
82          </h6>
83<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Attrib</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
84<span class="keyword">struct</span> <span class="identifier">push_back_container</span>
85<span class="special">{</span>
86    <span class="keyword">static</span> <span class="keyword">bool</span> <span class="identifier">call</span><span class="special">(</span><span class="identifier">Container</span><span class="special">&amp;</span> <span class="identifier">c</span><span class="special">,</span> <span class="identifier">Attrib</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
87<span class="special">};</span>
88</pre>
89<h6>
90<a name="spirit.advanced.customize.store_value.push_back.h4"></a>
91            <span class="phrase"><a name="spirit.advanced.customize.store_value.push_back.template_parameters"></a></span><a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.template_parameters">Template
92            parameters</a>
93          </h6>
94<div class="informaltable"><table class="table">
95<colgroup>
96<col>
97<col>
98<col>
99</colgroup>
100<thead><tr>
101<th>
102                    <p>
103                      Parameter
104                    </p>
105                  </th>
106<th>
107                    <p>
108                      Description
109                    </p>
110                  </th>
111<th>
112                    <p>
113                      Default
114                    </p>
115                  </th>
116</tr></thead>
117<tbody>
118<tr>
119<td>
120                    <p>
121                      <code class="computeroutput"><span class="identifier">Container</span></code>
122                    </p>
123                  </td>
124<td>
125                    <p>
126                      The type, <code class="computeroutput"><span class="identifier">Container</span></code>
127                      needs to be tested whether it has to be treated as a container
128                    </p>
129                  </td>
130<td>
131                    <p>
132                      none
133                    </p>
134                  </td>
135</tr>
136<tr>
137<td>
138                    <p>
139                      <code class="computeroutput"><span class="identifier">Attrib</span></code>
140                    </p>
141                  </td>
142<td>
143                    <p>
144                      The type, <code class="computeroutput"><span class="identifier">Attrib</span></code>
145                      is the one returned from the customization point <a class="link" href="container_value.html" title="Determine the Type to be Stored in a Container (Qi)"><code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">container_value</span></code></a> and
146                      represents the attribute value to be stored in the container
147                      of type <code class="computeroutput"><span class="identifier">Container</span></code>.
148                    </p>
149                  </td>
150<td>
151                    <p>
152                      none
153                    </p>
154                  </td>
155</tr>
156<tr>
157<td>
158                    <p>
159                      <code class="computeroutput"><span class="identifier">Enable</span></code>
160                    </p>
161                  </td>
162<td>
163                    <p>
164                      Helper template parameter usable to selectively enable or disable
165                      certain specializations of <code class="computeroutput"><span class="identifier">push_back_container</span></code>
166                      utilizing SFINAE (i.e. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></code>
167                      or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></code>).
168                    </p>
169                  </td>
170<td>
171                    <p>
172                      <code class="computeroutput"><span class="keyword">void</span></code>
173                    </p>
174                  </td>
175</tr>
176</tbody>
177</table></div>
178<div class="variablelist">
179<p class="title"><b>Notation</b></p>
180<dl class="variablelist">
181<dt><span class="term"><code class="computeroutput"><span class="identifier">C</span></code></span></dt>
182<dd><p>
183                  A type to be used as a container to store attribute values in.
184                </p></dd>
185<dt><span class="term"><code class="computeroutput"><span class="identifier">c</span></code></span></dt>
186<dd>
187<p>
188                  A container instance of type <code class="computeroutput"><span class="identifier">C</span></code>.
189                </p>
190<p>
191                  [<code class="computeroutput"><span class="identifier">Attrib</span></code>
192                </p>
193<p>
194                  A type to be used as a container to store attribute values in.
195                </p>
196</dd>
197<dt><span class="term"><code class="computeroutput"><span class="identifier">attr</span></code></span></dt>
198<dd><p>
199                  An attribute instance of type <code class="computeroutput"><span class="identifier">Attrib</span></code>.
200                </p></dd>
201<dt><span class="term"><code class="computeroutput"><span class="identifier">T1</span></code>, <code class="computeroutput"><span class="identifier">T2</span></code>, ...</span></dt>
202<dd><p>
203                  Arbitrary types
204                </p></dd>
205</dl>
206</div>
207<h6>
208<a name="spirit.advanced.customize.store_value.push_back.h5"></a>
209            <span class="phrase"><a name="spirit.advanced.customize.store_value.push_back.expression_semantics"></a></span><a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.expression_semantics">Expression
210            Semantics</a>
211          </h6>
212<div class="informaltable"><table class="table">
213<colgroup>
214<col>
215<col>
216</colgroup>
217<thead><tr>
218<th>
219                    <p>
220                      Expression
221                    </p>
222                  </th>
223<th>
224                    <p>
225                      Semantics
226                    </p>
227                  </th>
228</tr></thead>
229<tbody><tr>
230<td>
231                    <p>
232</p>
233<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">push_back_container</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">,</span> <span class="identifier">Attrib</span><span class="special">&gt;::</span><span class="identifier">call</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span> <span class="identifier">attr</span><span class="special">)</span></pre>
234<p>
235                    </p>
236                  </td>
237<td>
238                    <p>
239                      Static function that is invoked whenever an attribute value,
240                      <code class="computeroutput"><span class="identifier">attr</span></code> needs
241                      to be stored into the container instance <code class="computeroutput"><span class="identifier">c</span></code>.
242                      This function should return <code class="computeroutput"><span class="keyword">true</span></code>
243                      on success and <code class="computeroutput"><span class="keyword">false</span></code>
244                      otherwise. Returning <code class="computeroutput"><span class="keyword">false</span></code>
245                      causes the corresponding parser to fail.
246                    </p>
247                  </td>
248</tr></tbody>
249</table></div>
250<h6>
251<a name="spirit.advanced.customize.store_value.push_back.h6"></a>
252            <span class="phrase"><a name="spirit.advanced.customize.store_value.push_back.predefined_specializations"></a></span><a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.predefined_specializations">Predefined
253            Specializations</a>
254          </h6>
255<p>
256            <a href="http://boost-spirit.com" target="_top">Spirit</a> predefines specializations
257            of this customization point for several types. The following table lists
258            those types together with the types exposed and the corresponding semantics:
259          </p>
260<div class="informaltable"><table class="table">
261<colgroup>
262<col>
263<col>
264</colgroup>
265<thead><tr>
266<th>
267                    <p>
268                      Template Parameters
269                    </p>
270                  </th>
271<th>
272                    <p>
273                      Semantics
274                    </p>
275                  </th>
276</tr></thead>
277<tbody>
278<tr>
279<td>
280                    <p>
281                      <code class="computeroutput"><span class="identifier">C</span></code>, <code class="computeroutput"><span class="identifier">Attrib</span></code>
282                    </p>
283                  </td>
284<td>
285                    <p>
286                      Store the provided attribute instance <code class="computeroutput"><span class="identifier">attr</span></code>
287                      into the given container <code class="computeroutput"><span class="identifier">c</span></code>
288                      using the function call <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">attr</span><span class="special">)</span></code>.
289                    </p>
290                  </td>
291</tr>
292<tr>
293<td>
294                    <p>
295                      <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;</span></code>,
296                      <code class="computeroutput"><span class="identifier">Attrib</span></code>
297                    </p>
298                  </td>
299<td>
300                    <p>
301                      If the provided instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special">&lt;&gt;</span></code> is not initialized,
302                      invoke the appropriate initialization and afterwards apply
303                      the customization point <code class="computeroutput"><span class="identifier">push_back_container</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">,</span> <span class="identifier">Attrib</span><span class="special">&gt;</span></code>, treating the instance
304                      held by the optional (of type <code class="computeroutput"><span class="identifier">C</span></code>)
305                      as the container to store the attribute in.
306                    </p>
307                  </td>
308</tr>
309<tr>
310<td>
311                    <p>
312                      <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span><span class="special">&lt;</span><span class="identifier">T1</span><span class="special">,</span>
313                      <span class="identifier">T2</span><span class="special">,</span>
314                      <span class="special">...&gt;</span></code>, <code class="computeroutput"><span class="identifier">Attrib</span></code>
315                    </p>
316                  </td>
317<td>
318                    <p>
319                      If the instance of the variant currently holds a value with
320                      a type, <code class="computeroutput"><span class="identifier">TN</span></code>,
321                      for which <code class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">TN</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
322                      evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>,
323                      this customization point specialization will apply <code class="computeroutput"><span class="identifier">push_back_container</span><span class="special">&lt;</span><span class="identifier">TN</span><span class="special">,</span>
324                      <span class="identifier">Attrib</span><span class="special">&gt;</span></code>,
325                      treating the instance held by the variant (of type <code class="computeroutput"><span class="identifier">TN</span></code>) as the container to store
326                      the attribute in. Otherwise it will raise an assertion.
327                    </p>
328                  </td>
329</tr>
330<tr>
331<td>
332                    <p>
333                      <code class="computeroutput"><span class="identifier">unused_type</span></code>
334                    </p>
335                  </td>
336<td>
337                    <p>
338                      Do nothing.
339                    </p>
340                  </td>
341</tr>
342</tbody>
343</table></div>
344<h6>
345<a name="spirit.advanced.customize.store_value.push_back.h7"></a>
346            <span class="phrase"><a name="spirit.advanced.customize.store_value.push_back.when_to_implement"></a></span><a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.when_to_implement">When
347            to Implement</a>
348          </h6>
349<p>
350            The customization point <code class="computeroutput"><span class="identifier">push_back_container</span></code>
351            needs to be implemented for a specific type whenever this type is to
352            be used as an attribute in place of a STL container. It is applicable
353            for parsers (<span class="emphasis"><em>Spirit.Qi</em></span>) only. As a rule of thumb:
354            it has to be implemented whenever a certain type is to be passed as an
355            attribute to a parser normally exposing a STL container and if the type
356            does not expose the interface of a STL container (i.e. no function being
357            equivalent to <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">attr</span><span class="special">)</span></code>.
358            These components have an attribute propagation rule in the form:
359          </p>
360<pre class="programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--&gt;</span> <span class="identifier">Op</span><span class="special">(</span><span class="identifier">a</span><span class="special">):</span> <span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span>
361</pre>
362<p>
363            where <code class="computeroutput"><span class="identifier">Op</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>
364            stands for any meaningful operation on the component <code class="computeroutput"><span class="identifier">a</span></code>.
365          </p>
366<h6>
367<a name="spirit.advanced.customize.store_value.push_back.h8"></a>
368            <span class="phrase"><a name="spirit.advanced.customize.store_value.push_back.related_attribute_customization_points"></a></span><a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.related_attribute_customization_points">Related
369            Attribute Customization Points</a>
370          </h6>
371<p>
372            If this customization point is implemented, the following other customization
373            points might need to be implemented as well.
374          </p>
375<div class="informaltable"><table class="table">
376<colgroup>
377<col>
378<col>
379</colgroup>
380<thead><tr>
381<th>
382                    <p>
383                      Name
384                    </p>
385                  </th>
386<th>
387                    <p>
388                      When to implement
389                    </p>
390                  </th>
391</tr></thead>
392<tbody>
393<tr>
394<td>
395                    <p>
396                      <a class="link" href="container_value.html" title="Determine the Type to be Stored in a Container (Qi)"><code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">container_value</span></code></a>
397                    </p>
398                  </td>
399<td>
400                    <p>
401                      Qi: <a class="link" href="../../../qi/reference/operator/list.html" title="List Parser (a % b)">List</a>,
402                      <a class="link" href="../../../qi/reference/operator/kleene.html" title="Kleene Parser (*a)">Kleene</a>,
403                      <a class="link" href="../../../qi/reference/operator/plus.html" title="Plus Parser (+a)">Plus</a>,
404                      <a class="link" href="../../../qi/reference/directive/repeat.html" title="Repetition Parser Directive (repeat[])">Repeat</a>.
405                    </p>
406                  </td>
407</tr>
408<tr>
409<td>
410                    <p>
411                      <a class="link" href="../clear_value.html" title="Re-Initialize an Attribute Value before Parsing (Qi)"><code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">clear_value</span></code></a>
412                    </p>
413                  </td>
414<td>
415                    <p>
416                      Qi: <a class="link" href="../../../qi/reference/operator/list.html" title="List Parser (a % b)">List</a>,
417                      <a class="link" href="../../../qi/reference/operator/kleene.html" title="Kleene Parser (*a)">Kleene</a>,
418                      <a class="link" href="../../../qi/reference/operator/plus.html" title="Plus Parser (+a)">Plus</a>,
419                      <a class="link" href="../../../qi/reference/directive/repeat.html" title="Repetition Parser Directive (repeat[])">Repeat</a>.
420                    </p>
421                  </td>
422</tr>
423</tbody>
424</table></div>
425<h6>
426<a name="spirit.advanced.customize.store_value.push_back.h9"></a>
427            <span class="phrase"><a name="spirit.advanced.customize.store_value.push_back.example"></a></span><a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.example">Example</a>
428          </h6>
429<p>
430            Here is an example showing the default implementation of the <a class="link" href="container_value.html" title="Determine the Type to be Stored in a Container (Qi)"><code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">container_value</span></code></a> customization
431            point provided by the library:
432          </p>
433<p>
434</p>
435<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="comment">/* = void*/</span><span class="special">&gt;</span>
436<span class="keyword">struct</span> <span class="identifier">push_back_container</span>
437<span class="special">{</span>
438    <span class="keyword">static</span> <span class="keyword">bool</span> <span class="identifier">call</span><span class="special">(</span><span class="identifier">Container</span><span class="special">&amp;</span> <span class="identifier">c</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">)</span>
439    <span class="special">{</span>
440        <span class="identifier">c</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">val</span><span class="special">);</span>
441        <span class="keyword">return</span> <span class="keyword">true</span><span class="special">;</span>
442    <span class="special">}</span>
443<span class="special">};</span>
444</pre>
445<p>
446          </p>
447<p>
448            This template is instantiated by the library at the appropriate places
449            while using the supplied container and element types as the template
450            arguments. The member function <code class="computeroutput"><span class="identifier">call</span><span class="special">()</span></code> will be called whenever an element
451            has to be added to the supplied container
452          </p>
453<p>
454            The following example shows the predefined specialization for <code class="computeroutput"><span class="identifier">unused_type</span></code>:
455          </p>
456<p>
457</p>
458<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">&gt;</span>
459<span class="keyword">bool</span> <span class="identifier">push_back</span><span class="special">(</span><span class="identifier">Container</span><span class="special">&amp;,</span> <span class="identifier">unused_type</span><span class="special">)</span>
460<span class="special">{</span>
461    <span class="keyword">return</span> <span class="keyword">true</span><span class="special">;</span>
462<span class="special">}</span>
463</pre>
464<p>
465          </p>
466<p>
467            which defines an empty member function <code class="computeroutput"><span class="identifier">call</span><span class="special">()</span></code>.
468          </p>
469</div>
470<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
471<td align="left"></td>
472<td align="right"><div class="copyright-footer">Copyright © 2001-2011 Joel de Guzman, Hartmut Kaiser<p>
473        Distributed under the Boost Software License, Version 1.0. (See accompanying
474        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
475      </p>
476</div></td>
477</tr></table>
478<hr>
479<div class="spirit-nav">
480<a accesskey="p" href="container_value.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../store_value.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="../clear_value.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
481</div>
482</body>
483</html>
484