• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
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.79.1">
7<link rel="home" href="../../../../index.html" title="Spirit 2.5.8">
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 © 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>
701