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[])">
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>
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>
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>
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>
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.
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>
44 For the <code class="computeroutput"><span class="identifier">left_align</span><span class="special">[]</span></code>
47 <pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/directive/left_alignment.hpp></span>
48 <span class="preprocessor">#include</span> <span class="special"><</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">></span>
51 For the <code class="computeroutput"><span class="identifier">center</span><span class="special">[]</span></code>
54 <pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/directive/center_alignment.hpp></span>
55 <span class="preprocessor">#include</span> <span class="special"><</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">></span>
58 For the <code class="computeroutput"><span class="identifier">right_align</span><span class="special">[]</span></code>
61 <pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/directive/right_alignment.hpp></span>
62 <span class="preprocessor">#include</span> <span class="special"><</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">></span>
65 Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
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>
71 <div class="informaltable"><table class="table">
72 <colgroup><col></colgroup>
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>
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>
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>
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>
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>
113 <dt><span class="term"><code class="computeroutput"><span class="identifier">pad</span></code></span></dt>
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
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>
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>
123 <dt><span class="term"><code class="computeroutput"><span class="identifier">width</span></code></span></dt>
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
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
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>.
139 <div class="informaltable"><table class="table">
160 <code class="computeroutput"><span class="identifier">left_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
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
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>
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
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>
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
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>
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).
235 <code class="computeroutput"><span class="identifier">center</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
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
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>
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
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>
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
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>
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).
311 <code class="computeroutput"><span class="identifier">right_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
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
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>
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
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>
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
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>
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).
385 <div class="note"><table border="0" summary="Note">
387 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
388 <th align="left">Note</th>
390 <tr><td align="left" valign="top">
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.
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:
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>
405 which will output (without the quotes):
407 <pre class="programlisting"><span class="string">" 123456"</span></pre>
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>
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>.
420 <div class="informaltable"><table class="table">
441 <code class="computeroutput"><span class="identifier">left_align</span><span class="special">[]</span></code>
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">--></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">--></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>
456 <code class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[]</span></code>
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">--></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">--></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>
471 <code class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[]</span></code>
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">--></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">--></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>
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>
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">--></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">--></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>
501 <code class="computeroutput"><span class="identifier">center</span><span class="special">[]</span></code>
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">--></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">--></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>
516 <code class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[]</span></code>
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">--></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">--></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>
531 <code class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[]</span></code>
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">--></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">--></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>
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>
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">--></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">--></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>
562 <code class="computeroutput"><span class="identifier">right_align</span><span class="special">[]</span></code>
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">--></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">--></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>
577 <code class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[]</span></code>
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">--></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">--></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>
592 <code class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[]</span></code>
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">--></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">--></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>
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>
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">--></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">--></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>
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>
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>
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>
637 <div class="note"><table border="0" summary="Note">
639 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
640 <th align="left">Note</th>
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>
652 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</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">></span>
653 <span class="preprocessor">#include</span> <span class="special"><</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">></span>
654 <span class="preprocessor">#include</span> <span class="special"><</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">></span>
655 <span class="preprocessor">#include</span> <span class="special"><</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">></span>
656 <span class="preprocessor">#include</span> <span class="special"><</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">></span>
657 <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
658 <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">string</span><span class="special">></span>
663 Some using declarations:
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>
675 Basic usage of the alignment generators:
679 <pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">></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"><<</span> <span class="char">'|'</span> <span class="special"><<</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"><<</span> <span class="char">'|'</span> <span class="special"><<</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"><<</span> <span class="char">'|'</span> <span class="special"><<</span> <span class="identifier">double_</span><span class="special">,</span> <span class="identifier">p</span><span class="special">);</span>
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>)
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>