Imported Upstream version 1.57.0
[platform/upstream/boost.git] / libs / spirit / doc / html / spirit / advanced / customize / store_value / push_back.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
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.78.1">
7 <link rel="home" href="../../../../index.html" title="Spirit 2.5.2">
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 &#169; 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>