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 <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> 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 <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> 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 <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> 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">--></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> 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">--></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> 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">--></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> 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">--></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> 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">--></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> 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">--></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> 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">--></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> 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">--></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> 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">--></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> 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">--></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> 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">--></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> 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">--></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> 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"><</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> 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"><</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> 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