Imported Upstream version 1.57.0
[platform/upstream/boost.git] / libs / spirit / doc / html / spirit / karma / reference / directive / alignment.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>Alignment Generator Directives (left_align[], center[], right_align[])</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="../directive.html" title="Generator Directives">
9 <link rel="prev" href="../directive.html" title="Generator Directives">
10 <link rel="next" href="repeat.html" title="Repetition Generator Directive (repeat[])">
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="../directive.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../directive.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="repeat.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.karma.reference.directive.alignment"></a><a class="link" href="alignment.html" title="Alignment Generator Directives (left_align[], center[], right_align[])">Alignment
28           Generator Directives (<code class="computeroutput"><span class="identifier">left_align</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="identifier">center</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="identifier">right_align</span><span class="special">[]</span></code>)</a>
29 </h5></div></div></div>
30 <h6>
31 <a name="spirit.karma.reference.directive.alignment.h0"></a>
32             <span class="phrase"><a name="spirit.karma.reference.directive.alignment.description"></a></span><a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.description">Description</a>
33           </h6>
34 <p>
35             The alignment directives allow to left align, right align or center output
36             emitted by other generators into columns of a specified width while using
37             an arbitrary generator to create the padding.
38           </p>
39 <h6>
40 <a name="spirit.karma.reference.directive.alignment.h1"></a>
41             <span class="phrase"><a name="spirit.karma.reference.directive.alignment.header"></a></span><a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.header">Header</a>
42           </h6>
43 <p>
44             For the <code class="computeroutput"><span class="identifier">left_align</span><span class="special">[]</span></code>
45             directive:
46           </p>
47 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/directive/left_alignment.hpp&gt;</span>
48 <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">include</span><span class="special">/</span><span class="identifier">karma_left_alignment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
49 </pre>
50 <p>
51             For the <code class="computeroutput"><span class="identifier">center</span><span class="special">[]</span></code>
52             directive:
53           </p>
54 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/directive/center_alignment.hpp&gt;</span>
55 <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">include</span><span class="special">/</span><span class="identifier">karma_center_alignment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
56 </pre>
57 <p>
58             For the <code class="computeroutput"><span class="identifier">right_align</span><span class="special">[]</span></code>
59             directive:
60           </p>
61 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/directive/right_alignment.hpp&gt;</span>
62 <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">include</span><span class="special">/</span><span class="identifier">karma_right_alignment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
63 </pre>
64 <p>
65             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
66           </p>
67 <h6>
68 <a name="spirit.karma.reference.directive.alignment.h2"></a>
69             <span class="phrase"><a name="spirit.karma.reference.directive.alignment.namespace"></a></span><a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.namespace">Namespace</a>
70           </h6>
71 <div class="informaltable"><table class="table">
72 <colgroup><col></colgroup>
73 <thead><tr><th>
74                     <p>
75                       Name
76                     </p>
77                   </th></tr></thead>
78 <tbody>
79 <tr><td>
80                     <p>
81                       <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">left_align</span> <span class="comment">//
82                       alias: boost::spirit::karma::left_align</span></code>
83                     </p>
84                   </td></tr>
85 <tr><td>
86                     <p>
87                       <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">center</span> <span class="comment">//
88                       alias: boost::spirit::karma::center</span></code>
89                     </p>
90                   </td></tr>
91 <tr><td>
92                     <p>
93                       <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">right_align</span> <span class="comment">//
94                       alias: boost::spirit::karma::right_align</span></code>
95                     </p>
96                   </td></tr>
97 </tbody>
98 </table></div>
99 <h6>
100 <a name="spirit.karma.reference.directive.alignment.h3"></a>
101             <span class="phrase"><a name="spirit.karma.reference.directive.alignment.model_of"></a></span><a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.model_of">Model of</a>
102           </h6>
103 <div class="blockquote"><blockquote class="blockquote"><p>
104               <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>
105             </p></blockquote></div>
106 <div class="variablelist">
107 <p class="title"><b>Notation</b></p>
108 <dl class="variablelist">
109 <dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
110 <dd><p>
111                   A generator object
112                 </p></dd>
113 <dt><span class="term"><code class="computeroutput"><span class="identifier">pad</span></code></span></dt>
114 <dd><p>
115                   A generator object, or a <a class="link" href="../basics.html#spirit.karma.reference.basics.lazy_argument">Lazy
116                   Argument</a> that evaluates to a generator object
117                 </p></dd>
118 <dt><span class="term"><code class="computeroutput"><span class="identifier">A</span></code>, <code class="computeroutput"><span class="identifier">Pad</span></code></span></dt>
119 <dd><p>
120                   Attribute types of the generators <code class="computeroutput"><span class="identifier">a</span></code>
121                   and <code class="computeroutput"><span class="identifier">pad</span></code>
122                 </p></dd>
123 <dt><span class="term"><code class="computeroutput"><span class="identifier">width</span></code></span></dt>
124 <dd><p>
125                   Numeric literal, any unsigned integer value, or a <a class="link" href="../basics.html#spirit.karma.reference.basics.lazy_argument">Lazy
126                   Argument</a> that evaluates to an unsigned integer value
127                 </p></dd>
128 </dl>
129 </div>
130 <h6>
131 <a name="spirit.karma.reference.directive.alignment.h4"></a>
132             <span class="phrase"><a name="spirit.karma.reference.directive.alignment.expression_semantics"></a></span><a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.expression_semantics">Expression
133             Semantics</a>
134           </h6>
135 <p>
136             Semantics of an expression is defined only where it differs from, or
137             is not defined in <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>.
138           </p>
139 <div class="informaltable"><table class="table">
140 <colgroup>
141 <col>
142 <col>
143 </colgroup>
144 <thead><tr>
145 <th>
146                     <p>
147                       Expression
148                     </p>
149                   </th>
150 <th>
151                     <p>
152                       Semantics
153                     </p>
154                   </th>
155 </tr></thead>
156 <tbody>
157 <tr>
158 <td>
159                     <p>
160                       <code class="computeroutput"><span class="identifier">left_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
161                     </p>
162                   </td>
163 <td>
164                     <p>
165                       Generate <code class="computeroutput"><span class="identifier">a</span></code>
166                       left aligned in a column of width as defined by the preprocessor
167                       constant <code class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></code>
168                       (default: 10), while using <code class="computeroutput"><span class="identifier">space</span></code>
169                       to emit the necessary padding. This generator succeeds as long
170                       as its embedded generator <code class="computeroutput"><span class="identifier">a</span></code>
171                       does not fail (unless the underlying output stream reports
172                       an error).
173                     </p>
174                   </td>
175 </tr>
176 <tr>
177 <td>
178                     <p>
179                       <code class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
180                     </p>
181                   </td>
182 <td>
183                     <p>
184                       Generate <code class="computeroutput"><span class="identifier">a</span></code>
185                       left aligned in a column of the given <code class="computeroutput"><span class="identifier">width</span></code>,
186                       while using <code class="computeroutput"><span class="identifier">space</span></code>
187                       to emit the necessary padding. This generator succeeds as long
188                       as its embedded generator <code class="computeroutput"><span class="identifier">a</span></code>
189                       does not fail (unless the underlying output stream reports
190                       an error).
191                     </p>
192                   </td>
193 </tr>
194 <tr>
195 <td>
196                     <p>
197                       <code class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
198                     </p>
199                   </td>
200 <td>
201                     <p>
202                       Generate <code class="computeroutput"><span class="identifier">a</span></code>
203                       left aligned in a column of width as defined by the preprocessor
204                       constant <code class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></code>
205                       (default: 10), while using the generator <code class="computeroutput"><span class="identifier">pad</span></code>
206                       to emit the necessary padding. This generator succeeds as long
207                       as its embedded and padding generators <code class="computeroutput"><span class="identifier">a</span></code>
208                       and <code class="computeroutput"><span class="identifier">pad</span></code> do
209                       not fail (except if the underlying output stream reports an
210                       error).
211                     </p>
212                   </td>
213 </tr>
214 <tr>
215 <td>
216                     <p>
217                       <code class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
218                     </p>
219                   </td>
220 <td>
221                     <p>
222                       Generate <code class="computeroutput"><span class="identifier">a</span></code>
223                       left aligned in a column of the given <code class="computeroutput"><span class="identifier">width</span></code>,
224                       while using the generator <code class="computeroutput"><span class="identifier">pad</span></code>
225                       to emit the necessary padding. This generator succeeds as long
226                       as its embedded and padding generators <code class="computeroutput"><span class="identifier">a</span></code>
227                       and <code class="computeroutput"><span class="identifier">pad</span></code> do
228                       not fail (unless the underlying output stream reports an error).
229                     </p>
230                   </td>
231 </tr>
232 <tr>
233 <td>
234                     <p>
235                       <code class="computeroutput"><span class="identifier">center</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
236                     </p>
237                   </td>
238 <td>
239                     <p>
240                       Generate <code class="computeroutput"><span class="identifier">a</span></code>
241                       centered in a column of width as defined by the preprocessor
242                       constant <code class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></code>
243                       (default: 10), while using <code class="computeroutput"><span class="identifier">space</span></code>
244                       to emit the necessary padding. This generator succeeds as long
245                       as its embedded generator <code class="computeroutput"><span class="identifier">a</span></code>
246                       does not fail (unless the underlying output stream reports
247                       an error).
248                     </p>
249                   </td>
250 </tr>
251 <tr>
252 <td>
253                     <p>
254                       <code class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
255                     </p>
256                   </td>
257 <td>
258                     <p>
259                       Generate <code class="computeroutput"><span class="identifier">a</span></code>
260                       centered in a column of the given <code class="computeroutput"><span class="identifier">width</span></code>,
261                       while using <code class="computeroutput"><span class="identifier">space</span></code>
262                       to emit the necessary padding. This generator succeeds as long
263                       as its embedded generator <code class="computeroutput"><span class="identifier">a</span></code>
264                       does not fail (unless the underlying output stream reports
265                       an error).
266                     </p>
267                   </td>
268 </tr>
269 <tr>
270 <td>
271                     <p>
272                       <code class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
273                     </p>
274                   </td>
275 <td>
276                     <p>
277                       Generate <code class="computeroutput"><span class="identifier">a</span></code>
278                       centered in a column of width as defined by the preprocessor
279                       constant <code class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></code>
280                       (default: 10), while using the generator <code class="computeroutput"><span class="identifier">pad</span></code>
281                       to emit the necessary padding. This generator succeeds as long
282                       as its embedded and padding generators <code class="computeroutput"><span class="identifier">a</span></code>
283                       and <code class="computeroutput"><span class="identifier">pad</span></code> do
284                       not fail (except if the underlying output stream reports an
285                       error).
286                     </p>
287                   </td>
288 </tr>
289 <tr>
290 <td>
291                     <p>
292                       <code class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">width</span><span class="special">,</span>
293                       <span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
294                     </p>
295                   </td>
296 <td>
297                     <p>
298                       Generate <code class="computeroutput"><span class="identifier">a</span></code>
299                       centered in a column of the given <code class="computeroutput"><span class="identifier">width</span></code>,
300                       while using the generator <code class="computeroutput"><span class="identifier">pad</span></code>
301                       to emit the necessary padding. This generator succeeds as long
302                       as its embedded and padding generators <code class="computeroutput"><span class="identifier">a</span></code>
303                       and <code class="computeroutput"><span class="identifier">pad</span></code> do
304                       not fail (unless the underlying output stream reports an error).
305                     </p>
306                   </td>
307 </tr>
308 <tr>
309 <td>
310                     <p>
311                       <code class="computeroutput"><span class="identifier">right_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
312                     </p>
313                   </td>
314 <td>
315                     <p>
316                       Generate <code class="computeroutput"><span class="identifier">a</span></code>
317                       right aligned in a column of width as defined by the preprocessor
318                       constant <code class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></code>
319                       (default: 10), while using <code class="computeroutput"><span class="identifier">space</span></code>
320                       to emit the necessary padding. This generator succeeds as long
321                       as its embedded generator <code class="computeroutput"><span class="identifier">a</span></code>
322                       does not fail (unless the underlying output stream reports
323                       an error).
324                     </p>
325                   </td>
326 </tr>
327 <tr>
328 <td>
329                     <p>
330                       <code class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
331                     </p>
332                   </td>
333 <td>
334                     <p>
335                       Generate <code class="computeroutput"><span class="identifier">a</span></code>
336                       right aligned in a column of the given <code class="computeroutput"><span class="identifier">width</span></code>,
337                       while using <code class="computeroutput"><span class="identifier">space</span></code>
338                       to emit the necessary padding. This generator succeeds as long
339                       as its embedded generator <code class="computeroutput"><span class="identifier">a</span></code>
340                       does not fail (unless the underlying output stream reports
341                       an error).
342                     </p>
343                   </td>
344 </tr>
345 <tr>
346 <td>
347                     <p>
348                       <code class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
349                     </p>
350                   </td>
351 <td>
352                     <p>
353                       Generate <code class="computeroutput"><span class="identifier">a</span></code>
354                       right aligned in a column of width as defined by the preprocessor
355                       constant <code class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></code>
356                       (default: 10), while using the generator <code class="computeroutput"><span class="identifier">pad</span></code>
357                       to emit the necessary padding. This generator succeeds as long
358                       as its embedded and padding generators <code class="computeroutput"><span class="identifier">a</span></code>
359                       and <code class="computeroutput"><span class="identifier">pad</span></code> do
360                       not fail (except if the underlying output stream reports an
361                       error).
362                     </p>
363                   </td>
364 </tr>
365 <tr>
366 <td>
367                     <p>
368                       <code class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
369                     </p>
370                   </td>
371 <td>
372                     <p>
373                       Generate <code class="computeroutput"><span class="identifier">a</span></code>
374                       right aligned in a column of the given <code class="computeroutput"><span class="identifier">width</span></code>,
375                       while using the generator <code class="computeroutput"><span class="identifier">pad</span></code>
376                       to emit the necessary padding. This generator succeeds as long
377                       as its embedded and padding generators <code class="computeroutput"><span class="identifier">a</span></code>
378                       and <code class="computeroutput"><span class="identifier">pad</span></code> do
379                       not fail (unless the underlying output stream reports an error).
380                     </p>
381                   </td>
382 </tr>
383 </tbody>
384 </table></div>
385 <div class="note"><table border="0" summary="Note">
386 <tr>
387 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
388 <th align="left">Note</th>
389 </tr>
390 <tr><td align="left" valign="top">
391 <p>
392               None of the generator directives listed above limits the emitted output
393               to the respective column width. If the emitted output is longer than
394               the specified (or implied) column width, the generated output overruns
395               the column to the right.
396             </p>
397 <p>
398               If the output needs to be limited to a specified column width, use
399               the <code class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[]</span></code>
400               directive, for instance:
401 </p>
402 <pre class="programlisting"><span class="identifier">maxwidth</span><span class="special">(</span><span class="number">8</span><span class="special">)[</span><span class="identifier">right_align</span><span class="special">(</span><span class="number">12</span><span class="special">)[</span><span class="string">"1234567890"</span><span class="special">]]</span>
403 </pre>
404 <p>
405               which will output (without the quotes):
406 </p>
407 <pre class="programlisting"><span class="string">"  123456"</span></pre>
408 <p>
409             </p>
410 </td></tr>
411 </table></div>
412 <h6>
413 <a name="spirit.karma.reference.directive.alignment.h5"></a>
414             <span class="phrase"><a name="spirit.karma.reference.directive.alignment.attributes"></a></span><a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.attributes">Attributes</a>
415           </h6>
416 <p>
417             See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
418             Attribute Notation</a>.
419           </p>
420 <div class="informaltable"><table class="table">
421 <colgroup>
422 <col>
423 <col>
424 </colgroup>
425 <thead><tr>
426 <th>
427                     <p>
428                       Expression
429                     </p>
430                   </th>
431 <th>
432                     <p>
433                       Attribute
434                     </p>
435                   </th>
436 </tr></thead>
437 <tbody>
438 <tr>
439 <td>
440                     <p>
441                       <code class="computeroutput"><span class="identifier">left_align</span><span class="special">[]</span></code>
442                     </p>
443                   </td>
444 <td>
445                     <p>
446 </p>
447 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--&gt;</span> <span class="identifier">left_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
448 <span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--&gt;</span> <span class="identifier">left_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
449 <p>
450                     </p>
451                   </td>
452 </tr>
453 <tr>
454 <td>
455                     <p>
456                       <code class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[]</span></code>
457                     </p>
458                   </td>
459 <td>
460                     <p>
461 </p>
462 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--&gt;</span> <span class="identifier">left_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
463 <span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--&gt;</span> <span class="identifier">left_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
464 <p>
465                     </p>
466                   </td>
467 </tr>
468 <tr>
469 <td>
470                     <p>
471                       <code class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[]</span></code>
472                     </p>
473                   </td>
474 <td>
475                     <p>
476 </p>
477 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--&gt;</span> <span class="identifier">left_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
478 <span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--&gt;</span> <span class="identifier">left_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
479 <p>
480                     </p>
481                   </td>
482 </tr>
483 <tr>
484 <td>
485                     <p>
486                       <code class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span> <span class="identifier">width</span><span class="special">)[]</span></code>
487                     </p>
488                   </td>
489 <td>
490                     <p>
491 </p>
492 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--&gt;</span> <span class="identifier">left_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span> <span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
493 <span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--&gt;</span> <span class="identifier">left_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span> <span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
494 <p>
495                     </p>
496                   </td>
497 </tr>
498 <tr>
499 <td>
500                     <p>
501                       <code class="computeroutput"><span class="identifier">center</span><span class="special">[]</span></code>
502                     </p>
503                   </td>
504 <td>
505                     <p>
506 </p>
507 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--&gt;</span> <span class="identifier">center</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
508 <span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--&gt;</span> <span class="identifier">center</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
509 <p>
510                     </p>
511                   </td>
512 </tr>
513 <tr>
514 <td>
515                     <p>
516                       <code class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[]</span></code>
517                     </p>
518                   </td>
519 <td>
520                     <p>
521 </p>
522 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--&gt;</span> <span class="identifier">center</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
523 <span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--&gt;</span> <span class="identifier">center</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
524 <p>
525                     </p>
526                   </td>
527 </tr>
528 <tr>
529 <td>
530                     <p>
531                       <code class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[]</span></code>
532                     </p>
533                   </td>
534 <td>
535                     <p>
536 </p>
537 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--&gt;</span> <span class="identifier">center</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
538 <span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--&gt;</span> <span class="identifier">center</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
539 <p>
540                     </p>
541                   </td>
542 </tr>
543 <tr>
544 <td>
545                     <p>
546                       <code class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span>
547                       <span class="identifier">width</span><span class="special">)[]</span></code>
548                     </p>
549                   </td>
550 <td>
551                     <p>
552 </p>
553 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--&gt;</span> <span class="identifier">center</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span> <span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
554 <span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--&gt;</span> <span class="identifier">center</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span> <span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
555 <p>
556                     </p>
557                   </td>
558 </tr>
559 <tr>
560 <td>
561                     <p>
562                       <code class="computeroutput"><span class="identifier">right_align</span><span class="special">[]</span></code>
563                     </p>
564                   </td>
565 <td>
566                     <p>
567 </p>
568 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--&gt;</span> <span class="identifier">right_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
569 <span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--&gt;</span> <span class="identifier">right_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
570 <p>
571                     </p>
572                   </td>
573 </tr>
574 <tr>
575 <td>
576                     <p>
577                       <code class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[]</span></code>
578                     </p>
579                   </td>
580 <td>
581                     <p>
582 </p>
583 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--&gt;</span> <span class="identifier">right_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
584 <span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--&gt;</span> <span class="identifier">right_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
585 <p>
586                     </p>
587                   </td>
588 </tr>
589 <tr>
590 <td>
591                     <p>
592                       <code class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[]</span></code>
593                     </p>
594                   </td>
595 <td>
596                     <p>
597 </p>
598 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--&gt;</span> <span class="identifier">right_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
599 <span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--&gt;</span> <span class="identifier">right_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
600 <p>
601                     </p>
602                   </td>
603 </tr>
604 <tr>
605 <td>
606                     <p>
607                       <code class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span> <span class="identifier">width</span><span class="special">)[]</span></code>
608                     </p>
609                   </td>
610 <td>
611                     <p>
612 </p>
613 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--&gt;</span> <span class="identifier">right_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span> <span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
614 <span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--&gt;</span> <span class="identifier">right_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span> <span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
615 <p>
616                     </p>
617                   </td>
618 </tr>
619 </tbody>
620 </table></div>
621 <h6>
622 <a name="spirit.karma.reference.directive.alignment.h6"></a>
623             <span class="phrase"><a name="spirit.karma.reference.directive.alignment.complexity"></a></span><a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.complexity">Complexity</a>
624           </h6>
625 <div class="blockquote"><blockquote class="blockquote"><p>
626               The overall complexity of an alignment generator directive is defined
627               by the complexity of its embedded and padding generator. The complexity
628               of the left alignment directive generator itself is O(1). The complexity
629               of the center and right alignment directive generators is O(N), where
630               <code class="computeroutput"><span class="identifier">N</span></code> is the number of
631               characters emitted by the embedded and padding generators.
632             </p></blockquote></div>
633 <h6>
634 <a name="spirit.karma.reference.directive.alignment.h7"></a>
635             <span class="phrase"><a name="spirit.karma.reference.directive.alignment.example"></a></span><a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.example">Example</a>
636           </h6>
637 <div class="note"><table border="0" summary="Note">
638 <tr>
639 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
640 <th align="left">Note</th>
641 </tr>
642 <tr><td align="left" valign="top"><p>
643               The test harness for the example(s) below is presented in the <a class="link" href="../basics.html#spirit.karma.reference.basics.examples">Basics Examples</a>
644               section.
645             </p></td></tr>
646 </table></div>
647 <p>
648             Some includes:
649           </p>
650 <p>
651 </p>
652 <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">include</span><span class="special">/</span><span class="identifier">karma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
653 <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">include</span><span class="special">/</span><span class="identifier">support_utree</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
654 <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">include</span><span class="special">/</span><span class="identifier">phoenix_core</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
655 <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">include</span><span class="special">/</span><span class="identifier">phoenix_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
656 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">std_pair</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
657 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
658 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
659 </pre>
660 <p>
661           </p>
662 <p>
663             Some using declarations:
664           </p>
665 <p>
666 </p>
667 <pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">karma</span><span class="special">::</span><span class="identifier">double_</span><span class="special">;</span>
668 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">karma</span><span class="special">::</span><span class="identifier">left_align</span><span class="special">;</span>
669 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">karma</span><span class="special">::</span><span class="identifier">center</span><span class="special">;</span>
670 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">karma</span><span class="special">::</span><span class="identifier">right_align</span><span class="special">;</span>
671 </pre>
672 <p>
673           </p>
674 <p>
675             Basic usage of the alignment generators:
676           </p>
677 <p>
678 </p>
679 <pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">p</span> <span class="special">(</span><span class="number">1.0</span><span class="special">,</span> <span class="number">2.0</span><span class="special">);</span>
680 <span class="identifier">test_generator_attr</span><span class="special">(</span><span class="string">"1.0     |2.0"</span><span class="special">,</span> <span class="identifier">left_align</span><span class="special">(</span><span class="number">8</span><span class="special">)[</span><span class="identifier">double_</span><span class="special">]</span> <span class="special">&lt;&lt;</span> <span class="char">'|'</span> <span class="special">&lt;&lt;</span> <span class="identifier">double_</span><span class="special">,</span> <span class="identifier">p</span><span class="special">);</span>
681 <span class="identifier">test_generator_attr</span><span class="special">(</span><span class="string">"   1.0  |2.0"</span><span class="special">,</span> <span class="identifier">center</span><span class="special">(</span><span class="number">8</span><span class="special">)[</span><span class="identifier">double_</span><span class="special">]</span> <span class="special">&lt;&lt;</span> <span class="char">'|'</span> <span class="special">&lt;&lt;</span> <span class="identifier">double_</span><span class="special">,</span> <span class="identifier">p</span><span class="special">);</span>
682 <span class="identifier">test_generator_attr</span><span class="special">(</span><span class="string">"     1.0|2.0"</span><span class="special">,</span> <span class="identifier">right_align</span><span class="special">(</span><span class="number">8</span><span class="special">)[</span><span class="identifier">double_</span><span class="special">]</span> <span class="special">&lt;&lt;</span> <span class="char">'|'</span> <span class="special">&lt;&lt;</span> <span class="identifier">double_</span><span class="special">,</span> <span class="identifier">p</span><span class="special">);</span>
683 </pre>
684 <p>
685           </p>
686 </div>
687 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
688 <td align="left"></td>
689 <td align="right"><div class="copyright-footer">Copyright &#169; 2001-2011 Joel de Guzman, Hartmut Kaiser<p>
690         Distributed under the Boost Software License, Version 1.0. (See accompanying
691         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>)
692       </p>
693 </div></td>
694 </tr></table>
695 <hr>
696 <div class="spirit-nav">
697 <a accesskey="p" href="../directive.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../directive.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="repeat.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
698 </div>
699 </body>
700 </html>